一 数字IC设计流程
前端:
1.规格制定
甲方提要求,确定芯片的功能,性能等方面。
2.架构设计
架构工程师制定方案,设计架构,划分模块功能,定义接口时序。
3.RTL编码
数字IC设计工程师编写RTL代码,实现模块具体功能。
4.前仿真(功能仿真)
数字IC验证工程师对设计进行验证。前仿默认为理想状态,不会有timing的问题,主要验证模块逻辑功能的正确性,所以又叫功能仿真。编译跑仿真的EDA工具有VCS,Qustasim等,debug的工具一般是Verdi。
5.CDC
数字IC工程师检查跨时钟域(clock domain crossing,CDC)问题,使用的EDA工具一般为Spyglass。
6.综合(Synthesize)
使用DC将RTL代码映射成门级网表(netlist)。
7.静态时序分析(Static Timing Analysis,STA)
使用PT对电路时序进行检查,以穷举的方式提取电路中所有时序路径,检查建立时间和保持时间,通过对最大路径延迟和最小路径延迟的分析,找出时序违例(timing violation)。
8.形式验证(Logical Equivalence Check,LEC)
使用Formality对电路功能进行检查,检查通过数学方式比对RTL和Netlist的功能是否一致。
中端:
9.可测试性设计(design for test,DFT)
随着集成电路规模的增大,制造出来的芯片是否有问题越来越难以被测试,因此有了可测试性设计。通过插入扫描链和BIST等方式,方便生产的芯片进行测试。使用EDA工具为DFT compiler。
后端:
10.布局
布局规划就是放置芯片的宏单元模块,在总体上确定各种功能电路的位置。
11.时钟树综合(CTS)
时钟树综合就是时钟的布线。 由于时钟信号在数字芯片的全局指挥作用,它的分布应该是对称式的连到各个寄存器单元,从而使时钟从同一个时钟源到达各个寄存器时,时钟延迟差异最小。
12.布线(route)
这里的布线就是非时钟的布线了,包括各种标准单元(基本逻辑门电路)之间的走线。
13.寄生参数提取和信号完整性分析
由于导线本身存在的电阻,相邻导线之间的互感,耦合电容在芯片内部会产生信号噪声,串扰和反射,产生信号完整性问题,因此提取寄生参数进行分析验证是十分必要的。
14.静态时序分析
此时电路每个单元位置,各项参数都已确定,再做静态时序分析是最准确的。
15.形式验证
流程走到这里,电路一般又发生了变化(比如DFT插入了扫描链),因此还需要再测一下电路功能是否与之前保持一致。
16.后仿真(时序仿真)
将SDF文件反标,此时仿真主要检查时序问题,因此又被叫做时序仿真。
17.ECO(Engineering Change Order)
临近流片,又发现电路问题,来不及改RTL,由工程师直接修改网表。
18.物理验证
LVS(Layout Vs Schematic)验证,就是版图与逻辑综合后的门级电路图的对比验证。
DRC(Design Rule Checking):设计规则检查,检查连线间距,连线宽度等是否满足工艺要求。
ERC(Electrical Rule Checking):电气规则检查,检查短路和开路等电气 规则违例。
19.流片(Tape out)
放假,团建,旅游
PS:
1.有些步骤一直在做,比如仿真等。有些步骤反复在做,比如STA,LEC等。有些步骤可能不需要做,比如ECO等。
2.DFT由专门的DFT工程师完成,有些认为属于前端,有些认为属于后端,有些认为属于中端,不用太纠结。
3.如果电路改了,时间充裕,相关的验证环节一般是需要重来一次,除非确定改动不会影响这个环节。