第十一讲 数字后端电路实现-布局布线与验证.



《第十一讲 数字后端电路实现-布局布线与验证.》由会员分享,可在线阅读,更多相关《第十一讲 数字后端电路实现-布局布线与验证.(74页珍藏版)》请在文档大全上搜索。
1、第十一讲 数字后端电路实现布局布线与验证清华大学微电子所李福乐 黎征目录 布局布线引言 用一个数字分频器设计的例子来说明数字电路的基本布局布线过程 设计介绍(数字分频器设计) 逻辑综合(Synopsys DC) 布局布线 (Cadence Soc Encounter) Cell-based DRC & LVSTypical Cell-based flow可综合代码逻辑仿真逻辑综合VerilogVerilog-xl(NC verilog)Design Compiler仿真Ok?TimingOk?前端设计系统定义行为建模仿真Ok?C/HDL/MATLABYNYNYNTypical Cell-bas
2、ed flowDRC和LVSRC参数提取Tape out布局布线draculaSoc EncounterTimingOk?N后端设计Cell-based ASIC?怎样实现自动布局布线?对标准单元有什么要求?综合出来的网表对应于哪个部分?还缺少什么?Cell-based ASIC简单的布局布线流程时序驱动的布局布线流程设计介绍设计要求 数字分频器 输入输出时钟周期满足:Tout = 2(N+1) Tin 用于DPLL(数字锁相环)电路中 纯数字电路实现数字分频器Clock INClock OUT分频系数N设计介绍Verilog实现module divder (clkin, rst, divcn
3、t, 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 elsebegin if (divcntreg != divcnt) & (enable = 1b1) begin cnt = 4b0; divc
4、ntreg = divcnt; clkout = 1b0; end else begin if (cnt = divcntreg) begin clkout = clkout; cnt = 4b0; end else cnt dc_shell-t 读取top.v,设置当前综合模块 把时钟信号和Pad设置成为不被综合 时钟树在下一步布局布线时处理 Pad没有逻辑功能、仅提供输入输出负载 设置连线负载 设置时钟约束逻辑综合综合并保存结果 用compile命令进行综合 保存设计库文件 保存综合后门级网表 保存时序信息 作为综合后仿真的时序参数 作为布局布线的时钟约束逻辑综合tcl脚本文件read_v
5、erilog top.vcurrent_design topset_dont_touch get_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_optimizationc
6、hange_names -rules asic_core_rules -hierarchychange_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
7、 truewrite top -format verilog -output top_post.v -hierwrite_sdf -context verilog top.sdf以上命令在dc_shell-t的状态下执行逻辑综合补充 编写脚本文件后,可以直接执行 dc_shell-tsource 脚本文件名 除了tcl方式,还可以采用其他方式使用DC 对于综合后的网表和时序,应当进行仿真 使用man、help、sold获取dc使用的帮助布局布线流程综述 读取库文件和门级网表 版图布局和电源布局 放置标准单元 时钟树综合 添加填充 电源布线和布线 寄生参数提取和时序分析 保存结果布局布线准备文件
8、 *.LEF: Library Exchange Format 厂家工艺库lef文件,含有标准单元库的布局布线信息; *.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 sta
9、ndard ; PIN vdd! USE POWER ; SHAPE FEEDTHRU ; DIRECTION INOUT ; 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一个标准单元的定义布局布线启动 在工作目录命令行输入:encou
10、nter 图形界面从菜单design 选择 菜单项design import 在design import对话框中填入相应文件布局布线导入设计和库布局布线文件说明 综合后网单文件:*.v和顶层模块名 LEF工艺文件 依次读入:csmc06tech_un.lef, csmc06core_un.lef, csmc06pad_un.lef 作用:其中定义了标准单元的大小,几何形状,管脚位置,以及布局布线所用的线宽、layout层号、所用通孔大小。 TLF时序信息文件 csmc06core_un.tlf 和 csmc06pad_un.tlf 作用:包括了lef文件中对应的各种延时信息。 SDF时序约束
11、文件 DC综合后生成,告诉encounter时序约束信息布局布线设计导入电源布局布线设计导入完成 可以在Design Import对话框中选择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_COR