UNI 公 l898 集成电路设计实习Ⅵ LSI Design Labs 单元实验四 数字系统设计-后端 2011-2012 Institute of Microelectronics Peking University eserved
2011-2012 All rights reserved Institute of Microelectronics Peking University 集成电路设计实习 VLSI Design Labs 单元实验四 数字系统设计 -后端
实验目的及时间安排 ●掌握半定制的后端设计流程 ●学习 Cadence自动布局布线工具SE ●完成自动布局布线 ●设计时间:1次课 Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright O 2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 2 实验目的及时间安排 掌握半定制的后端设计流程 学习Cadence自动布局布线工具SE 完成自动布局布线 设计时间:1次课
ce- based asic设计流程 ●基于标准单元的半定制设计流程 Venlo VHDL Tape out synthesis Post layout simulaton DRC LVS netlist GDSII Place route Routed on Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright◎2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 3 Cell-based ASIC 设计流程 基于标准单元的半定制设计流程
后端设计过程 ●后端设计完成基于标准单元的自动布局布线工作,利用 cadence的 SoC encounter工具 ●在前端设计(逻辑仿真和逻辑综合)完成后,得到综合器 输出的映射到标准单元库的门级网表 ●将门级网表读入到自动布局布线工具中,进行版图规划 floorplan(即对所有的标准单元进行布局 place)和布线 route(即按照网表中的连接关系对摆放好的标准单元的版 图进行金属连线),最后生成物理版图 Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright O 2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 4 后端设计过程 后端设计完成基于标准单元的自动布局布线工作,利用 cadence的SoC encounter工具 在前端设计(逻辑仿真和逻辑综合)完成后,得到综合器 输出的映射到标准单元库的门级网表 将门级网表读入到自动布局布线工具中,进行版图规划 floorplan(即对所有的标准单元进行布局place)和布线 route(即按照网表中的连接关系对摆放好的标准单元的版 图进行金属连线),最后生成物理版图
布局布线前的准备 进行自动布局布线,需准备下列文件 v Verilog Netlist(v) Timing Library File(lib) Library Exchange Format(lef) Timing Constraint File(sdc) v IO Assigment File (io) Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright O 2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 5 布局布线前的准备 进行自动布局布线,需准备下列文件: Verilog Netlist (.v) Timing Library File (.lib) Library Exchange Format (.lef) Timing Constraint File (.sdc) IO Assigment File (.io)
文件说明— netlist&*.lib ● Verilog Netlist(v) 综合后生成的门级网表 o Timing Library files(lib) Max Timing Libraries: for setup time check v Min Timing Libraries: for hold time check Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright O 2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 6 文件说明——netlist.v & *.lib Verilog Netlist (.v) 综合后生成的门级网表 Timing Library files(.lib) Max Timing Libraries: for setup time check Min Timing Libraries: for hold time check
文件说明—LEF&SDc o Library Exchange Format (lef) LEF库描述标准单元库的工艺特性及单元(cell)数据 描述用于宏单元互连的各布线层的详细信息 布线器要用的via单元 v core和pad的位置定义 Timing Constraint File( sdc) SDC格式的设计约束文件 lO Assigment File(io) 该文件用于指定I/0PAD的顺序 Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright O 2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 7 文件说明——LEF & SDC Library Exchange Format (.lef) LEF库描述标准单元库的工艺特性及单元(cell)数据 描述用于宏单元互连的各布线层的详细信息 布线器要用的via单元 core和pad的位置定义 Timing Constraint File (.sdc) SDC格式的设计约束文件 IO Assigment File (.io) 该文件用于指定I/O PAD的顺序
准备工作1—修改 netlist. v文件 在网表 netlist, vl中插入MO的PAD,输入采用PI(PADC),输 出采用PO2(PAD),P和PO2都是PAD的单元库 加入电源地PAD,给core供电PVDD1VDD),PVSS1SS) ●具体做法是给 netlist. v(打开看看)中的最下面的综合顶层 模块 adder包裹一圈PAD,即重新写一个 adder_PAD模块, 作为新的顶层模块,实例化调用 adder模块: module adder PAD(Data a PAD, Data b PAD, cin PAD, Data out PAD, Cout PAD); input [15: 0] Data a PAD, Data b PAD; input Cin PAD; put [15: 0] Data out PAD; output Cout PAD; wire [15:9 Data a, Data b wire Cin, Cout: wire [15: 0] Data out; wire UDD USs Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright◎2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 Page 8 准备工作1——修改netlist.v文件 在网表netlist.v中插入I/O的PAD,输入采用PI(PAD,C),输 出采用PO2(PAD,I),PI和PO2都是PAD的单元库 加入电源地PAD,给core供电 PVDD1(VDD), PVSS1(VSS) 具体做法是给netlist.v(打开看看)中的最下面的综合顶层 模块adder包裹一圈PAD,即重新写一个adder_PAD模块, 作为新的顶层模块,实例化调用adder模块:
准备工作1——修改 netlist, v文件 adder U adder(Data a, Data b, cin, Data out, cout): PUDD1 U PUDD1( UDD(UDD)) PUSS1 U PUSS1( USS(USS)) PI U PIl(PAD(Cin PAD),.c(Cin)) PI U PI2(- PAD(Data a PAD[o]),.c(Data a[0])); PI U PI3( PAD(Data a PAD[1]),.c(Data a[1])); PI U PI4(- PAD(Data a PAD[2)),.C(Data a[2])); ●依照上面的例子将 adder pad模块补充完整 ●由于时间关系,本次实验不加PAD,但大实验时要求加PAD! Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright◎2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 准备工作1——修改netlist.v文件 依照上面的例子将adder_PAD模块补充完整 由于时间关系,本次实验不加PAD,但大实验时要求加PAD!
准备工作2——修改 constraints, sdc文件 ●由于修改了 netlist.V文件,顶层文件变成了 adder pad,所以 constraints sdc文件也要做相应修改,如下: ● current design由 adder改为 adder_PAD ●设置端口 delay的命令中 get_ ports全部改为 adder_PAD中的端口 如图 set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports in_PAD ll set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports/(Data_a_PAD[01) set_input_delay-clock [get_clocks clk]-add_delay 5.0 [get_ports((Data_a_PAD[11 set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports (Data_a_PAD[31] set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports(Data_a_PAD[513] set_input_delay -clock [get_clocks clk] -add_delay 5.0 [get_ports (Data_a_PAD[6])] t_input_delay-clock [get_clocks clk] -add_delay 5.0 [get_ports ] ●本次实验没有要求加PAD,因此这里也不用修改! Institute of Microelectronics, Peking University 集成电路设计实习一单元实验四 Copyright◎2011-2012 数字系统设计
Institute of Microelectronics, Peking University Copyright © 2011-2012 集成电路设计实习-单元实验四 数字系统设计 准备工作2——修改constraints.sdc文件 由于修改了netlist.v文件,顶层文件变成了adder_PAD,所以 constraints.sdc文件也要做相应修改,如下: current_design 由adder改为adder_PAD 设置端口delay的命令中get_ports全部改为adder_PAD中的端口, 如图: 本次实验没有要求加PAD,因此这里也不用修改!