第十一讲 数字后端电路实现 布局布线与验证剖析课件.ppt
《第十一讲 数字后端电路实现 布局布线与验证剖析课件.ppt》由会员分享,可在线阅读,更多相关《第十一讲 数字后端电路实现 布局布线与验证剖析课件.ppt(74页珍藏版)》请在三一办公上搜索。
1、第十一讲 数字后端电路实现布局布线与验证,清华大学微电子所李福乐 黎征,目录,布局布线引言用一个数字分频器设计的例子来说明数字电路的基本布局布线过程设计介绍(数字分频器设计)逻辑综合(Synopsys DC)布局布线 (Cadence Soc Encounter)Cell-based DRC & LVS,Typical Cell-based flow,可综合代码,逻辑仿真,逻辑综合,Verilog,Verilog-xl(NC verilog),Design Compiler,仿真Ok?,TimingOk?,前端设计,系统定义,行为建模,仿真Ok?,C/HDL/MATLAB,Y,N,Y,N,Y,
2、N,Typical Cell-based flow,DRC和LVS,RC参数提取,Tape out,布局布线,dracula,Soc Encounter,TimingOk?,N,后端设计,Cell-based ASIC,?,怎样实现自动布局布线?对标准单元有什么要求?综合出来的网表对应于哪个部分?还缺少什么?,Cell-based ASIC,简单的布局布线流程,时序驱动的布局布线流程,设计介绍设计要求,数字分频器输入输出时钟周期满足:Tout = 2(N+1) Tin用于DPLL(数字锁相环)电路中纯数字电路实现,数字分频器,Clock IN,Clock OUT,分频系数N,设计介绍Veril
3、og实现,module divder (clkin, rst, divcnt, enable, clkout);input clkin, rst, enable;input 3:0 divcnt;output clkout;reg 3:0 cnt;reg 3:0 divcntreg;reg clkout;always (posedge clkin or posedge rst) begin if (rst = 1b1) begin cnt = 4b0; divcntreg = 4b0; clkout = 1b0; end else,begin if (divcntreg != divcnt)
4、end end end endmodule,设计介绍前仿真,编写testbench文件仿真波形如下图所示,随着分频系数的不同,输出时钟频率成倍变化,逻辑综合准备文件,准备库文件在.synopsys_dc.setup中加入综合库的位置查阅库中doc目录下的相关pdf文件,选择合适的输入输出和时钟pad准备打包文件top.v,给源程序加上输入输出的pad,以便综合工具优化驱动和负载,设计打包,?,核心设计在何时打包, 即加上I/O PAD,结构描述,逻辑综合top.v,include divider.vmodule top(clkin, rst, divcnt, enable, clkout);
5、input clkin, rst, enable; input 3:0 divcnt; output clkout; wire clkin_core, rst_core, enable_core, clkout_core; wire 3:0 divcn_core; pcxd00 pad_rst (.PAD(rst), .C(rst_core); pcxd00 pad_enb (.PAD(enable), .C(enable_core);(下页续),(接上页) pcxd00 pad_cn0 (.PAD(divcnt0), .C(divcn_core0); pcxd00 pad_cn1 (.PAD
6、(divcnt1), .C(divcn_core1); pcxd00 pad_cn2 (.PAD(divcnt2), .C(divcn_core2); pcxd00 pad_cn3 (.PAD(divcnt3), .C(divcn_core3); pcxc32 pad_cki (.CLK(clkin), .CP(clkin_core); pcxc52 pad_cko (.CLK(clkout_core), .CP(clkout); divider udiv (.clkin(clkin_core), .rst(rst_core), .divcnt(divcn_core), .enable(ena
7、ble_core), .clkout(clkout_core); endmodule,逻辑综合top.v,逻辑综合约束条件,用tcl方式启动dcdc_shell-t读取top.v,设置当前综合模块把时钟信号和Pad设置成为不被综合时钟树在下一步布局布线时处理Pad没有逻辑功能、仅提供输入输出负载设置连线负载设置时钟约束,逻辑综合综合并保存结果,用compile命令进行综合保存设计库文件保存综合后门级网表保存时序信息作为综合后仿真的时序参数作为布局布线的时钟约束,逻辑综合tcl脚本文件,read_verilog top.vcurrent_design topset_dont_touch get_
8、cells pad_*set_max_transition 0.5 current_designset_max_fanout 24 current_designcreate_clock -period 3 get_ports clkinset_clock_uncertainty 0.5 clkinset_dont_touch_network clkinset_wire_load_model -name 0 x150kcompile -map high -boundary_optimizationchange_names -rules asic_core_rules -hierarchychan
9、ge_names -rules asic_top_rules verbose(下页续),逻辑综合tcl脚本文件,(接上页)write -output top.db -hierwrite_script -full_path_lib_name -output top.constrwrite_constraints -format sdf-v2.1 -max_path_timing -max_paths 1000 -output top_constr.sdfset verilogout_single_bit truewrite top -format verilog -output top_post
10、.v -hierwrite_sdf -context verilog top.sdf以上命令在dc_shell-t的状态下执行,逻辑综合补充,编写脚本文件后,可以直接执行dc_shell-tsource 脚本文件名除了tcl方式,还可以采用其他方式使用DC对于综合后的网表和时序,应当进行仿真使用man、help、sold获取dc使用的帮助,布局布线流程综述,读取库文件和门级网表版图布局和电源布局放置标准单元时钟树综合添加填充电源布线和布线寄生参数提取和时序分析保存结果,布局布线准备文件,*.LEF: Library Exchange Format厂家工艺库lef文件,含有标准单元库的布局布线信
11、息;*.DEF: Design Exchange Format厂家给了对电源和CORNER PAD进行声明的DEF文件*.CTLF: Compiled Timing Library Format厂家工艺库tlf文件,含有布局布线时序信息,LEF内容,MACRO AN02D1 CLASS CORE ; SYMMETRY X Y ; FOREIGN AN02D1 0.00 0.00 ; ORIGIN 0.00 0.00 ; SIZE 11.50 BY 23.00 ; SITE standard ; PIN vdd! USE POWER ; SHAPE FEEDTHRU ; DIRECTION IN
12、OUT ; PORT LAYER metal1 ; RECT 0.00 18.80 11.50 21.60 ; END END vdd!PIN A DIRECTION INPUT ; PORT LAYER metal2 ; RECT 0.40 8.25 1.90 9.75 ; END END A OBS LAYER metal1 ; RECT 0.00 0.00 11.50 23.00 ; ENDEND AN02D1,一个标准单元的定义,布局布线启动,在工作目录命令行输入:encounter图形界面从菜单design 选择 菜单项design import在design import对话框中填
13、入相应文件,布局布线导入设计和库,布局布线文件说明,综合后网单文件:*.v和顶层模块名LEF工艺文件依次读入:csmc06tech_un.lef, csmc06core_un.lef, csmc06pad_un.lef作用:其中定义了标准单元的大小,几何形状,管脚位置,以及布局布线所用的线宽、layout层号、所用通孔大小。TLF时序信息文件csmc06core_un.tlf 和 csmc06pad_un.tlf作用:包括了lef文件中对应的各种延时信息。SDF时序约束文件DC综合后生成,告诉encounter时序约束信息,布局布线设计导入电源,布局布线设计导入完成,可以在Design Imp
14、ort对话框中选择Save存储导入的设置导入完成如图所示,信号PAD、标准单元都有了。但是缺少电源PAD,需要导入含有电源PAD信息的DEF文件,DEF文件内容,DESIGN NAME ;UNITS DISTANCE MICRONS 100 ;COMPONENTS 8 ;- pad_dirty_VDD pcxvd2 ;- pad_dirty_VSS pcxvs2 ;- pad_core_VDD pcxvd1 ;- pad_core_VSS pcxvs1 ;- pad_CORNER1 PADCORNER ;- pad_CORNER2 PADCORNER ;- pad_CORNER3 PADCOR
15、NER ;- pad_CORNER4 PADCORNER ;END COMPONENTS,顶层模块名,定义电源地PAD和CORENER PAD,?,为何这么定义,与版图怎么对应?PAD的选择基于什么考虑?对于大设计,怎么改进?,DEF文件内容,SPECIALNETS 5 ; - gnd! ( pad_* gnd! ) ( pad_*_VSS core ) + USE GROUND ;- vdd! ( pad_* vdd! ) ( pad_*_VDD core ) + USE POWER ;- gnd1! ( pad_* gnd1! ) + USE GROUND ;- vdd1! ( pad_*
16、 vdd1! ) + USE POWER ;- gnd2! ( pad_* gnd2! ) + USE GROUND ;END SPECIALNETSEND DESIGN,- gnd1! ( pad* gnd1! ) + USE GROUND ;- gnd2! ( pad* gnd2! ) + USE GROUND ;- gnd! ( pad* gnd! ) ( pad_*_VSS core ) + USE GROUND ;- vdd1! ( pad* vdd1! ) + USE POWER ;- vdd! ( pad* vdd! ) ( pad_*_VDD core ) + USE POWE
17、R ;,布局布线导入DEF文件,完成DEF文件的修改Design - Load - DEF 选择刚才修改好的DEF文件,并导入注意观察命令提示行是否导入有错。导入后的PAD重叠,需要导入IO文件,进行IO排序,布局布线I/O文件,I/O文件需要提供每个PAD的位置和方向。可以先使用Design- Save -I/O File 先保存一个I/O文件,然后在此基础上修改此文件,最后保存再导入回设计。I/O文件的格式:Version: 2Orient: orientationPad: padInstanceName side | corner cellName,布局布线I/O文件例,Version:
18、 2Orient: R180Pad: pad_CORNER1 NE PADCORNEROrient: R0Pad: pad_rst NOrient: R0Pad: pad_dirty_VSS N pcxvs2Orient: R0Pad: pad_enb NOrient: R270Pad: pad_CORNER4 NW PADCORNEROrient: R90Pad: pad_cn1 WOrient: R90Pad: pad_cn0 WOrient: R90Pad: pad_core_VSS W pcxvs1,Orient: R0Pad: pad_CORNER3 SW PADCORNEROrie
19、nt: R180Pad: pad_core_VDD S pcxvd1Orient: R180Pad: pad_cn2 SOrient: R180Pad: pad_cn3 SOrient: R90Pad: pad_CORNER2 SE PADCORNEROrient: R270Pad: pad_cko EOrient: R270Pad: pad_dirty_VDD E pcxvd2Orient: R270Pad: pad_cki E,布局布线I/O文件导入完成,Design-Load-I/O File 选择导入修改好后的I/O文件选择工具栏上的重绘按钮(Redraw)或者使用快捷键Ctrl+R重
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第十一讲 数字后端电路实现 布局布线与验证剖析课件 第十一 数字 后端 电路 实现 布局 布线 验证 剖析 课件
链接地址:https://www.31ppt.com/p-1823367.html