数字版图流程与工具1讲义课件

上传人:沈*** 文档编号:241397679 上传时间:2024-06-23 格式:PPT 页数:61 大小:2.32MB
返回 下载 相关 举报
数字版图流程与工具1讲义课件_第1页
第1页 / 共61页
数字版图流程与工具1讲义课件_第2页
第2页 / 共61页
数字版图流程与工具1讲义课件_第3页
第3页 / 共61页
点击查看更多>>
资源描述
数字流程与工具数字流程与工具Contents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3基于standcell的ASIC设计流程数字前端设计。以生成可以布局布线的网表为终点。数字后端设计。以生成可以可以送交foundry进行流片的GDS2文件为终点。术语:tape-out提交最终GDS2文件做加工;Foundry芯片代工厂,如中芯国际。算法模型c/matlab codeRTL HDLvhdl/verilogNETLISTverilogStandcelllibrary综合工具根据基本单元库的功能-时序模型,将行为级代码翻译成具体的电路实现结构LAYOUTgds2基于standcell的ASIC设计流程布局布线工具根据基本单元库的时序-几何模型,将电路单元布局布线成为实际电路版图对功能,时序,制造参数进行检查TAPE-OUTContents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3数字前端设计流程-1综合RTL file布局布线前静态时序分析形式验证NETLISTMeet requirements?YESNO整个ASIC设计流程都是一个迭代的流程,在任何一步不能满足要求,都需要重复之前步骤,甚至重新设计RTL代码。模拟电路设计的迭代次数甚至更多。Synopsys综合工具及相关工具综合工具及相关工具设计编译器(Design Compiler)和设计分析器(Design Analyzer)Design Compiler(DC)是Synopsys逻辑综合工具的命令行接口,在Unix环境下输入dc_shell启动。Design Analyzer(DA)是DC 的图形前端版本,通过输入design_analyer&启动。综合的定义综合的定义逻辑综合:决定设计电路逻辑门的相互连接。逻辑综合的目的:决定电路门级结构、寻求时序和与面积的平衡、寻求功耗与时序的平衡、增强电路的测试性。逻辑综合的过程:首先,综合工具分析HDL代码,用一种模型(GTECH),对HDL进行映射,这个模型是与技术库无关的;然后,在设计者的控制下,对这个模型进行逻辑优化;最后一步,进行逻辑映射和门级优化,将逻辑根据约束,映射为专门的技术目标单元库(target cell library)中的cell,形成了综合后的网表。数字前端设计流程-3 使用DC综合lSYNOPSYS Design Compiler数字前端设计流程-4 使用DC综合步骤可以归纳为:1.指定综合使用的库2.根据符号库将行为级模型转换为逻辑网表(由逻辑单元GTECH构成)3.指定综合环境以及约束4.进行综合,根据约束将逻辑网标映射为实际网表(由标准单元构成)5.优化网表6.输出综合结果设计举例,IIC控制器,已完成代码编写及功能仿真:Tap_controller.vTap_bypass.vTap_instruction.vTap_state.v完成全部设计还需经过如下几个步骤:Pre_layoutSynthesisSTA using PrimeTimeSDF generationVerificationFloorolanning and RoutingPost_layout反标来自layout tool的信息,STA using PrimeTimePost-layout OptimizationFix Hold-Time ViolationASIC design flow.synopsys_dc.setup启动文件启动文件company=“”;designer=“Your name”;technology=“0.6 micro csmc”;search_path=search_path+“.”/csmc06/lib”;target_library=csmc06core.db;link_library=*,csmc06core.db,csmc06pad.db;symbol_library=csmc06core.sdb,csmc06pad.sdb;ASIC design flow Initial Setup:建立设计环境,技术库文件及其它设计环境设置。DC.synopsys_dc.setup 文件 company =“zte corporation”;designer =“name”;technology=“0.25 micron”search_path=search_path+“.”“/usr/golden/library/std_cells”“/usr/golden/library/pads”target_library=std_cells_lib.db link_library =“*”,std_cells_lib.db,pad_lib.db symbol_library=std_cells.sdb,pad_lib.sdbSynthesis:利用约束完成设计的门及实现及扫描插入Constrain scripts /*Create real clock if clock port is found*/if(find(port,clk)=clk)clk_name=clk create_clock-period clk_period clk /*Create virtual clock if clock port is not found*/if(find(port,clk)=)clk_name=vclk create_clock-period clk_period-name vclkConstrain scripts(续)/*Apply default drive strengths and typical loads for I/O ports*/set_load 1.5 all_outputs()set_driving_cell-cell IV all_inputs()/*If real clock,set infinite drive strength*/if(find(port,clk)=clk)set_drive 0 clk /*Apply default timing constraints for modules*/set_input_delay 1.2 all_inputs()-clock clk_name set_output_delay 1.5 all_outputs()-clock clk_name set_clock_skew-minus_uncertainty 0.45 clk_name /*Set operating conditions*/set_operating_conditions WCCOM /*Turn on Auto Wireload selection Library must support this feature*/auto_wire_load_selection=trueASIC design flowCompile and scan insert的scripts,采用bottom_up的编译方法 set_fix_multiple_port_net buffer_constants all compile scan check_test create_test_pattern sample 10 preview_scan insert_scan check_test 如果模块内的子模块具有dont_touch 属性需添加如下命令,因要插入扫描 remove_attribute find(-hierarchy design,”*”)dont_touchWrite netlist remove_unconnected_ports find(-hierarchy cell,”*”)change_names hierarchy rules BORG set_dont_touch current_design write herarchy output active_design+”.db”write format verilog hierarchy output active_design+”.sv”ASIC design flowPre_layout 的 STA:用DC的静态时序分析引擎做block的STA,用PrimeTime做full_chip的STA。Setup_time分析Hold_time分析 其时序约束和提供给DC做逻辑综合的约束相同。静态时序分析同综合一样,是一个迭代的过程,和cell的位置及布线关系密切,通常都执行多次,直到满足需要。SDF generation,pre_layoutSDF generation,pre_layout的的SDFSDF文件,用于文件,用于pre_layoutpre_layout timingtiming仿真仿真,同时还需提供时序约束同时还需提供时序约束文件(文件(SDFSDF格式)给格式)给layout toollayout tool做布局布线。做布局布线。scriptscript文件如下:文件如下:active_design=tap_controller read active_design current_design active_design link Create_clock period 33 waveform 0 16.5 tck Set_dont_touch_network tck trst set_clock_skew delay 2.0 minus_uncertainty 3.0 tck set_driving_cell cell BUFF1X pin Z all_inputs()set_drive 0 tck trst set_input_delay 20.0 clock tck max all_inputs()set_output_delay 10.0 clock tck max all_outputs()write_timing format sdf-v2.1 -output active_design+”.sdf”write_constraints format sdf cover_design -output constraints.sdfASIC design flowASIC design flowVerification利用SDF文件进行动态时序仿真:利用功能仿真时。用verilog 编写的test_bench 文件形式验证:利用数学算法检查设计的逻辑的等效性,静态验证,需要的时间比动态仿真少,验证全面。在这里验证RTL描述与gate_level网表的逻辑等效性。Floorolanning and global Routing;Estimated 寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,若时序不满足要求,生成custom wire_load 做incremental synthesis即post_layout的优化,采用reoptimize_design in_place命令,其script文件需反标抽取的参数到设计;Detail routing;real寄生电容和RC delay的抽取;利用抽取的参数静态时序分析,修正hold_time如需要做post_layout的优化;生成post_layout的SDF文件,做gate_level仿真验证;search_path 定义库文件所在的搜索路径定义库文件所在的搜索路径 目标库(目标库(targe_library):是DC在mapping时将设计映射到特定工艺所使用的库,就是使用目标库中的元件综合成设计的门级网表 连接库(连接库(link_library):是提供门级网表实例化的基本单元,也就是门级网表实例化的:是提供门级网表实例化的基本单元,也就是门级网表实例化的元件或单元都来自该库。连接库定义为标准单元的元件或单元都来自该库。连接库定义为标准单元的db格式的库文件加上格式的库文件加上pad db格式的库格式的库文件,加上文件,加上ROM,RAM等宏单元库文件等宏单元库文件 符号库(symbol_library):是工艺库元件的图形符号表示,用来图形化显示生成的门:是工艺库元件的图形符号表示,用来图形化显示生成的门级网表。级网表。对象,DC将设计对象分为8类,分别如下:Design:Design:具有某种或多种逻辑功能的电路描述;具有某种或多种逻辑功能的电路描述;CellCell:设计的设计的instanceinstance;Reference:cellReference:cell或或instanceinstance在库中定义的名字;在库中定义的名字;Port:designPort:design的输入、输出;的输入、输出;Pin:designPin:design中中cellcell的输入、输出;的输入、输出;Net:portsNet:ports和和pinspins之间或之间或pinspins之间的信号名;之间的信号名;Clock:Clock:被定义为时钟源的被定义为时钟源的pinpin或或portport;Library:cellLibrary:cell的集合,如:的集合,如:target_library,link_librarytarget_library,link_library;数字前端设计流程-5 使用DC综合ASIC的综合与FPGA的综合有什么不同?l原理是相同的!l关键在于综合目标不同。FPGA综合是将逻辑映射为FPGA器件资源(如LUT,REG,MEM-BLOCK);ASIC综合是将逻辑映射为标准单元(如门电路,寄存器,RAM,ROM)。l标准单元库中对于某一种功能的门电路具有不同版本,分别对应不同驱动能力。数字前端设计流程-6 使用DC综合综合不仅仅要求功能,也要求时序!l综合具有一定条件,如工作频率、电路面积等。l门电路沟道宽度窄,自然面积小,但是驱动能力降低,电路工作速率降低。所以要对综合进行约束!l综合器中也有静态时序分析功能,用来计算当前综合结果的工作速率。l使用wire load model来估算延时。数字前端设计流程-8 使用PT进行STAlSYNOPSYS Prime Timel只是一个时序分析工具,本身不对电路做任何修改。l在ASIC流程中对于电路进行任何修改过后都应该使用STA工具检查其时序,以保证电路时序满足要求。l仍然采用wireloadmodel来估算电路时序。l可以参考QUATURSII的timequesttiminganalyzer学习。数字前端设计流程-9 延时计算l采用wire load model可以计算电路端到端路径延时。l端到端路径:l寄存器输出 寄存器输入l寄存器输出 输出端口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在布局布线后,布局布线工具可以提取出实际布线后的线网负载电容,此时PT可以计算实际延时(back-annote)。l可以将延时信息写入SDF(synopsys delay file)文件用于后仿真。数字前端设计流程-12 PT使用流程l使用方法与DC类似l1.指定使用的库l2.读入网表文件l3.指定时序约束及工作环境l4.进行静态时序分析,给出报告l从一个synthesizablesubcircuit中,pt能捕获一个时序环境,并写成一系列的dc指令,在dc中用其为这个subcircuit定义时间约束和时序优化值得关注l这两个都支持用SDC(synopsysdesignconstraints)格式指定设计规则,包括时间面积约束。数字前端设计流程-13 形式验证l静态时序分析检查了电路时序是否满足要求,而形式验证检查了电路功能的正确性。l形式验证工具本质是一个比较器!其功能就是比较两电路功能是否完全一致。l由于在综合过程中电路节点名称可能改变,因此可以使用形式验证工具找到RTL代码中节点在网表中的对应节点。数字前端设计流程-14 逻辑锥l原理把设计划分成无数个逻辑锥(logiccone)的形式,以逻辑锥为基本单元进行验证.当所有的逻辑锥都功能相等,则验证successful!l逻辑锥锥顶作为比较点.它可以由原始输出,寄存器输入,黑盒输入充当-formality自动划分数字前端设计流程-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什么时候需要做形式验证?Contents基于标准单元的ASIC设计流程1数字前端设计(front-end)2数字后端设计(back-end)3数字后端设计流程-1 目前业界广泛使用的APR(Auto Place And Route)工具有:Synopsys公司的ASTRO,IC CompilerCadence公司的IC Encounter数字后端设计流程-2 哪些工作要APR工具完成?l芯片布图(RAM,ROM等的摆放、芯片供电网络配置、I/O PAD摆放)l标准单元的布局l时钟树和复位树综合l布线lDRClLVSlDFM(Design For Manufacturing)数字后端设计流程-3 ASTRO布局布线流程数字后端设计流程-4 布图 布图步骤主要完成宏单元的放置,电源规划以及PAD的摆放,布图影响到整个设计的绕线难易以及时序收敛。电源环的宽度计算:数字后端设计流程-4 布图 数字后端设计流程-5 布局lAstro是一个grid based软件,grid 分为 placement grid和routing grid.lPlacement grid就是所谓的unitTile,unitTile 为一个row的最小单位,standard cell 就是摆放在row上面,起摆放位置须对齐每个unitTile的边缘,因此每个standardcell都必须是同一高度。数字后端设计流程-5 布局 数字后端设计流程-5 时钟树和复位树综合时钟树综合的目的:l低skewl低clock latencyl在DC综合时并不知道各个时序元件的布局信息,时钟线长度不确定。lDC综合时用到的线载模型并不准确。时钟树和复位树综合为什么要放在APR时再做呢?数字后端设计流程-6 时钟树和复位树综合数字后端设计流程-7 布线将分布在芯片核内的模块、标准单元和输入输出接口单元(I/O pad)按逻辑关系进行互连,其要求是百分之百地完成他们之间的所有逻辑信号的互连,并为满足各种约束条件进行优化。布线工具会自动进行布线拥塞消除、优化时序、减小耦合效应、消除串扰、降低功耗、保证信号完整性等问题。数字后端设计流程-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),其目的在于建立一个绕线的蓝图。对于每个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是以整个芯片为处理单位来作规划,尽量绕出又长又直且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步骤在整个布局布线流程以后开始,主要目的是通过一些技术处理防止芯片在物理制造过程中出现问题,造成芯片不能工作。DFM的目的在于提高良率。数字后端设计流程-12 基于标准单元的APR布局布线与FPGA有什么区别?l基本原理是一样的lFPGA内部的逻辑单元以及走线资源都是固定的,布局布线工具只是完成如何使用这些资源以使得整个设计收敛。l而基于标准单元的APR时,标准单元位置以及走线资源都是可以根据需要调整的,因此灵活性更大,更容易使得整个设计收敛。数字后端设计流程-13 DRClDRC Design Rule Checkl何谓Design Rulel由于制造工艺与电路性能等原因,对版图设计有一定要求,比如说,线宽不能低于最低线宽,N阱间应当具有一定间距,每一层金属应当具有一定密度等等等等。l天线规则:当版图中的金属线具有一定长度时,会造成天线效应。因此需要对自动APR工具的布线做检查。lDUMMY:由于制造工艺要求每一层金属必须具有一定密度,因此需要工具自动往空余部分填充冗余金属。数字后端设计流程-14 DRClDRC原理:基于计算机图形学!l版图中的不同结构可以表示为不同的层,如:lN阱lP阱l栅l各层金属线l版图中的每一个电路原件与连接线均由一系列具有一定大小,位于相应位置的矩形构成。l规则检查则建模为图形性质计算数字后端设计流程-14 DRC数字后端设计流程-15 LVSlLVS layout vs schematiclLVS是为了检查版图文件功能与原有电路设计功能的一致性。lLVS的原理:网表比对!l参考网表为APR工具时钟树、复位树综合后的网表。-HDL文件l比对网表为LVS工具从版图中提取电路元件以及连接关系以后得到的网表lLVS软件根据标准单元库设计者提供的cdl网表文件从版图中提取电路网表。数字后端设计流程-16 LVS什么时候需要做DRC/LVS?只要对版图信息做修改,就需要做DRC/LVS检查。数字后端设计流程-17 CALIBRElMENTOR GRAPHIC CALIBREl专业的DRC/LVS软件,可以单独使用,也可以嵌入virtuoso,astro中联合使用。l使用foundry提供的DRC/LVS检查脚本,可以自动完成DRC/LVS工作,且给出错误报告。l检查出的错误需要在版图编辑工具中修改。lDRC/LVS工具还有DIVA,DRACURA等。数字后端设计流程-18 VIRTUOSOlCADENCE VIRTUOSOl专业版图编辑工具,结合CALIBRE可以对版图做在线检查修改。l使用方式与PROTEL类似。lVIRTUOSO生成最终流片版图数字后端设计流程-19 SIGN-OUTl当设计完成时,应当保证其时序,功能,工艺等指标完全达到要求,只要有任意一点不能达标,便需要重新对设计做修改!lFoundry为了规避责任,故要求设计者在提交版图时签字画押,说明此版图已经经过检查,是没有错误的。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以及相应破解和教程
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!