注:为了在布图时进行时钟树综合,必须唯一化DC中的网表。此操作为设计中多次例化的子模块生成唯一的模块/实体定义。原因:1.存在于这些模块内的触发器需要连接到时钟源,而把时钟树连接到这些模块需要单独的时钟连线名。2.物理上要求这些模块有单独的位置。3.当时钟树从布图工具转到DC时,未唯一化的网表就存在问题,这问题只发生在如果时钟树信息单独转到DC,不包括从布图工具到DC的完整网表转移。布图工具可以自己唯一化网表。Howdoyoufindoutwhatlibrariesareloaded?list_libsWhatifthesamecellisdefinedinmorethanonelibrary,andalllibrariesareinlink_library?ICCompilerwillpickthenamedcellfromthefirstlibraryitfindsitin.1.填充单元它是用来填充I/O单元和I/O单元之间的间隙。对于标准单元则同样有标准填充单元(fillercell)它也是单元库中定义的与逻辑无关的填充物,它的作用主要是把扩散层连接起来满足DRC规则和设计需要,并形成电源线和地线轨道(powerrails)2.电压钳位单元数字电路中某些信号端口,或闲置信号端口需要钳位在固定的逻辑电平上,电压钳位单元按逻辑功能要求把这些钳位信号通过钳高单元(tie-high)与Vdd相连,或通过钳低单元(tie-low)与Vss相连使维持在确定的电位上。电压钳位单元还起到隔离普通信号的特护信号(Vdd,Vss)的作用,在作LVS分析或形式验证(formalverification)时不致引起逻辑混乱。3.二极管单元为避免芯片加工过程中的天线效应导致器件栅氧击穿,通常布线完成后需要在违反天线规则的栅输入端加入反偏二极管,这些二极管可以把加工过程中金属层积累的电荷释放到地端以避免器件失效。4.去耦单元当电路中大量单元同时翻转时会导致充放电瞬间电流增大,使得电路动态供电电压下降或地线电压升高,引起动态电压降(IR-drop)为避免动态电压降对电路性能的影响,通常在电源和地线之间放置由MOS管构成的电容,这种电容被称为去耦电容或去耦单元(decapcell)他的作用是在瞬态电流增大,电压下降是电路补充电流以保持电源和地线这之间的电压稳定,防止电源线的电压降和地线电压的升高。去耦单元是与逻辑无关的附加单元5.时钟缓冲单元时序电路设计的一个关键问题是对时钟树的设计,芯片中的时钟信号需要传送到电路中的所有时序单元。为了保证时钟沿到达各个触发器的时间偏差(skew)尽可能地小,需要插入时钟缓冲器减小负载和平衡延时,在标准单元库中专门设计了供时钟树选用的时钟缓冲单元(clockbuffer)和时钟反向器单元(clockinverter)时钟树综合工具根据指定的时钟缓冲单元去自动构建满足时序要求的时钟网络。时钟缓冲单元是专用的逻辑单元6.延时缓冲单元延时缓冲单元的作用与时钟缓冲单元相类似,它是为了调解电路中的一些路径的延时以符合时序电路的要求而设计。例如:在同步电路设计中通常采用添加延时缓冲单元的方法来保证复位信号到达各个触发器的时间相同。避免因复位信号不一致而导致系统逻辑的混乱7.阱连接单元(well-tapcell)阱连接单元属纯物理单元,没有任何逻辑功能和时序约束,主要用于限制电源或地与衬底之间的电阻大小,减小锁效应。它是近年来在130nm或更加先进的工艺低功耗设计中新增加的一种特殊单元。8.电压转换单元电压转换单元(levelshifter)是近年来在90nm或更加先进的低功耗设计中新增加的一种特殊单元,用于低功耗多供电电压设计中芯片不同电压域模块之间信号电压转换。种类包括低到高、高到低以及双向电压转换三种,一般低到高电压转换单元有高电压和低电压两个供电端口,此外该单元放置在电压域的边处。9.隔离单元(isolation)隔离单元专门用于低功耗设计,它可以和上述的电平转换单元结合在一起,做成具有双重功能的单元10.开关单元开关单元专门用于低功耗的,有精细结构和粗制结构两种,前者目前较少用,形状上有环状和柱状两种。环状开关单元由SRPG单元来实现,柱状开关单元可以用门控单元实现。.tf——technologyspecificinformation.tlu——Look-uptableforRC;.itf——interconnectformat;.db——Timinginformation(R,C,L)ofIPs;若tluplusfile没有时,可由Foundry给的.itf转成tluplus(用StarRC,在shell下用此命令就行:grdgenxo-itf2TLUPlus)。1KeepoutmarginAkeepoutmarginisaregion(theunshadedportioninFigure6-1)aroundtheboundaryoffixedmacrosinyourdesigninwhichnoothercellsareplaced.KeepingtheplacementofcellsoutofsuchregionsavoidscongestionandnetdetouringandproducesbetterQoR(qualityofresults).Whenreadinginanon-uniquifieddesign,thefirstcommandsofyourICCscriptshouldbe:current_designMY_TOP_DESIGNuniquifyICCompilersupportsNLDMandCCS(CompositeCurrentSource)librariesNLDMsarenotaccurateenoughfor90nmandbelowUseCCS2.librarysetupGeneratingTLU+ModelsConvertLEFtoMilkywayFRAMTheaboveappliestoreferencelibrariesonly.DelayCalculationAlgorithmCalculatingNetDelayisdoneusingDelayCalculationalgorithms:Elmore,ArnoldiTheTclcommand“set”assignsthestring“*gates.dbio.dbrams.db”tothevariablelink_library.ICCompilersearchesforlibraryfilenamesasindicatedbythisvariable,intheorderthey’relisted.The“*”standsforalldesignsthathavealreadybeenloadedintoICCompiler.Whenthelinkisperformed,itusesdesigninformationalreadyloadedintothememoryfirst.Ifthedesigndatacannotbefoundinmemory,itloadsthemissinglibrariesasnecessary.These.dbfilescanbelocatedintheLMviewsofareferencelibrary,butthisisnotrequired.Howdoyoufindoutwhatlibrariesareloaded?list_libsWhatifthesamecellisdefinedinmorethanonelibrary,andalllibrariesareinlink_library?ICCompilerwillpickthenamedcellfromthefirstlibraryitfindsitin.1.MilkywayReferenceLibrariesInformationisstoredinso-called“views”,forexample:CEL:ThefulllayoutviewFRAM:TheabstractviewusedforP&RLM:LogicModelwithTimingandPowerinfo(optional*)。(Optional)heremeansthatthelogicallibrariesdonothavetobestoredwithintheMilkywaylibrarystructure,butcanbelocatedanywhereelse.ICCompileronlyreadslogicallibraries(.db)specifiedthroughthelink_libraryvariable.2.TechnologyFile(.tffile)TechFileisuniquetoeachtechnologyContainsmetallayertechnologyparameters:Numberandnamedesignationsforeachlayer/viaDielectricconstantfortechnologyPhysicalandelectricalcharacteristicsofeachlayer/viaDesignrulesforeachlayer/Via(Minimumwirewidthsandwire-to-wirespacing,etc.)UnitsandprecisionforelectricalunitsColorsandpatternsoflayersfordisplayExampleofaTechnologyFile:Technology{dielectric=3.7unitTimeName=nstimePrecision=1000unitLengthName=micronlengthPrecision=1000gridResolution=5unitVoltageName=v}...Layerm1{layerNumber=16maskName=metal1pitch=0.56defaultWidth=0.23minWidth=0.23minSpacing=0.233HowdoesICCompilerFindFiles?Youmayspecifywheretolookforfiles:lappendsearch_path./design_data../scriptslappendsearch_path[glob$MW_libs/*/LM]Intheexampleabove,thecommandlappendisusedto“append”twopathstothecurrentsettingofsearch_path.Neverusethecommand“set”tosetthisvariable,asbydefaultitisalreadysettodirectoriesintheinstallationtreeofICCompiler.Youcanalsousesetinsteadoflappendtomodifythesearch_path:setsearch_path$search_path./design_data../scripts“setsearch_path$search_path[glob$MW_libs/*/LM]“Typically,thetarget_librarypointstoyourstandardcellsonly,othercelllibrayssuchasusedforSRMAorROMaresetinthelink_path,forexample:Settarget_library“slow.db”Setlink_library“*fast.dbslow.dbio_max.dbram32x32.db”Gat