首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

极刊・同IC 技术管理者谈一谈数据管理和流程构建

导读

群里陆续有人问到大厂的CAD 做什么?一句话概括就是企业design platform (system)的构建和维护。在国内很多公司里,这件事是由技术骨干或者技术管理者来做,好处是开发端和需求端结合的非常紧密,高效容易推广。但如果缺乏专业的CAD/软件开发 know-how 背书,对底层的数据管理和流程架构重视不足,也可能使得整个design platform 能够发挥的价值打了许多折扣。值得称赞的是越来越多的管理者已经开始重视到这一点。

本文从如下几个方面对此话题做一分享,希望与业界同行多交流,经验共享。

数据管理的意义与挑战

元数据及配置管理数据

工具集成及快速团队开发

思考几个问题

数据管理的意义和挑战

IC 设计过程中会涉及到大量的数据,IP,工艺,EDA 工具的输入输出,往来邮件,周报,文档等,这是我们所讨论的话题的边界。

随着芯片复杂度的提升和新工艺的影响,在仿真,STA,DRC,功耗分析,做库等方面需要的计算资源和所产生的数据量成倍增长,协作和交付也变得更复杂。

数据是流程的DNA,IC 设计是复杂的,而且正在变得更加复杂,如何管理与日俱增的庞大的数据,如何用简单的方法来管理复杂,而不是任由复杂变得更复杂,是我们希望探讨的。

数据管理一方面是给团队提供统一的项目环境和工作流程,提高工作效率,另一方面为管理数据提供一套可行的方法和框架,让流程复用和项目经验积累和企业知识平台构建成为可能。

元数据及配置管理

先解释一个概念,什么叫做元数据(meta data)。元数据是用来描述数据的数据。简单的这样说,不太好理解。现在数码照片很流行了,点开任意照片,右键点击属性,选择详细信息一栏,里面记录了很多关于这张照片的信息,这就是这张照片的元数据。元数据作用巨大,通过对元数据的管理而不是raw data,可以使管理的工作量和复杂度极大降低。我们常说的实现项目间的无缝迁移,复用,异地管理,机器学习,数据上云等都需要用到管理元数据的技术。

在理解了元数据的基础上再来看一个概念,配置管理,这个概念最早来自IT 圈,是一种把所有的IT 资源管理起来的方法,后来也多用于软件工程的管理,将其应用于硬件工程管理,资源管理,流水线构建也并无违和感。其核心解决的问题就是资源的关系定义,主从关系,依赖关系,连接关系等。

举个栗子,对于一个job 而言,它本质是一系列关系的总和,包括由谁,在什么时间,调用了什么工具,哪个版本,输入输出是什么,状态是什么,结果如何。举一反三,这里面的谁,也就是用户也是一系列关系的总和,名字,邮箱,部门,在做哪些项目,手上有哪些任务,进度分别如何等。这里面的某一个输入,譬如做综合用的rtl filelist,也是一系列关系的总和,大家可以思考一下,它又是哪些关系的总和呢?

配置管理,简单讲一句话就是讲IC设计中的资源和过程以配置的方式管理起来。首先把这样一个配置数据库建立起来,管理起来可做的事情非常多,这里留一个思考题,当你有了这样一个数据库之后可以用它来做哪些事情呢?

工具集成及快速团队开发

对EDA 工具的集成是数据管理最重要的应用场景也是流程构建最核心的任务。这里希望讨论的问题是如何将工具快速集成在一起,构建能够持续交付的流水线。

持续交付,顾名思义就是每个人保持频率的持续的将工作向中心/主干做交付。这样做的前提是设计工作已经切分成了可管理的模块(如block1 block2 block3)和类型(rtl design, synthesis, fp, etc.),在不同的项目阶段,对进度及结果有目标和预期。当你的team member 以一个可被管理的频率交付上来,你不但可以方便的了解每个人的进度,而且对于fullchip designer 来说还可以方便的看到每个模块的当前的进度和技术指标。这样就可以从管理和技术两个维度看到进度和数据的流动以及设计指标的完成情况,方便的给团队成员一些及时的反馈和调整,减少偏离目标的和重复的以及造成浪费的动作,保证过程质量和提高效率。这是它最核心的目的和价值。

关于workflow,大家常提到的手工操作自动化,数据的版本管理,把EDA 工具的参数和option 预制好,提供各种功能插件等,这些都是在流程构建中需要考虑的问题和采用的手段。

功能开发由标准件模块来实现,

EDA 工具集成,用户每天跑job 的过程都可以抽象为setup, run/edit/debug, close & 看结果,这三个步骤,有很多重复且单调的工作对用户非常不友好。可以做到自动化重复工作,定制flow 模板,讲项目经验固化沉淀在模板中,持续打磨和复用。

创建任务

关系触发

release

数据挖掘模板

版本创建

报表生成模板

(此处略去解释和更多细节,有兴趣的朋友可以同我交流)

......

在你有了统一的元数据和配置管理数据(or 数据库)之后,很多应用在此基础上使用统一的标准件来构建就变得十分优雅了,几行代码就可以构造出原来复杂的功能,提高了团队协作开发的效率,并且能方便的将任何人开发的功能集成到系统中来。

当有了这个基础之后流程开发和维护的工作就变得门槛异常低了,人人都可以做为CAD 来贡献自己的价值,也极大降低了对核心专家的完全依赖

......

思考几个问题

最后给技术管理者或者有志于成为TL 的读者列几个思考题:

企业的版本管理方案是自研,开源还是商用?为什么?

对于技术管理者而言,企业的团队增长和建立全流水线应该孰先孰后?

我们常说现场管理,对IC 设计而言管理的现场在哪里?是每天做到工程师电脑旁边陪他一起debug 还是让下属花几个小时写周报?抑或有更好的方法?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180813G1G02900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券