1、自动布局布线软件ICC介绍浙江大学ICLAB实验室韩 雁,自动布局布线基本概念,版图,GDS,(Graphic Data System),用来控制集成电路光掩膜绘制 。 自动布局+自动布线=版图完成主要内容:介绍Floorplan布局CTS (Clock Tree Synthesis)布线DFM (Design for Manufacturing),2/75,3/75,介绍,布局,CTS,布线,DFM,Floorplan,ICC简介,布局布线工具有:Synopsys公司的Astro、IC Compiler、ICC II;Cadence公司的Encounter、Innovus;Mentor Gr
2、aphics公司的Olympus。IC Compiler是synopsys公司继Astro之后推出的另一款PR工具(芯片设计的物理实施通常被简称为布局布线,place and route),本课件中出现的一些图中的Astro 工具可以当作IC Compiler来理解。如下页图所示,输入IC Compiler 的有:参考库(.db文件、CEL View、FRAM View)、门级网表(.v文件)时序约束文件(.sdc文件)、工艺文件(.tf文件)管脚排列文件(.tdf文件)、TLU+文件(.tluplus)输出IC Compiler 的是layout(常用格式是GDSII)。,4/75,介绍,布
3、局,CTS,布线,DFM,Floorplan,布局布线流程,5/75,介绍,布局,CTS,布线,DFM,Floorplan,ICC做什么?,6/75,介绍,布局,CTS,布线,DFM,Floorplan,网表/时序约束文件的来源,7/75,介绍,布局,CTS,布线,DFM,Floorplan,参考库,做物理设计首先要建立reference libraryReference library 包括以下几部分:stand cell library、pad library、macro cell - 可以用Milkyway软件来创建;Stand cell 包括inverters、buffers、ands
4、、ors、nands、muxes、flip-flops等;Pad cell 包括信号pad、电源地pad;Macro 即设计中用到的一些宏模块,如SRAM、PLL;下页以图讲解stand cell、pad cell、macro。,8/75,介绍,布局,CTS,布线,DFM,Floorplan,四个corner位于芯片的四个角,起到连接四边IO pad 的作用。,9/75,介绍,布局,CTS,布线,DFM,Floorplan,标准单元库,一个标准单元是一个预先设计好的特定逻辑门每个标准单元都有相同的高度每个标准单元库里面有多种功能的Cell标准单元库通常由代工厂或者第三方提供注意:在设计之前,应
5、该首先查阅相关datasheet看所用的标准单元库是tap工艺还是tapless工艺,10/75,介绍,布局,CTS,布线,DFM,Floorplan,标准单元库续,Tapless工艺一般在库中会提供Tie Cells,它有两种放置方法:,11/75,介绍,布局,CTS,布线,DFM,Floorplan,PAD Area的组成,1、Input/Output/InOut pads 如右图中Reset2、Power pads and conner pads右图上右上角那个CornerUR为一个corner padsConner pads 的作用是连接其两边的Pads(连接衬底以及衬底以上的各个层)
6、VDD VSS 为Power pads ,其对外连接供电的封装引脚,对芯片则起到供电的作用,Power pads 可以分为对core 供电的pads 和对IO pads 供电的pads ,所有的Pad都是由晶体管以及各层金属构成的,Pad 也是一个cell。3、Pads fillers 连接两个两邻的pads(从衬底到各层金属的相连)4、P/G rings 所有信号pads、电源/地pads、fillers、corners都是有电源地的引脚的,用金属线把这些引脚相连,形成pad area上的一个环,称为P/G rings,如果所有的pads都是无缝排列的,那么pads上的自身的金属已经相互连接
7、成了P/G ring。,12/75,介绍,布局,CTS,布线,DFM,Floorplan,IO与PAD的关系,Stagger,13/75,介绍,布局,CTS,布线,DFM,Floorplan,Core,Core,In line,注意什么是IO什么是PAD它们如何摆放!作业中只放了IO,并没有放置PAD!,IO与PAD的关系续,Triple Stagger,注意什么是IO,什么是PAD它们如何摆放!,14/75,介绍,布局,CTS,布线,DFM,Floorplan,PAD,IO,管脚排列文件(.tdf),set_pad_physical_constraints -pad_name clk_blo
8、ck -side 1 -order 1set_pad_physical_constraints -pad_name data_in_block -side 1 -order 2set_pad_physical_constraints -pad_name en_block -side 2 -order 1set_pad_physical_constraints -pad_name fsk_out_block -side 2 -order 2set_pad_physical_constraints -pad_name VDD -side 3 -order 1set_pad_physical_con
9、straints -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 0set_pad_phy
10、sical_constraints -pad_name CORNER3 -side 3 -order 0set_pad_physical_constraints -pad_name CORNER4 -side 4 -order 0,15/75,介绍,布局,CTS,布线,DFM,Floorplan,.tdf文件语法,set_pad_physical_constraintsobjects | -pad_name stringpad_name -side side_number -order order_number,16/75,介绍,布局,CTS,布线,DFM,Floorplan,布局布线流程,1
11、7/75,介绍,布局,CTS,布线,DFM,Floorplan,布图规划,floorplan(布图规划)的主要内容:确定芯片的尺寸标准单元的排列形式IO单元及宏单元的位置电源地网络的分布floorplan在整个流程中具有十分重要的地位 ,因为floorplan一旦确定,则整个芯片的面积就定下来了,同时它也与整个设计的timing和布通率(布线能否布通)有着密切的关系。基本上流程中的反复主要是发生在这一步中。如果这一步做得比较好,则后面once pass的几率就比较高,反之如果回溯到这一步,则花费的时间开销就会很大。 floorplan是物理设计中手工程度很大的工作,18/75,介绍,布局,CT
12、S,布线,DFM,Floorplan,布图规划,19/75,介绍,布局,CTS,布线,DFM,Floorplan,布图规划-流程,整体规划,电源/地线规划,加Pad Filler,1.添加Physical only cell2.装载IO管脚排列文件3.芯片面积、标准单元布局方式的选择 4.宏单元放置,以及Blockage5.添加Tapcell,1.将标准单元、IO单元和宏单元的电源、地端口与PG逻辑相连2.在核(Core)和IO单元之间加入电源/地环(ring)3.加Strap4.将芯片的ring连接到电源/地IO的电源、地端口5.预布STD PG Rail,20/75,介绍,布局,CTS,布
13、线,DFM,Floorplan,布图规划-电源地规划,接下来分别创建电源地网络,包括以下:Core ring :core 的四周,用以给core供电;Strap:其作用是把core ring 连接至core 内,减小芯片的IR-drop;Macro ring :macro的周围,用以给macro供电;Rail :用以给标准单元供电,在本实验中,你可以通过放大core area处,观察到众多相对于strap要细很多的水平且平行的rail。,21/75,介绍,布局,CTS,布线,DFM,Floorplan,22,电源地网络,效果预估-Congestion,23/75,介绍,布局,CTS,布线,DF
14、M,Floorplan,report_congestion报告,根据经验,一般最大的Overflow如果超过10基本上这个设计就无法布通了,最好不要超过35。另外如果总共的overflow超过2%,也可以认为设计在后边很难绕通。这些说明Floorplan不是很好,需要重新进行Floorplan.,24/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,布局(Placement)是确定每个标准单元位置的过程。一个合理的布局要求:每个标准单元都放在有效的位置上单元间没有重叠布局的好坏影响:芯片的面积芯片的性能布通率整个后端设计的时间,25/75,介绍,布局,CTS,布线,DFM,F
15、loorplan,布局,Core area 内标准单元并不是可以随意摆放的,所有的标准单元被设计成等高不等宽的,这样所有的标准单元可以被放入同样的placement row里面,如图所示,ICC 在placement阶段提供了一个命令place_opt,在Placement之前可以进行一系列的设置(如电源地Strap下面尽量少放置标准单元,以防止出现Congestion),再通过place_opt命令让工具根据设计者的设置约束等完成布局工作。,26/75,介绍,布局,CTS,布线,DFM,Floorplan,在Floorplan阶段,我们会在Macro周围我们会打上placement bloc
16、kage,工具不会在placement blockage区域内摆放标准单元,macro出pin处需要较多的布线资源,如果macro周围较近区域被放置了标准单元,就可能导致拥塞的产生。故需要在macro周围打上blockage。Placement 是拥塞驱动(congestion driven)的,标准单元的信号连接最终需要布线的,如果一个区域内布线要求大于布线资源的话,就导致了拥塞,显然标准单元过密集得摆放在一起就容易导致拥塞,后边布线会很难布通。,Congestion driven Placement,27/75,介绍,布局,CTS,布线,DFM,Floorplan,Timing drive
17、n placement,同时,Placement 也是时序驱动的,关键路径上单元会被放得近一些,由于placement 也是拥塞驱动(congestion driven)的,标准单元过密集得摆放在一起就容易导致拥塞,timing 和congestion 就变成了一对折衷的因素了。,28/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,ICC 会计算每个单元的延时和每条线的延时单元的延时信息由foundry提供的单元库文件提供为了计算线延时,ICC必需知道每条线的寄生电阻和寄生电容来源于TLU+文件,Timing driven placement-ICC时序分析采用静态时序分析
18、(STA),STA必须要获得单元延时(cell delay)和线延时(net delay),29/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,在布局阶段,实际的金属线是不存在的,故需要有一种估计的方法估计线延时。在由RTL代码到门级网表的综合过程中,也需要用到STA,综合阶段对延时的估计基于WLM(Wire Load Model)。根据fanout估计R和C,这显然和最终的版图的实际结果有很大出入。,30/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,布局过程中,每个单元是有自己的物理位置的,我们就不再采用WLM去估计延时了,我们采用虚拟布线(virt
19、ual routing)技术去估计延时。,31/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,综合阶段的时钟信号和高扇出信号被定义成理想的和dont_touch(综合工具不对其进行插buffer的操作)的布局阶段对高扇出(如reset、set、enable等)要进行高扇出综合(HFS)。ICC 布局阶段的一个命令place_opt内嵌了自动高扇出综合(Automatic High Fanout Synthesis)时钟树的处理是在place之后,CTS(Clock Tree Synthesis)阶段进行时钟树综合的在布局阶段我们需要模拟时钟树的影响,32/75,介绍,布局,
20、CTS,布线,DFM,Floorplan,CTS之前的时序分析,利用理想的时钟网络显然过于乐观,为了进一步接近实际的时钟,skew , latency , transition 的影响应当被模拟进来,时序分析默认时钟网络是理想的零skew、latency、transition即使有Buffer也会忽略它们可能会产生过于乐观的时序分析结果,33/75,介绍,布局,CTS,布线,DFM,Floorplan,在CTS之前模拟时钟树效应,在SDC时序约束文件中,每个时钟域都应该包含以下几条命令:set_clock_uncertaintyset_clock_latencyset_clock_transi
21、tion时钟依然被视为是理想的,但是所有的零值都被SDC中指定的值所代替。,34/75,介绍,布局,CTS,布线,DFM,Floorplan,布局,实际的时钟树网络无法保证时钟源点到该时钟域内所有寄存器的clk端的延时是绝对相等的,时钟源点到不同寄存器的clk端的延时之差称之为skew(偏斜),我们用set_clock_uncertainty这个命令去模拟skew的影响。如set_clock_uncertainty 0.3,单位是ns(取决.tf工艺文件里面所设单位)时钟域内寄存器的clk端可以称之为汇点(sink),时钟源点(source)到汇点的延时称为latency,我们可以用set_c
22、lock_latency 命令去模拟源点到汇点的延时,如:set_clock_latency 1实际的时钟信号跳变时间是不可能为零的,所以我们可以用set_clock_transition去模拟这个跳变时间 如set_clock_transition 0.1,35/75,介绍,布局,CTS,布线,DFM,Floorplan,时钟树综合(CTS),在大规模集成电路中,大部分时序元件的数据传输是由时钟同步控制的时钟频率决定了数据处理和传输的速度,时钟频率是电路性能的最主要的标志。在集成电路进入深亚微米阶段,决定时钟频率的主要因素有两个,一是组合逻辑部分的最长电路延时,二是同步元件内的时钟偏斜(cl
23、ock skew),随着晶体管尺寸的减小,组合逻辑电路的开关速度不断提高,时钟偏斜成为影响电路性能的制约因素。时钟树综合的主要目的是减小时钟偏斜。以一个时钟域为例,一个时钟源点(source )最终要扇出到很多寄存器的时钟端(sink),从时钟源扇出很大,负载很大,时钟源是无法驱动后面如此之多的负载的。这样就需要一个时钟树结构,通过一级一级的buffer去驱动最终的叶子结点(寄存器)。,36/75,介绍,布局,CTS,布线,DFM,Floorplan,CTS之前,在未进行时钟树综合之前,时钟树未生成,时钟结构逻辑上如上图所示,一个时钟源端最终扇出到很多寄存器的时钟端。,37/75,介绍,布局,
24、CTS,布线,DFM,Floorplan,CTS之后,时钟树被构建,用以平衡负载之间的插入延时并减小skew.上图是时钟树综合好之后的结果,上图中有三级buffer构成了一个时钟树。,38/75,介绍,布局,CTS,布线,DFM,Floorplan,时钟树综合(CTS),在sdc文件中用create_clock命令创建时钟,同时定义了时钟源点如: create_clock get_pins U_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C -name CPCK -period 10 waveform 0 5这条命令在U_TOP_PAD/Pad_inout_PF5_CAM_P
25、CLK/C这个pin处创建了时钟,这个pin就是名为CPCK的时钟的时钟源点,39/75,介绍,布局,CTS,布线,DFM,Floorplan,由于时钟树的重要性,工具采用不同于一般的布线规则为时钟树布线,而是采用自己定义的布线规则Non-Default Rule(NDR),时钟树综合(CTS),40/75,介绍,布局,CTS,布线,DFM,Floorplan,首先定义non default routing rule,再指定CTS使用定义的my_route_rule, -layer_list 定义了CTS使用哪几层金属走线,时钟树综合(CTS),41/75,介绍,布局,CTS,布线,DFM,F
26、loorplan,ICC在时钟树综合阶段提供了一个命令clock_opt,clock_opt命令根据设计者的设置和约束自动完成时钟树综合的工作。布线阶段也有一个类似的命令:route_opt,时钟树综合(CTS),42/75,介绍,布局,CTS,布线,DFM,Floorplan,CTS的影响,CTS在placement之后完成,就有可能对原来的placement的结果产生影响,如Clock Buffers 插入之后,就有可能导致拥塞的产生,为了插入clock buffers 可能会轻微移动 原来的placement阶段放置的标准单元,原来的placement是时序驱动的,移动就可能导致时序的不
27、满足,产生违规(violation)。,43/75,介绍,布局,CTS,布线,DFM,Floorplan,时钟树综合(CTS),在做完CTS之后,可以报出时序信息,通过以下命令报时序信息: report_constraint all 报出所有时序违规(violations)在布局以及CTS之后,设计中最好不要存在Setup的违反,setup违规直接制约频率能跑多高。CTS 之后开始修hold,Post-CTS之后hold违反不要太大。report_timing 报告setup time slackreport_timing -delay_type min报告hold time slackrep
28、ort_clocks 报出时钟的信息 report_clock_tree -summary 报告时钟树的skew信息以上命令都可以加-help选项查看帮助信息,如report_timing -help想查看一个命令的详细用法,可以man 命令,如man report_timing,44/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,45/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,时钟树结束之后,接下来的工作是布线(routing)Floorplan阶段,生成电源地网络时已经完成了电源地网络的布线,Routing阶段主要是标准单元的
29、信号线的连接,floorplan阶段给标准单元供电的rail已经生成,place结束后标准单元上下两边都放在了rail上面。实验中采用8层金属工艺,层与层之间通过via孔相连,46/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,先介绍基于格点的布线理论,47/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,在上页图中,黄色和蓝色的虚线称之为 track,track是没有实际宽度的,但两条track之间有间距称之为 pitch,基于格点的布线要求所有的金属走线要走在track之上,而实际走出的金属线称之为trace,trace是有宽度的。
30、不同的金属线走线方向是不同的,奇数层金属默认走水平方向,偶数层默认走竖直方向。两条track的交点称之为grid point。标准单元的高宽都被设计成了pitch的整数倍,而在布局时标准单元的pin都被放在了grid point上面这样都为布线作好了准备。,48/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing主要由以下四个步骤完成: Global routing(全局布线) Track assignment(布线通道分配) Detail Routing(详细布线) Search and repair(布线修补),Routing,49/75,介绍,布局,CTS,布线,
31、DFM,Floorplan,Global routing (全局布线) 全局布线是为设计中还没有布线的连线规划出布线路径,确定其大体位置及走向,并不做实际的连线,全局布线已经把布线路径映射到了特定的铝线层,下图是全局布线之后的版图,我们可以看出布线路径是没有实际宽度的线条,图中不同的颜色代表了不同的铝线层,并给出了孔的位置。,Routing,50/75,介绍,布局,CTS,布线,DFM,Floorplan,Track Assignment (布线通道分配) Track assignment 把每一连线分配到一定的track上,并且对连线进行实际布线,在布线时,尽可能走长直的金属连线,且减少孔的
32、个数,在这个阶段不做DRC设计规则检查(如两条金属线的最小间距)。从下图看出己有实际的金属线,jog是为了减少孔的个数。Jog是指小范围内改变布线的方向。,Routing,51/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,Track assignment 是不考虑DRC违规的,所以track assignment 之后会有很多DRC的违规,比如金属线最小间距违规、槽口违规。如下图为Track Assign之后的一些DRC违反:,52/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,Detail routing(详细布线)详细布线使用全
33、局布线和track分配过程中产生的路径进行布线和布孔。由于track分配时只考虑尽量走长线,所以会有很多DRC违规产生,详细布线时使用固定尺寸的sbox来修复违规(下页图),sbox是整个版图平均划分的小格子,小格子内部违规会被修复但小格子边界的DRC违规就修复不了,这就需要在接下来的步骤中完成修复。Search and repair(布线修补)Search and repair 修复在详细布线中没有完全消除的DRC违规,在此步骤中通过尺寸逐渐加大的的sbox来寻找和修复DRC违规的。,53/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,Detail Routin
34、g阶段软件尽量用固定尺寸的Sbox来清除DRC违反。由于尺寸固定,所有并不能解决所有的DRC违反。,54/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,首先对时钟线进行布线,除电源线外,它优先级最高,55/75,介绍,布局,CTS,布线,DFM,Floorplan,时钟树布线有更高的优先权,时钟树的布线要在其它信号线布线之前,这样时钟树布线的时候就会有更多的布线资源可用。route_zrt_group -all_clock_nets此条命令即可给时钟树布线ICC提供了route_opt这个命令完成route signal nets 和optimize的工作。,56
35、/75,介绍,布局,CTS,布线,DFM,Floorplan,Routing,可制造性设计和物理验证,布线工作完成之后,主体工作已经完成了,下面介绍一些重要的可制造性(DFM, Design For Manufacturing)的问题。问题和解决方法归纳如下:,Gate Oxide integrity(栅氧完整性) - antenna fixing(修复天线效应)Via resistance and reliability(过孔电阻与可靠性) - extra contacts(增加额外的接触)Random Particle defect (随机微粒缺陷)- Wire spreading(增加线
36、间距和线宽)Metal erosion(金属侵蚀) - metal slotting(挖槽)Metal liftoff(金属翘起) - metal slotting(挖槽)Metal Over-Etching(金属过刻蚀) - metal fill(用金属填充空白区域),57/75,介绍,布局,CTS,布线,DFM,Floorplan,如下图所示,如果在MOS管的栅和衬底之间电场强度过大,就可能引起栅氧的击穿,这种击穿问题可能发生在工艺制造过程中,在深亚微米工艺中常用等离子刻蚀工艺刻蚀金属和多晶硅,在芯片制造工艺中暴露的金属线或多晶硅等导体,像一根根天线,会收集电荷(如等离子刻蚀工艺产生的带电
37、粒子)导致与其相连的栅电位升高,最终导致强电场击穿栅氧。这称之为天线效应(process antenna effect, PAE),又称为等离子导致栅氧损伤(plasma induced gate oxide damage, PID)。,可制造性设计和物理验证,58/75,介绍,布局,CTS,布线,DFM,Floorplan,裸露的导体收集电荷的多少与其暴露在等离子束下的导体面积成正比,为了解决天线效应问题,常有以下两种解决方法:跳线法、添加反偏二极管。跳线法(图):天线效应只发生在芯片制造过程中,并非芯片的使用过程中,因为等离子刻蚀应用于工艺制造过程中。比如一条金属线过长,就可能导致天线效应
38、,跳线法断开这条线,通过via孔连到上一层金属,再从上一层金属通过via孔连下来。(也可向下跳线,但通常采用向上跳线法),不同层金属是不同时形成的,故而消除了天线效应。添加反偏二级管(图):给“天线”添加反偏二级管,反偏二级管的阻抗小于栅氧绝缘层阻抗,反偏二级管会泄放掉“天线”上的电荷,使“天线”不足以收集到能够击穿栅氧的电荷。(显然不能加正偏二极管,因为正偏二极管会把金属线电位拉到接近衬底电位上),可制造性设计和物理验证,59/75,介绍,布局,CTS,布线,DFM,Floorplan,60,61,ICC在布线阶段会考虑到天线效应,会尽量在布线时避免天线效应。但ICC不是sign off级(
39、最终版)的工具。Sign off 级的时序工具是Prime Time(PT),StarRCXT从ICC提供的版图中提取寄生参数提供给Prime Time,Prime Time报出的时序满足要求才行。ICC做完PR之后,需要Calibre在virtuoso平台下做物理验证(physical verification),Calibre是sign off级的,物理验证要修复DRC、LVS、天线效应等的违规。,可制造性设计和物理验证,62/75,介绍,布局,CTS,布线,DFM,Floorplan,Foundry流片有个良率(yield)的问题,如果两条不同层金属线只通过一个via孔相连,那么如果这个
40、via孔在制造过程中制造失败的话,那么就导致了层间互连失败可以通过增加via孔的数量来解决这个问题,由于via孔的电阻率是大于金属线的,增加并连的via孔数可以减小电阻,减小延时,改善时序。,可制造性设计和物理验证,63/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,Random Particle Defect(随机微粒缺陷):两条过于靠近的金属线之间,如果有导电性颗粒在制造过程中落入二者之间,可能导致短路问题,解决办法是加大线间距;一条过于窄的金属线如果在制造过程中落入不导电的微粒,那么就会导致断路问题,解决办法是增加线宽。,64/75,介绍,布局,CT
41、S,布线,DFM,Floorplan,Metal Erosion(金属侵蚀)芯片制造过程的金属线成形过程中,在氧化层上淀积一层金属,刻掉不需要的部分,再在被刻掉的部分上氧化出与金属等高的氧化层,接下来需要做一次化学机械抛光(CMP)来平坦化芯片表面(每一层都要做平坦化)。氧化层和金属对CMP的反应程度是不一样的,金属更容易被CMP刻蚀掉,所以金属的密度不能太大,否则被CMP刻蚀掉形成的凹槽过大。,可制造性设计和物理验证,65/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,Metal liftoff(金属翘起)由于金属和氧化层的热膨胀系数的不同,氧化层上的金
42、属可能会产生翘起现象,金属线越宽越容易产生这种现象,所以必需控制金属密度。,66/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,解决metal erosion和metal liftoff的办法是metal slotting(挖槽)电源地线宽于普通信号线,电源地线也就经常可以在最终版图上看到如下图所示的槽。,67/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,Metal over-etching(金属过刻蚀)金属线的成形,是通过刻蚀工艺完成的,稀疏的金属线比较紧密的金属线更容易被过刻蚀。如下图,所以对最小金属密度也有要求
43、,68/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,Metal over-etching的解决办法:Metal Fill用金属填充空白区域,69/75,介绍,布局,CTS,布线,DFM,Floorplan,可制造性设计和物理验证,设计规则检查(Design Rule Checking,DRC)版图完成后需要做物理验证(physical verification),首先是对版图进行设计规则检查(DRC),DRC的主要目的是检查版图中所有因违反设计规则而引起潜在断路、短路或不良效应的物理验证过程。DRC检查的方法是将版图中所有几何图形与设计规则规定的尺寸、间
44、距进行比较,并将所有违反规则的地方通过EDA工具以醒目的标识反标到版图中告诉设计者,设计者通过这些标识判断、修改错误。,70/75,介绍,布局,CTS,布线,DFM,Floorplan,电路规则检查(layout versus schematic, LVS)LVS主要目的是验证版图与原理图的电路结构是否一致。LVS分两步完成,第一步是“抽取”,第二步是“比较”。首先根据LVS提取规则,EDA工具从版图中抽取出版图所确定的网表文件,然后将抽取出的网表文件与电路网表文件进行比较,抽取的网表文件为晶体管级的SPICE网表,而电路网表为门级的Verilog网表,该门级网表要转化为SPICE网表后才能和
45、抽取的网表进行逻辑等效性比较。DRC/LVS检查工具有:Mentor 的calibre,Synopsys 的Hercules,Cadence 的Assura、Diva等。,可制造性设计和物理验证,71/75,介绍,布局,CTS,布线,DFM,Floorplan,后仿真,后仿的来源在于消除或减小理论结果与实际结果之间的差异 ,版图生成以后,版图中的连线及连线间的寄生电阻,寄生电容,甚至寄生电感(现阶段一般后仿不包括电感)都是前仿中没有添加的,亦即,前仿的网表中认为各根连线的电阻电容均为零。事实并非如此,如果这些寄生电阻电容效应足够大,那么实际做出的电路就和前仿差别较大。后仿需要考虑版图中实际连线
46、的RC延时ICC生成版图之后,ICC会写出一个电路网表,star_rc_xt 抽取版图寄生参数,PT获得寄生参数信息后写出sdf文件,用于反标入电路网表。后仿真的对象是由ICC生成的电路网表,后仿真是电路级的仿真,仿真反标入了由PT产生的sdf文件,sdf (standard delay format)。,72/75,后仿真步骤,与逻辑综合完时序仿真步骤一样:1.将布局布线完导出的SDF文件添加到Testbench中2.创建新的工程3.添加布局布线完导出的网表文件fsk_layout.sv4.添加标准单元的Verilog模型文件/home/smic/smic_40/SCC40NLL_HS_RVT_V0 p1a/verilog/SCC40NLL_HS_RVT_V0p1.v5.添加输入输出IO的Verilog模型文件/home/smic/smic_40/SP40NLLD2RN_3P3V_V0p2/verilog/SP40NLLD2RNP_3P3V_V0p1.v6.编译及仿真,73/75,后仿真波形,整体功能波形:延迟信息:,74/75,THANK YOU!,75/75,