前言
前两天看到一张数字IC设计流程图,觉得总结的比较全面,因此通过网络资源对每一步骤进行学习和总结,有不足或错误的地方烦请指正。
1. marketing request
市场需求。一般一个芯片的功能就来源于需求,这个需求可以是客户提出的对产品的要求,也可以是通过分析友商公司的产品来确定自己产品的市场定位和需求进而研发一款芯片。这一阶段工作一般由市场/需求分析师来完成。
2. architecture SPEC/project function SPEC
架构规格/项目功能。SPEC就是Specification,在SPEC中需要详尽的说明产品的整体架构和设计规格,需要阐明这款产品应当具有的所有功能,从SPEC中就可以看出这款产品的市场定位。这一阶段工作一般由解决方案架构师/架构工程师来完成。
3. Arch/algorithm emulation
架构/算法实现。一般用高级语言如C/C++/matlab,来实现芯片中整个系统的功能模块,由于在数据通路中需要大量的计算,因此matlab用的较多一些。这一步使用软件的形式来模拟电路中所实现的算法功能,这也成为了所谓的“原型机”,一个准确无误的数据模型。在电路的仿真阶段就是将结果与这个“原型机”的结果进行对比来确认功能是否正常且完备。这一阶段工作一般由算法工程师来完成。
4. design SPEC
设计规格。设计规格指的是数字设计负责人通过分析前面提出的project function SPEC,来规划在数字设计中所需要的资源以及在电路中能够实现的功能。接着设计电路,列出电路角度上的设计规格。
5. coding
编写代码。通过使用HDL语言来编写代码,注意这里的编写代码并不是编程(编写程序),而是通过HDL这种比较high level的语言去搭建电路,其本质是电路并不是程序。编码和编程一字之差就可以看出一个人是否是数字设计工程师。系统的设计流程是自顶向下,而搭建电路的流程是自下向上,通过一个个小模块的组合才能形成大模块(IP)进而形成一整个系统。现有的HDL语言有VHDL、verilog HDL和SystemVerilog,比较常用的是verilog HDL。
6. simulation/verification
仿真/验证。仿真验证,顾名思义就是模仿电路真实情况验证设计的正确性,此时一般与上文提到的原型机做对比。IP级的仿真验证进行完后,就要整合到系统上进行芯片级的仿真验证。456项直到仿真都是由数字设计工程师来完成,随着现在电路系统越来越复杂,出现了验证工程师这一职能,由此验证工作就交给了专业的验证工程师。通常验证工程师一般通过SPEC上所述功能列表来验证系统功能是否正确和完备。值得一提的是,现在的验证工作使用UVM和SystemVerilog,验证岗位如日中天。
7. logic synthesis
逻辑综合。当仿真验证工作结束后,会使用专业工具,一般用Design Compiler(DC)来进行逻辑综合,将RTL代码综合成为门级网表。至此,电路就进入了mos管级,用于后续流程。在DC之前的工作职能,我们都可以称之为数字前端工程师。而在之后的工作我们称之为数字后端工程师,前后端设计相关过程可以参考以前的文章。
8. Formality
形式验证。所谓形式验证,是指从数学上完备地证明或验证电路的实现方案是否确实实现了电路设计所描述的功能。Formality工具可以将RTL代码和门级网表进行逻辑一致性检查,对比两者功能是否完全一致。
9. STA
静态时序分析Static Timing Analysis。静态时序分析的功能是根据设计规范的要求检查所有可能路径的时序,不需要通过仿真或者测试向量就可以有效的覆盖门级网表中的每一条路径,在同步电路设计中快速找出时序上的异常。然后需要人工修复这些违规的时序,常用的简单方法有插入缓冲器,优化组合逻辑,替换晶体管大小等等一系列方法。常用软件PrimeTime(PT)。8和9项工作一般由数字后端工程师来完成。
10. DFT
可测试性设计。在电路设计阶段就考虑到芯片测试的一种设计方法,通过插入冗余电路来增强芯片的可测试性,优点是可以显著减少测试时间和成本,提高产品质量。缺点是会增大芯片面积、功耗、拖慢芯片速度等等,大部分量产的芯片都会有DFT设计。这一工作一般由DFT工程师来完成。
11. Place & Route
版图生成,自动布局布线。在这一阶段将所有的晶体管平铺在一个平面上,对每个模块的位置进行规划。常用工具是IC Compiler(ICC),IC Compiler集物理综合、时钟树综合、布线、成品率优化和签核修正于一体,能够达成其它任何产品都无法匹敌的设计性能和设计人员生产率。这一步由版图工程师来完成。
12. DRC/LVS
Design Rule Check/Layout Versus Schematics,设计规则检查和版图对比电路图,版图工程师进行最后的检查和核对。
13. post-layout STA
版图后STA。通常在PR之后原先的电路在结构上会被再次改变,就会产生新的时序信息,因此需要重新进行后仿真和静态时序分析,这两者同步进行,如果出现bug那就需要反工到第9步,继续优化电路。
14. GDSII -> tape-out
最终将所有电路信息转换成GDSII文件,交付给fab厂,一般tape-out也被称作交付、流片。
15. fab厂制造芯片
使用光刻机生产芯片,目前台积电可以量产7nm芯片,5nm正在试产。而中芯国际只有12nm光刻机。
16. 芯片测试
生产好的芯片可能会存在缺陷和故障,这时候就需要测试工程师入场发挥作用了。DFT工程师会配合测试工程师对生产好的芯片进行测试,以提高产品的质量,剔除电路有故障的芯片。对于量产的芯片来说,越晚发现芯片故障成本就会越高,因此这一步至关重要。