《数字ic设计流程与工具讲义.ppt》由会员分享,可在线阅读,更多相关《数字ic设计流程与工具讲义.ppt(52页珍藏版)》请在金锄头文库上搜索。
1、数字IC设计流程与工具,电子科技大学通信学院111教研室 版权所有,Notes,本PPT内容是整个DDC项目组的集体学习研究成果 感谢已经毕业的曾经参与后端项目的师兄师姐,以及各位老师。 闻道有先后,术业有专攻 共同学习,共同进步 大家有问题请直接请教熟悉相应工具的同学。 Tips:可以参考QUATURS II的design flow!,Contents,基于标准单元的ASIC设计流程,1,数字前端设计(front-end),2,数字后端设计(back-end),3,Q & A,4,3,教研室ASIC后端文件归档,Contents,基于标准单元的ASIC设计流程,1,数字前端设计(front-
2、end),2,数字后端设计(back-end),3,Q & A,4,3,教研室ASIC后端文件归档,基于standcell的ASIC设计流程,数字前端设计。以生成可以布局布线的网表为终点。,数字后端设计。以生成可以可以送交foundry进行流片的GDS2文件为终点。 术语: tape-out提交最终GDS2文件做加工; Foundry芯片代工厂,如中芯国际。,算法模型 c/matlab code,RTL HDL vhdl/verilog,NETLIST verilog,Standcell library,综合工具根据基本单元库的功能-时序模型,将行为级代码翻译成具体的电路实现结构,LAYOUT
3、 gds2,基于standcell的ASIC设计流程,布局布线工具根据基本单元库的时序-几何模型,将电路单元布局布线成为实际电路版图,对功能,时序,制造参数进行检查,TAPE-OUT,Contents,基于标准单元的ASIC设计流程,1,数字前端设计(front-end),2,数字后端设计(back-end),3,Q & A,4,3,教研室ASIC后端文件归档,数字前端设计流程-1,综合,RTL file,布局布线前静态时序分析,形式验证,NETLIST,Meet requirements?,YES,NO,整个ASIC设计流程都是一个迭代的流程,在任何一步不能满足要求,都需要重复之前步骤,甚至
4、重新设计RTL代码。 模拟电路设计的迭代次数甚至更多。,数字前端设计流程-2,怎样保证网表的正确性?,!,以往的方法是对网表文件做门级仿真。此种方式的仿真时间较长,且覆盖率相对较低。 形式验证+静态时序分析。此种方法仿真时间短,覆盖率高,为业界普遍采用的方式。,数字前端设计流程-3 使用DC综合,SYNOPSYS Design Compiler,数字前端设计流程-4 使用DC综合,步骤可以归纳为: 1.指定综合使用的库 2.根据符号库将行为级模型转换为逻辑网表(由逻辑单元GTECH构成) 3.指定综合环境以及约束 4.进行综合,根据约束将逻辑网标映射为实际网表(由标准单元构成) 5.优化网表
5、6.输出综合结果,数字前端设计流程-5 使用DC综合,ASIC的综合与FPGA的综合有什么不同?,!,原理是相同的! 关键在于综合目标不同。FPGA综合是将逻辑映射为FPGA器件资源(如LUT,REG,MEM-BLOCK);ASIC综合是将逻辑映射为标准单元(如门电路,寄存器,RAM,ROM)。 标准单元库中对于某一种功能的门电路具有不同版本,分别对应不同驱动能力。,数字前端设计流程-6 使用DC综合,综合不仅仅要求功能,也要求时序!,!,综合具有一定条件,如工作频率、电路面积等。 门电路沟道宽度窄,自然面积小,但是驱动能力降低,电路工作速率降低。所以要对综合进行约束! 综合器中也有静态时序分
6、析功能,用来计算当前综合结果的工作速率。 使用wire load model来估算延时。,数字前端设计流程-7 使用DC综合,关于延时计算将在静态时序分析部分详细介绍。 可以参考QUATURS II软件的ANALYSIS & SYNTHESIS工具学习DC。,TIPS:,!,数字前端设计流程-8 使用PT进行STA,SYNOPSYS Prime Time 只是一个时序分析工具,本身不对电路做任何修改。 在ASIC流程中对于电路进行任何修改过后都应该使用STA工具检查其时序,以保证电路时序满足要求。 仍然采用wire load model来估算电路时序。 可以参考QUATURS II的timeq
7、uest timing analyzer学习。,数字前端设计流程-9 延时计算,采用wire load model可以计算电路端到端路径延时。 端到端路径: 寄存器输出 寄存器输入 寄存器输出 输出端口 输入端口 寄存器输出 延时采用标准单元库查表进行运算 Input:transition time, output net capacitance Output:input to output delay,transition time Net capacitance 使用wire load model进行估算,数字前端设计流程-10 延时计算,数字前端设计流程-11 延时计算,布局布线前, 由
8、于无布线信息,所以连线延时只能够通过连接关系(与fanout相关)估计得到。 当特征尺寸降低时,此种估计方法越来越不准确,所以可以使用physical synthesis技术。 在布局布线后,布局布线工具可以提取出实际布线后的线网负载电容,此时PT可以计算实际延时(back-annote)。 可以将延时信息写入SDF(synopsys delay file)文件用于后仿真。,数字前端设计流程-12 PT使用流程,使用方法与DC类似 1.指定使用的库 2.读入网表文件 3.指定时序约束及工作环境 4.进行静态时序分析,给出报告 从一个synthesizable subcircuit 中,pt能捕
9、获一个时序环境,并写成一系列的dc指令,在dc中用其为这个subcircuit定义时间约束和时序优化 值得关注 这两个都支持用SDC(synopsys design constraints)格式指定设计规则,包括时间面积约束。,数字前端设计流程-13 形式验证,静态时序分析检查了电路时序是否满足要求,而形式验证检查了电路功能的正确性。 形式验证工具本质是一个比较器!其功能就是比较两电路功能是否完全一致。 由于在综合过程中电路节点名称可能改变,因此可以使用形式验证工具找到RTL代码中节点在网表中的对应节点。,数字前端设计流程-14 逻辑锥,原理 把设计划分成无数个逻辑锥(logic cone)的
10、形式,以逻辑锥为基本单元进行验证.当所有的逻辑锥都功能相等,则验证 successful ! 逻辑锥 锥顶作为比较点.它可以由原始输出,寄存器输入,黑盒输入充当 - formality自动划分,数字前端设计流程-15 形式验证,Verify RTL designs vs. RTL designs - the rtl revision is made frequently Verify RTL designs vs. Gate level netlists - verify synthesis results - verify manually coded netlists,such as De
11、sign Ware verify Gate level netlists vs. Gate level netlists - test insertion - layout optimization,什么时候需要做形式验证?,!,Contents,基于标准单元的ASIC设计流程,1,数字前端设计(front-end),2,数字后端设计(back-end),3,Q & A,4,3,教研室ASIC后端文件归档,数字后端设计流程-1,目前业界广泛使用的APR(Auto Place And Route)工具有: Synopsys公司的ASTRO Cadence公司的Encounter 可以参考QUAR
12、TUS II的FITTER学习。,数字后端设计流程-2,哪些工作要APR工具完成?,!,芯片布图(RAM,ROM等的摆放、芯片供电网络配置、I/O PAD摆放) 标准单元的布局 时钟树和复位树综合 布线 DRC LVS DFM(Design For Manufacturing),数字后端设计流程-3,ASTRO布局布线流程,数字后端设计流程-4 布图,布图步骤主要完成宏单元的放置,电源规划以及PAD的摆放,布图影响到整个设计的绕线难易以及时序收敛。,电源环的宽度计算:,数字后端设计流程-4 布图,数字后端设计流程-5 布局,Astro是一个grid based软件,grid 分为 placem
13、ent grid和routing grid. Placement grid就是所谓的unitTile, unitTile 为一个row的最小单位,standard cell 就是摆放在row上面,起摆放位置须对齐每个unitTile的边缘,因此每个standardcell都必须是同一高度。,数字后端设计流程-5 布局,数字后端设计流程-5 时钟树和复位树综合,时钟树综合的目的: 低skew 低clock latency,在DC综合时并不知道各个时序元件的布局信息,时钟线长度不确定。 DC综合时用到的线载模型并不准确。,时钟树和复位树综合为什么要放在APR时再做呢?,!,数字后端设计流程-6 时
14、钟树和复位树综合,数字后端设计流程-7 布线,将分布在芯片核内的模块、标准单元和输入输出接口单元(I/O pad)按逻辑关系进行互连,其要求是百分之百地完成他们之间的所有逻辑信号的互连,并为满足各种约束条件进行优化。 布线工具会自动进行布线拥塞消除、优化时序、减小耦合效应、消除串扰、降低功耗、保证信号完整性等问题。,数字后端设计流程-8 布线,Layer “METAL1“ pitch = 0.41 Layer “METAL2“ pitch = 0.46 Layer “METAL3“ pitch = 0.41 Layer “METAL4“ pitch = 0.46 Layer “METAL5“
15、pitch = 0.41 Layer “METAL5“ pitch = 0.46 Layer “METAL7“ pitch = 0.41 Layer “METAL8“ pitch = 0.96,数字后端设计流程-8 布线,数字后端设计流程-8 布线,第一步 全局布线,Global route 进行时,整个芯片会被切割成一块块的global routing cell (GRC),其目的在于建立一个绕线的蓝图。对于每个GRC,Astro会去计算包含其中且可以使用的wire track,根据这些信息选择绕线要经过的GRC。如图所示,有一个以X为起点Y为终点的连接需要绕线,考虑到blockage和co
16、ngestion的状况后,选择了变化4、9、14、19、24、23、22、21、16的GRC来绕线。,数字后端设计流程-9 布线,第二步 布线通道分配,在global route 时已经将信号线分配到每个GRC,而track assignment的功能就是将这些信号线在分配到每个track上,决定每条线要走的路径。Track assignment是以整个芯片为处理单位来作规划,尽量绕出又长又直且via数目最少的绕线。,数字后端设计流程-10 布线,第三步 详细布线,Detail route的工作主要是将track assignment的DRC violation移除,一次是以一个switch box (SBOX)为单位来进行修复的。SBOX由GRC构成,且每个SBOX的边缘会重叠一个GRC的宽度。,DFM包括: 天线效应(信号线太长造成) Metal liftoff效应防止(由金属密度过大造成) Metal