VLSI 内容纲要.ppt
《VLSI 内容纲要.ppt》由会员分享,可在线阅读,更多相关《VLSI 内容纲要.ppt(75页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
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,介绍,布局,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vlsi 内容 纲要 纲领
限制150内