
《自动布局布线》PPT课件.ppt
83页自动布局布线自动布局布线刘晓鹏刘晓鹏2011年年4月月9/5/20241典型流程典型流程系统功能 不满足系统规划满足 功能 不正确系统结构不合理 时序 不满足动态仿真正确 功能正确9/5/20242典型流程典型流程功 能 要 求系统建模(Matlab等)电路仿真手工设计版图后仿真满足满足不满足不满足行为设计(Verilog/VHDL)行为仿真时序仿真版图自动布局、布线流片、封装、测试不满足满足满足不满足不满足 后仿真综合、优化网表满足流片、封装、测试功能要求系统建模MatlabModelsim,Questasim,Muxplus IIDesign CompilerAstro,Encounter数字数字VLSI 流程流程MatlabSpectreVirtuoso,lakerCalibre模拟模拟IC 流程流程9/5/20243主要内容主要内容n自动布局布线基本概念自动布局布线基本概念n自动布局布线工具介绍自动布局布线工具介绍nAstro布局布线流程布局布线流程9/5/20244assign mux_out=!mux_control&mux_in1 |mux_control&mux_in2|mux_in1&mux_in2;//assign mux_out=mux_control ?mux_in1:mux_in2;翻译翻译映射映射9/5/20245setup/holdn建立(建立(setup)时间是指触发器的时钟信号上)时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
升沿到来以前,数据稳定不变的时间n保持(保持(hold)时间是指触发器的时钟信号上升)时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间沿到来以后,数据稳定不变的时间n裕度(裕度(slack):是时序要求与实际时序之间):是时序要求与实际时序之间的差值,反映了时序是否满足要求裕度为正,的差值,反映了时序是否满足要求裕度为正,满足要求;反之不满足满足要求;反之不满足 裕度=要求的时间裕度=要求的时间-实际的时间实际的时间dataclk9/5/20246自动布局布线基本概念自动布局布线基本概念n版图,版图,GDS,,GDS II ((Graphic Data System)),用来控制集成电路光掩膜绘制用来控制集成电路光掩膜绘制 n自动布局自动布局+自动布线自动布线=画完版图画完版图9/5/20247网表文件网表文件nFAHDLX U1_5 ( .A(A[5]), .B(B[5]), .CI(carry_5_), .CO(carry_6_), .S(SUM[5]) ); n FAHDLX U1_4 ( .A(A[4]), .B(B[4]), .CI(carry_4_), .CO(carry_5_), .S(SUM[4]) ); nFAHDLX U1_3 ( .A(A[3]), .B(B[3]), .CI(carry_3_), .CO(carry_4_), .S(SUM[3]) ); nAND2HDLX U1 ( .A(A[0]), .B(B[0]), .Z(carry_1_) ); XOR2HDLX U2 ( .A(B[0]), .B(A[0]), .Z(SUM[0]) );9/5/202489/5/20249自动布局布线工具自动布局布线工具—Astro介绍介绍Astro是是Synopsys公司开发的一种基于标准单公司开发的一种基于标准单元的版图自动生成工具,通过调用标准单元库中元的版图自动生成工具,通过调用标准单元库中的门单元进行自动布局布线完成版图设计,其前的门单元进行自动布局布线完成版图设计,其前身是身是Avanti公司(公司(2002年被年被Synopsys公司收购)公司收购)的的Apollo。
2007年以后软件叫年以后软件叫ICC 9/5/202410 Astro特点特点nAstro能够使设计得到更快收敛能够使设计得到更快收敛nAstro强调设计过程中的超深亚微米效应,在整个设强调设计过程中的超深亚微米效应,在整个设计过程中考虑了所有的物理效应计过程中考虑了所有的物理效应n具有很好的时钟树综合机制,能够提高时钟频率,完具有很好的时钟树综合机制,能够提高时钟频率,完成高性能电路的设计成高性能电路的设计n通过布局控制和早期对时序和拥塞的预估,可以提高通过布局控制和早期对时序和拥塞的预估,可以提高产品率n能够通过遵循最新、最先进的制造工艺规则来提高设能够通过遵循最新、最先进的制造工艺规则来提高设计的可靠性能自动处理天线效应修复、孔优化、金计的可靠性能自动处理天线效应修复、孔优化、金属填充物添加、宽铝开槽等属填充物添加、宽铝开槽等n高性能的算法及分布式的布线能力大大缩短了设计周高性能的算法及分布式的布线能力大大缩短了设计周期9/5/202411自动布局布线流程自动布局布线流程参考库参考库时序约束文件时序约束文件IO管脚排列文件管脚排列文件工艺文件工艺文件门级网表门级网表数据输入数据输入布局规划布局规划布局布局时钟综合时钟综合布线布线静态时序分析,后仿真静态时序分析,后仿真DRC、、LVS流片流片9/5/202412数据输入数据输入n工艺库文件工艺库文件--是是Foundry或或IP提供商提供的各提供商提供的各种库(标准单元库、种库(标准单元库、IO库、库、SRAM库和库和IP库)库)和工艺文件和工艺文件 。
网站下载网站下载n设计文件设计文件—网表文件(网表文件(DC综合得到)和时序综合得到)和时序约束文件约束文件(SDC格式,格式,DC综合得到综合得到)n管脚排列文件(管脚排列文件(TDF格式)格式)--手动编写手动编写9/5/202413IO管脚排列文件管脚排列文件 n定义芯片的定义芯片的IO管脚顺序之外,还要插入一些特管脚顺序之外,还要插入一些特殊的殊的IO单元,如各种类型的电源单元,如各种类型的电源IO、地、地IO和和Corner IO9/5/202414n//插入给插入给Core供电的电源供电的电源IO((PVDD1W)和地)和地IO((PVSS1W))ninsertPad "VDD" "PVDD1W" "VDD" "VDD"ninsertPad "VSS" "PVSS1W" "VSS" "VSS"n//插入给插入给IO供电的电源供电的电源IO((PVDD2W)和地)和地IO((PVSS2W))ndbCreateCellInst (geGetEditCell) "" "PVDD2W" "VDD33" "0" "No" '(0 0) "design_in"ndbCreateCellInst (geGetEditCell) "" "PVSS2W" "VSS33" "0" "No" '(0 0) "design_in"n//插入插入Corner ndbCreateCellInst (geGetEditCell) "" "PCORNERW" "CORNER1" "0" "No" '(0 0) "design_in"n//卸载原来的卸载原来的IO顺序定义顺序定义ntdfPurgePadConstrn//定义四个定义四个Corner IO的位置的位置npad "CORNER1" "Bottom"n//定义芯片下面一排定义芯片下面一排IO管脚位置顺序,从左到右依次定义管脚位置顺序,从左到右依次定义npad "PLBI18N_HostAddr7" "bottom" 1n.........n//定义芯片右面一排定义芯片右面一排IO管脚顺序,从下到上依次定义管脚顺序,从下到上依次定义npad "PLBI16N_TestMode0" "right" 1n……..9/5/202415工具启动工具启动nsource /opt/demo/nastro_shell &9/5/202416工具界面工具界面命令输入9/5/202417创建设计库创建设计库 9/5/202418ncmCreateLibnsetFormField "Create Library" "Library Name" "设计库名设计库名"nsetFormField "Create Library" "Technology File Name" "工艺文件名称工艺文件名称"nsetFormField "Create Library" "Set Case Sensitive" "1"nformOK "Create Library"创建设计库创建设计库 9/5/202419设计文件导入设计文件导入9/5/202420设计文件导入设计文件导入nauVerilogToCellnsetFormField "Verilog To Cell" "Library Name" "设计库名设计库名"nsetFormField "Verilog To Cell" "Verilog File Name" "Verilog网表文件名网表文件名"nsetFormField "Verilog To Cell" "Output Cell Name" "输出的设计单元名输出的设计单元名"nsetFormField "Verilog To Cell" "Top Module Name" "Verilog网表文件中网表文件中最顶层的模块名最顶层的模块名"nformButton "Verilog To Cell" "refLibOptions"nsetFormField "Verilog To Cell" "Reference Library" "参考库参考库1"nformButton "Verilog To Cell" "add"nsetFormField "Verilog To Cell" "Reference Library" "参考库参考库2"nformButton "Verilog To Cell" "add"nsubFormHide "Verilog To Cell" 2nformButton "Verilog To Cell" "globalNetOptions"nsetFormField "Verilog To Cell" "Net Name" "VDD"nsetFormField "Verilog To Cell" "Port Pattern" "VDD"nformButton "Verilog To Cell" "apply"nsetFormField "Verilog To Cell" "Net Name" "VSS"nsetFormField "Verilog To Cell" "Port Pattern" "VSS"nformButton "Verilog To Cell" "apply"nsubFormHide "Verilog To Cell" 1nformOK "Verilog To Cell“9/5/202421打开设计单元(打开设计单元(Cell))ngeOpenCell //打开设计单元打开设计单元nsetFormField "Open Cell" "Cell Na me" "design_in "nformOK "Open Cell"9/5/202422布局规划布局规划 布局规划主要是确定芯片的尺寸、模块的位置、布局规划主要是确定芯片的尺寸、模块的位置、标准单元的排列形式、标准单元的排列形式、IO单元及宏单元的位置单元及宏单元的位置放置、电源和地线的分布等。
放置、电源和地线的分布等 9/5/202423布局规划布局规划—流程流程 整体规划整体规划电源电源/底线底线规划规划加加Pad Filler 1.装载装载IO管脚排列文件管脚排列文件 2.芯片面积、标准单元布局方式的选择芯片面积、标准单元布局方式的选择 3.宏单元放置宏单元放置 1.将标准单元、将标准单元、IO单元和宏单元的电源、单元和宏单元的电源、地端口与电源线、地线相连地端口与电源线、地线相连 2.在核在核(Core)和和IO单元之间加入电源单元之间加入电源/地地环环(ring)加布局障碍加布局障碍 3.加加Strap 4.将芯片的将芯片的Ring连接到电源连接到电源/地地IO的电的电源、地端口源、地端口 9/5/202424整体规划整体规划—装载装载IO管脚排列文件管脚排列文件 naxgLoadTDFnsetFormField "Load TDF File" "Cell Name" "design_in"nsetFormField "Load TDF File" "TDF File Name" "./data/"nformOK "Load TDF File"9/5/202425整体规划整体规划—标准单元布局标准单元布局n芯片面积受两方面因素决定,一个是芯片面积受两方面因素决定,一个是IO单元的单元的个数,另一个是标准单元和宏单元(个数,另一个是标准单元和宏单元(SRAM和和IP)的数量。
的数量npad限制的设计限制的设计 (pad Limited Design)ncore限制的设计限制的设计(core Limited Design)9/5/202426整体规划整体规划—标准单元布局标准单元布局IO PADCoreCorner9/5/202427整体规划整体规划—标准单元布局标准单元布局在设计窗口中选择在设计窗口中选择Design Setup->setup floorplan 9/5/202428整体规划整体规划—标准单元布局标准单元布局naxgPlannernsetFormField "Floor Planning" "Row/Core Ratio" "1"nsetFormField "Floor Planning" "Double Back" "1"nsetFormField "Floor Planning" "Start from first row" "1"nsetFormField "Floor Planning" "Flip first row" "1"nsetFormField "Floor Planning" "Core To Left" "100"nsetFormField "Floor Planning" "Core To Bottom" "100"nsetFormField "Floor Planning" "Core To Right" "100"nsetFormField "Floor Planning" "Core To Top" "100"nformOK "Floor Planning"9/5/202429整体规划整体规划—宏单元放置宏单元放置n宏单元的放置一般通过手工进行。
宏单元的放置一般通过手工进行n单机选中相应的宏单元,然后选择设计窗口中单机选中相应的宏单元,然后选择设计窗口中的的Modify9/5/202430整体规划整体规划—宏单元放置宏单元放置ngePointSelect // 选中宏单元选中宏单元naddPoint 1 '(699.105000 3040.105000)ngeMove //移动移动nsetFormField "Move" "Snap" "Y"naddPoint 1 ‘(638.390000 2964.210000) //坐标点坐标点naddPoint 1 '(638.390000 783.560000)nsetFormField "Move" "Snap" "X"naddPoint 1 '(709.225000 884.750000)naddPoint 1 '(1017.855000 884.750000)nformCancel "Move"9/5/202431电源地线规划电源地线规划电源电源/地线网络分布在整个芯片,为设计的每一地线网络分布在整个芯片,为设计的每一个单元提供稳定的电压,它的设计的好坏直接关个单元提供稳定的电压,它的设计的好坏直接关系到芯片的性能。
一个完整的电源系到芯片的性能一个完整的电源/地网络的设地网络的设计应该包括电压降(计应该包括电压降(lR Drop)和电迁移)和电迁移((EM,,Electromigration)的考虑9/5/202432电源地线规划电源地线规划n将标准单元、将标准单元、IO单元和宏单元和宏单元的电源、地端口与电源单元的电源、地端口与电源线、地线相连在设计窗口线、地线相连在设计窗口中选择中选择Pre Route->Connect Ports to P/G9/5/202433电源地线规划电源地线规划naprPGConnect //将标准单元、IO单元和宏单元的电源端口与电源线相连nsetFormField "Connect/Disconnect PG" "Net Name" "VDD"nsetFormField "Connect/Disconnect PG" "Port Pattern" "VDD"nformOK "Connect/Disconnect PG"naprPGConnect //将标准单元、IO单元和宏单元的地端口与地线相连nsetFormField "Connect/Disconnect PG" "Net Name" "GND"nsetFormField "Connect/Disconnect PG" "Port Pattern" "GND"nsetFormField "Connect/Disconnect PG" "Net Type" "Ground"nformOK "Connect/Disconnect PG"9/5/202434电源地线规划电源地线规划在在核核((Core))和和IO单单元元之之间间加加入入电电源源/地地环环((ring)),,它它是是连连接接内内部部电电源源/地地和和电电源源/地地IO的的纽纽带带。
电电源源/地地环环上上的的电电流流是是最最大大的的,,因因此此它它的的线线宽宽也也最最大大在在 设设 计计 窗窗 口口 中中 选选 择择PreRoute->Rectangular 9/5/202435电源地线规划电源地线规划naxgCreateRectangularRingsnsetFormField "Create Rectangular Rings" "Net Name(s)" "VDD,VSS"nsetFormField "Create Rectangular Rings" "Left" "2"nsetFormField "Create Rectangular Rings" "Right" "2"nsetFormField "Create Rectangular Rings" "Bottom" "2"nsetFormField "Create Rectangular Rings" "Top" "2"nsetFormField "Create Rectangular Rings" "L-Width" "15"nsetFormField "Create Rectangular Rings" "R-Width" "15"nsetFormField "Create Rectangular Rings" "B-Width" "15"nsetFormField "Create Rectangular Rings" "T-Width" "15"nsetFormField "Create Rectangular Rings" "L-Layer" "66"nsetFormField "Create Rectangular Rings" "R-Layer" "66"nsetFormField "Create Rectangular Rings" "B-Layer" "66"nsetFormField "Create Rectangular Rings" "T-Layer" "66"nformOk "Create Rectangular Rings"9/5/202436电源地线规划电源地线规划加加Strap。
为为了了减减小小到到达达晶晶体体管管上上的的电电压压降降,,除除了了在在芯芯片片的的周周围围加加环环外外,,还还应应加加一一些些较较宽宽的的垂垂直直贯贯穿穿于于整整个个芯芯片片的的Strap在在设设计计窗窗口口中中选择选择Pre Route->Straps9/5/2024379/5/202438Strap9/5/202439加加Pad Filler n加加Pad Filler是为了填充是为了填充IO单元与单元与IO单元之间单元之间的间隙,使的间隙,使IO连在一起在设计窗口中选择连在一起在设计窗口中选择PostPlace->Add Pad Fillers n在在Filler栏填写栏填写Filler单元名称时要单元名称时要注意填写顺序,要注意填写顺序,要求宽度大的填在前求宽度大的填在前面 9/5/202440加加Pad Filler naxgAddPadFillernsetFormField "Add Pad Filler" "Filler" "PFILL50W,PFILL22W,PFILL20W,PFILL10W, PFILL5W,PFILL2W,PFILL1W,PFILL01W,PFILL001W"nsetFormField "Add Pad Filler" "Overlap Filler" "PFILL01W,PFILL001W"nsetFormField "Add Pad Filler" "Filler Name Identifier (optional)" "fill_pad"nformOK "Add Pad Filler"9/5/202441加布局障碍加布局障碍 n在每个宏单元四在每个宏单元四周添加布局障碍周添加布局障碍便于留出足够的便于留出足够的布线空间给宏单布线空间给宏单元的端口布线。
元的端口布线在设计窗口中选在设计窗口中选择择PrePlace->Create Hard Blockage 9/5/202442加布局障碍加布局障碍 布局障碍布局障碍9/5/202443布局布局n布局布局(Placement)是确定设计中每个标准单元是确定设计中每个标准单元位置的过程一个合理的布局要求每个标准单位置的过程一个合理的布局要求每个标准单元都放在有效的位置上,并且标准单元间没有元都放在有效的位置上,并且标准单元间没有重叠布局的好坏不仅影响了芯片的面积,而重叠布局的好坏不仅影响了芯片的面积,而且对芯片的性能、布通率及整个后端设计的时且对芯片的性能、布通率及整个后端设计的时间也有很大的影响间也有很大的影响 9/5/202444布局流程布局流程装装 载载 时时 序序 约约 束束 文文 件件 (( Load SDC))时时 序序 设设 置置 (( Timing Setup))布布 局局 选选 项项 设设 置置 (( Set Placememt Optiom))预预布布局局((Pre Place ))布布局局((In Place))布布 局局 后后 的的 第第 一一 次次 优优 化化 (( Post Place))9/5/202445布局流程布局流程—装载时序约束文件装载时序约束文件n时序约束文件(时序约束文件(.sdc)主要定义了芯片的工作)主要定义了芯片的工作时钟频率,时钟歪斜,抖动等,以及输入输出时钟频率,时钟歪斜,抖动等,以及输入输出延时,输入输出端的驱动能力。
延时,输入输出端的驱动能力9/5/202446布局流程布局流程—装载时序约束文件装载时序约束文件n在设计窗口中选择在设计窗口中选择Timing->Load SDC,在弹,在弹出的窗口中选择要读入的时序约束文件,其他出的窗口中选择要读入的时序约束文件,其他选项缺省,相应的脚本文件为:选项缺省,相应的脚本文件为:ataLoadSDCsetFormField "Load SDC File" "SDC File Name" “"formOK "Load SDC File"9/5/202447布局流程布局流程—时序设置时序设置 n在设计窗口中选择在设计窗口中选择Timing-> Timing Setup,,在弹出的窗口中进行用于静态时序分析的选项在弹出的窗口中进行用于静态时序分析的选项设置 9/5/202448布局流程布局流程—时序设置时序设置 n其脚本为:其脚本为:natTimingSetupnatTimingSetupGoto "Optimization"natCmdSetField "Optimization Max Transition" "80"natCmdSetField "Optimization Max Capacitance" "80"natCmdSetOptModelnatTimingSetupGoto "Parasitics"natCmdSetField "Parasitic Model Operating Conditions" "max min"natCmdSetField "Parasitic Model Temperature Min" "0"natCmdSetField "Parasitic Model Temperature Max" "125"natCmdSetParaModelnatTimingSetupHide9/5/202449布局流程布局流程—布局选项设置布局选项设置在设计窗口中选择在设计窗口中选择InPlace->Placement Common Options,在弹出菜单的,在弹出菜单的“Optimiaztion Mode”一栏中选择一栏中选择“Congestion”和和“Timing”,表示,表示选用时序和拥塞共选用时序和拥塞共同驱动的布局。
其同驱动的布局其他选项可以缺省他选项可以缺省9/5/202450n相应脚本为:相应脚本为:nastPlaceOptionsnsetFormField "AstroPlace Options" "Timing Driven" "1"nsetToggleField "AstroPlace Options" "No Cells Under Mx" "M3" 1nformOK "AstroPlace Options"布局流程布局流程—布局选项设置布局选项设置9/5/202451n预布局阶段主要是对高扇出网线进行优化在预布局阶段主要是对高扇出网线进行优化在设计窗口中选择设计窗口中选择InPlace->Auto Place,然后,然后在弹出窗口的在弹出窗口的“Stage”一栏选择一栏选择“Pre-place”,并点击菜单中的,并点击菜单中的“Detail Options”按钮,菜单将加长,在按钮,菜单将加长,在“Pre-Place optimization”一栏中选择一栏中选择“Cell Down Size”,其他选项缺省,其他选项缺省 布局流程布局流程—预布局及时序分析预布局及时序分析9/5/202452n预布局完成后,进行静态时序分析,在设计窗预布局完成后,进行静态时序分析,在设计窗口中选择口中选择Timing->Timing Report,选择窗口中选择窗口中的的“Max Trans”、、“Max Cap”、、“Show Historgram”选项,表示在时序分析报告中除选项,表示在时序分析报告中除了报告建立时间的最糟糕的一条路径延时和维了报告建立时间的最糟糕的一条路径延时和维持时间的最糟糕的一条路径延时值外,还报告持时间的最糟糕的一条路径延时值外,还报告违反最大跳变时间(违反最大跳变时间(Max transition)和最大)和最大负载电容(负载电容(Max capacitance)的门单元,其)的门单元,其余选项缺省。
余选项缺省 布局流程布局流程—预布局及时序分析预布局及时序分析9/5/202453布局流程布局流程—预布局及时序分析预布局及时序分析9/5/202454nastAutoPlace //预布局预布局nsetFormField "Auto Place" "In Place Optimization" "0"nsetFormField "Auto Place" "Post Place Optimization" "0"nformButton "Auto Place" "detailOption"nsetFormField "Auto Place" "Cell Down Size" "1"nformOK "Auto Place"布局流程布局流程—预布局及时序分析预布局及时序分析9/5/202455nastReportTiming //预布局后的时序分析预布局后的时序分析nsetFormField "Report Timing" "Report Max Trans" "1"nsetFormField "Report Timing" "Report Max Cap" "1"nsetFormField "Report Timing" "Print Histogram" "1"nsetFormField "Report Timing" "Output To" "File"nsetFormField "Report Timing" "File Name" ""nformOK "Report Timing"布局流程布局流程—预布局及时序分析预布局及时序分析9/5/202456n布局阶段用来实现标准单元的位置放置。
在设计窗口中选择布局阶段用来实现标准单元的位置放置在设计窗口中选择InPlace->Auto Place,然后在弹出窗口的,然后在弹出窗口的“Stage”一栏选择一栏选择“In-Pace”,在,在“Placer Options”一栏选择一栏选择“Prevent Crosstalk” ,其余选项缺省脚本为:,其余选项缺省脚本为:nastAutoPlace nsetFormField "Auto Place" "In Place Optimization" "1"nsetFormField "Auto Place" "Pre Place Optimization" "0"nsetFormField "Auto Place" "Place Prevent Xtalk" "1"nformOK " Auto Place "n局完成后,同样还要进行静态时序分析,分析是否存在违反建立局完成后,同样还要进行静态时序分析,分析是否存在违反建立时间(时间(Setup time)的关键路径,如果存在违反的话,检查时序)的关键路径,如果存在违反的话,检查时序约束文件、时序设置或布局规划是否存在问题约束文件、时序设置或布局规划是否存在问题。
布局流程布局流程—布局及时序分析布局及时序分析9/5/202457n在在Astro的帮助文档中称布局后第一次时序优化为的帮助文档中称布局后第一次时序优化为PP1在设计窗在设计窗口中选择口中选择InPlace->Auto Place,然后在弹出窗口的,然后在弹出窗口的“Stage”一一栏选择栏选择“Post-Pace”,, 在在“Post-Placer Options”一栏选择一栏选择“Prevent Crosstalk”,其余选项缺省其余选项缺省 脚本如下:脚本如下:astAutoPlacensetFormField "Auto Place" "In Place Optimization" "0"nsetFormField "Auto Place" "Post Place Optimization" "1"nsetFormField "Auto Place" "Use Global Route" "1"nsetFormField "Auto Place" "Opt Prevent Xtalk" "1"nformOK "Auto Place "n保证不能存在违反建立时间的路径,但可以存在违反维持时间保证不能存在违反建立时间的路径,但可以存在违反维持时间((Hold time)的路径。
的路径 布局流程布局流程—布局后第一次优化布局后第一次优化9/5/202458n时钟树综合的主要目的是减小时钟偏差时钟树综合的主要目的是减小时钟偏差 n时钟偏差是指从时钟源点(时钟偏差是指从时钟源点(Source)到各时)到各时钟汇点(钟汇点(Sink)的最大延时时间的差值的最大延时时间的差值 时钟树综合时钟树综合9/5/202459n时钟树综合发生在布局之后布线之前,这时每时钟树综合发生在布局之后布线之前,这时每个单元的位置都确定下来,电源个单元的位置都确定下来,电源/地已预布线,地已预布线,关键时序路径上的单元也已被优化,不存在建关键时序路径上的单元也已被优化,不存在建立时间上的时序违反,但是还没有在时钟网络立时间上的时序违反,但是还没有在时钟网络中插入时钟缓冲器中插入时钟缓冲器 时钟树综合时钟树综合9/5/202460n时钟树综合前,首先要设置时钟树选项这些时钟树综合前,首先要设置时钟树选项这些选项包括环境选项包括环境 (最好、最坏及典型最好、最坏及典型)、时钟偏、时钟偏差类型差类型 (全局时钟偏差、局部时钟偏差及有用全局时钟偏差、局部时钟偏差及有用时钟偏差时钟偏差)、优化程度、时钟定义、时钟缓冲、优化程度、时钟定义、时钟缓冲器及倒相器定义、时钟树结构和时钟树优化方器及倒相器定义、时钟树结构和时钟树优化方式以及目标的设置。
在设计窗口中选择式以及目标的设置在设计窗口中选择Clock->Clock Common Options,在窗口中进行相,在窗口中进行相关选项的设置关选项的设置 时钟树综合时钟树综合—时钟选项时钟选项9/5/202461时钟树综合时钟树综合—时钟选项时钟选项9/5/202462n相应脚本如下:相应脚本如下:nastClockOptions //时钟树选项设置命令时钟树选项设置命令nsetFormField "Clock Common Options" "Clock Nets" "wb_ck_i" //时钟定义时钟定义nsetFormField "Clock Common Options" "Buffers/Inverters" "BUFCLKHD1X, BUFCLKHD2X, BUFCLKHD3X, BUFCLKHD4X, BUFCLKHD8X, BUFCLKHD12X, BUFCLKHD16X, BUFCLKHD20X, BUFCLKHD30X, BUFCLKHD40X, BUFCLKHD80X, BUFCLKHDLX, INVCLKHD1X, INVCLKHD2X, INVCLKHD3X, INVCLKHD4X, INVCLKHD8X, INVCLKHD12X, INVCLKHD16X, INVCLKHD20X, INVCLKHD30X, INVCLKHD40X, INVCLKHD80X, INVCLKHDLX" n//时钟缓冲器及倒相器定义时钟缓冲器及倒相器定义时钟树综合时钟树综合—时钟选项时钟选项9/5/202463n在设计窗口中选择在设计窗口中选择Clock->Clock Tree Synthesis(图(图10-26)。
相应脚本如下:)相应脚本如下:nastCTS //时钟树时钟树综合综合nformOK "Clock Tree Synthesis"时钟树综合时钟树综合—时钟树综合时钟树综合9/5/202464n时钟树综合时钟树综合后,分析时后,分析时钟偏差、最钟偏差、最小插入延时小插入延时是否符合设是否符合设计要求在计要求在设计窗口中设计窗口中选择选择Clock->Skew analysis时钟树综合时钟树综合—时钟偏差分析时钟偏差分析9/5/202465n相应的脚本为:相应的脚本为:nastSkewAnalysisnsetFormField "Skew Analysis" "Clock Names" "wb_clk_i"nsetFormField "Skew Analysis" "Output To" "File"nsetFormField "Skew Analysis" "File Name" "./"nformOK "Skew Analysis"时钟树综合时钟树综合—时钟偏差分析时钟偏差分析9/5/202466n时时钟钟树树综综合合之之前前,,所所有有的的静静态态时时序序分分析析都都是是基基于于一一个个理理想想的的时时钟钟网网络络((时时钟钟偏偏差差为为0))来来分分析析的的。
时时钟钟树树综综合合后后,,需需要要根根据据实实际际完完成成的的时时钟钟树树情情况况,,即即需需要要考考虑虑Clock Skew后后再再次次进进行行静静态态时时序序分分析析,,因因此此需需要要重重新新设设置置时时序选项相应的脚本如下:序选项相应的脚本如下:时钟树综合时钟树综合—重新时序分析重新时序分析9/5/202467ntcl "set_propagated_clock [all_clock]"natTimingSetupnatTimingSetupGoto "Environment"natCmdSetField "Set IO Clock Latency" "1"natCmdSetField "Enable Gated Clock Checks" "1"natCmdSetField "Enable Mixed Clock/Signal Edges" "1"natCmdSetEnvModelnatTimingSetupHide时钟树综合时钟树综合—重新时序分析重新时序分析9/5/202468n如果时钟树综合后的静态时序分析结果发现仍存在建立时间和维如果时钟树综合后的静态时序分析结果发现仍存在建立时间和维持时间的违反,只是违反的路径数不多而且持时间的违反,只是违反的路径数不多而且Slack值与值与0比较接近,比较接近,可以采用时钟综合后的布局优化,在可以采用时钟综合后的布局优化,在Astro的帮助文档中称这一的帮助文档中称这一次优化为次优化为PP2。
在设计窗口中选择在设计窗口中选择InPlace->Auto Place,然后,然后在弹出窗口的在弹出窗口的“Stage”一栏选择一栏选择“Post-CTS”,在,在“Optimization Tasks”一栏选择一栏选择“Fix Hold”,在,在“Post-CTS Options”一栏选择一栏选择“Congestion Removal”,其余选项缺省相,其余选项缺省相应脚本如下:应脚本如下:nastAutoPlacensetFormField "Auto Place" "Post Place Optimization" "0"nsetFormField "Auto Place" "Post CTS Optimization" "1"nsetFormField "Auto Place" "Fix Hold" "1"nsetFormField "Auto Place" "Congestion Removal" "1"nformOK "Auto Place"时钟综合后的布局优化及时序分析时钟综合后的布局优化及时序分析9/5/202469n由于布局优化以及时钟树综合使设计的网表发生了改变,主要是删除、由于布局优化以及时钟树综合使设计的网表发生了改变,主要是删除、增加、替换了单元,因此在进行布线前的电源增加、替换了单元,因此在进行布线前的电源/地线检查前首先要重新地线检查前首先要重新更新电源更新电源/地连接。
地连接n在设计窗口中选择在设计窗口中选择Pre Route->Connect Ports to P/G,按图,按图10-13重重新将标准单元的电源新将标准单元的电源/地端口与电源线地端口与电源线/地线相连地线相连n电源电源/地线的电连接性(地线的电连接性(LVS,,layout-versus-schematic )检查,检)检查,检查电源查电源/地线是否存在开路或短路情况相应脚本为:地线是否存在开路或短路情况相应脚本为:naxgVeriPGConn //电源电源/地的电连接性检查地的电连接性检查nformOK "Verify P/G Connectivity"n电源电源/地线的版图设计规则(地线的版图设计规则(DRC)检查,检查电源)检查,检查电源/地线是否存在版图地线是否存在版图设计规则上的违反相应脚本为:设计规则上的违反相应脚本为:ngeNewDRCnsetFormField "DRC" "Notch" "0"nformOK "DRC"n如果存在上述任何一个违反,就要仔细检查版图中的电源如果存在上述任何一个违反,就要仔细检查版图中的电源/地网络布线前的电源布线前的电源/地线检查地线检查 9/5/202470布线布线n布线工具根据单元的连接关系及时序约束进行布线工具根据单元的连接关系及时序约束进行自动布线,使关键路径上的连线尽量短。
布线自动布线,使关键路径上的连线尽量短布线包括时钟布线和普通信号布线包括时钟布线和普通信号布线n布线主要分全局布线(布线主要分全局布线(Global Route)、布线)、布线通道分配(通道分配(Track Assignment)、详细布线)、详细布线((Detail Route)和布线修补()和布线修补(Search & Refine)四步9/5/202471布线流程布线流程 n1. 装载天线效应约束文件装载天线效应约束文件 n2.分布式布线设置.分布式布线设置n3.布线选项设置.布线选项设置n4.布线高级选项设置.布线高级选项设置n5.时钟线布线.时钟线布线 n6.普通信号线布线及时序分析.普通信号线布线及时序分析n7.布线后的各项性能分析.布线后的各项性能分析9/5/202472装载天线效应约束文件装载天线效应约束文件 n天线效应天线效应--在集成电路制造过程中的金属等离子刻蚀在集成电路制造过程中的金属等离子刻蚀阶段,接到器件栅极上的金属会收集电荷,如果电荷阶段,接到器件栅极上的金属会收集电荷,如果电荷积累到一定程度,栅极的薄氧层会被击穿,器件因此积累到一定程度,栅极的薄氧层会被击穿,器件因此失效失效 。
n为了能让为了能让Astro在布线过程中避免出现天线效应,首在布线过程中避免出现天线效应,首先要装载由先要装载由Foundry提供的天线效应约束文件提供的天线效应约束文件((.clf)命令为:)命令为: load “天线效应约束文件名天线效应约束文件名”n有两种方法可以修复天线效应违反,一种方法是铝线有两种方法可以修复天线效应违反,一种方法是铝线跳到顶层,另一种方法是在栅极附近增加二极管跳到顶层,另一种方法是在栅极附近增加二极管 9/5/202473分布式布线设置分布式布线设置n随着芯片规模的增加,连线数越来越多,因此随着芯片规模的增加,连线数越来越多,因此布线是个非常费时的过程如果存在多个布线是个非常费时的过程如果存在多个CPU,为加快布线,可以采用分布式布线的方式为加快布线,可以采用分布式布线的方式在设计窗口中选在设计窗口中选Route Setup->Distributed Routing Setup在弹出的窗口中选择在弹出的窗口中选择“Connect”选项9/5/202474布线选项设置布线选项设置n设置的原则是根据设计的需要,在设计的时序、设置的原则是根据设计的需要,在设计的时序、DRC规则和规则和CPU 的运行时间上作出平衡,因的运行时间上作出平衡,因为考虑的因素越多,为考虑的因素越多,CPU运行时间越长。
这些运行时间越长这些选项设置会影响以下操作:部分连线布线、全选项设置会影响以下操作:部分连线布线、全局布线、布线通道分配、详细布线、布线修复、局布线、布线通道分配、详细布线、布线修复、区域布线、布线的优化等在设计窗口中选区域布线、布线的优化等在设计窗口中选Route Setup->Route Common Options 9/5/202475布线选项设置布线选项设置相应的脚本为:相应的脚本为:axgSetRouteOptionssetFormField "Route Common Options" "CrossTalk Prevention" "1"setFormField "Route Common Options" "Timing Driven" "1"setFormField "Route Common Options" "Track Assign Timing Driven" "1"setFormField "Route Common Options" "Detail Route Timing Driven" "1"formOK "Route Common Options"9/5/202476布线高级选项设置布线高级选项设置n这部分选项设置主要是为了避免布线时出现的天线效应。
在设计这部分选项设置主要是为了避免布线时出现的天线效应在设计窗口中选窗口中选Route Setup->HPO Signal Route Options由于装载由于装载了天线效应约束文件,因此在了天线效应约束文件,因此在“Charge-Collecting Antenna”一一栏中选择栏中选择“advanced”,同时要求选择,同时要求选择“Honor Top-Layer Probe Constraints”选项,其余选项缺省相应的脚本为:选项,其余选项缺省相应的脚本为:naxgSetHPORouteOptionsnsetFormField "HPO Signal Route Options" "Charge-Collecting Antenna" "advanced"nsetFormField "HPO Signal Route Options" "Honor Top-Layer Probe Constraints" "1"nformOK "HPO Signal Route Options"9/5/202477时钟线布线时钟线布线n在普通信号布线前,先对部分特殊的互连线进行布线,比如时钟在普通信号布线前,先对部分特殊的互连线进行布线,比如时钟信号线或关键时序路径连线,布完这些线后,先进行时序分析看信号线或关键时序路径连线,布完这些线后,先进行时序分析看是否满足要求然后再布其它连线。
是否满足要求然后再布其它连线 n在设计窗口中选择在设计窗口中选择Route->Net Route Group,选择窗口中的,选择窗口中的“All clock nets”和和“Trim antenna of user's wire”选项,其余选项,其余选项缺省相应的脚本为:选项缺省相应的脚本为:naxgRouteGroupnsetFormField "Route Net Group" "Net Name(s) From" "All clock nets"nsetFormField "Route Net Group" "Trim antenna of user's wire" "1"nformOK "Route Net Group"9/5/202478普通信号线布线及时序分析普通信号线布线及时序分析n在设计窗口中选在设计窗口中选Route->Auto Route,弹出对,弹出对话框中对话框中对“Search & Repair Loop”的次数进的次数进行设置,一般设为行设置,一般设为5,若布线修复的次数设的,若布线修复的次数设的过多,会比较费时过多,会比较费时 n该步骤相应的脚本为:该步骤相应的脚本为:naxgAutoRoutensetFormField "Auto Route" "Search & Repair Loop" "5"nformOK "Auto Route"9/5/202479普通信号线布线及时序分析普通信号线布线及时序分析n布线完成后要求不能存在设计规则和天线效应布线完成后要求不能存在设计规则和天线效应的违反。
查看如下日志文件即可判断是否存在的违反查看如下日志文件即可判断是否存在设计规则和天线效应的违反设计规则和天线效应的违反nDRC-SUMMARY:n@@@@@@@ TOTAL VIOLATIONS = 0 (0) //表示不存在设计规则违反表示不存在设计规则违反n@@@@ Total nets not meeting constraints = 0 //表示不存在天线效应违反表示不存在天线效应违反9/5/202480布线后的各项性能分析布线后的各项性能分析n布线完成后需要进行各项性能分析,包括:布线完成后需要进行各项性能分析,包括: 1.静态时序分析静态时序分析--要求时序上(建立时间、维要求时序上(建立时间、维持时间、最大跳变时间和最大负载电容)不能持时间、最大跳变时间和最大负载电容)不能有任何违反有任何违反 2.串扰分析串扰分析--深亚微米工艺下,连线间的耦合深亚微米工艺下,连线间的耦合电容在不断增加,而设计的时序要求却不断提电容在不断增加,而设计的时序要求却不断提高,因此串扰问题将变得越来越严重高,因此串扰问题将变得越来越严重。
3.功耗、压降和电迁移分析功耗、压降和电迁移分析9/5/202481版图验证版图验证 1.设计规则检查(设计规则检查(DRC)) Astro内嵌有设计规则检查工具,但这只是门级的设内嵌有设计规则检查工具,但这只是门级的设计规则检查,版图数据并不完整,因此检查结果并不计规则检查,版图数据并不完整,因此检查结果并不准确 2.电源电源/地线的电连接性检查地线的电连接性检查 检查日志文件,要求检查结果不存在任何违反检查日志文件,要求检查结果不存在任何违反3.版图与原理图的一致性验证(版图与原理图的一致性验证(LVS)) 将从版图中提取的电路网表和设计的网表进行比较,将从版图中提取的电路网表和设计的网表进行比较,确保两者一致同样这只是门级的确保两者一致同样这只是门级的LVS检查在设计检查在设计窗口中选窗口中选Verify-> LVS要求不能存在短路、开路的要求不能存在短路、开路的违反 9/5/202482数据输出数据输出 n1.输出用于反标的延时文件.输出用于反标的延时文件n2.输出.输出Verilog网表文件网表文件n3.输出.输出GDSII文件文件9/5/202483。
