EDA技术和工具第九讲_第1页
EDA技术和工具第九讲_第2页
EDA技术和工具第九讲_第3页
EDA技术和工具第九讲_第4页
EDA技术和工具第九讲_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EDA技术和工具ElectronicDesignAutomation:TechniquesandTools后端设计(layout)熊晓明xmxiong@2013年contents集成电路设计和EDAASIC设计流程前端设计工艺库HDL逻辑综合与优化各项设计指标的平衡(trade-off)测试设计(DFT)后端设计(layout)实体综合(physicalcompiler)ECO和ManualEditing动态时序仿真静态时序分析版图验证(DesignRuleChecking)后端设计、物理设计、实体设计(physicaldesign、backenddesign、layout)感谢:Prof.ErnestS.KuhofUC,Berkeley参考书数字集成电路物理设计(国家集成电路工程领域工程硕士系列教材)作者: 陈春章//艾霞//王国雄出版社: 科学出版社出版时间: 2008年08月 印刷时间: 2008年08月ISBN: 9787030220318VLSIPhysicalDesign:FromGraphPartitioningtoTimingClosure[精装]AndrewB.Kahng(作者),JensLienig(作者),IgorL.Markov(作者),JinHu(作者)出版社:Springer;Edition.(2010年12月1日)精装:324页语种:英语ISBN:904819590X参考书VLSIDesignCycleSystemSpecificationArchitecturalDesignLogicDesignCircuitDesignPhysicalDesignFunctionalDesignFabricationPackagingFall2010ElectronicDesignAutomationIV-6Fall2010ElectronicDesignAutomationPhysicalDesignConvertthenetlistintoageometricrepresentation.Theoutcomeiscalledalayout.Fall2010ElectronicDesignAutomationIV-7Fall2010ElectronicDesignAutomation8物理设计是把电路信息转换成foundry厂可用于掩膜的版图信息的过程,它包括数据准备、布局、时钟树综合、布线及DRC、LVS等步骤如右图所示常用的布局布线工具有Synopsys公司的ICCompiler和Candance公司的SOC-Enconter。

PhysicalDesignCycleCircuitPartitioningFloorplanning&PlacementRoutingLayoutCompactionExtractionandVerificationFall2010ElectronicDesignAutomationIV-9Fall2010ElectronicDesignAutomation工具:ICCompiler内容:partitioning、floorplanningplacementclocktreesynthesisrouting物理设计GeneralICCompilerFlowSynthesisDataSetupDesignPlanningPlacementClockTreeSynthesisRoutingChipFinishing

ThisUnit12图113图21415库的建立做物理设计首先要建立referencelibraryReferencelibrary包括以下几部分:standcelllibrary、padlibrary、macrocell(或IPlibrary)。Standcell包括inverters、buffers、ands、ors、nands、muxes、flip-flops等Padcell包括信号pad、电源地padMacro即设计中用到的一些宏模块下页以图讲解standcell、padcell、macro16四个conner位于芯片的四个角,起到连接四边IOpad的作用。物理设计物理设计物理设计FloorplanningSetupaplanforagoodlayout.Placethemodules(modulescanbeblocks,functionalunits,etc.)atanearlystagewhendetailslikeshape,area,I/Opinpositionsofthemodules,…,arenotyetfixed.DeadspaceFall2010ElectronicDesignAutomationIV-20Fall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomationFloorplanningProblemGivencircuitmodules(orcells)andtheirconnections,determinetheapproximatelocationofcircuitelementsConsistentwithahierarchical/buildingblockdesignmethodologyModules(resultofpartitioning):Fixedarea,generallyrectangularFixedaspectratiohardmacro(akafixed-shapedblocks)

fixed/floatingterminals(pins)

Rotationmightbeallowed/deniedFlexibleshapesoftmacro(akasoftmodules)(w1,h1)(wN,hN)IV-21Fall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomationFloorplanning(cont.)Objectives:MinimizeareaDeterminebestshapeofsoftmodulesMinimizetotalwirelengthtomakesubsequentroutingphaseeasy

(shortwirelengthroughlytranslatesintoroutability)Additionalcostcomponents:Wirecongestion(exactroutabilitymeasure)WiredelaysPowerconsumptionPossibleadditionalconstraints:FixedlocationforsomemodulesFixeddie,orrangeofdieaspectratioNP-hardIV-22Fall2010ElectronicDesignAutomation23布图规划floorplan(布图规划)的主要内容包含了对芯片大小(diesize)的规划、芯片设计输入输出(IO)单元的规划、宏模块的规划、电源网络的设计等floorplan在整个流程中具有十分重要的地位,因为floorplan一旦确定,则整个芯片的面积就定下来了,同时它也与整个设计的timing和布通率(布线能否布通)有着密切的关系。基本上流程中的反复主要是发生在这一步中。如果这一步做得比较好,则后面oncepass的几率就比较高,反之如果回溯到这一步,则花费的时间开销就会很大。floorplan是物理设计中手工程度很大的工作24布图规划通常情况下,一个芯片由corearea和padarea组成25布图规划Padarea由以下几个部分组成:1、Input/Output/InOutpads如右图中Reset2、Powerpadsandconnerpads右图上右上角那个CornerUR为一个connerpadsConnerpads的作用是连接其两边的Pads(连接衬底以及衬底以上的各个层)VDDVSS为Powerpads,其对外连接供电的封装引脚,对芯片则起到供电的作用,Powerpads可以分为对core供电的pads和对IOpads供电的pads,所有的Pad都是由晶体管以及各层金属构成的,Pad也是一个cell。26布图规划3、PadsfillersPadsfillers为图中Filler所示,其作用为连接两个两邻的pads(从衬底到各层金属的相连)P/Grings所有信号pads、电源地pads、fillers、conners都是有电源地的引脚的,用金属线把这些引脚相连,形成padarea上的一个环,称为P/Grings,如果所有的pads都是无缝排列的,那么pads上的自身的金属已经相互连接成了P/Gring。FloorplanAfterInitializationUnplacedMacrocellsUnplacedStandardcellsCoreareawithsiterowsPeripherywithI/OpadcellsStartingFloorplan28布图规划Floorplan阶段在corearea内要确定macro的位置,可以通过飞线显示macro的pins与io或其它macro的pins的连接关系,来帮助确定macro的位置Floorplan要进行预布线,即布电源地网络。概述里面已经讲到从floorplan

placement

clocktreesynthesisrouting的流程。有两个地方做了布线的工作即floorplan阶段的电源地网络的布线、routing阶段的信号的详细布线。PlacementExactplacementofthemodules(modulescanbegates,standardcells,etc.)whendetailsofthemoduledesignareknown.Thegoalistominimizethedelay,totalareaandinterconnectcost.vFeedthroughStandardcelltype1Standardcelltype2Fall2010ElectronicDesignAutomationIV-29Fall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomation33布局在floorplan结束后,芯片的大小,电源网络,macro的位置已经确定了,接下来的工作是标准单元的布局工作。布局工作是时序驱动(timingdriven)的,即布局出来的结果要满足时序的要求。ICC时序分析采用静态时序分析(STA),STA必须要获得单元延时(celldelay)和线延时(netdelay)34布局ICC会计算每个单元的延时和每条线的延时单元的延时信息由foundry提供的单元库文件提供为了计算线延时,ICC必需知道每条线的寄生电阻和寄生电容35布局在布局阶段,实际的金属线是不存在的,故需要有一种估计的方法估计线延时。在由RTL代码到门级网表的综合过程中,也需要用到STA,综合阶段对延时的估计基于WLM(WireLoadModel)。根据fanout估计R和C,这显然和最终的版图的实际结果有很大出入。36布局布局过程中,每个单元是有自己的物理位置的,我们就不再采用WLM去估计延时了,我们采用虚拟布线(virtualrouting)技术去估计延时。37布局综合阶段的时钟信号和高扇出信号被定义成理想的和don’t_touch(综合工具不对其进行插buffer的操作)的布局阶段对高扇出(如reset、set、enable等)要进行高扇出综合(HFS)。ICC布局阶段的一个命令place_opt内嵌了自动高扇出综合(AutomaticHighFanoutSynthesis)时钟树的处理是在place之后,CTS(ClockTreeSynthesis)阶段进行时钟树综合的在布局阶段我们需要模拟时钟树的影响38利用理想的时钟网络显然过于乐观,为了进一步接近实际的时钟,skew,latency,transition的影响应当被模拟进来3940布局实际的时钟树网络无法保证时钟源点到该时钟域内所有寄存器的clk端的延时是绝对相等的,时钟源点到不同寄存器的clk端的延时之差称之为skew(偏斜),我们用set_clock_uncertainty这个命令去模拟skew的影响。如set_clock_uncertainty0.3,单位是ns(取决.tf工艺文件里面所设单位)时钟域内寄存器的clk端可以称之为汇点(sink),时钟源点(source)到汇点的延时称为latency,我们可以用set_clock_latency命令去模拟源点到汇点的延时,如:set_clock_latency1实际的时钟信号跳变时间是不可能为零的,所以我们可以用set_clock_transition去模拟这个跳变时间如set_clock_transition0.141布局Corearea内标准单元并不是可以随意摆放的,所有的标准单元被设计成等高不等宽的,这样所有的标准单元可以被放入同样的placementrow里面,如图所示42TimingdrivenplacementPlacement是时序驱动的,关键路径上单元会被放得近一些,placement是时序驱动的同时,也是拥塞驱动(congestiondriven)的,标准单元的信号连接最终需要布线的,如果一个区域内布线要求大于布线资源的话,就导致了拥塞,显然标准单元过密集得摆放在一起就容易导致拥塞,timing和congestion就变成了一对折衷的因素了。43在macro周围我们会打上placementblockage,工具不会在placementblockage区域内摆放标准单元,macro处pin处需要较多的布线资源,如果macro周围较近区域被放置了标准单元,就可能导致拥塞的产生。故需要在macro周围打上blockage,在实验视频中可以看到这一步。布局44时钟树综合(CTS)在大规模集成电路中,大部分时序元件的数据传输是由时钟同步控制的时钟频率决定了数据处理和传输的速度,时钟频率是电路性能的最主要的标志。在集成电路进入深亚微米阶段,决定时钟频率的主要因素有两个,一是组合逻辑部分的最长电路延时,二是同步元件内的时钟偏斜(clockskew),随着晶体管尺寸的减小,组合逻辑电路的开关速度不断提高,时钟偏斜成为影响电路性能的制约因素。时钟树综合的主要目的是减小时钟偏斜。以一个时钟域为例,一个时钟源点(source)最终要扇出到很多寄存器的时钟端(sink),从时钟源扇出很大,负载很大,时钟源是无法驱动后面如此之多的负载的。这样就需要一个时钟树结构,通过一级一级的buffer去驱动最终的叶子结点(寄存器)。CTS流程46在未进行时钟树综合之前,时钟树未生成,时钟结构逻辑上如上图所示,一个时钟源端最终扇出到很多寄存器的时钟端。47上图是时钟树综合好之后的结果,上图中有三级buffer构成了一个时钟树。48在sdc文件中用create_clock命令创建时钟,同时定义了时钟源点如:Create_clock[get_pinsU_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C]–nameCPCK-period10–waveform{05}这条命令在U_TOP_PAD/Pad_inout_PF5_CAM_PCLK/C这个pin处创建了时钟,这个pin就是名为CPCK的时钟的时钟源点时钟树综合(CTS)49由于时钟树的重要性,工具采用不同于一般布线规则的时钟树自己的布线规则时钟树综合(CTS)50首先定义nondefaultroutingrule再指定CTS使用定义的my_route_rule-layer_list定义了CTS使用哪几层金属走线时钟树综合(CTS)51ICC在placement阶段提供了一个命令place_opt,请参看run_icc_record.tcl,可以看出placement阶段脚本结构是先进行一系列的设置,再通过place_opt命令让工具根据设计者的设置约束等完成布局工作。ICC在时钟树综合阶段也提供了一个命令clock_opt,clock_opt命令根据设计者的设置和约束自动完成时钟树综合的工作。布线阶段也有一个类似的命令:route_opt整个流程中,除了floorplan阶段需要较多的手工活之外,placement、CTS、routing阶段可以说就是设计者通过修改脚本和约束,然后让工具自动完成工作。这也是ICCompiler工具强大之处。时钟树综合(CTS)52CTS在placement之后完成,就有可能对原来的placement的结果产生影响,如clock

Buffers插入之后,就有可能导致拥塞的产生,为了插入clockbuffers可能会轻微移动原来的placement阶段放置的标准单元,原来的placement是时序驱动的,移动就可能导致时序的不满足,产生违规(violation)。53Clock_opt完成之后,一般都应该使用一个命令psynopt去做一次增量优化,psynopt这个命令的作用就是在原有基础上做增量优化。在placement阶段,place_opt之后,也需要用psynopt做一次增量优化,可以参考看run_icc_record.tcl脚本。在做完CTS之后,实验中也就是跑完run_icc_record.tcl里面至CTS部分结束,可以报出时序信息,通过以下命令报时序信息:report_constraint–all报出所有时序违规(violations),我们暂且只关注setup违规,setup违规直接制约频率能跑多高,对于hold的违规只需要通过插buffer增加延时就可以解决。report_clocks报出时钟的信息report_timing–from-to报出具体路径的时序信息以上命令都可以加-help选项查看帮助信息,如report_timing–help想查看一个命令的详细用法,可以man命令,如manreport_timing时钟树综合(CTS)时钟树综合总结RoutingCompletetheinterconnectionsbetweenmodules.Factorslikecriticalpath,clockskew,wirespacing,etc.,areconsidered.Includeglobalroutinganddetailedrouting.FeedthroughType1standardcel1Type2standardcellvFall2010ElectronicDesignAutomationIV-55Fall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomationFall2010ElectronicDesignAutomation58Routing59Routing时钟树结束之后,接下来的工作是布线(routing)Floorplan阶段,生成电源地网络时已经完成了电源地网络的布线,routing阶段主要是标准单元的信号线的连接,floorplan阶段给标准单元供电的rail已经生成,place结束后标准单元上下两边都放在了rail上面。实验中采用6层金属工艺,层与层之间通过via孔相连60先介绍基于格点的布线理论Routing61在上页图中,黄色和蓝色的虚线称之为track,track是没有实际宽度的,但两条track之间有间距称之为pitch,基于格点的布线要求所有的金属走线要走在track之上,而实际走出的金属线称之为trace,trace是有宽度的。不同的金属线走线方向是不同的,奇数层金属默认走水平方向,偶数层默认走竖直方向。两条track的交点称之为gridpoint标准单元的高宽都被设计成了pitch的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论