如果是要把大象放到冰箱里,这个事情只要三步,打开冰箱,把大象放进去,关上冰箱。芯片设计也是一样的,就三步!
-
代码设计 将创意用代码实现
-
功能验证 使用激励tb来测试代码功能
-
后端实现 将设计转换成门级网表,用版图实现,触发投版流片
-

这三大步骤,亙古不变,但具体的操作确实千差万别,每个公司,每个产品线可能都有些许细节不同,因为这里边主要有三点会影响芯片的开发过程。
- 芯片定位。根据不同市场定位,芯片初始的定义决定了芯片的设计严谨性和流片标准,同样是通信芯片,汽车电子市场一定要比手机市场苛责很多,但是这是值得的,为什么呢?大家可以想象,你的手机由于软件意外崩溃重启了,耽误了用户几分钟,用户可能会抱怨,但是重启可以解决一切,用户可能也不会给生产厂家打投诉电话吧。但是你是汽车,这个时候就不一样了,汽车会被暴晒、雨淋、长时间运行并且不允许重启,可以想象,用在汽车上的芯片一定是最可靠的,因为这就是底线。
据说曾经有一个德国芯片公司,他们生产的气囊控制芯片,在一辆宝马车上沉睡了十几年,但是当危险出现的那一瞬间,它准确无误的动作打开了气囊,拯救了驾驶员的生命,这个人正巧是这家芯片公司的员工,他还自豪的和这辆宝马合影留念。
如果是工控级别、汽车电子的芯片,他的测试和工作的稳定性是首位的,性能是其次的,所以这种芯片的验证、测试、后端实现的要求是非常高的,整个片子会增加超高温和超低温的应用场景,后端的实现难度也会增加很多。
民用的手机芯片不太一样了,性能、功耗是第一位的,由于使用环境单一,一般都是城市或者室内。吹着空调(低温。芯片的挚爱!),性能一定是首选的,由于运行频率的提高会急剧增加功耗,电池的瓶颈凸显,所以现在的低功耗也是这种移动类芯片的一个重要性能指标。 2. 芯片复杂度。理论上讲任何复杂的设计,都会带来设计难度的等比例增加,随之带来的成功率也会下降。设想一下,设计一个与非门,后面的验证,后端实现都很快,如果你的设计达到了百万级,甚至千万级的与非门数,由于各个节点排列,组合方式急剧增加,设计,验证,后端实现的难度可不是简单的放大一百万,一千万倍(严谨的讲,一定有一些状态是了被剔除的,这里涉及验证的覆盖率问题,小艾就不做展开了)。
一个中大规模的芯片,一般都有一亿门以上的等效与非门逻辑,对应的总绕线可能会超过500米(在一个一平方厘米芯片的面积,各个分层绕线做和),过孔总数以亿记。相较芯片的卡法成本,平均到每段绕线、每个过孔上,开起来也不怎么高了。毕竟一个八层以上PCB也是很昂贵的。
面对这样的规模,想起一句俗话:芯片设计的世界里永远都没有容易两个字! 3. 上市时间。在芯片设计中,有三个“永远”的段子:交货期限永远都是赶不完的,机器永远都是不够快的,bug也是永远存在的。芯片本身很复杂,设计周期又长(一般半年朝上),前期计划再仔细,也很难做到无微不至,项目经理精算的再细,基于不可抗因素有时候,也只能一句算了吧了事……到了交货时间(一般讲,芯片都是有潜在客户的,客户会基于你的产品交付日,计划他们后续的工作时间表),东西是一定要出去的,即使有一点小瑕疵。因为如果错过了上市窗口,可是要提头来见的!世上本无完美,即使追求人越来越多。所以讲,带着问题的流片也是经常能遇到的,但是!这些问题的影响一定可控的,或者有后手方案的,否则这个就是致命bug了,整个项目也就全盘皆输了。
小艾的手上已经不知道流过多少次片子了,但是无论哪一次,最后都是以小时来计算流片节点的,全天24小时连轴转来推项目进度,有些芯片设计公司,在流片前可是三班倒的工作制度(3*8)。小艾的最近一次的流片,为了节省时间,有三到五个版本并行生成,至于使用哪一个版本,大boss们仅仅在最后时刻才做出艰难决定。那一瞬间,当有十月怀胎,阵痛面世的感觉,
设计的三个步骤,从工作量上讲是逐级放大的,就像一个金字塔,前端定义了一组寄存,可能对设计者,就是改个数字,或者就是把package文件的参数改一下;验证工作会麻烦点,要对应要改一下tb,可能要再加一段代码来测一下这个的寄存器;那么到了后端,就是一朝回到解放前,全部流程要重新走一遍,该做的检查,时序,物理检验一个都不能少。一般讲,设计,验证,后端基本上是 15:35:50 的工作量,由此可见后端设计的复杂性和重要性。
评论区
登录后即可参与讨论
立即登录