ICC版图综合实例

合集下载

icc导入calibre仿真

icc导入calibre仿真

icc导入calibre仿真在输出ICC文件之前,为了方便后边导入用Calibre做LVS,最好给整个设计的输入输出端口打上Label,如果设计是模块级别的,没有IO和PAD,那么可以直接打在Port或者Terminal上,如果设计是Chip级别的,那么需要打在PAD上面。

ICC中用Tcl脚本给版图中的calibre仿真加Label的方法:set ALL_PORTS[get_ports -all]foreach_in_collectionPORT_NAME $ALL_PORTS {set xy_location[get_location $PORT_NAME]setx_location [lindex $xy_location 0]sety_location [lindex $xy_location 1]#由于$PORT_NAME的属性是一个collection,无法直接用字符串相关命令来得到port的字符串格式的名字,因此,可以用命令collection_to_list将其转化为list:set TEXT_NAME[collection_to_list $PORT_NAME#比如,一个端口的名字是tdo_pad,那么$PORT_NAME的值将是{tdo_pad},它的属性是一个只含一个元素的collection。

$TEXT_NAME的值是{{port tdo_pad}},由于前缀{{port和后缀}}格式固定,因此我们可以用字符串操作命令来截取中间一段string 得到端口的名字:set TEXT_NAME_1[string range $TEXT_NAME 7 end-2]#之后便可以用create_text命令来用指定层次给这些Port来打Label了。

#-origin控制Label的坐标位于Port金属的左下角;#-hight控制Label的高度;#-layer控制Label的层次,主要让Calibre工具识别它为一个Port。

北邮电子院专业实验报告

北邮电子院专业实验报告

电子工程学院ASIC专业实验报告班级:姓名:学号:班内序号:第一部分语言级仿真LAB 1:简单的组合逻辑设计一、实验目的掌握基本组合逻辑电路的实现方法;二、实验原理本实验中描述的是一个可综合的二选一开关,它的功能是当sel = 0时,给出out = a,否则给出结果out = b;在Verilog HDL中,描述组合逻辑时常使用assign结构;equal=a==b1:0是一种在组合逻辑实现分支判断时常用的格式;parameter定义的size参数决定位宽;测试模块用于检测模块设计的是否正确,它给出模块的输入信号,观察模块的内部信号和输出信号;三、源代码module scale_muxout,sel,b,a;parameter size=1;outputsize-1:0 out;inputsize-1:0b,a;input sel;assign out = sela:selb:{size{1'bx}};endmodule`define width 8`timescale 1 ns/1 nsmodule mux_test;reg`width:1a,b;wire`width:1out;reg sel;scale_mux`widthm1.outout,.selsel,.bb,.aa;initialbegin$monitor$stime,,"sel=%b a=%b b=%b out=%b",sel,a,b,out;$dumpvars2,mux_test;sel=0;b={`width{1'b0}};a={`width{1'b1}};5sel=0;b={`width{1'b1}};a={`width{1'b0}};5sel=1;b={`width{1'b0}};a={`width{1'b1}};5sel=1;b={`width{1'b1}};a={`width{1'b0}};5 $finish;endendmodule四、仿真结果与波形LAB 2:简单时序逻辑电路的设计一、实验目的掌握基本时序逻辑电路的实现;二、实验原理在Verilog HDL中,相对于组合逻辑电路,时序逻辑电路也有规定的表述方式;在可综合的Verilog HDL模型中,我们常使用always块和posedge clk或negedge clk的结构来表述时序逻辑;在always块中,被赋值的信号都必须定义为reg型,这是由时序逻辑电路的特点所决定的对于reg 型数据,如果未对它进行赋值,仿真工具会认为它是不定态;为了正确地观察到仿真结果,在可综合的模块中我们通常定义一个复位信号rst-,当它为低电平时对电路中的寄存器进行复位;三、源代码`timescale 1 ns/100 psmodule countercnt,clk,data,rst_,load;output4:0cnt ;input 4:0data;input clk;input rst_;input load;reg 4:0cnt;alwaysposedge clk or negedge rst_ifrst_cnt<=0;elseifloadcnt<=3 data;elsecnt<=4 cnt + 1;endmodule`timescale 1 ns/1 nsmodule counter_test;wire4:0cnt;reg 4:0data;reg rst_;reg load;reg clk;counter c1t cnt,.clk clk,.datadata,.rst_rst_,.loadload;initial beginclk=0;forever begin10 clk=1'b1;10 clk=1'b0;endendinitialbegin$timeformat-9,1,"ns",9;$monitor"time=%t,data=%h,clk=%b,rst_=%b,load=%b,cnt=%b", $stime,data,clk,rst_,load,cnt;$dumpvars2,counter_test;endtask expect;input 4:0expects;ifcnt ==expectsbegin$display"At time %t cnt is %b and should be %b", $time,cnt,expects;$display"TEST FAILED";$finish;endendtaskinitialbeginnegedge clk{rst_,load,data}=7'b0_X_XXXXX;negedge clkexpect5'h00;{rst_,load,data}=7'b1_1_11101;negedge clkexpect5'h1D;{rst_,load,data}=7'b1_0_11101;repeat5negedge clk;expect5'h02;{rst_,load,data}=7'b1_1_11111;negedge clkexpect5'h1F;{rst_,load,data}=7'b0_X_XXXXX;negedge clkexpect5'h00;$display"TEST PASSED";$finish;endendmodule四、仿真结果与波形五、思考题该电路中,rst-是同步还是异步清零端在的always块中reset没有等时钟,而是直接清零;所以是异步清零端;LAB 3:简单时序逻辑电路的设计一、实验目的使用预定义的库元件来设计八位寄存器;二、实验原理八位寄存器中,每一位寄存器由一个二选一MUX和一个触发器dffr组成,当load=1,装载数据;当load=0,寄存器保持;对于处理重复的电路,可用数组条用的方式,使电路描述清晰、简洁; 三、源代码`timescale 1 ns /1 nsmodule clockclk;reg clk;output clk;initial beginclk=0;forever begin10 clk=1'b1;10 clk=1'b0;endendendmodulemux及dffr模块调用代码mux mux7.outn17,.selload,;dffr dffr7 .qout7, .dn17, .clkclk, .rst_rst_ ;mux mux6 .outn16, .selload, .bdata6, .aout6;dffr dffr6 .qout6, .dn16, .clkclk, .rst_rst_ ;mux mux5 .outn15, .selload, .bdata5, .aout5;dffr dffr5 .qout5, .dn15, .clkclk, .rst_rst_ ;mux mux4 .outn14, .selload, .bdata4, .aout4;dffr dffr4 .qout4, .dn14, .clkclk, .rst_rst_ ;.selload, .bdata3, .aout3;dffr dffr3 .qout3, .dn13, .clkclk, .rst_rst_ ;mux mux2 .outn12, .selload, .bdata2, .aout2;dffr dffr2 .qout2, .dn12, .clkclk, .rst_rst_ ;mux mux1 .outn11, .selload, .bdata1, .aout1;dffr dffr1 .qout1, .dn11, .clkclk, .rst_rst_ ;mux mux0 .outn10, .selload, .bdata0, .aout0;dffr dffr0 .qout0, .dn10,;例化寄存器register r1.datadata,.outout,.loadload,.clkclk,.rst_rst_;例化时钟clock c1.clkclk;添加检测信号initialbegin$timeformat-9,1,"ns",9;$monitor"time=%t,clk=%b,data=%h,load=%b,out=%h",$stime,clk,data,load,out;$dumpvars2,register_test;end四、仿真结果与波形LAB 4:用always块实现较复杂的组合逻辑电路一、实验目的掌握用always实现组合逻辑电路的方法;了解assign与always两种组合逻辑电路实现方法之间的区别;二、实验原理仅使用assign结构来实现组合逻辑电路,在设计中会发现很多地方显得冗长且效率低下;适当地使用always来设计组合逻辑,会更具实效;本实验描述的是一个简单的ALU指令译码电路的设计示例;它通过对指令的判断,对输入数据执行相应的操作,包括加、减、或和传数据,并且无论是指令作用的数据还是指令本身发生变化,结果都要做出及时的反应;示例中使用了电平敏感的always块,电平敏感的触发条件是指在后括号内电平列表的任何一个电平发生变化就能触发always块的动作,并且运用了case结构来进行分支判断;在always中适当运用default在case结构中和else子if…else结构中,通常可以综合为纯组合逻辑,尽管被赋值的变量一定要定义为reg型;如果不使用default或else对缺省项进行说明,易产生意想不到的锁存器;三、源代码电路描述alwaysopcode or data or accumbeginifaccum==8'b00000000zero=1;elsezero=0;caseopcodePASS0: out =accum;PASS1: out =accum;ADD: out = data + accum;AND: out =data&accum;XOR: out =data^accum;PASSD: out=data;PASS6: out=accum;PASS7: out=accum;default: out=8'bx;endcaseend四、仿真结果与波形LAB 5:存储器电路的设计一、实验目的设计和测试存储器电路;二、实验原理本实验中,设计一个模块名为mem的存储器仿真模型,该存储器具有双线数据总线及异步处理功能;由于数据是双向的,所以要注意,对memory的读写在时序上要错开;三、源代码自行添加的代码assign data= readmemoryaddr:8'hZ;always posedge writebeginmemoryaddr<=data7:0;end四、仿真结果与波形LAB 6:设计时序逻辑时采用阻塞赋值与非阻塞赋值的区别一、实验目的明确掌握阻塞赋值与非阻塞赋值的概念和区别;了解阻塞赋值的使用情况;二、实验原理在always块中,阻塞赋值可以理解为赋值语句是顺序执行的,而非阻塞赋值可以理解为并发执行的;实际时序逻辑设计中,一般情况下非阻塞赋值语句被更多的使用,有时为了在同一周期实现相互关联的操作,也使用阻塞赋值语句;三、源代码`timescale 1 ns/ 100 psmodule blockingclk,a,b,c;output3:0b,c;input 3:0a;input clk;reg 3:0b,c;alwaysposedge clkbeginb =a;c =b;$display"Blocking: a=%d,b=%d,c=%d.",a,b,c;endendmodule`timescale 1 ns/ 100 psmodule non_blockingclk,a,b,c;output3:0 b,c;input3:0 a;input clk;reg 3:0b,c;always posedge clkbeginb<=a;c<=b;$display"Non_blocking:a=%d,b=%d,c=%d",a,b,c;endendmodule`timescale 1 ns/ 100 psmodule compareTop;wire 3:0 b1,c1,b2,c2;reg3:0a;reg clk;initialbeginclk=0;forever 50 clk=~clk;endinitial$dumpvars 2,compareTop;initialbegina=4'h3;$display"_______________________________";100 a =4'h7;$display"_______________________________";100 a =4'hf;$display"_______________________________";100 a =4'ha;$display"_______________________________";100 a =4'h2;$display"_______________________________";100 $display"_______________________________";$finish;endnon_blocking nonblockingclk,a,b2,c2;blocking blockingclk,a,b1,c1;endmodule四、仿真结果与波形LAB 7:利用有限状态机进行复杂时序逻辑的设计一、实验目的掌握利用有限状态机FSM实现复杂时序逻辑的方法;二、实验原理控制器是CPU的控制核心,用于产生一系列的控制信号,启动或停止某些部件;CPU何时进行读指令,何时进行RAM和I/O端口的读写操作等,都由控制器来控制;三、源代码补充代码nexstate<=state+1'h01;casestate1:begin sel=1;rd=0;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end2:begin sel=1;rd=1;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end3:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end4:begin sel=1;rd=1;ld_ir=1;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end 5:begin sel=0;rd=0;ld_ir=0;inc_pc=1;ld_pc=0;data_e=0;ld_ac=0;wr=0;ifopcode==`HLThalt=1;end6:beginsel=0;rd=alu_op;ld_ir=0;inc_pc=0;halt=0;ld_pc=0;data_e=0;ld_ac=0;wr=0;end7:beginsel=0;rd=alu_op;ld_ir=0;halt=0;data_e=alu_op;ld_ac=0;wr=0;ifopcode==`SKZinc_pc<=zero;ifopcode==`JMPld_pc=1;end0:beginsel=0;rd=alu_op;ld_ir=0;halt=0;data_e=alu_op;ld_ac=alu_op;inc_pc=opcode==`SKZ&zero||opcode==`JMP;ifopcode==`JMPld_pc=1;ifopcode==`STOwr=1;endNo.00000000 No.00000000 No.00000101 No.00000001 // 1C TEMP: //1 temporary variable00000001 // 1D time: // 1 constant 144 - max value 00000110 // 1E LIMIT: // 6 constant 1一、仿真结果与波形第二部分电路综合一、实验目的掌握逻辑综合的概念和流程,熟悉采用Design Compiler进行逻辑综合的基本方法;二、实验内容采用SYNOPSYS公司的综合工具Design Compiler对实验7的做综合;三、源代码与实验指导书中相同;四、门级电路仿真结果与波形五、思考题1.文件是verilog语言及的描述还是结构化的描述是结构化的描述;2.文件中,对触发器的延迟包括哪些信息包括对逻辑单元和管脚的上升/下降时延的最大值、最小值和典型值;第三部分版图设计一、实验目的掌握版图设计的基本概念和流程,熟悉采用Sysnopsys ICC工具进行版图设计的方法;二、实验内容对电路综合输出的门级网表进行布局布线;三、源代码与实验指导书中相同;四、仿真结果与波形布局规划后结果未产生core ring和mesh前产生core ring和mesh后电源线和电影PAD连接后filler PAD填充后布局后结果时钟树综合后结果布线后结果寄生参数的导出和后仿五、思考题1.简述ICC在design setup阶段的主要工作;创建设计库,读取网表文件并创建设计单元,提供并检查时间约束,检查时钟;在对之前的数据与信息进行读取与检查后保存设计单元;2.为什么要填充filler padfiller pad把分散的pad单元连接起来,把pad I/O区域供电连成一个整体;使它们得到持续供电并提高ESD保护能力;3.derive_pg_connection的作用是什么描述有关电源连接的信息;4.简述floorplan的主要任务;对芯片大小、输入输出单元、宏模块进行规划,对电源网络进行设计;5.简述place阶段的主要任务;对电路中的延时进行估计与分析,模拟时钟树的影响,按照时序要求,对标准化单元进行布局;6.简述CTS的主要步骤;设置时钟树公共选项;综合时钟树;重新连接扫描链;使能传播时钟;Post-CTS布局优化;优化时钟偏移;优化时序;实验总结经过数周的ASIC专业实验,我对芯片设计流程、Verilog HDL语言、Linux基本指令和Vi文本编辑器有了基本的了解;虽然之前对芯片设计、VHDL一无所知,但通过实验初步熟悉了ASIC的体系结构和VHDL的基本语法,对电路中时钟、寄生参数、元件布局带来的影响也有了了解;我在实验中也遇到了许多问题,但我在老师、助教、同学的帮助下解决了这些问题,也有了更多收获;通过这次ASIC专业实验,我加深了对本专业的认识;我会继续努力成为合格的电子人;。

北大Verilog课件-16Verilog存储器设计

北大Verilog课件-16Verilog存储器设计

my_rom_data 0000 0101 1100 0011 1101 0010 0011 1111 1000 1001 1000 0001 1101 1010 0001 1101
简单的RAM描述
RAM描述比ROM略微复杂,因为必须既有读功能又有写功能,而读写通常使用同一数据总线。这要求使用新的处理双向数据线的建模技术。在下面的例子中,若读端口未使能,则模型不驱动数据总线;此时若数据总线没有写数据驱动,则总线为高阻态Z。这避免了RAM写入时的冲突。
若en_a_b=1,基本单元b1使能,bus_a数据传送到bus_b
若en_b_a=1,基本单元b2使能,bus_b数据传送到bus_a
信号en_a_b和en_b_a控制使能
双向端口建模 — 使用持续赋值建模
module bus_xcvr( bus_a, bus_b, en_a_b, en_b_a); inout bus_a, bus_b; input en_a_b, en_b_a; assign bus_b = en_a_b ? bus_a : 'bz; assign bus_a = en_b_a ? bus_b : 'bz; // Structural module logic endmodule
这个描述可综合,但许多工具仅仅产生一个寄存器堆,因此与一个真正的存储器相比耗费更多的面积。
参数化存储器描述
在下面的例子中,给出如何定义一个字长和地址均参数化的只读存储器件。
module scalable_ROM (mem_word, address); parameter addr_bits = 8; // 地址总线宽度 parameter wordsize = 8; // 字宽 parameter words = (1 << addr_bits); // mem容量 output [wordsize:1] mem_word; // 存储器字 input [addr_bits:1] address; // 地址总线 reg [wordsize:1] mem [0 : words-1]; // mem声明 // 输出存储器的一个字 wire [wordsize:1] mem_word = mem[address]; endmodule

广东工业大学IC实习报告

广东工业大学IC实习报告

实习报告实习名称 IC设计实习实习内容 HDMI高清多媒体接口研究与设计学生学院材料与能源学院专业班级2012级微电子学2班学号 3112007374 学生姓名郑培柱实习总负责人徐明2015年 8 月18 日目录【前言】- 3 - 正文 - 3 -0.linux介绍与常用命令 - 3 -1.VCS实验设计和步骤错误!未定义书签。

2.DC实验设计和步骤错误!未定义书签。

3.ICC实验设计和步骤错误!未定义书签。

4.PT实验设计和步骤错误!未定义书签。

结尾错误!未定义书签。

【前言】现代社会正在飞速的发展,集成电路已经成为现代科技发展的支柱产业,现代技术产业的心脏,可以说,没有集成电路,就没有现代社会。

集成电路发展迅猛,按功能结构分类集成电路可以分为模拟集成电路、数字集成电路和数/模混合集成电路三大类。

按制作工艺分类集成电路可分为半导体集成电路和膜集成电路。

按集成度高低分类集成电路可分为 SSI小规模集成电路、MSI中规模集成电路、LSI大规模集成电路、VLSI超大规模集成电路、ULSI特大规模集成电路、GSI 巨大规模集成电路也被称作极大规模集成电路或超特大规模集成电路。

IC集成芯片设计流程主要包括代码设计和验证VCS(Verilog Compiled Simulator)、前段设计与逻辑综合DC(Design Compiler)、后端实体设计ICC(IC Compiler)和时序验证PT(Prime Time)。

此次实习根据初学者的知识掌握程度合理地安排了实习的难度,也让实习生同学能够初步了解IC芯片设计的整个流程,充分的了解芯片设计每一阶段所需要的基本知识和技能。

HDMI芯片的仿真验证设计是本次实习的主要研究内容,其中每一阶段从工具介绍、指令操作、仿真设计和最后所要达到的实验目的都有严格的标准,能够达到本次实习要求的目的。

HDMI的全称是“High Definition Multimedia Interface 高清多媒体接口”。

ICC的基本使用步骤

ICC的基本使用步骤

用icc_shell -g 启动GUI界面在GUI界面中,File—>Open Design打开已建立好的MW library;若是新建立MW library,一般用以下步骤:(最好每做一个步骤,保存一次数据,如:save_mw_cel -as floorplan)步骤1:在lab1_flow路径下启动ICC shell。

> icc_shell –gui步骤2:设置search path、target_library、link_library:Lib_setup.tcl:# Library setuplappend search_path ./ref/db ./ref/tlupset target_library "sc_max.db"set link_library "*"foreach lib {sc io ram16x128} {lappend link_library ${lib}_max.dbset_min_library ${lib}_max.db -min_ver ${lib}_min.db}步骤3:为设计创建library。

> create_library步骤4:打开创建的library。

> open_mw_lib步骤5:读入verilog网表。

> read_verilog步骤6:确认当前顶层设计。

> current_design RISC_CHIP步骤7:将网表中例化的单元与参考库中的单元做连接。

> link步骤8:设置TLU+文件。

步骤9:读入SDC文件,设置芯片工作环境。

步骤10:检查设计的合理性。

>set_zero_interconnect_delay_mode true>report_timing>report_constraints –all_violators>set_zero_interconnect_delay_mode false步骤11:在设计中添加电源pad和corner cell等physical only cells。

布局布线中一种拥塞问题的解决方法

布局布线中一种拥塞问题的解决方法

布局布线中一种拥塞问题的解决方法佚名【期刊名称】《电子世界》【年(卷),期】2019(000)013【总页数】3页(P130-132)【正文语种】中文随着深亚微米工艺的广泛应用,集成电路后端设计面临诸多挑战,其中成本的降低变得越来越重要,降低芯片面积成为降低成本一重要因素。

在降低芯片面积时通常会产生布线拥塞问题。

拥塞不仅会导致芯片无法绕通还会导致时序和串扰问题。

拥塞有多种可能原因引起,其中一种是由局部高密度标准单元引起的拥塞,这种拥塞在芯片版图实现时可以采取加partial placement blockage方式,并在不同阶段逐步降低其百分比,增加标准单元的利用率的方式来解决。

实验结果表明,该方法在解决芯片拥塞问题的同时可以更好的实现时序收敛,完成芯片设计。

1.引言随着微电子学的迅猛发展,芯片特征尺寸的减小给集成电路设计在系统级、算法级、电路级以及版图级的实现提出了新的挑战。

物理设计是实现数字集成电路的关键和难点,物理设计(曾宏,深亚微米下芯片后端物理设计方法学研究:中国集成电路,2010)的主要工作是要把前端SOC设计完成的功能以版图的形式映射到一定的工艺上去实现。

物理设计流程有其复杂性,一般分为布局、放置标准单元、时钟树综合、静态时序分析、布线及时序优化等若干子布骤。

随着芯片规模的扩大和工艺水平的提高,布线阶段的拥塞问题(辛勇,施国勇,一个基于拥阻密度估计的布局优化方法:仪器仪表用户,2007)越来越突出,当在布线阶段发现某些区域存在拥挤问题时就需要重新返回到布局阶段调整,这个过程可能需要多次循环反复,因此一个合理的布局是版图最终能满足设计要求、实现设计目标的一个基础。

2.拥塞概述2.1 拥塞概念什么是布线拥塞呢?芯片在布线的时候,当可利用的布线资源少于所需要的布线资源时,就会发生布线拥塞。

通常我们可以借助自动布局布线工具,本文以新思IC compiler工具结果加以分析,ICC在报告拥塞时默认首先进行全局布线,使用全局布局布线的结果来报告拥塞。

icc2pr步骤

icc2pr步骤

icc2pr步骤1.输入设计文件:首先,将设计文件输入到ICC2中。

设计文件包括逻辑网表文件(.v 或.edf文件)和物理约束文件(.sdc文件)。

逻辑网表文件描述了设计中的各个模块、组件以及它们之间的关系,物理约束文件描述了各个模块和组件的成本因素,如传输延迟、功耗等。

2.划分设计:在划分设计阶段,ICC2将设计分解为一系列逻辑划分块。

每个逻辑划分块中包含了多个逻辑单元,并尽量减少逻辑单元之间的通信。

3.高级合并和流水线:在高级合并和流水线阶段,ICC2将相似的逻辑单元进行合并以减少面积和功耗,并对逻辑进行流水线分割以提高时序性能。

4.综合优化:在综合优化阶段,ICC2会根据设计需求和约束进行全局优化,以提高面积利用率、功耗、时钟频率等设计指标。

5.版图布局:在版图布局阶段,ICC2会生成初始化版图布局,包括逻辑单元的位置和电路的走线。

6.全局布线:在全局布线阶段,ICC2会根据指定的物理约束进行逻辑单元的布线。

全局布线过程中,ICC2会通过考虑电路延迟、布线的规则以及时钟和功耗等因素来寻找最优的布线路径。

7.更新版图布局:在全局布线结束后,ICC2将根据实际布线结果更新版图布局,并继续进行以下步骤。

8.时钟树合成:在时钟树合成阶段,ICC2会生成时钟树,以提供适当的时钟信号给各个逻辑单元。

9.导引布线:在导引布线阶段,ICC2会考虑时序要求,根据设计规则进行详细布线,以确保时序约束得到满足。

10.栅极对齐和翻转结构:在栅极对齐和翻转结构阶段,ICC2会对栅极位置进行优化以减少电子迁移速度和功耗,并对布线进行翻转结构优化。

11.布局修正和优化:在布局修正和优化阶段,ICC2会对布局进行检查,并根据布局规则对布局进行修正和优化。

12.路由单元布线:在路由单元布线阶段,ICC2会根据最终版图布局进行布线,并生成详细的连线。

13.栅极对齐:在栅极对齐阶段,ICC2会对杂散容量和电子迁移进行栅极对齐处理,以提高电路的可靠性和稳定性。

第5章 版图实例分析

第5章   版图实例分析

(1986年) 5
最小隔离槽宽度
10
元件与隔离槽最小间距
18
埋层与隔离槽最小间距
18
基区和集电极孔最小间距
5
最小发射极孔
8×8
最小基极孔宽
8
最小集电极孔宽
8
最小电阻条宽
10
电阻条间最小间距
7
最小电阻引线孔
8×8
铝条最小宽度(包括两边覆盖2μm)
10
长铝条最小间距
10
短铝条最小间距
5
键合点最小面积
100×100
(4)画布局布线草图 画此草图的目的是:①大致安排一下各元件的位置。 ②画出内连线的连接图形,使满足设计原则中对Al线的要 求(如连通、无交叉等)。 对此电路来说,考虑到电路引出端的排列,我们希望 输出管Q5安排在右下角,隔离槽的接点地放在右角,电源 接点安排在左下角。这样,多发射 极晶体管Q1以及Q2分别安排 在左上角及右上角就较为适宜 了。 这一布局使压焊点离管 脚最近,不会发生热压引线交 叉的现象。 布局、布线草图如 图所示。由图可见,内引线中只 有一条连线(R5接到Q5管基极) 跨过电阻R4,其余连线都没有 跨过元件,这是符合设计原则的。 必须注意,电阻隔离岛要接最高 电位,即接电源电压,隔离槽接地。
铝栅工艺CMOS反相器版图举例 图A为铝栅CMOS反相器版图示意图。可见,
为了防止寄生沟道以及p管、n管的相互影响, 采用了保护环或隔离环:对n沟器件用p+环包围 起来, p沟器件用n+环隔离开,p+、n+环都以反 偏形式接到地和电源上,消除两种沟道间漏电 的可能。
版图分解: •刻P阱 •刻P+区/环 •刻n+区/环 •刻栅、预刻接触孔 •刻接触孔 •刻Al

北大集成电路版图设计课件_第9章集成电路版图设计实例

北大集成电路版图设计课件_第9章集成电路版图设计实例

22
9.5静电保护电路设计实例
到电路
1.MOS管型静电保护
NMOS GND
P管与N管距离 要远,防闩锁
PAD
VCC
PMOS
23
9.5静电保护电路设计实例
2. 二极管型静电保护
到电路 衬底和 N+构成 的二极管
GND
二极管 标识层
PAD
VCC N阱中的 P+和N+ 构成的二 极管
24
9.5静电保护电路设计实例
8
1:8比例PNP管对称设计
43
9.7带隙基准源版图实例
寄生PNP双极型晶体管版图设计
虚拟管 虚拟管
1
虚拟管
虚拟管
4
1:4比例PNP管对称设计
44
9.7带隙基准源版图实例
寄生PNP双极型晶体管版图设计
1:4比例PNP管对称设计 1:8比例PNP晶体管版图
45
9.7带隙基准源版图实例
对称电阻版图设计
26
9.5静电保护电路设计实例
电源静电保护
栅电容
泄放管
GND
VCC
27
9.5静电保护电路设计实例
二级保护
VCC 二级保护 PAD 限流电阻 二级限流电阻
28
9.5静电保护电路设计实例
二级保护
至内部电路 VCC GND
二级限流电阻
一级保护
29
9.6运算放大器版图设计实例
原理图
VCC Q8 Q3 Q6
垂直走向MOS管结构 水平走向MOS管结构
6
9.2 数字版图设计实例
1.反相器-并联反相器的版图
直接并联
共用漏区
7

Ledit及器件版图设计ppt课件

Ledit及器件版图设计ppt课件
L-EDIT的应用
Auto panning:窗口自动 平移。即当鼠标碰到版 图窗口边缘时会自动平 移窗口跟随鼠标。
Active push rubberbanding:活动推拉。 选中后绘图时不必一直 按住鼠标来绘制多边形, 只用单击起点和结束点 即可完成
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
版图设计规则
a:阱的最小宽度 b:不同电位的阱间距 c:相同电位的阱间 距 d:阱对有源区的最小覆盖 e:阱外有源区和阱的间距
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
版图设计规则
a:有源区的最小宽度 b:沟道最小宽度 c:有源区间距
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
举例:CMOS结构示意图
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
举例:CMOS结构示意图
L-edit 14.0基本的操作界面
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
L-EDIT的应用
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去
火灾袭来时要迅速疏散逃生,不可蜂 拥而出 或留恋 财物, 要当机 立断, 披上浸 湿的衣 服或裹 上湿毛 毯、湿 被褥勇 敢地冲 出去

数字电路IC后端流程简介

数字电路IC后端流程简介
Number and name designations for each layer/via Physical and electrical characteristics of each layer/via Design rules for each layer/Via (Minimum wire widths and wire-to-wire spacing, etc.) Units and precision for electrical units Colors and patterns of layers for display …
save_mw_cel –as ORCA_data_setup
Note: The open cell is still the original ORCA cell !!
2015/9/20
23
西安邮电大学微电子学系
数字IC后端流程
CMOS集成电路版图
Data Setup
Design planning Placement
CMOS集成电路版图
2015/9/20
19
西安邮电大学微电子学系
7. Define Logical Power/Ground Connections
CMOS集成电路版图
2015/9/20
20
西安邮电大学微电子学系
8. Apply and Check Timing Constraints
CMOS集成电路版图
输入输出单元(I/O pad cell)
输入 输出 三态 双向
2015/9/20
考虑 ESD
8
西安邮电大学微电子学系
Data Setup
CMOS集成电路版图
Physical Reference Libraries

版图_基础篇

版图_基础篇

版图_基础篇版图设计基础篇----invert1、虚拟机如下2、打开虚拟系统(预先将装好软件的虚拟系统拷贝到电脑中,拷贝的盘格式格式化为NTFS 格式)3、Power on4、点击Power on this virtual machine,等待。

5、进⼊linux ⽤户名root 密码 mimamima6、显⽰桌⾯7、打开终端,右键选择open terminal8、Ls查看⽬录9、进⼊PDK⽂件夹 cd chrt1810、打开cadence icfb11、新建(打开(osc中有我做的例⼦))原理图12、File new library13、Name 选择attach to an existing techfile14、选择chrt18rf15、选择cellview16、选择刚新建的library,⾃命名cell name17、按i添加元件,或者选择add instance18、按browse选择选择library19、我们⼀般选择chrtbase和chrt18rf⾥的元器件,依次往右选,如上选择了chrtbase中MOS管,型号nmos-1p8,最后⼀栏选symbol,然后回到virtuoso schematic editing,点击左键即选中了该元件如下图20、选中器件按字母Q可以修改器件的属性,多MOS管⽽⾔⼀般是W,L,fingers,同样的⽅法选择其他器件修改属性。

21、save连线;左侧这⼏个功能经常⽤到22、 C 复制,p 添加pin(输⼊输出接⼝如下)23、输⼊四个pin name以空格隔开,direction 选择inputoutput,点击hide在virtuoso schematic editing原理图中合适位置依次点击⿏标左键放置pin,然后连线如下图。

Save ⾄⽆错。

24、⽣成cellview供仿真调⽤,如下选择cellview,ok,ok,关闭⽣成的cellview和原理图invert25、可如下修改user preferences26、修改成10次,这个画错了,可以按u回到上⼀步,可回10步27、再新建⼀个原理图⽤来做前仿(原理图级仿真)28、这回可以在我们⾃⼰建的库⾥调出刚才画的反向器invert,⽅法同其他器件的添加,只是库选择mmlinvert,可按R再电击invert旋转器件。

能全面的布局布线系统 icc

能全面的布局布线系统 icc

能全面的布局布线系统概述IC Compiler 是Synopsys Galaxy™ 设计实现平台的一个必要组成部分。

整个设计实现平台提供全面的设计解决方案,包括逻辑综合、物理实现、低功耗设计及可制造性设计。

IC Compiler是一个单独的、具备收敛性的、芯片级物理实现工具,集扁平化及层次化设计规划、布局和优化、时钟树综合、布线、可制造性及低功耗众多功能于一体,使设计人员能够如期完成当前的高性能、高度复杂的设计实现。

下载数据手册IC Compiler 是一套功能全面的布局布线系统,在时序、面积、功耗、信号完整性、布线能力、“开箱即用”结果及快速设计收敛方面均可提供最佳结果质量(QoR)。

整个流程中的多核支持可提高生产率。

新技术使设计人员能够处理数千兆规模的复杂设计,并满足紧张的项目日程安排。

IC Compiler 与行业标准签核解决方案–PrimeTime® SI 及StarRC™ 有着紧密的相关性。

此外,还提供采用 PrimeTime ECO 指导信息的最佳物理 ECO 实现解决方案。

日益复杂的设计、不断增加的 DRC 规则以及复杂的制造合规性需求使得当前盛行的先实现后验证的做法造成物理验证不够令人满意。

IC Validator DRC/LVS 签核解决方案与 IC Compiler 的无缝集成使 In-Design 技术成为可能,从而缓解设计人员在设计实现阶段做快速签核收敛所遇到的困难。

IC Compiler 提供全面的可制造性解决方案,在优化时序、面积、功耗、可测性和可布线性的同时,良率也得以优化。

IC Compiler 不仅可以提高设计的可制造性,还可以优化功能及参数化的良率。

采用 IC Compiler 并行层次化设计可强化设计规划和芯片级可行性尝试及分析功能,能够处理大规模复杂设计。

通过早期分析和可行性探索,IC Compiler 能够提供更小的芯片尺寸,实现可预见的设计收敛,从而降低设计成本。

数字asic流程实验(一)环境准备

数字asic流程实验(一)环境准备

数字asic流程实验(⼀)环境准备数字asic流程实验(⼀)环境准备1.前⾔该系列博客主要参考北京理⼯⼤学《基于标准单元法数字集成电路设计》实验课程指导书,进⾏了数字ASIC从设计到实现所需要的源代码(Verilog)编写,前仿真,逻辑综合,布局布线,静态时序分析,等效性检验,以及后仿真的流程。

实验所使⽤的软件包括:Modelsim:Mentor公司推出的专业的HDL语⾔仿真软件,是本次实验中前仿真和后仿真所使⽤的软件Design Compiler:简称DC,是Synopsys公司⽤于做电路综合的核⼼⼯具,可以将HDL描述的电路转换为基于⼯艺库的门级⽹表,是本次实验中逻辑综合所使⽤的软件IC Compiler:简称ICC,是Synopsys⽤于芯⽚版图设计的核⼼⼯具,可以基于⼯艺库进⾏⾃动的电路布局布线以及DRC、LVS验证,是本次实验中布局布线所使⽤的软件Prime Time:简称PT,PrimeTime是Synopsys的⼀个单点的全芯⽚、门级静态时序分析器。

它能分析⼤规模、同步、数字ASICS的时序,是本次实验静态时序分析所使⽤的软件Formality:简称FM,Formality是Synopsys的形式验证⼯具,可以⽤它来⽐较⼀个修改后的设计(如ECO)和它原来的版本,或者⼀个RTL级的设计和它的门级⽹表,再或者综合后的门级⽹表和做完布局布线及优化之后的门级⽹表在功耗上是否⼀致,是本次实验等效性检验所使⽤的软件实验环境:Modelsim安装于Win 10系统中,其余Synopsys公司软件安装于VMWare虚拟机上运⾏的CentOS 6系统中,实验环境所需要安装的软件和虚拟机较⼤,提前准备⾄少150G以上的存储空间2.Modelsim安装在安装和破解全流程完成之后再尝试运⾏Modelsim1.运⾏安装程序2.点击下⼀步3.选择安装路径,点击下⼀步4.点击同意5.等待安装6.提⽰安装快捷⽅式7.添加路径8.不安装Hardware Security Key Driver,该步骤⼀定选否,不然会导致安装失败9.安装完成10.取消⽂件 mgls64.dll 的只读属性把MentorKG.exe和patch_dll.bat⼀起拷贝到modelsim安装⽬录的win32或win64下(modelsim⼀定要在这个⽬录下)运⾏patch_dll.bat,产⽣license设置环境变量MGLS_LICENSE_FILE,变量值为license放置的⽬录。

模拟集成电路与数字集成电路设计工具实用教程 ICC使用教程

模拟集成电路与数字集成电路设计工具实用教程 ICC使用教程

(最好每做一个步骤,保存一次数据,如:save_mw_cel -as floorplan)ICC实验步骤步骤1:Design Setup1.1数据准备新建后端布局布线目录icc_40,准备好以下文件1)DC导出的网表文件(top_pad.mapped.v)2)DC导出的sdc文件(top_pad.sdc)3)手工编写的tdf文件(/tmp/dig_lab/top_pad.tdf)在icc_40目录内启动终端,在终端下输入:>source /opt/demo/synopsys.env>icc_shell -gui &1.2设置search path、target_library、link_library输入下面的命令:>source -echo /tmp/dig_lab/icc_lib_setup.tcl1.3为设计创建libraryTechnology file为:/home/smic/smic_40/SCC40NLL_HS_RVT_V0p2b/astro/tf/scc40nll_hs_8lm_2tm.tf 两个参考库分别为:/home/smic/smic_40/SCC40NLL_HS_RVT_V0p2b/astro/scc40nll_hs_rvt/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p5/apollo/SP40NLLD2RN_3P3V_V0p1_8 MT_2TM1.4读入verilog网表1.5进行uniquify输入下面的命令:>uniquify_fp_mw_cel#确认当前顶层设计,输入命令:>current_design top_pad#将网表中例化的单元与参考库中的单元做连接,输入命令:>link1.6设置TLU+文件MAX_TLUPLUS_FILE:/home/smic/smic_40/SCC40NLL_HS_RVT_V0p2b/astro/tluplus/TD‐LO40‐XS‐2006v0R_1Px M_2TM9k_ALPA28k/1P8M_2TM/StarRC_40LL_1P8M_2TM_ALPA28K_RCMAX.tluplusMIN_TLUPLUS_FILE:/home/smic/smic_40/SCC40NLL_HS_RVT_V0p2b/astro/tluplus/TD‐LO40‐XS‐2006v0R_1Px M_2TM9k_ALPA28k/1P8M_2TM/StarRC_40LL_1P8M_2TM_ALPA28K_RCMIN.tluplusMAP_FILE:/home/smic/smic_40/SCC40NLL_HS_RVT_V0p2b/astro/tluplus/TD‐LO40‐XS‐2006v0R_1Px M_2TM9k_ALPA28k/1P8M_2TM/StarRC_40LL_1P8M_2TM_cell.map1.7读入SDC文件,设置芯片工作环境1.8 检查设计的合理性依次输入以下命令:>set_zero_interconnect_delay_mode true>report_timing>report_constraint ‐all_violators>set_zero_interconnect_delay_mode false步骤2:Floorplan2.1在设计中添加电源地IO及IO Corner1)I O Corner2)为Core供电的IO(VDD VSS)3)为IO供电的IO(VDD_IO VSS_IO)直接输入以下命令:create_cell {CORNER1 CORNER2 CORNER3 CORNER4} {PCORNERRN} create_cell {VDD} PVDD1RNcreate_cell {VSS} PVSS1RNcreate_cell {VDD_IO} PVDD2RNcreate_cell {VSS_IO} PVSS2RN2.2读入IO约束文件相应的命令为:read_pin_pad_physical_constraints /tmp/dig_lab/top_pad.tdf该文件内容如下:set_pad_physical_constraints -pad_name clk_block -side 1 -order 1set_pad_physical_constraints -pad_name data_in_block -side 1 -order 2 set_pad_physical_constraints -pad_name en_block -side 2 -order 1set_pad_physical_constraints -pad_name fsk_out_block -side 2 -order 2 set_pad_physical_constraints -pad_name VDD -side 3 -order 1set_pad_physical_constraints -pad_name VSS -side 3 -order 2set_pad_physical_constraints -pad_name VDD_IO -side 4 -order 1set_pad_physical_constraints -pad_name VSS_IO -side 4 -order 2set_pad_physical_constraints -pad_name CORNER1 -side 1 -order 0set_pad_physical_constraints -pad_name CORNER2 -side 2 -order 0 set_pad_physical_constraints -pad_name CORNER3 -side 3 -order 0 set_pad_physical_constraints -pad_name CORNER4 -side 4 -order 02.3创建floorplan相应的命令为:>create_floorplan -control_type aspect_ratio \ -core_aspect_ratio 1 \-core_utilization 0.5 \-row_core_ratio 1 \-left_io2core 30 \-bottom_io2core 30 \-right_io2core 30 \-top_io2core 30 \-start_first_row#移除terminal,输入命令:>remove_terminal *该操作之后的效果为:2.4加入pad filler相应的命令为:>insert_pad_filler -cell {PFILL20RN PFILL10RN PFILL5RN PFILL2RN PFILL1RN PFILL01RN PFILL001RN} -overlap_cell {PFILL01RN PFILL001RN}2.5添加Tap Cell>add_tap_cell_array \‐master_cell_name {FILLTIEHS} \ ‐distance 20 \‐pattern stagger_every_other_row \ ‐respect_keepout摆放完毕之后效果如下:2.6进行电源地逻辑连接相应的命令为:>derive_pg_connection ‐power_net {VDD} ‐power_pin {VDD} \‐ground_net {VSS} ‐ground_pin {VSS}derive_pg_connection ‐power_net {VDD} ‐ground_net {VSS} ‐tie 2.7创建Core PG Rings相应的命令为:>create_rectangular_rings ‐nets {VDD VSS} \‐left_segment_layer M6 ‐left_segment_width 4.5 \‐right_segment_layer M6 ‐right_segment_width 4.5 \‐bottom_offset 17 ‐bottom_segment_layer TM1 ‐bottom_segment_width 4.5 \ ‐top_offset 17 ‐top_segment_layer TM1 ‐top_segment_width 4.5 \‐offsets absolute2.8布IO的电源和地线相应的命令为:>preroute_instances -ignore_macros \-ignore_cover_cells \-connect_instances specified \-cells [get_cells -all {VDD VSS}]2.9布PG rail(给标准单元供电的电源和地线)效果为:相应的命令为:>preroute_standard_cells ‐nets {VDD VSS} \‐connect horizontal \‐fill_empty_rows \‐port_filter_mode off \‐cell_master_filter_mode off \‐cell_instance_filter_mode off \‐voltage_area_filter_mode off \‐route_type {P/G Std. Cell Pin Conn}2.10检查电源地网络1)检查IO的电源地连接以及PG Rail/Strap是否存在Floating:相应的命令为:verify_pg_nets ‐error_cel io_pg \‐std_cell_pin_connection ignore \‐macro_pin_connection all \‐pad_pin_connection all2)做电源网络分析(PNA)查看电源规划的IR Drop。

ICC_lab总结——ICC_lab5:布线数字集成电路物理设计学习总结——布线

ICC_lab总结——ICC_lab5:布线数字集成电路物理设计学习总结——布线

ICC_lab总结——ICC_lab5:布线数字集成电路物理设计学习总结——布线这里将理论总结和实践放在一起了。

布线的理论总结如下所示:下面是使用ICC进行实践的流程:本次的布线实验主要达成的目标是:·对具有时钟树布局后的设计进行可布线性检查·完成布线·完成初始布线和初始布线后的优化·分析设计的时序、逻辑和物理的DRC、LVS违规·修复LVS错误·使用颜色突出来分析设计的各个方面具体流程为:首先准备下面的文件:·加载设计的设置和公共的设置--->打开库和相应的设计,启动GUI--->检查max库是否和min库对应:list_libs--->加载在设计在布局和CTS阶段期间使用的公共设置,以及布线阶段也需要的公共设置(这里需要注意,有些命令在新的版本中):source scripts/common_optimization_settings_icc.tclsource scripts/common_placement_settings.tclsource scripts/common_post_cts_timing_settings.tclsource scripts/common_route_si_settings_zrt_icc.tcl·进行布线前的检查,确保已经准备好布线--->查看是否有建立时间、保持时间以及逻辑上的设计规则违例:report_constraint -all--->没有理想的网络和没有高扇出网络:all_ideal_netsall_high_fanout -nets -threshold 501(扇出大于501pf的就列出)--->首选布线方向是否符合预期,并加载TLUPlus文件:report_preferred_routing_directionreport_tlu_plus_files--->检查所有布局位置是否合法:check_legality--->检查所有电源和接地引脚是否物理连接到P / G网络(也就是查看是否有悬空):verify_pg_nets--->如果有,进行移除并且再检查:preroute_standard_cells -remove_floating_piecesverify_pg_nets·进行布线和优化设计--->首先允许插入冗余通孔,使设计中的冗余通孔随布线更改保持最新:set_route_zrt_common_options -post_detail_route_redundant_via_insertion mediumset_route_zrt_detail_options -optimize_wire_via_effort_level medium--->检查非默认布线规则和布线设置:report_routing_rules; # report routing rulesreport_route_opt_strategy; # report route_opt_stretegyreport_route_zrt_common_options; # Reports zrt common route optionsreport_route_zrt_global_options; # Reports zrt global route optionsreport_route_zrt_track_options; # Reports zrt route track assignment optionsreport_route_zrt_detail_options; # Reports zrt detail routeoptions--->进行初始布线(初始布线包括:全局布线,路线分配和详细布线):route_opt -initial_route_only--->初始布线完成后,生成相应的报告:view report_clock_tree -summary(总结)view report_clock_timing -type skew(偏移)view report_qor(质量)view report_constraint -all(违例报告)--->进行优化布线,解决违规(同时优化功耗):route_opt -skip_initial_route -power--->确认布线之后,电源地的逻辑连接是最新的(即重新进行电源地的逻辑连接):derive_pg_connection -power_net VDD -power_pin VDD -ground_net VSS -ground_pin VSSderive_pg_connection -power_net VDD -ground_net VSS -tie ·进行DRC和LVS的检查和修复--->查看是否有物理上的DRC错误、以及LVS是否通过:verify_zrt_route (DRC)verify_lvs (LVS)--->如果有错误,进行修复:route_opt –incremental不行的话,就进行:route_zrt_eco--->查看冗余通孔插入后的版图报告:report_design_physical -route--->保存设计·通过layout GUI窗口查看布线后的各种图形情况,比如布线后的时钟树形状、拥塞情况、slack的分布、层次模块在版图中的各个位置等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Core area here: width=300um height=100um Green rectangle is the pin – follow what we define in pin constraint file
Unplaced STD here
Floorplan
Create PG ring
Place
set_operating_conditions -analysis_type on_chip_variation -max ss_1p62v_125c -min ff_1p98v_0c Select mode “on_chip_variation” for better optimize “MAX” using the slow library “MIN” using the fast library
“my_clock” is the only clock in our design. “max_transition” defined by yourself according to the process. “max_capacitance” defined by yourself according to the process. “max_fanout” you can ask FE designer. “max_buffer_levels” also can get from FE designer. “target_skew” we do CTS is right to decrease the skew. The smaller the better.
Floorplan
Usually we report timing info. in the ideal condition just after floorplan done. If there report any timing violation, please contact with FE designer, his/her design is wrong. (We can do nothing because we even do not place and route, everything is the best condition in our layout design now.)
Design input
Then use following command to make design active.
Design input
Read timing constraint file (.sdc) into design
Though there are some warning, but it’s okay because sometimes FE design just need to designer like that. Confirm with FE designer first.
Floorplan
Initial the core area initialize_rectilinear_block -shape L -control_type length -core_side_dim {300 100 0 0 300 100} -orientation N -core_utilization 1 -row_core_ratio 1.00 -start_first_row -flip_first_row -left_io2core 1.1 -right_io2core 1.1 top_io2core 1.1 -bottom_io2core 1.1
Cell for CTS
Antenna rule file
Filler cell
Design & Input data definition
Design input
Create_mw_lib Read_verilog
335 std cells are used
Design input
Read verilog netlist successfully! Then you can see the physical view in last page.
Make PG strap to decrease the IR drop from P/G IO to each cell
Floorplan
You can report physical info. using following command report_design -physical
ICC版图综合实例
根据逻辑综合组最后的结果 进行版图综合
步骤
Design setup & input Floorplan Place CTS Route Design Finishing
步骤
Design setup & input Floorplan Place CTS Route Design Finishing
Place
report_placement_utilization To see the area info.
Actually the design utilization is very low, you will be killed by your boss if you design like that in real product. But for we, remain enough margin has the first priority. In real design, the utilization after place depends, usually, 70% wil; input Floorplan Place CTS Route Design Finishing
Floorplan
Read pin constraints Read_io_constraints ../input/pin_order.tcl
Place
Report timing info. after place. Suppose the setup violation should be almost clean after place. Because setup is hard to fix by hand.
步骤
Design setup & input Floorplan Place CTS Route Design Finishing
CTS
set_operating_conditions -analysis_type on_chip_variation -max ss_1p62v_125c -min ff_1p98v_0c Still use on_chip_viaration to get better optimize. set_clock_tree_options -clock_tree my_clock -max_transition 0.3 max_capacitance 0.900 -max_fanout 6 -max_buffer_levels 20 target_skew 0.000 -buffer_relocation TRUE -gate_sizing FALSE delay_insertion FALSE -buffer_sizing TRUE -gate_relocation TRUE
Floorplan
Create PG strap
create_power_straps -direction vertical -start_at 40 -num_placement_strap 7 increment_x_or_y 38 -nets {VDD GND} -layer M4 -width 2 -pitch_within_group 2
Design setup
Design_name: VLSI_TOP Other setup
Logic library
Physical library
Parasitical parameter file
Design setup
Cell for hold time fixing
Cell for tie high/low
Global skew after CTS is 0.00557
CTS
Report timing info. after CTS Suppose no setup violation after CTS, because routing only can make setup time worse. And setup time is hard to be fixed by hand.
Place
place_opt -area_recovery -effort medium If the design is big, maybe the command will operated several times to get a better result.
After command operated, all STD cells are placed into the core area.
We are lucky that there isn’t any violations after CTS.
CTS
Now let us see a detail path timing report!
Path type:max It’s a path to check setup.
This is defined in sdc
create_rectangular_rings -nets {GND VDD} -left_offset -7 -left_segment_layer M4 left_segment_width 3 -right_offset -7 -right_segment_layer M4 -right_segment_width 3 bottom_offset -7 -bottom_segment_layer M5 -bottom_segment_width 3 -top_offset -7 top_segment_layer M5 -top_segment_width 3
相关文档
最新文档