1、数字后端流程与工具数字后端流程与工具电子科技大学通信学院111教研室 版权所有Notesl本PPT内容是整个DDC项目组的集体学习研究成果l感谢已经毕业的曾经参与后端项目的师兄师姐,以及各位老师。l闻道有先后,术业有专攻l共同学习,共同进步l大家有问题请直接请教熟悉相应工具的同学。lTips:可以参考QUATURS II的design flow!Contents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3Q&A43教研室ASIC后端文件归档Contents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(
2、back-end)3Q&A43教研室ASIC后端文件归档基于standcell的ASIC设计流程数字前端设计。以生成可以布局布线的网表为终点。数字后端设计。以生成可以可以送交foundry进行流片的GDS2文件为终点。术语:tape-out提交最终GDS2文件做加工;Foundry芯片代工厂,如中芯国际。算法模型c/matlab codeRTL HDLvhdl/verilogNETLISTverilogStandcelllibrary综合工具根据基本单元库的功能-时序模型,将行为级代码翻译成具体的电路实现结构LAYOUTgds2基于standcell的ASIC设计流程布局布线工具根据基本单元库
3、的时序-几何模型,将电路单元布局布线成为实际电路版图对功能,时序,制造参数进行检查TAPE-OUTContents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3Q&A43教研室ASIC后端文件归档数字前端设计流程-1综合RTL file布局布线前静态时序分析形式验证NETLISTMeet requirements?YESNO整个ASIC设计流程都是一个迭代的流程,在任何一步不能满足要求,都需要重复之前步骤,甚至重新设计RTL代码。模拟电路设计的迭代次数甚至更多。数字前端设计流程-2怎样保证网表的正确性?l以往的方法是对网表文件做门级仿真。
4、此种方式的仿真时间较长,且覆盖率相对较低。l形式验证+静态时序分析。此种方法仿真时间短,覆盖率高,为业界普遍采用的方式。数字前端设计流程-3 使用DC综合lSYNOPSYS Design Compiler数字前端设计流程-4 使用DC综合步骤可以归纳为:1.指定综合使用的库2.根据符号库将行为级模型转换为逻辑网表(由逻辑单元GTECH构成)3.指定综合环境以及约束4.进行综合,根据约束将逻辑网标映射为实际网表(由标准单元构成)5.优化网表6.输出综合结果数字前端设计流程-5 使用DC综合ASIC的综合与FPGA的综合有什么不同?l原理是相同的!l关键在于综合目标不同。FPGA综合是将逻辑映射为
5、FPGA器件资源(如LUT,REG,MEM-BLOCK);ASIC综合是将逻辑映射为标准单元(如门电路,寄存器,RAM,ROM)。l标准单元库中对于某一种功能的门电路具有不同版本,分别对应不同驱动能力。数字前端设计流程-6 使用DC综合综合不仅仅要求功能,也要求时序!l综合具有一定条件,如工作频率、电路面积等。l门电路沟道宽度窄,自然面积小,但是驱动能力降低,电路工作速率降低。所以要对综合进行约束!l综合器中也有静态时序分析功能,用来计算当前综合结果的工作速率。l使用wire load model来估算延时。数字前端设计流程-7 使用DC综合l关于延时计算将在静态时序分析部分详细介绍。l可以参
6、考QUATURS II软件的ANALYSIS&SYNTHESIS工具学习DC。TIPS:数字前端设计流程-8 使用PT进行STAlSYNOPSYS Prime Timel只是一个时序分析工具,本身不对电路做任何修改。l在ASIC流程中对于电路进行任何修改过后都应该使用STA工具检查其时序,以保证电路时序满足要求。l仍然采用wire load model来估算电路时序。l可以参考QUATURS II的timequest timing analyzer学习。数字前端设计流程-9 延时计算l采用wire load model可以计算电路端到端路径延时。l端到端路径:l寄存器输出 寄存器输入l寄存器输
7、出 输出端口l输入端口 寄存器输出l延时采用标准单元库查表进行运算lInput:transition time,output net capacitancelOutput:input to output delay,transition timelNet capacitance 使用wire load model进行估算数字前端设计流程-10 延时计算数字前端设计流程-11 延时计算l布局布线前,由于无布线信息,所以连线延时只能够通过连接关系(与fanout相关)估计得到。l当特征尺寸降低时,此种估计方法越来越不准确,所以可以使用physical synthesis技术。l在布局布线后,布局布
8、线工具可以提取出实际布线后的线网负载电容,此时PT可以计算实际延时(back-annote)。l可以将延时信息写入SDF(synopsys delay file)文件用于后仿真。数字前端设计流程-12 PT使用流程l使用方法与DC类似l1.指定使用的库l2.读入网表文件l3.指定时序约束及工作环境l4.进行静态时序分析,给出报告l从一个synthesizable subcircuit 中,pt能捕获一个时序环境,并写成一系列的dc指令,在dc中用其为这个subcircuit定义时间约束和时序优化 值得关注l这两个都支持用SDC(synopsys design constraints)格式指定设
9、计规则,包括时间面积约束。数字前端设计流程-13 形式验证l静态时序分析检查了电路时序是否满足要求,而形式验证检查了电路功能的正确性。l形式验证工具本质是一个比较器!其功能就是比较两电路功能是否完全一致。l由于在综合过程中电路节点名称可能改变,因此可以使用形式验证工具找到RTL代码中节点在网表中的对应节点。数字前端设计流程-14 逻辑锥l原理 把设计划分成无数个逻辑锥(logic cone)的形式,以逻辑锥为基本单元进行验证.当所有的逻辑锥都功能相等,则验证 successful!l逻辑锥 锥顶作为比较点.它可以由原始输出,寄存器输入,黑盒输入充当 -formality自动划分数字前端设计流程
10、-15 形式验证lVerify RTL designs vs.RTL designs -the rtl revision is made frequentlylVerify RTL designs vs.Gate level netlists -verify synthesis results -verify manually coded netlists,such as Design Warel verify Gate level netlists vs.Gate level netlists -test insertion -layout optimization什么时候需要做形式验证?C
11、ontents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3Q&A43教研室ASIC后端文件归档数字后端设计流程-1 目前业界广泛使用的APR(Auto Place And Route)工具有:Synopsys公司的ASTROCadence公司的Encounter可以参考QUARTUS II的FITTER学习。数字后端设计流程-2 哪些工作要APR工具完成?l芯片布图(RAM,ROM等的摆放、芯片供电网络配置、I/O PAD摆放)l标准单元的布局l时钟树和复位树综合l布线lDRClLVSlDFM(Design For Manufactur
12、ing)数字后端设计流程-3 ASTRO布局布线流程数字后端设计流程-4 布图 布图步骤主要完成宏单元的放置,电源规划以及PAD的摆放,布图影响到整个设计的绕线难易以及时序收敛。电源环的宽度计算:maxI4pIWkn数字后端设计流程-4 布图 数字后端设计流程-5 布局lAstro是一个grid based软件,grid 分为 placement grid和routing grid.lPlacement grid就是所谓的unitTile,unitTile 为一个row的最小单位,standard cell 就是摆放在row上面,起摆放位置须对齐每个unitTile的边缘,因此每个standa
13、rdcell都必须是同一高度。数字后端设计流程-5 布局 数字后端设计流程-5 时钟树和复位树综合时钟树综合的目的:l低skewl低clock latencyl在DC综合时并不知道各个时序元件的布局信息,时钟线长度不确定。lDC综合时用到的线载模型并不准确。时钟树和复位树综合为什么要放在APR时再做呢?数字后端设计流程-6 时钟树和复位树综合数字后端设计流程-7 布线将分布在芯片核内的模块、标准单元和输入输出接口单元(I/O pad)按逻辑关系进行互连,其要求是百分之百地完成他们之间的所有逻辑信号的互连,并为满足各种约束条件进行优化。布线工具会自动进行布线拥塞消除、优化时序、减小耦合效应、消除
14、串扰、降低功耗、保证信号完整性等问题。数字后端设计流程-8 布线LayerMETAL1 pitch=0.41LayerMETAL2 pitch=0.46LayerMETAL3 pitch=0.41LayerMETAL4 pitch=0.46LayerMETAL5 pitch=0.41LayerMETAL5 pitch=0.46LayerMETAL7 pitch=0.41LayerMETAL8 pitch =0.96数字后端设计流程-8 布线数字后端设计流程-8 布线第一步 全局布线Global route 进行时,整个芯片会被切割成一块块的global routing cell(GRC),其目
15、的在于建立一个绕线的蓝图。对于每个GRC,Astro会去计算包含其中且可以使用的wire track,根据这些信息选择绕线要经过的GRC。如图所示,有一个以X为起点Y为终点的连接需要绕线,考虑到blockage和congestion的状况后,选择了变化4、9、14、19、24、23、22、21、16的GRC来绕线。数字后端设计流程-9 布线第二步 布线通道分配在global route 时已经将信号线分配到每个GRC,而track assignment的功能就是将这些信号线在分配到每个track上,决定每条线要走的路径。Track assignment是以整个芯片为处理单位来作规划,尽量绕出又
16、长又直且via数目最少的绕线。数字后端设计流程-10 布线第三步 详细布线Detail route的工作主要是将track assignment的DRC violation移除,一次是以一个switch box(SBOX)为单位来进行修复的。SBOX由GRC构成,且每个SBOX的边缘会重叠一个GRC的宽度。DFM包括:l天线效应(信号线太长造成)lMetal liftoff效应防止(由金属密度过大造成)lMetal over-etching效应防止(由金属密度过低造成)什么是DFM呢?数字后端设计流程-11 DFMlDFM:Design For Manufacturing lDFM步骤在整个布
17、局布线流程以后开始,主要目的是通过一些技术处理防止芯片在物理制造过程中出现问题,造成芯片不能工作。DFM的目的在于提高良率。数字后端设计流程-12 基于标准单元的APR布局布线与FPGA有什么区别?l基本原理是一样的lFPGA内部的逻辑单元以及走线资源都是固定的,布局布线工具只是完成如何使用这些资源以使得整个设计收敛。l而基于标准单元的APR时,标准单元位置以及走线资源都是可以根据需要调整的,因此灵活性更大,更容易使得整个设计收敛。数字后端设计流程-13 DRClDRC Design Rule Checkl何谓Design Rulel由于制造工艺与电路性能等原因,对版图设计有一定要求,比如说,
18、线宽不能低于最低线宽,N阱间应当具有一定间距,每一层金属应当具有一定密度等等等等。l天线规则:当版图中的金属线具有一定长度时,会造成天线效应。因此需要对自动APR工具的布线做检查。lDUMMY:由于制造工艺要求每一层金属必须具有一定密度,因此需要工具自动往空余部分填充冗余金属。数字后端设计流程-14 DRClDRC原理:基于计算机图形学!l版图中的不同结构可以表示为不同的层,如:lN阱lP阱l栅l各层金属线l版图中的每一个电路原件与连接线均由一系列具有一定大小,位于相应位置的矩形构成。l规则检查则建模为图形性质计算数字后端设计流程-14 DRC数字后端设计流程-15 LVSlLVS layou
19、t vs schematiclLVS是为了检查版图文件功能与原有电路设计功能的一致性。lLVS的原理:网表比对!l参考网表为APR工具时钟树、复位树综合后的网表。-HDL文件l比对网表为LVS工具从版图中提取电路元件以及连接关系以后得到的网表lLVS软件根据标准单元库设计者提供的cdl网表文件从版图中提取电路网表。数字后端设计流程-16 LVS什么时候需要做DRC/LVS?只要对版图信息做修改,就需要做DRC/LVS检查。数字后端设计流程-17 CALIBRElMENTOR GRAPHIC CALIBREl专业的DRC/LVS软件,可以单独使用,也可以嵌入virtuoso,astro中联合使用
20、。l使用foundry提供的DRC/LVS检查脚本,可以自动完成DRC/LVS工作,且给出错误报告。l检查出的错误需要在版图编辑工具中修改。lDRC/LVS工具还有DIVA,DRACURA等。数字后端设计流程-18 VIRTUOSOlCADENCE VIRTUOSOl专业版图编辑工具,结合CALIBRE可以对版图做在线检查修改。l使用方式与PROTEL类似。lVIRTUOSO生成最终流片版图数字后端设计流程-19 SIGN-OUTl当设计完成时,应当保证其时序,功能,工艺等指标完全达到要求,只要有任意一点不能达标,便需要重新对设计做修改!lFoundry为了规避责任,故要求设计者在提交版图时签
21、字画押,说明此版图已经经过检查,是没有错误的。l流片很贵,大家应慎之又慎。Contents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3Q&A43教研室ASIC后端文件归档教研室现有的ASIC工具软件lSYNOPSYSlDesign Compiler 2004,Design Compiler 2006lPrime Time 2004,Prime Time 2006lFormality 2004,Formality 2006lAstro 2004,Astro 2006lCADENCElVirtuoso ic5451lMENTOR GRAPHIClCalibre 2005以及相应破解和教程教研室现有的基本单元库lSMIC 0.13um元件库,IO PAD 库,包括l综合,STA所用的.lib行为模型文件l布局布线所用元件版图文件l技术库(.tf,virtuoso使用)l模型网表文件(.cdl)l相应说明pdflARTISAN RAM/ROM compilerQ&Al数字前端:钱宇平,郑昕,郑宇,杨一波l数字后端:赵文豪,潘经纬l还可以问:刘科,刘欣,王磊,陈星宇,詹璨铭。