ÐOPS m:m:D€‚For:tonysÿ‚Printed on:Wed, Dec 10, 1997 14:40:38ÿ‚From book:lcugÿ‚Document:Coverÿ‚Last saved on:Wed, Dec 10, 1997 14:37:33ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:timsps8±:									
				!!!°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps24b±:????????????????????????????????!288YH!!':88888888888!!:::=bHHHHC=NH8H=SHNCNHC=HC^CC=!!:88=8=8!==8Y===='8!=8N882'':2?????????????????????????????????!8888?8!?%8???!??????8??%8???=HHHHHHdHCCCC?HNNNNN?NHHHH??=888888Y88888?======?=====??8?82d!8??d?????????88!!2??????d???????????????8????d???^°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°
wst:helvps22±
:::::::::::::::::::::::::::::::::33R=$6333333333336663]==BB=8HB.=3MBH=HB=8B=W==8+333.3333.M3333.3.B...6:::::::::::::::::::::::::::::::::3333:3:"3:::::::::1::"3:::8======\B====:BHHHHH:HBBBB::8333333R.3333:333333:83333::.:3.\3::\:::::::::33::::::\:::::::::::::::3::::\:::W°wst:helvps8±:							!								!									!!!!°wst:helvps22b±:::::::::::::::::::::::::::::::::.33RB$6333333333336668ZBBBB=8HB3B8MBH=HB=8B=W==86338383883R8888$383H33.$$6.:::::::::::::::::::::::::::::::::3333:3:"3:::::::::3::"3:::8BBBBBB\B====:BHHHHH:HBBBB::8333333R33333:888888:88888::3:3.\3::\:::::::::33.::::::\:::::::::::::::3::::\:::W°spsb:symbb10±)))*! * 
#,!!!! %,  #!  )) ! #°Uwst:helvps10i±U:%	+!#!!(				#*!!!!!!%****(åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’'0|D“I501ileaf_page_string1:i¥	öä²â¡®¡Ï®¡ž®¥	öä²¡À¡À¡4À¡¤Ã²¡üa²L¤ÿüi¤ÿüb¤ÿür¤ÿüa¤ÿür¤ÿüy´µC¤ÿüo¤ÿüm¤ÿüp¤ÿüi¤ÿül¤ÿüe¤ÿür¡üÞ²	U¤ÿüs¤ÿüe¤ÿürµG¤ÿüu¤ÿüi¤ÿüd¤ÿüe¥	öäÁÊËÃ¡Ä±ÆÃ¡üj²V¤ÿýersion´µ1998.02,µFebruaryµ1998¡ü	Comments?¡ü	SE³mailµyourµcommentsµaboutµSynopsys¡ü	šdocumentationµtoµdoc@synopsys.com¥	öäÒÓÐþ
-Y¥Y¥Z¦ ûÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüäšÉäÕÛÚÁäüãÿÏäãääÀ‡ääääãáÚ
ääääÚÕÖáÿäÕäÞãÿÏü88ˆÄäÕpãKÈJÏˆÈ8<>ü	ÏÈŠÈKÈÏÏ8ŠÄÁÏKÈIÀÁÕüu
ŽÁÏZ8ˆØrT+Wu)ü)-Ä.ŠÆjUˆÂ	ÈAc-aÒËü1%‰ÁˆÌ:ˆÁF‰ÅÆ%ãÈü9CŽÃBFˆÈÃ>"?#äÀbüAÃ6ŠÂ	?ˆÇÄ6ÇC9ÁüÁüŒÂŠÂ>3ˆÆÅÏŒó|
ÌÅüÉÏ	;‰âäÞ
ÀÁÚ*ÞpØ*‰ÐÀƒÏ#ÃÆü+1>Ï#jÞÈÉ3‹ÌiCüÂ2)‹Ã6>	ˆÊ‹Ã:ŠðÈüˆÈ2ŒÌF$3D!2!Bü;FŽÁC“Å“Çü‘Ä‰ÈÅÅ‹ÄB:.Èü%-ŒÃ‰ÇF?‹Ã$Aü‰È¬Ä“ÈüŽÁ­Å‹çÃìü‹Ä-§ÈŠÂüˆD1ü‰Ç§Ã5‹ÂÀáéü‹Ã5§Ç‰óÈÈüˆ)âÃü‰Æ§Â=‹Ëaü‹Â=§Æ‰Â1üˆ	äÏü‰Å$§ÁEüääÈˆÈžÃ?äÞˆÄ;IääÈü;­Åü‰Ä,¨ÈüÁÆŠÁ*Â2üÂ2ˆÈ£ÁˆÄˆÅü+4¨ÇüÂÅB‰Â2Á"üÁ"ˆÇ¤ÇˆÃü<ŸÄ25ˆÈüAŒÃÃ*‰Ã:9	ü9	È7¡Â"6Bü1:‰ÈŸÁRŽÅrü)2&žÈ	-#B!*ü!*/¢ÇB"ü"ˆÁ¡Æ:ÂüRE-šÈ+2$+	
ü	È	' Å!*GF	ü:B¡ÊZŽÎzü2:<5™Á3+2ü*2ÊE	?&*ü"bœÞ=BÃ"ü4=—Ûä6:üJ Æ*26ÇüC	§Ç"bŽÈ	Èü;B+"ŸÈŠÇ:ü3rC›ÁK6È!l2ü+*¥ÂD	ŽÄ*ü#"#*žØ<BC‰Ã"ü
›ÁÏ4:A*üK¤ã-jÁJüD	È5šÛää&"ŽÈBü<:¡Ã;2=:ü42$¤ÂEˆÆ2ü,*=£ÁÈ	ŽÌ*ü$"¢ÇB2:"üT/¥Æ:‰ÂüE¤Å2ÁüE
$¢Ä**DF	ü=	4¥ÃÄ‰Çü5¥Â‘Æü‹È+¢Á""/Bü-B;¬ÃÅü%¦ÈÄü‹Ç3¥ÃŠÇüˆÇC¬ÄÆüŒÃüÖää5;žâäÚ:ääüºÇü‹ÁÄ¬Åü‹ÅC¨Á#üºÈü‹ÂÅ¬Æü‹Ä
ªÈ*ü‹Ã­ïüüŒÆüŽÂ­Æü¹ÂüŒÇüŽÃ­Çü¢Ç”ÃüFüˆÇ%Å	”ÇF:üCžÈÄˆÄˆÈüÄ:!“È$‰ÇB‹Ã:!ü3)B-ÎIŽÂ	"6)Bücq–ÄbYŽÁÏÊ.ˆÒqüÃäÈÃäÚ*ŒßÞÉäÈü6Â7‰Æ.üÉV”Á?‰Å63üA%‘ÈF‰Ä~ŠÈ]ü9->ŽÇŠÃ<-ü15•ÓŠÉ<n5üLÏ#‘Êp‹Õ‹ÑÏüIÏGŽÁÏKÈ‹ÒÕ&Ïü8JÕ‹ÐääÈJääÈ>|
ääÕNÈØ
Õüääá-’ÁäääÈâääÕEOääãüÁ­Åüü‹Æ¬ÁüÂ­Æüü‹Ç¬ÂüÃ­Çüü¸Ãü‹ÈüÄ­Èü¸ÄüŠÁüÅ¬ÁüüŠÂ­ÅüÆ¬ÂüüŠÃ­ÆüÇ¬ÃüüŠÄ­ÇüÈ¬ÄüüŠÖää«âäÚüüüüüÿ’|QD“I501ileaf_page_string1:ii¥	öä¥	öäâ²¡,ii¡,Ã²Copyright´µNoticeµandµProprietaryµInformation¡,ó²Copyright´µ²{²µ1998µSynopsys,µInc.µAllµrightsµreserved.µThisµsoftwareµandµdocumentationµareµownedµby¡, Synopsys,µInc.,µandµfurnishedµunderµaµlicenseµagreement.µTheµsoftwareµandµdocumentationµmayµbeµused¡,Norµcopiedµonlyµinµaccordanceµwithµtheµtermsµofµtheµlicenseµagreement.µNoµpartµofµtheµsoftwareµandµdocu·³¡,|mentationµmayµbeµreproduced,µtransmitted,µorµtranslated,µinµanyµformµorµbyµanyµmeans,µelectronic,µme·³¡,©chanical,µmanual,µoptical,µorµotherwise,µwithoutµpriorµwrittenµpermissionµofµSynopsys,µInc.,µorµasµexpressly¡,×providedµbyµtheµlicenseµagreement.¡,²Right´µtoµCopyµDocumentation¡,L²The´µlicenseµagreementµwithµSynopsysµpermitsµlicenseeµtoµmakeµcopiesµofµtheµdocumentationµforµitsµinter·³¡,znalµuseµonly¤ÿý.µEachµcopyµshallµincludeµallµcopyrights,µtrademarks,µserviceµmarks,µandµproprietaryµrights¡,§notices,µifµany¤ÿý.µLicenseeµmustµassignµsequentialµnumbersµtoµallµcopies.µTheseµcopiesµshallµcontainµthe¡,Õfollowingµlegendµonµtheµcoverµpage:¡ÂThisµdocumentµisµduplicatedµwithµtheµpermissionµofµSynopsys,µInc.µforµtheµexclusive¡ÂHuseµofµ__________________________________________µandµitsµemployees.µThis¡Âuisµcopyµnumberµ__________."¡,Ò²Destination´µControlµStatement¡,²All´µtechnicalµdataµcontainedµinµthisµpublicationµisµsubjectµtoµtheµexportµcontrolµlawsµofµtheµUnitedµStatesµof¡,/America.µDisclosureµtoµnationalsµofµotherµcountriesµcontraryµtoµUnitedµStatesµlawµisµprohibited.µItµisµthe¡,]reader¤'¤ÿÿsµresponsibilityµtoµdetermineµtheµapplicableµregulationsµandµtoµcomplyµwithµthem.¡,¢²Disclaimer¡,Ò²SYNOPSYS,µINC.,µANDµITSµLICENSORSµMAKEµNOµW¤ÿþARRANTYµOFµANYµKIND,µEXPRESSµORµIM·³¡,PLIED,µWITHµREGARDµT¤ÿÿOµTHISµMA¤ÿýTERIAL,µINCLUDING,µBUTµNOTµLIMITEDµT¤ÿÿO,µTHEµIMPLIED¡,-W¤ÿþARRANTIESµOFµMERCHANT¤ÿýABILITYµANDµFITNESSµFORµAµP¤ÿýAR¤ÿÿTICULARµPURPOSE.¡,s²T¤ÿýrademarks¡,¢²Synopsys,µtheµSynopsysµlogo,µArcadia,µBiNMOS³CBA,µCMOS³CBA,µCOSSAP¤ÿû,µDESIGNµ(ARROWS),¡^ÐDesignPower¤ÿþ,µDesignW¤ÿþare,µdont_use,µEPIC,µExpressModel,µin³Sync,µLM³1000,µLM³1200,µLogic¡^þModeling,µLogicµModelingµ(logo),µMemoryµArchitect,µModelAccess,µModelT¤ÿûools,µPathMill,µ²UPL²debug,¡^,RailMill,µSmartLicense,µSmartLogic,µSmartModel,µSmartModels,µSNUG,µSOL¤ÿýV¤ÿþ³IT!,µSourceModel¡^YLibrary¤ÿý,µStreamµDrivenµSimulator¤ÿþ,µSynopsys,µSynopsysµ(logo)µSynopsysµVHDLµCompiler¤ÿþ,µSynthetic¡^‡Designs,µSyntheticµLibraries,µT¤ÿûestBenchµManager¤ÿþ,µandµT¤ÿþimeMillµareµregisteredµtrademarksµof¡^µSynopsys,µInc.¡,â3³DµDebugging,µAMPS,µBehavioralµCompiler¤ÿþ,µCBAµDesignµSystem,µCBA³Frame,µcharacterize,µChip¡^Architect,µCompiledµDesigns,µCoreµNetwork,µCoreµStore,µCyclone,µDataµPathµExpress,µDataPath¡^>Architect,µDCµExpert,µDCµExpertµPlus,µDCµProfessional,µDelayMill,µDesignµAdvisor¤ÿþ,µDesignµAnalyzer¤ÿþ,¡^kDesignµCompiler¤ÿþ,µDesignSource,µDesignT¤ÿþime,µDesignW¤ÿþareµDeveloper¤ÿþ,µDirectµR¤ÿÿTL,µDirectµSilicon¡^™Access,µdont_touch,µdont_touch_network,µECLµCompiler¤ÿþ,µECOµCompiler¤ÿþ,µEmbeddedµSystem¡^ÇPrototype,µFloorplanµManager¤ÿþ,µFormality¤ÿý,µFoundryModel,µFPGAµCompiler¤ÿþ,µFPGAµ²UExpress²,µFrame¡^ôCompiler¤ÿþ,µGeneralµPurposeµPost³Processor¤ÿþ,µGPP¤ÿû,µHDLµAdvisor¤ÿþ,µHDLµCompiler¤ÿþ,µIntegrator¤ÿþ,µInteractive¡^	"W¤ÿþaveformµV¤ÿÿiewer¤ÿþ,µLibraryµCompiler¤ÿþ,µLM³1400,µLM³700,µLM³family¤ÿý,µLogicµModel,µModelSource,¡^	PModelW¤ÿþare,µModuleµCompiler¤ÿþ,µMS³3200,µMS³3400,µPowerµCompiler¤ÿþ,µPowerArc,µPowerGate,¡^	}PowerMill,µPrimeT¤ÿþime,µR¤ÿÿTLµAnalyzer¤ÿþ,µShadowµDebugger¤ÿþ,µSiliconµArchitects,µSimuBus,µSmartCircuit,¡^	«SmartModelµWindows,µSource³LevelµDesign,µSourceModel,µSWIFT¤ÿû,µSWIFTµInterface,µSynopsys¡^	ÙGraphicalµEnvironment,µT¤ÿûestµCompiler¤ÿþ,µT¤ÿûestµCompilerµPlus,µT¤ÿûestµManager¤ÿþ,µT¤ÿûestSim,µT¤ÿþimingµAnnotator¤ÿþ,¡^
T¤ÿþrace³On³Demand,µVHDLµSystemµSimulator¤ÿþ,µV¤ÿÿisualyze,µV¤ÿÿivace,µVSSµExpert,µandµVSSµProfessional¡^
4areµtrademarksµofµSynopsys,µInc.¡,
bAllµotherµproductµorµcompanyµnamesµmayµbeµtrademarksµofµtheirµrespectiveµowners.¡,
½PrintedµinµtheµUSA¡,
ëDocumentµOrderµNumberµ26740-000µEA¡,LibraryµCompilerµµUserµGuide,µV¤ÿþersionµ1998.02’QÐOPS m:m:D€‚Document:Aboutÿ‚Last saved on:Tue, Dec 9, 1997 17:51:44ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:timsps8±:									
				!!!°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:timsps10b±:*#'!!!(!!*#	*!!!!!!****°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Lwst:courps11±L:.°Mwst:courps11i±M:.°pspsa:symba11±p!&$!!#!! )!!#" #%(!  	°…wst:courps11b±…:.°Žspsb:symbb11±Ž---.$#. #!!&0 !$$!!$  $#)!!!!0##&%!!!##--#$#&ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿ‘hˆå™™ÿÿNîÍå®á@@à  @@@à  @áàààààààà±±±±±±±±áªªªªªªªªªªªªªªªªáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáððððððððððððððððáýýßßßßßßýýýýýýßßßßßßýýýýÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’N.¸D“I501ileaf_page_string1:iii¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öäÃÁÊË¡Ä,Ù,Ã¡Ä,Ã	cÃ¡Ä	cÃ	cÙ¡Ä	cÙ,ÙÆÃÁÊËÃ¡Ä,ÃÊÃÆÃ¥	öä¥	öä²¡Ô¤ÿáiii¡,m²	¥	öä¡JmAbout´µThisµManual¡þ6²This´µmanualµdescribesµSynopsysµLibraryµCompiler,µwhichµisµused¡þwithµCMOSµtechnology.µLibraryµCompilerµcapturesµASICµlibraries¡þÈandµtranslatesµthisµinformationµtoµSynopsysµinternalµdatabaseµformat¡þforµsynthesis,µorµtoµVHDLµformatµforµsimulation.¡,²Audience¡þØ²Theµmanualµisµwrittenµforµlibraryµdesigners,µlogicµdesigners,µand¡þ!electronicsµengineers.µItµassumesµaµbasicµfamiliarityµwithµSynopsys¡þiDesignµCompilerµandµexperienceµreadingµmanufacturers'¡þ²specificationµsheetsµforµASICµcomponents.¡þ	UKnowledgeµofµVHDLµsimulationµlanguageµisµrequiredµofµusersµwho¡þ	wantµtoµuseµLibraryµCompilerµtoµgenerateµVHDLµsimulationµlibraries.’¸›D“I501ileaf_page_string1:iv¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,o,Y¡Ä,Y	cY¡Ä	cY	co¡Ä	co,oÆÃÁÊËÃ¡ÄþYÊYÆÃ¥	öä¥	öä²¡,iv¡,Õ²Manual´µContents¡þŠ²This´µmanualµisµseparatedµintoµfiveµpartsµcontainingµtheµfollowing¡þÒchapters:¡þ©²Part´µ1:µAboutµLibraryµCompiler¡þ}Chapterµ1:µIntroductionµtoµLibraryµCompiler¡þ²Describes´µLibraryµCompiler,µhowµitµisµused,µitsµrelationshipµwith¡þ\otherµSynopsysµproducts,µandµtheµtypesµofµlibrariesµyouµcan¡þ¥generate.¡þ|²Chapter´µ2:µLibraryµDevelopmentµProcedure¡þ²Describes´µtheµgeneralµprocedureµforµcreatingµtheµminimum¡þ\technologyµlibrary.¡þ3²Chapter´µ3:µUsingµtheµLibraryµCompilerµShellµInterface¡þÊ²Describes´µthe²µ²lc_shellµinterfaceµtoµLibraryµCompilerµandµthe¡þ	commandsµusedµtoµmanipulateµlibraries.¡þ	ê²Chapter´µ4:µUsingµtheµLibraryµCompilerµGraphical¡þ
4Interface¡þ
Ì²Describes´µtheµGraphicalµUserµInterfaceµtoµLibraryµCompilerµandµthe¡þcommandsµusedµtoµmanipulateµlibraries.’›KD“I501ileaf_page_string1:v¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,e,O¡Ä,O	cO¡Ä	cO	ce¡Ä	ce,eÆÃÁÊËÃ¡ÄþOÊOÆÃ¥	öä¥	öä²¡Ô¤ÿév¡þÏ²Part´µ2:µµBuildingµLibraries¡þChapterµ5:µUsingµLibraryµCompilerµSyntax¡þ²Describes´µtheµsyntaxµusedµtoµcreateµlibraryµsourceµfiles.¡þÞ²Chapter´µ6:µBuildingµaµSymbolµLibrary¡þj²Explains´µhowµtoµcreateµtext³basedµsymbolµlibraries,µincludingµcell¡þ²symbolsµandµspecialµsymbols.¡þv²Chapter´µ7:µBuildingµaµTechnologyµLibrary¡þ²Shows´µhowµtoµdescribeµCMOSµtechnologyµlibraries,µincludingµthe¡þJattributesµthatµapplyµtoµtheµlibraryµasµaµwhole,µsuchµasµtechnology¡þ“type,µdate,µandµrevision,µasµwellµasµdefinitionsµandµdefaultsµthat¡þÜapplyµtoµtheµlibraryµinµgeneral.¡þŸ²Part´µ3:µµDefiningµCells¡þ_Chapterµ8:µDefiningµCoreµCells¡þë²Shows´µhowµtoµcreateµtheµdescriptionsµofµtheµcellsµorµelementsµofµan¡þ	4ASICµtechnologyµforµCMOSµtechnologyµlibraries,µincludingµtheµcell's¡þ	|physicalµcomponentsµandµlogicµrelationships.¡þ
@²Chapter´µ9:µDefiningµSequentialµCells¡þ
Ì²Describes´µtheµpeculiaritiesµofµdefiningµflip³flopsµandµlatches,µbuilding¡þonµtheµcellµdescriptionµsyntax.’K¦D“I501ileaf_page_string1:vi¥	öäÃËÁâÊË¡Ä,”,~¡Ä,~	c~¡Ä	c~	c”¡Ä	c”,”ÆÃÁÊËÃ¡Äþ~Ê~ÆÃ¥	öä¥	öä²¡,vi¡þÏ²Chapter´µ10:µDefiningµMemoryµModules¡þQ²Describes´µcreatingµmemoryµmodules.¡þ²Chapter´µ11:µDefiningµInput/OutputµPads¡þˆ²Gives´µtheµlibrary,µcell,µandµpinµgroupµattributesµthatµapplyµspecifically¡þÑtoµpads,µandµexplainsµhowµtoµputµtheseµandµotherµattributesµtogether¡þtoµdescribeµinput,µoutput,µandµbidirectionalµpadµcells.¡þÎ²Chapter´µ12:µDefiningµTestµCells¡þQ²Shows´µhowµtoµdescribeµscannableµcellsµforµuseµwithµSynopsysµTest¡þ™Compiler.¡þN²Chapter´µ13:µModelingµPower¡þÐ²Shows´µhowµtoµmodelµstaticµandµdynamicµpowerµforµCMOS¡þtechnology.¡þÍ²Part´µ4:µµTiming¡þChapterµ14:µTimingµArcs¡þ	²Describes´µtheµtimingµgroupsµthatµprovideµtheµinformationµDesign¡þ	JCompilerµneedsµtoµmodelµtimingµarcsµandµtraceµpaths.¡þ	þ²Chapter´µ15:µInterfaceµTimingµofµComplexµSequential¡þ
IBlocks¡þ
Ì²Introduces´µInterfaceµTimingµSpecificationµ(ITS)µforµsequentialµblocks¡þandµdescribesµtheµprocedureµforµspecifyingµtimingµmodels.’¦­D“I501ileaf_page_string1:vii¥	öäÃËÁâÊË¡Ä,ñ,Û¡Ä,Û	cÛ¡Ä	cÛ	cñ¡Ä	cñ,ñÆÃÁÊËÃ¡ÄþÛÊÛÆÃ¥	öäÃÁÊË¡Ä,”,~¡Ä,~	c~¡Ä	c~	c”¡Ä	c”,”ÆÃÁÊËÃ¡Äþ~Ê~ÆÃ¥	öä¥	öä²¡Ô¤ÿÕvii¡þÏ²Chapter´µ16:µTimingµandµPowerµReportµFormat¡þ_²Describes´µcreatingµaµtimingµreport.¡þ+²Part´µ5µµOptimization¡þóChapterµ17:µBuildingµEnvironments¡þ„²Shows´µhowµtoµcreateµtheµvariousµenvironmentsµusedµinµa¡þÌtechnologyµlibrary,µincludingµoperating³conditionµgroups,µtiming¡þranges,µandµwireµloadµmodels.¡þà²Chapter´µ18:µVerifyingµCMOSµLibraries¡þq²Shows´µhowµtoµverifyµtheµaccuracyµandµconsistencyµofµCMOS¡þºtechnologyµandµsymbolµlibraries,µincludingµcellµmakeup,µcell¡þfunction,µandµtimingµcharacteristics.¡þÎ²Appendix´µandµGlossary¡þ–Appendix:µSampleµCMOSµTechnologyµLibrary¡þ	'²Contains´µaµsampleµlibraryµthatµillustratesµtheµmodelingµtechniques¡þ	ousedµinµcreatingµtheµtextµsourceµfileµforµaµCMOSµtechnologyµlibrary.¡þ
;²Glossary¡þ
Ì²Providesµexplanationsµofµimportantµtermsµandµconceptsµusedµinµthis¡þmanual.’­D“I501ileaf_page_string1:viii¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,L,6¡Ä,6	c6¡Ä	c6	cL¡Ä	cL,LÆÃÁÊËÃ¡Äþ6Ê6ÆÃ¥	öäÃÁÊË¡Ä,~,h¡Ä,h	ch¡Ä	ch	c~¡Ä	c~,~ÆÃÁÊËÃ¡ÄþhÊhÆÃ¥	öä¥	öä²¡,viii¡,Õ²Other´µSourcesµofµInformation¡þz²For´µmoreµinformationµaboutµEDAµsystemsµandµusingµthemµwith¡þÂEDIF,µreferµtoµresourcesµinµtheµfollowingµsections.¡þ…²Related´µPublications¡þ²This´µSynopsysµdocumentationµsuppliesµadditionalµinformation:¡þˆ²S¡Xˆ²²&DesignµAnalyzerµReferenceµManual¡þò²²S¡Xò²²&DesignµCompilerµReferenceµManual:µConstraintsµandµTiming¡þ\²²S¡X\²²&DesignµCompilerµReferenceµManual:µFundamentals¡þÅ²²S¡XÅ²²&DesignµCompilerµReferenceµManual:µOptimization¡þ/²²S¡X/²²&LibraryµCompilerµReferenceµManualµVolumeµ1¡þ™²²S¡X™²²&LibraryµCompilerµReferenceµManualµVolumeµ2¡þ²²S¡X²SynopsysµManµPages¡þ¸²SOLV³IT!´µOnlineµHelp¡þC²SOLV³IT!´µisµtheµSynopsysµelectronicµknowledgeµbase.µItµcontains¡þŒinformationµaboutµSynopsysµandµitsµtoolsµandµisµupdatedµdaily.¡þ	AccessµSOLV³IT!µthroughµe³mailµorµthroughµtheµWorldµWideµWeb¡þ	c(WWW).µForµmoreµinformationµaboutµSOLV³IT!,µsendµe³mailµto¡þ	×²solvitfb@synopsys.com¡þ
h²orµviewµtheµSynopsysµWebµpageµat¡þ
Û²http://www.synopsys.com’³D“I501ileaf_page_string1:ix¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä²¡Ô¤ÿßix¡þÏ²Customer´µSupport¡þn²If´µyouµhaveµproblems,µquestions,µorµsuggestions,µcontactµthe¡þ¶SynopsysµTechnicalµSupportµCenterµinµoneµofµtheµfollowingµways:¡þ;²S¡X;²Sendµe³mailµto¡X«²support_center@synopsys.com¡þ(²²S¡X(²Callµ(415)µ694³4200µoutsideµtheµcontinentalµUnitedµStatesµorµcall¡Xo(800)µ245³8005µinsideµtheµcontinentalµUnitedµStates,µfromµ7µAM¡X¶toµ5:30µPMµPacificµStandardµTime,µMondayµthroughµFriday.¡þ)²S¡X)²Sendµaµfaxµtoµ(415)µ965³2539.’³D“I501ileaf_page_string1:x¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä²¡,x¡,Õ²Notation´µConventions¡þv²The´µfollowingµconventionsµareµusedµinµSynopsysµmanuals:¡þü²¥	öä¡²"Convention²¡æü¥	öä¡²"Description²¡Òü¡þd¥	öä¡•²Mmonospace¡ËitalicÁã¡ÃÄþ@å@åCþCþ@Ç²¡æd¥	öä¡•²Indicates´µaµuserµspecification,µsuchµasµ²Mobject_name².¡ÃÄæ@Ó@ÓCæCæ@Ç²¡Òd¡þ¥	öä¡E²Lmonospace²¡æ¥	öä¡E²Inµexamples,µshowsµsystemµprompts,µtextµfromµfiles,µand¡{errorµmessagesµprintedµbyµtheµsystem.¡±Inµtext,µitµisµusedµforµcommands,µvariableµnamesµand¡çvalues,µreservedµwords,µfilenames,µandµpathnames.²¡Ò¡þ0¥	öä¡a²…monospace´µbold²¡æ0¥	öä¡a²In´µexamples,µindicatesµthatµyouµenterµtheµtextµverbatim.²¡Ò0¡þ¨¥	öä¡Ù²[³]²¡æ¨¥	öä¡Ù²Denotesµoptionalµparameters,µsuchµasµ²Mpin1²L´µ[²Mpin2²L,..¡²MpinN²L]².´µThisµexampleµindicatesµthatµatµleastµoneµpinµname¡Emustµbeµenteredµ(²Mpin1²),µbutµothersµareµoptional¡{²L[²Mpin2²L,..´µ²MpinN²L]².²¡Ò¨¡þÄ¥	öä¡õ²|²¡æÄ¥	öä¡õ²Indicates´µaµchoiceµamongµalternatives,µsuchµasµ²Llow´µ|¡+mediumµ|µhigh².´µThisµexampleµindicatesµthatµoneµof¡athreeµpossibleµvaluesµcanµbeµenteredµforµanµoption:µ²Llow²¤ÿý,¡—²Lmedium²,µorµ²Lhigh².²¡ÒÄ¡þà¥	öä¡²p_²¡æà¥	öä¡²Connectsµtwoµtermsµthatµareµreadµasµaµsingleµtermµbyµthe¡Gsystem.µForµexample,µ²Ldesign²p_²Lspace².²¡Òà¡þ¥	öä¡Á²(Ctrl³C)²¡æ¥	öä¡Á²MeansµholdµtheµControl²"µ²keyµdown,µthenµpressµC.²¡Ò¡þ	¥	öä¡	9²\²¡æ	¥	öä¡	9²Indicatesµaµcontinuationµofµaµcommandµline.²¡Ò	¡þ	€¥	öä¡	±²/²¡æ	€¥	öä¡	±²Indicatesµlevelsµofµdirectoryµstructure.²¡Ò	€¡þ	ø¥	öä¡
)²name1²Ž"²name2²¡æ	ø¥	öä¡
)²Showsµaµmenuµselection.²*µname1²µisµtheµmenuµnameµand¡
_²*name2²µisµtheµitemµonµtheµmenu.²¡Ò	ø’ÐOPS m:m:D€‚Document:tocÿ‚Last saved on:Tue, Dec 9, 1997 17:51:45ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///Gåååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›äD“I501ileaf_page_string1:xi¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿßxi¡,m²	¥	öä¡JmTable´µofµContents¡,²1.¡†Introduction´µtoµLibraryµCompiler¡4¡w1³1¡Ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†The´µRoleµofµLibraryµCompiler¡4¡w1³2¡’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àYSynthesis´µLibraries¡4Y¡wY1³3¡äY.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¬VHDL´µSimulationµLibraries¡4¬¡w¬1³3¡¯¬.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÿCreating´µLibraries¡4ÿ¡wÿ1³4¡Çÿ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†fT¤ÿúechnology´µLibraries¡4f¡wf1³5¡ªf.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÌSymbol´µLibraries¡4Ì¡wÌ1³8¡SÌ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†3Compiled´µLibrariesµandµDesignµCompiler¡43¡w31³9¡´3.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†šVHDL´µSimulationµLibrariesµandµtheµVHDLµSimulator¡4š¡Wš1³10¡Öš.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	@2.¡†	@Library´µDevelopmentµProcedure¡4	@¡w	@2³1¡Ì	@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	ÇT¤ÿúask´µ1µµUnderstandingµLanguageµConcepts¡4	Ç¡w	Ç2³3¡î	Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
References¡4
¡w
2³3¡
.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
nBasic´µSyntaxµRules¡4
n¡w
n2³3¡ä
n.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÁGroup´µStatements¡4
Á¡w
Á2³4¡Ç
Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àAttribute´µStatements¡4¡w2³4¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’äqD“I501ileaf_page_string1:xii¥	öä¥	öäâ²¡,xii¡†É²T¤ÿúask´µ2µµCreatingµaµLibrary¡4É¡wÉ2³5¡;É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àReferences¡4¡w2³5¡.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àvProcedure¡4v¡wv2³5¡üv.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÌDetermining´µtheµT¤ÿúechnology¡4Ì¡wÌ2³6¡ÌÌ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à#Selecting´µaµDelayµModel¡4#¡w#2³6¡u#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àyDetermining´µWhereµThisµLibraryµIsµUsed¡4y¡wy2³6¡y.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÏDescribing´µtheµLibrary¡4Ï¡wÏ2³7¡;Ï.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:&Naming´µtheµLibrary¡4&¡w&2³7¡;&.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:|Defining´µtheµLibraryµGroup¡4|¡w|2³8¡|.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÒSpecifying´µLibraryµGroupµAttributes¡4Ò¡wÒ2³8¡ÑÒ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†@T¤ÿúask´µ3µµDescribingµtheµEnvironment¡4@¡w@2³9¡#@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à—References¡4—¡W—2³10¡—.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àíProcedure¡4í¡Wí2³10¡üí.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDModeling´µDelayµCalculationµScalingµFactors¡4D¡WD2³10¡bD.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àšDefining´µDefaultµAttributes¡4š¡[š2³1¤ÿü1¡’š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àðDefining´µOperatingµConditions¡4ð¡Wð2³12¡ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àGModeling´µtheµWireµLoad¡4G¡WG2³14¡XG.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†µT¤ÿúask´µ4µµDefiningµtheµCells¡4µ¡Wµ2³16¡;µ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àReferences¡4¡W2³17¡.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àaProcedure¡4a¡Wa2³18¡üa.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¸Defining´µCoreµCells¡4¸¡W¸2³18¡ä¸.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	Referring´µtoµtheµDataµSheet¡4	¡W	2³19¡#	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	dSpecifying´µtheµCellµName¡4	d¡W	d2³22¡é	d.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	»Listing´µtheµPins¡4	»¡W	»2³22¡ä	».´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
Determining´µPinµFunctions¡4
¡W
2³24¡
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
hExample´µ³
µDµFlip³FlopµwithµstatetableµGroup¡4
h¡W
h2³25¡Ö
h.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
¾Example´µ³
µDµFlip³Flopµwithµf¤ÿÿfµGroup¡4
¾¡W
¾2³27¡
¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Describing´µT¤ÿþiming¡4¡W2³28¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’q-D“I501ileaf_page_string1:xiii¥	öä¥	öäâ²¡Ô¤ÿÊxiii¡àÉ²Defining´µInput/OutputµPads¡4É¡WÉ2³30¡¯É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Identifying´µPadµCells¡4¡W2³31¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nDescribing´µMulticellµPads¡4n¡Wn2³32¡én.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÁDefining´µUnitsµforµPadµCells¡4Á¡WÁ2³33¡#Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Identifying´µAreaµResources¡4¡W2³33¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:fDescribing´µInputµPads¡4f¡Wf2³34¡’f.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹Describing´µOutputµPads¡4¹¡W¹2³34¡¯¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Modeling´µWireµLoad¡4¡W2³35¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†pT¤ÿúask´µ5µµDescribingµApplication³SpecificµData¡4p¡Wp2³35¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÂReferences¡4Â¡WÂ2³36¡Â.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àProcedure¡4¡W2³36¡ü.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àgSetting´µDesignµRules¡4g¡Wg2³37¡g.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àºModeling´µforµT¤ÿúestableµCircuits¡4º¡Wº2³38¡éº.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àModeling´µforµPower¡4¡W2³38¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à_Adding´µSynthesis³to³LayoutµFeatures¡4_¡W_2³40¡´_.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:²In³Place´µOptimization¡4²¡W²2³40¡u².´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Routability¡4¡W2³41¡p.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†iExample´µT¤ÿúechnologyµLibraryµSourceµFile¡4i¡Wi2³42¡´i.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÍExample´µT¤ÿúechnologyµLibraryµwithµDelay¡4Í¡WÍ2³48¡—Í.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†2T¤ÿúask´µ6µµCompilingµtheµLibrary¡42¡W22³55¡’2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à„References¡4„¡W„2³55¡„.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à×Procedure¡4×¡W×2³55¡ü×.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	*In´µlc_shell¡4	*¡W	*2³55¡S	*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	|In´µtheµGraphicalµInterface¡4	|¡W	|2³55¡é	|.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	áT¤ÿúask´µ7µµManagingµtheµLibrary¡4	á¡W	á2³56¡’	á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
3References¡4
3¡W
32³56¡
3.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
†Procedure¡4
†¡W
†2³56¡ü
†.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’-9D“I501ileaf_page_string1:xiv¥	öä¥	öäâ²¡,xiv¡,É²3.¡†ÉUsing´µtheµLibraryµCompilerµShellµInterface¡4É¡wÉ3³1¡ÑÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†JUsing´µtheµCommandµInterface¡4J¡wJ3³2¡¯J.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àœStarting´µtheµCommandµInterface¡4œ¡wœ3³3¡#œ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ïUnderstanding´µtheµCommandµLog¡4ï¡wï3³5¡´ï.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:AUsing´µSetupµFiles¡4A¡wA3³6¡A.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à“Using´µlc_shellµCommands¡4“¡w“3³7¡’“.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àæInterrupting´µCommands¡4æ¡wæ3³7¡Xæ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à8Leaving´µtheµCommandµInterface¡48¡w83³8¡#8.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†œDescribing´µLibraryµFilesµandµMemoryµFiles¡4œ¡wœ3³9¡Ñœ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Using´µsearch_path¡4¡W3³10¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†cExplaining´µCommandµSyntax¡4c¡[c3³1¤ÿü1¡’c.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¶Arithmetic,´µString,µandµListµOperators¡4¶¡W¶3³13¡´¶.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àRedirecting´µCommandµOutput¡4¡W3³13¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†lUsing´µCommands¡4l¡Wl3³14¡pl.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¾Getting´µHelpµInformation¡4¾¡W¾3³15¡u¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Command´µUseµHelp¡4¡W3³15¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:cT¤ÿúopic´µHelp¡4c¡Wc3³15¡pc.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÆReading´µinµLibraries¡4Æ¡WÆ3³17¡ªÆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†*W¤ÿÿriting´µLibraryµFiles¡4*¡W*3³18¡ª*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ŽLoading´µCompiledµLibraries¡4Ž¡WŽ3³20¡XŽ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†òAdding´µDataµtoµExistingµLibraries¡4ò¡Wò3³22¡éò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	DGroups¡4	D¡W	D3³22¡Â	D.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	–Adding´µMemoryµModules¡4	–¡W	–3³24¡u	–.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	éProcessing¡4	é¡W	é3³25¡	é.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
MReporting´µLibraryµInformation¡4
M¡W
M3³26¡’
M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
°Listing´µResidentµLibraries¡4
°¡W
°3³31¡
°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Comparing´µLibraries¡4¡W3³33¡ª.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’9µD“I501ileaf_page_string1:xv¥	öä¥	öäâ²¡Ô¤ÿÒxv¡†É²Removing´µLibrariesµfromµMemory¡4É¡WÉ3³34¡éÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†5Encrypting´µVHDLµSourceµLibraries¡45¡W53³35¡5.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¡Using´µShellµCommands¡4¡¡W¡3³36¡¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à÷Command´µAliases¡4÷¡W÷3³36¡Ç÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Malias´µCommand¡4M¡WM3³37¡äM.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¢unalias´µCommand¡4¢¡W¢3³37¡¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àøListing´µPreviouslyµEnteredµCommands¡4ø¡Wø3³38¡Ñø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Mhistory´µCommand¡4M¡WM3³38¡M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à£Reexecuting´µCommands¡4£¡W£3³40¡u£.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ùCommand´µSubstitution¡4ù¡Wù3³40¡’ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àNShell´µCommands¡4N¡WN3³42¡ªN.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¤Command´µScripts¡4¤¡W¤3³43¡Ç¤.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:úUsing´µtheµincludeµCommand¡4ú¡Wú3³43¡#ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àOCommand´µStatus¡4O¡WO3³44¡ÇO.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¥Using´µControlµFlowµCommands¡4¥¡W¥3³46¡#¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:úif´µCommand¡4ú¡Wú3³47¡ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Pwhile´µCommand¡4P¡WP3³48¡P.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¦foreach´µCommandµ¡4¦¡W¦3³50¡;¦.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ûcontinue´µCommand¡4û¡Wû3³51¡Xû.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Qbreak´µCommand¡4Q¡WQ3³52¡Q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¦Using´µWildcardµCharacters¡4¦¡W¦3³53¡¯¦.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Using´µV¤ÿüariables¡4	¡W	3³53¡6	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	hSetting´µV¤ÿüariableµV¤ÿüalues¡4	h¡W	h3³54¡X	h.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	¾Creating´µV¤ÿüariables¡4	¾¡W	¾3³55¡Ç	¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Listing´µV¤ÿüariableµV¤ÿüalues¡4
¡W
3³55¡;
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
iRemoving´µV¤ÿüariables¡4
i¡W
i3³56¡
i.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
¿Creating´µV¤ÿüariableµGroups¡4
¿¡W
¿3³56¡’
¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àListing´µV¤ÿüariableµGroups¡4¡W3³57¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’µ›D“I501ileaf_page_string1:xvi¥	öä¥	öäâ²¡,xvi¡,É²4.¡†ÉUsing´µtheµLibraryµCompilerµGraphicalµInterface¡4É¡wÉ4³1¡EÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†HUnderstanding´µLibraryµCompilerµFunctions¡4H¡wH4³2¡ÑH.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†«Starting´µLibraryµCompiler¡4«¡w«4³2¡«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Using´µtheµInterface¡4¡w4³4¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†qUsing´µtheµMenuµBar¡4q¡wq4³5¡ªq.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÃFile¡4Ã¡wÃ4³6¡NÃ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Read¡4¡w4³7¡ß.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:gW¤ÿÿrite¡4g¡Wg4³12¡ßg.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹Encrypt¡4¹¡W¹4³15¡¹.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Update¡4¡W4³17¡.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:]Add´µModule¡4]¡W]4³19¡].´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¯Exit¡4¯¡W¯4³21¡Â¯.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àAnalyze¡4¡W4³22¡Â.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:RCompare¡4R¡WR4³23¡6R.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¤Report¡4¤¡W¤4³24¡ü¤.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àöOptions¡4ö¡Wö4³27¡Âö.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àHV¤ÿÿiew¡4H¡WH4³30¡ˆH.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àšHelp¡4š¡Wš4³31¡kš.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,65.¡†6Using´µLibraryµCompilerµSyntax¡46¡w65³1¡¯6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†µLibrary´µFileµNames¡4µ¡wµ5³2¡µ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Library¤ÿü,´µCell,µandµPinµNames¡4	¡w	5³3¡u	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	{Statements¡4	{¡w	{5³3¡Â	{.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÍGroup´µStatements¡4	Í¡w	Í5³4¡Ç	Í.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Attribute´µStatements¡4
¡w
5³5¡
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
pSimple´µAttributes¡4
p¡w
p5³5¡
p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
ÂComplex´µAttributes¡4
Â¡w
Â5³6¡;
Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDefine´µStatements¡4¡w5³7¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’›ÙD“I501ileaf_page_string1:xvii¥	öä¥	öäâ²¡Ô¤ÿ¾xvii¡†É²Comments¡4É¡wÉ5³8¡ÂÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†*Units´µofµMeasurement¡4*¡w*5³8¡ä*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†‹Library´µExample¡4‹¡w‹5³9¡6‹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡, 6.¡† Building´µaµSymbolµLibrary¡4 ¡w 6³1¡; .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†œSymbol´µLibraries¡4œ¡wœ6³2¡Sœ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àíCreating´µSymbolµLibraries¡4í¡wí6³2¡’í.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:>Mentor´µGraphicsµCAEµInterface¡4>¡w>6³3¡z>.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:EDIF´µInterface¡4¡w6³3¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:àT¤ÿúext´µFileµSymbolµLibraries¡4à¡wà6³3¡éà.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à1Symbol´µLibraryµFileµNames¡41¡w16³4¡¯1.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à‚Synopsys´µGenericµSymbolµLibrary¡4‚¡w‚6³4¡]‚.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÓT¤ÿþransferring´µaµSymbolµLibraryµfromµaµCAEµSystem¡4Ó¡wÓ6³5¡óÓ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à$Defining´µaµSymbolµLibraryµforµDesignµAnalyzer¡4$¡w$6³6¡œ$.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àvFonts´µinµSymbolµLibraries¡4v¡wv6³7¡’v.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÖSymbol´µLibraryµGroup¡4Ö¡wÖ6³7¡ÇÖ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à(Library´µV¤ÿüariables¡4(¡w(6³8¡ª(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àySymbol´µDimensioningµUsingµV¤ÿüariables¡4y¡wy6³9¡Ñy.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÊset_route_grid´µAttributeµ¡4Ê¡WÊ6³10¡XÊ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àset_meter_scale´µAttribute¡4¡[6³1¤ÿü1¡’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àlSpecial´µSymbolµAttributes¡4l¡[l6³1¤ÿü1¡’l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÍLayer´µGroup¡4Í¡WÍ6³12¡ßÍ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	Layer´µGroupµAttributes¡4	¡W	6³14¡;	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	oLayer´µGroupµExample¡4	o¡W	o6³15¡;	o.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	ÐSymbol´µGroup¡4	Ð¡W	Ð6³17¡	Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
!Graphic´µAttributes¡4
!¡W
!6³18¡Ç
!.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
rCell´µAttributes¡4
r¡W
r6³20¡p
r.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÃExample´µofµSymbolµDefinition¡4
Ã¡W
Ã6³22¡é
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àGeneral´µAttributes¡4¡W6³24¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’Ù$D“I501ileaf_page_string1:xviii¥	öä¥	öäâ²¡,xviii¡àÉ²T¤ÿúemplate´µAttributes¡4É¡WÉ6³27¡äÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Building´µtheµBorders¡4¡W6³28¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:kBuilding´µtheµKeyµBox¡4k¡Wk6³30¡uk.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ËSpecial´µSymbols¡4Ë¡WË6³32¡SË.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†+Library´µCompilerµChecks¡4+¡W+6³33¡+.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¾7.¡†¾Building´µaµT¤ÿúechnologyµLibrary¡4¾¡w¾7³1¡’¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†7Creating´µLibraryµGroups¡47¡w77³2¡7.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àˆSyntax¡4ˆ¡wˆ7³2¡¥ˆ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÙlibrary´µGroup¡4Ù¡wÙ7³4¡SÙ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†9Using´µGeneralµLibraryµAttributes¡49¡w97³5¡Ì9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àŠtechnology´µAttribute¡4Š¡wŠ7³5¡Š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÚdelay_model´µAttribute¡4Ú¡wÚ7³6¡Ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à+bus_naming_style´µAttribute¡4+¡w+7³6¡¯+.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à|routing_layers´µAttribute¡4|¡w|7³6¡X|.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÜDocumenting´µLibraries¡4Ü¡wÜ7³7¡äÜ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à-date´µAttribute¡4-¡w-7³8¡S-.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à}revision´µAttribute¡4}¡w}7³8¡ª}.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÎcomment´µAttribute¡4Î¡wÎ7³8¡ÇÎ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†.Defining´µUnits¡4.¡w.7³9¡..´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àtime_unit´µAttribute¡4¡w7³9¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÐvoltage_unit´µAttribute¡4Ð¡wÐ7³9¡Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	 current_unit´µAttribute¡4	 ¡W	 7³10¡	 .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	qpulling_resistance_unit´µAttribute¡4	q¡W	q7³10¡#	q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	Âcapacitive_load_unit´µAttribute¡4	Â¡W	Â7³10¡é	Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
leakage_power_unit´µAttribute¡4
¡[
7³1¤ÿü1¡é
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
sUsing´µPiecewiseµLinearµAttributes¡4
s¡[
s7³1¤ÿü1¡
s.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Äpiece_type´µAttribute¡4
Ä¡[
Ä7³1¤ÿü1¡
Ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àpiece_define´µAttribute¡4¡W7³12¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’$„D“I501ileaf_page_string1:xix¥	öä¥	öäâ²¡Ô¤ÿÈxix¡†É²Describing´µPads¡4É¡WÉ7³12¡SÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àinput_voltage´µGroup¡4¡W7³13¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àloutput_voltage´µGroup¡4l¡Wl7³14¡l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à½preferred_output_pad_slew_rate_control´µAttribute¡4½¡W½7³14¡ó½.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àpreferred_output_pad_voltage´µandµ¡àUpreferred_input_pad_voltageµAttributes¡4U¡WU7³15¡îU.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†·Describing´µPower¡4·¡W·7³16¡p·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àpower_lut_template´µGroup¡4¡W7³16¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:YT¤ÿúemplate´µV¤ÿüariables¡4Y¡WY7³17¡;Y.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†»Using´µProcessingµAttributes¡4»¡W»7³20¡u».´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àin_place_swap_mode´µAttribute¡4¡W7³20¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à]library_features´µAttribute¡4]¡W]7³21¡u].´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¯simulation´µAttribute¡4¯¡W¯7³22¡ä¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Setting´µMinimumµCellµRequirements¡4¡W7³22¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†rCMOS´µLibraryµGroupµExample¡4r¡Wr7³23¡¯r.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÓUsing´µCMOSµDefaultµAttributes¡4Ó¡WÓ7³23¡ÌÓ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,j8.¡†jDefining´µCoreµCells¡4j¡wj8³1¡j.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†çDefining´µCellµGroups¡4ç¡wç8³2¡ªç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à8cell´µGroup¡48¡w88³2¡ü8.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àŠarea´µAttribute¡4Š¡wŠ8³4¡SŠ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÛcell_footprint´µAttribute¡4Û¡wÛ8³5¡Û.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	,contention_condition´µAttribute¡4	,¡w	,8³5¡é	,.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	~dont_fault´µAttribute¡4	~¡w	~8³6¡ä	~.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	Ïdont_touch´µAttribute¡4	Ï¡w	Ï8³6¡	Ï.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
 dont_use´µAttribute¡4
 ¡w
 8³7¡Ç
 .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
rhandle_negative_constraint´µAttribute¡4
r¡w
r8³7¡—
r.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Ãis_clock_gating_cell´µAttribute¡4
Ã¡w
Ã8³8¡é
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àmap_only´µAttribute¡4¡w8³9¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’„µD“I501ileaf_page_string1:xx¥	öä¥	öäâ²¡,xx¡àÉ²pad_cell´µAttribute¡4É¡wÉ8³9¡ÇÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àpad_type´µAttribute¡4¡W8³10¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àkpin_equal´µAttribute¡4k¡Wk8³10¡äk.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¼pin_opposite´µAttribute¡4¼¡[¼8³1¤ÿü1¡¼.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àpreferred´µAttribute¡4¡W8³12¡Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à^scaling_factors´µAttribute¡4^¡W^8³12¡X^.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¯scan_group´µAttribute¡4¯¡W¯8³13¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àtype´µGroupµAttribute¡4¡W8³15¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àQvhdl_name´µAttribute¡4Q¡WQ8³15¡Q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¢Cell´µGroupµExample¡4¢¡W¢8³16¡¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Defining´µCellµRoutability¡4¡W8³18¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àSrouting_track´µGroup¡4S¡WS8³18¡S.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¤tracks´µAttribute¡4¤¡W¤8³18¡ä¤.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:õtotal_track_area´µAttribute¡4õ¡Wõ8³19¡éõ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†VDefining´µPinµGroups¡4V¡WV8³20¡ªV.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à§pin´µGroup¡4§¡W§8³21¡ü§.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àøGeneral´µAttributes¡4ø¡Wø8³23¡Çø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Iclock_gate_enable_pin´µAttribute¡4I¡WI8³24¡—I.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:šdirection´µAttribute¡4š¡Wš8³24¡š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ëinverted_output´µAttribute¡4ë¡Wë8³25¡Ìë.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:<test_output_only´µAttribute¡4<¡W<8³25¡é<.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:dont_fault´µAttribute¡4¡W8³26¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÞcapacitance´µAttribute¡4Þ¡WÞ8³27¡Þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	.connection_class´µAttributeµ¡4	.¡W	.8³27¡	..´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	driver_type´µAttribute¡4	¡W	8³30¡X	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	Ðpin_func_type´µAttribute¡4	Ð¡W	Ð8³37¡¯	Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
!Describing´µDesignµRuleµChecks¡4
!¡W
!8³38¡#
!.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
rfanout_load´µAttribute¡4
r¡W
r8³38¡u
r.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
Ãmax_fanout´µAttribute¡4
Ã¡W
Ã8³39¡u
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:min_fanout´µAttribute¡4¡W8³41¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’µ>D“I501ileaf_page_string1:xxi¥	öä¥	öäâ²¡Ô¤ÿÈxxi¡:É²max_transition´µAttribute¡4É¡WÉ8³42¡¯É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:min_transition´µAttribute¡4¡W8³43¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nmax_capacitance´µAttribute¡4n¡Wn8³43¡n.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Ámin_capacitance´µAttribute¡4Á¡WÁ8³44¡éÁ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:cell_degradation´µGroup¡4¡W8³45¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àfDescribing´µClocks¡4f¡Wf8³48¡Çf.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¹clock´µAttribute¡4¹¡W¹8³48¡Ç¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:min_period´µAttributeµ¡4¡W8³49¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:^min_pulse_width_high´µandµmin_pulse_width_lowµAttributesµ¡4^¡W^8³49¡O^¡à°DescribingµPinµFunctions¡4°¡W°8³50¡u°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:function´µAttribute¡4¡W8³50¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Uthree_state´µAttribute¡4U¡WU8³53¡XU.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¨x_function´µattribute¡4¨¡W¨8³54¡;¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ústate_function´µAttribute¡4ú¡Wú8³55¡¯ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Minternal_node´µAttribute¡4M¡WM8³56¡’M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à Describing´µSequentialµDevices¡4 ¡W 8³56¡ .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:òprefer_tied´µAttribute¡4ò¡Wò8³56¡Xò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àEDescribing´µPadµPins¡4E¡WE8³59¡E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:—is_pad´µAttribute¡4—¡W—8³60¡ä—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:êmulticell_pad_pin´µAttribute¡4ê¡Wê8³60¡ê.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:<V¤ÿýoltage´µAttributes¡4<¡W<8³61¡<.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Pull³Up´µandµPull³DownµStrengthµAttributes¡4¡W8³62¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:âHysteresis´µAttribute¡4â¡Wâ8³62¡Xâ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	4Drive´µCurrentµStrengthµAttribute¡4	4¡W	48³63¡z	4.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	‡Slew³Rate´µControlµAttributes¡4	‡¡W	‡8³64¡#	‡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	ÙCMOS´µPinµGroupµExample¡4	Ù¡W	Ù8³66¡	Ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’>RD“I501ileaf_page_string1:xxii¥	öä¥	öäâ²¡,xxii¡†É²Defining´µBusedµPins¡4É¡WÉ8³68¡ªÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àtype´µGroup¡4¡W8³68¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àhbus´µGroup¡4h¡Wh8³71¡üh.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à·bus_type´µAttribute¡4·¡W·8³71¡Ç·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àPin´µAttributesµandµGroups¡4¡W8³72¡’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àVSample´µBusµDescription¡4V¡WV8³74¡XV.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†²Defining´µSignalµBundles¡4²¡W²8³78¡².´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àbundle´µGroup¡4¡W8³78¡S.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Qmembers´µAttribute¡4Q¡WQ8³79¡;Q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡: pin´µAttribute¡4 ¡W 8³80¡ .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ýDefining´µLayout³RelatedµMultibitµAttributes¡4ý¡Wý8³81¡Ñý.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àLgeometry_print¡4L¡WL8³81¡pL.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à›single_bit_degenerate´µAttribute¡4›¡W›8³85¡#›.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†øDefining´µScaledµCellµGroups¡4ø¡Wø8³86¡uø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àGScaled´µCellµGroups¡4G¡WG8³87¡äG.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¤Netlisting´µConsiderations¡4¤¡W¤8³88¡¤.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:óV¤ÿýerilog´µNetlist³PinµOrder¡4ó¡Wó8³91¡Ìó.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,{9.¡†{Defining´µSequentialµCells¡4{¡w{9³1¡{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†îUsing´µSequentialµCellµSyntax¡4î¡wî9³2¡’î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†JDescribing´µaµFlip³Flop¡4J¡wJ9³4¡ÇJ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àšUsing´µanµf¤ÿÿfµGroup¡4š¡wš9³4¡Çš.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:éclocked_on´µandµclocked_on_alsoµAttributes¡4é¡wé9³5¡¹é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	8next_state´µAttribute¡4	8¡w	89³6¡;	8.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	ˆclear´µAttribute¡4	ˆ¡w	ˆ9³6¡Ç	ˆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	×preset´µAttribute¡4	×¡w	×9³7¡ä	×.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
&clear_preset_var1´µAttribute¡4
&¡w
&9³7¡
&.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
vclear_preset_var2´µAttribute¡4
v¡w
v9³7¡
v.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
Åf¤ÿÿf´µGroupµExamples¡4
Å¡w
Å9³8¡;
Å.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nextstate_type´µPinµAttribute¡4¡w9³9¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’R&D“I501ileaf_page_string1:xxiii¥	öä¥	öäâ²¡Ô¤ÿ³xxiii¡àÉ²Describing´µaµSingle³StageµFlip³Flop¡4É¡wÉ9³9¡—É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDescribing´µaµMaster³SlaveµFlip³Flop¡4¡W9³12¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†{Using´µtheµFunctionµAttribute¡4{¡W{9³13¡u{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÜDescribing´µaµMultibitµFlip³Flop¡4Ü¡WÜ9³15¡’Ü.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†<Describing´µaµLatch¡4<¡W<9³20¡<.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àlatch´µGroup¡4¡W9³21¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Þclear´µAttribute¡4Þ¡WÞ9³22¡ÇÞ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:0preset´µAttribute¡40¡W09³22¡ä0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:enable´µandµdata_inµAttributes¡4¡W9³22¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Òclear_preset_var1´µAttribute¡4Ò¡WÒ9³23¡Ò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:#clear_preset_var2´µAttribute¡4#¡W#9³24¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ƒDescribing´µaµMultibitµLatch¡4ƒ¡Wƒ9³26¡;ƒ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†äDescribing´µSequentialµCellsµwithµStatetable¡4ä¡Wä9³32¡îä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à5statetable´µGroup¡45¡W59³35¡ª5.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à†Partitioning´µtheµCellµintoµaµModel¡4†¡W†9³40¡@†.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à×Defining´µanµOutputµPinµGroup¡4×¡W×9³41¡é×.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:(state_function´µAttribute¡4(¡W(9³42¡¯(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:yinternal_node´µAttribute¡4y¡Wy9³42¡’y.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Êinput_map´µAttribute¡4Ê¡WÊ9³43¡XÊ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:inverted_output´µAttribute¡4¡W9³45¡Ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àmInternal´µPinµT¤ÿýype¡4m¡Wm9³46¡ªm.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¾Checking´µStatetables¡4¾¡W¾9³47¡¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	In´µstatetableµGroups¡4	¡W	9³47¡X	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	`In´µpinµGroups¡4	`¡W	`9³48¡ª	`.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	±update_lib´µCommand¡4	±¡W	±9³48¡	±.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
T¤ÿþiming¡4
¡W
9³49¡¥
.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
SRecommended´µStatetableµPractices¡4
S¡W
S9³49¡—
S.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
´Flip³Flop´µandµLatchµExamples¡4
´¡W
´9³54¡’
´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Examples´µofµPortionsµofµCellµDescriptions¡4¡W9³61¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’&ëD“I501ileaf_page_string1:xxiv¥	öä¥	öäâ²¡,xxiv¡,É²10.¡†ÉDefining´µMemoryµModules¡4É¡WÉ10³1¡;É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†DModeling´µMemoryµModules¡4D¡WD10³1¡XD.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¤memory´µGroup¡4¤¡W¤10³4¡¤.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àõtype´µAttribute¡4õ¡Wõ10³4¡Sõ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àFaddress_width´µAttribute¡4F¡WF10³5¡XF.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à—word_width´µAttribute¡4—¡W—10³5¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àècolumn_address´µSimpleµAttribute¡4è¡Wè10³5¡@è.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à9row_address´µSimpleµAttribute¡49¡W910³6¡é9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†™memory_read´µGroup¡4™¡W™10³6¡ª™.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àêaddress´µAttribute¡4ê¡Wê10³7¡ªê.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Kmemory_write´µGroup¡4K¡WK10³7¡ÇK.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àœaddress´µAttribute¡4œ¡Wœ10³8¡ªœ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àìclocked_on´µAttribute¡4ì¡Wì10³8¡ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à=enable´µAttribute¡4=¡W=10³9¡=.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àŽChecking´µErrorsµinµMemoryµGroups¡4Ž¡WŽ10³9¡zŽ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ïupdate_lib´µCommand¡4ï¡7ï10³10¡Çï.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Oadd_module´µCommand¡4O¡;O10³1¤ÿü1¡O.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†°report_lib´µCommand¡4°¡;°10³1¤ÿü1¡ª°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Examples´µofµMemoryµModules¡4¡710³13¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¥1¤ÿü1.¡†¥Defining´µInput/OutputµPads¡4¥¡[¥1¤ÿü1³1¡X¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Identifying´µPadµCells¡4	¡[	1¤ÿü1³3¡ª	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	pRegular´µPadµCells¡4	p¡[	p1¤ÿü1³3¡Ç	p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÁClock´µPads¡4	Á¡[	Á1¤ÿü1³3¡	Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Pad´µPinµAttributes¡4
¡[
1¤ÿü1³4¡Ç
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
rDescribing´µMulticellµPads¡4
r¡[
r1¤ÿü1³5¡
r.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÃAuxiliary´µPadµCells¡4
Ã¡[
Ã1¤ÿü1³7¡ä
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àConnecting´µPins¡4¡[1¤ÿü1³7¡ª.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ëND“I501ileaf_page_string1:xxv¥	öä¥	öäâ²¡Ô¤ÿ»xxv¡†É²Defining´µUnitsµforµPadµCells¡4É¡[É1¤ÿü1³8¡XÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àCapacitance¡4¡[1¤ÿü1³8¡6.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àmResistance¡4m¡[m1¤ÿü1³9¡m.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÀV¤ÿýoltage¡4À¡[À1¤ÿü1³9¡ÂÀ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àCurrent¡4¡;1¤ÿü1³10¡Â.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†uDescribing´µInputµPads¡4u¡;u1¤ÿü1³10¡äu.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÇV¤ÿýoltage´µLevels¡4Ç¡;Ç1¤ÿü1³10¡pÇ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†+Describing´µOutputµPads¡4+¡?+1¤ÿü1³1¤ÿü1¡+.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à}V¤ÿýoltage´µLevels¡4}¡;}1¤ÿü1³12¡p}.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÏDrive´µCurrent¡4Ï¡;Ï1¤ÿü1³13¡SÏ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à!Slew³Rate´µControl¡4!¡;!1¤ÿü1³13¡Ç!.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†…Modeling´µWireµLoadµforµPads¡4…¡;…1¤ÿü1³17¡’….´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†èReporting´µPadµInformation¡4è¡;è1¤ÿü1³18¡;è.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†LExamples´µofµPadµCells¡4L¡;L1¤ÿü1³19¡äL.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àžInput´µPads¡4ž¡;ž1¤ÿü1³19¡ž.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àðOutput´µPads¡4ð¡;ð1¤ÿü1³23¡6ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àBBidirectional´µPad¡4B¡;B1¤ÿü1³24¡ªB.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à•Components´µforµMulticellµPads¡4•¡;•1¤ÿü1³26¡•.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àçCell´µwithµx_functionµandµcontention_condition¡4ç¡;ç1¤ÿü1³29¡ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,„12.¡†„Defining´µT¤ÿúestµCells¡4„¡W„12³1¡„.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Describing´µaµScanµCell¡4	¡W	12³2¡ä	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	Wtest_cell´µGroup¡4	W¡W	W12³3¡	W.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	©Pins´µinµtheµtest_cellµGroup¡4	©¡W	©12³5¡	©.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ûsignal_type´µAttribute¡4	û¡7	û12³10¡	û.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
_Describing´µaµMultibitµScanµCell¡4
_¡;
_12³1¤ÿü1¡¯
_.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
ÂV¤ÿýerifying´µScanµCellµModels¡4
Â¡7
Â12³13¡X
Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àCreating´µT¤ÿúestµCases¡4¡712³14¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’N*D“I501ileaf_page_string1:xxvi¥	öä¥	öäâ²¡,xxvi¡àÉ²V¤ÿýerifying´µScannableµEquivalents¡4É¡7É12³14¡@É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Selecting´µtheµScanµImplementation¡4¡712³15¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:mV¤ÿýerifying´µtheµExistenceµofµScannableµEquivalents¡4m¡7m12³16¡Jm.´µ.µ.µ.µ.µ.µ.µ.µ¡:¾V¤ÿýerifying´µSubstitutionµandµRouting¡4¾¡7¾12³19¡´¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†!Sequential´µMapping³BasedµScanµInsertion¡4!¡7!12³21¡Ñ!.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†„Scan´µCellµModelingµExamples¡4„¡7„12³23¡¯„.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÖSimple´µMultiplexedµDµFlip³Flop¡4Ö¡7Ö12³23¡Ö.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à'Multibit´µCellsµwithµMultiplexedµDµFlip³FlopµandµEnable¡4'¡7'12³25¡J'.´µ.µ.µ.µ.µ.µ.µ.µ¡àyLSSD´µScanµCell¡4y¡7y12³32¡ªy.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àËClocked³Scan´µT¤ÿúestµCell¡4Ë¡7Ë12³38¡XË.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àScan´µFlip³FlopµwithµAuxiliaryµClock¡4¡712³42¡z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,·13.¡†·Modeling´µPower¡4·¡W·13³1¡6·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†6T¤ÿúerminology¡46¡W613³2¡ß6.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àˆStatic´µPower¡4ˆ¡Wˆ13³2¡6ˆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÚDynamic´µPower¡4Ú¡WÚ13³2¡Ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:,Internal´µPower¡4,¡W,13³3¡Ç,.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:}Switching´µPower¡4}¡W}13³4¡}.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†àSwitching´µActivity¡4à¡Wà13³5¡pà.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†CModeling´µCellsµforµPower¡4C¡WC13³5¡C.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†¥Modeling´µforµLeakageµPower¡4¥¡W¥13³7¡u¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à÷Using´µtheµcell_leakage_powerµAttribute¡4÷¡W÷13³7¡î÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	ZModeling´µforµInternalµandµSwitchingµPower¡4	Z¡W	Z13³8¡Ñ	Z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	«Using´µtheµinternal_powerµGroup¡4	«¡7	«13³10¡#	«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
Calculating´µSwitchingµPower¡4
¡7
13³14¡u
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
qDefining´µInternalµPowerµGroups¡4
q¡7
q13³16¡Ì
q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Âinternal_power´µGroup¡4
Â¡7
Â13³16¡
Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àInternal´µPowerµExamples¡4¡713³31¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’*oD“I501ileaf_page_string1:xxvii¥	öä¥	öäâ²¡Ô¤ÿ§xxvii¡àÉ²One³Dimensional´µPowerµLookupµT¤ÿúable¡4É¡7É13³32¡ÑÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àT¤ÿýwo³Dimensional´µPowerµLookupµT¤ÿúable¡4¡713³34¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àsThree³Dimensional´µPowerµLookupµT¤ÿúable¡4s¡7s13³35¡s.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÝModeling´µLibrariesµwithµMultipleµPowerµSupplies¡4Ý¡7Ý13³37¡bÝ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à2Defining´µPowerµSupplyµGroups¡42¡7213³38¡2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à‡Defining´µCellsµwithµMultipleµPowerµSupplies¡4‡¡7‡13³40¡E‡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Ürail_connection´µComplexµAttribute¡4Ü¡7Ü13³40¡´Ü.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à1Defining´µtheµSignalµLevelµPinµAttributes¡41¡7113³41¡î1.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:†input_signal_level,´µoutput_signal_levelµSimpleµAttributes¡4†¡7†13³41¡ø†.´µ.µ¡àÚMultiple´µPowerµSupplyµLibraryµRequirements¡4Ú¡7Ú13³43¡bÚ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à/Example´µLibraryµwithµMultipleµPowerµSupplies¡4/¡7/13³44¡œ/.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,á14.¡†áT¤ÿþiming´µArcs¡4á¡Wá14³1¡ßá.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†oUnderstanding´µT¤ÿþimingµArcs¡4o¡Wo14³2¡Xo.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÙCombinational´µT¤ÿþimingµArcs¡4Ù¡WÙ14³3¡XÙ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†DSequential´µT¤ÿþimingµArcs¡4D¡WD14³4¡D.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†®Modeling´µMethodµAlternatives¡4®¡W®14³5¡’®.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Defining´µT¤ÿþimingµGroups¡4¡W14³6¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àmDelay´µModels¡4m¡Wm14³8¡Sm.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÂDefining´µtheµCMOSµNonlinearµDelayµModelµT¤ÿúemplate¡4Â¡WÂ14³9¡¡Â.´µ.µ.µ.µ.µ¡:	Creating´µLookupµT¤ÿúables¡4	¡;	14³1¤ÿü1¡¯	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	ldelay_model´µAttribute¡4	l¡7	l14³13¡’	l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÁT¤ÿþiming´µGroupµAttributes¡4	Á¡7	Á14³13¡X	Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
related_pin´µAttribute¡4
¡7
14³15¡X
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
krelated_bus_pins´µAttribute¡4
k¡7
k14³16¡é
k.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
¿timing_sense´µAttribute¡4
¿¡7
¿14³17¡’
¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:timing_type´µAttribute¡4¡714³19¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’oD“I501ileaf_page_string1:xxviii¥	öä¥	öäâ²¡,xxviii¡†É²Describing´µThree³StateµT¤ÿþimingµArcs¡4É¡7É14³20¡@É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDescribing´µThree³StateµDisableµT¤ÿþimingµArcs¡4¡714³21¡b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àsDescribing´µThree³StateµEnableµT¤ÿþimingµArcs¡4s¡7s14³22¡Es.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÝDescribing´µEdge³SensitiveµT¤ÿþimingµArcs¡4Ý¡7Ý14³24¡zÝ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†HDescribing´µPresetµandµClearµT¤ÿþimingµArcs¡4H¡7H14³26¡´H.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDescribing´µPresetµArcs¡4¡714³26¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àòDescribing´µClearµArcs¡4ò¡7ò14³28¡ò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†\Describing´µIntrinsicµDelay¡4\¡7\14³29¡;\.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à±In´µtheµCMOSµLinearµDelayµModel¡4±¡7±14³30¡@±.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:intrinsic_rise´µAttribute¡4¡714³30¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:[intrinsic_fall´µAttribute¡4[¡7[14³30¡u[.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à°In´µtheµCMOSµPiecewiseµLinearµDelayµModel¡4°¡7°14³31¡b°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àIn´µtheµCMOSµNonlinearµDelayµModel¡4¡714³31¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†oDescribing´µT¤ÿþransitionµDelay¡4o¡7o14³32¡Xo.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÄIn´µtheµCMOSµLinearµDelayµModel¡4Ä¡7Ä14³32¡@Ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:rise_resistance´µAttribute¡4¡714³32¡Ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:nfall_resistance´µAttribute¡4n¡7n14³32¡¯n.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÃIn´µtheµCMOSµPiecewiseµLinearµDelayµModel¡4Ã¡7Ã14³33¡bÃ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:rise_delay_intercept´µAttribute¡4¡714³34¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:mfall_delay_intercept´µAttribute¡4m¡7m14³34¡#m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Ârise_pin_resistance´µAttribute¡4Â¡7Â14³34¡#Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	fall_pin_resistance´µAttribute¡4	¡7	14³35¡#	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	lIn´µtheµCMOSµNonlinearµDelayµModel¡4	l¡7	l14³36¡—	l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	ÁDefining´µDelayµArcsµwithµLookupµT¤ÿúables¡4	Á¡7	Á14³36¡E	Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
rise_transition´µandµfall_transitionµGroups¡4
¡7
14³38¡b
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
jcell_rise´µandµcell_fallµGroups¡4
j¡7
j14³38¡@
j.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
¿rise_propagation´µandµfall_propagationµGroups¡4
¿¡7
¿14³39¡ó
¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Modeling´µT¤ÿþransitionµT¤ÿþimeµDegradation¡4¡714³43¡(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÉD“I501ileaf_page_string1:xxix¥	öä¥	öäâ²¡Ô¤ÿ±xxix¡†É²Modeling´µLoadµDependency¡4É¡7É14³47¡uÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àIn´µtheµCMOSµNonlinearµDelayµModel¡4¡714³48¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:krelated_output_pin´µAttribute¡4k¡7k14³49¡#k.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¼Example´µofµaµLoad³DependentµModel¡4¼¡7¼14³49¡¼.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Describing´µSlopeµSensitivity¡4¡714³50¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡ànIn´µtheµCMOSµLinearµDelayµModel¡4n¡7n14³51¡@n.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¿slope_rise´µAttribute¡4¿¡7¿14³51¡;¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:slope_fall´µAttribute¡4¡714³51¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àaIn´µtheµCMOSµPiecewiseµLinearµDelayµModel¡4a¡7a14³51¡ba.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÂDescribing´µState³DependentµDelays¡4Â¡7Â14³52¡@Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àwhen´µAttribute¡4¡714³53¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àdV¤ÿüalid´µPinµT¤ÿýypes¡4d¡7d14³54¡d.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àµsdf_cond´µAttribute¡4µ¡7µ14³55¡Çµ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Setting´µSetupµandµHoldµConstraints¡4¡714³57¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àgIn´µtheµCMOSµLinearµDelayµModel¡4g¡7g14³59¡@g.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¸Setup´µConstraints¡4¸¡7¸14³59¡¸.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	Hold´µConstraints¡4	¡7	14³61¡	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ZSetup´µandµHoldµT¤ÿþimingµConstraints¡4Z¡7Z14³62¡ÑZ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à«In´µtheµCMOSµPiecewiseµLinearµDelayµModel¡4«¡7«14³63¡b«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àüIn´µtheµCMOSµNonlinearµDelayµModel¡4ü¡7ü14³63¡—ü.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Mrise_constraint´µandµfall_constraintµGroups¡4M¡7M14³64¡M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†®Setting´µNonsequentialµT¤ÿþimingµConstraints¡4®¡7®14³67¡Ñ®.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Setting´µRecoveryµandµRemovalµT¤ÿþimingµConstraints¡4	¡7	14³69¡¹	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	`Recovery´µConstraints¡4	`¡7	`14³69¡	`.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	±Removal´µConstraint¡4	±¡7	±14³72¡	±.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
Setting´µNo³ChangeµT¤ÿþimingµConstraints¡4
¡7
14³74¡z
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
bIn´µtheµCMOSµLinearµDelayµModel¡4
b¡7
b14³77¡@
b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
´In´µtheµCMOSµNonlinearµDelayµModel¡4
´¡7
´14³78¡—
´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Setting´µSkewµConstraints¡4¡714³79¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÉÇD“I501ileaf_page_string1:xxx¥	öä¥	öäâ²¡,xxx¡†É²Setting´µConditionalµT¤ÿþimingµConstraints¡4É¡7É14³82¡zÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àwhen´µandµsdf_condµAttributes¡4¡714³83¡é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àiwhen_start´µAttribute¡4i¡7i14³83¡i.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¹sdf_cond_start´µAttribute¡4¹¡7¹14³84¡X¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	when_end´µAttribute¡4	¡7	14³84¡ä	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àYsdf_cond_end´µAttribute¡4Y¡7Y14³85¡XY.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à©sdf_edges´µAttribute¡4©¡7©14³85¡ä©.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àùmin_pulse_width´µGroup¡4ù¡7ù14³86¡Xù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Iconstraint_high´µandµconstraint_lowµAttributes¡4I¡7I14³86¡ÖI.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:™when´µandµsdf_condµAttributes¡4™¡7™14³87¡]™.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àéminimum_period´µGroup¡4é¡7é14³87¡Xé.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:9constraint´µAttribute¡49¡7914³87¡;9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ˆwhen´µandµsdf_condµAttributes¡4ˆ¡7ˆ14³87¡]ˆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àØUsing´µConditionalµAttributeµwithµNo³ChangeµConstraints¡4Ø¡7Ø14³88¡„Ø.´µ.µ.µ.µ.µ.µ¡à(Generating´µanµSDFµfile¡4(¡7(14³89¡;(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡††T¤ÿþiming´µArcµRestrictions¡4†¡7†14³90¡†.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÖImpossible´µT¤ÿþransitions¡4Ö¡7Ö14³90¡;Ö.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†4Examples´µofµLibrariesµUsingµDelayµModels¡44¡7414³92¡î4.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à„CMOS´µLinearµDelayµModel¡4„¡7„14³92¡¯„.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÔCMOS´µPiecewiseµLinearµDelayµModel¡4Ô¡7Ô14³95¡´Ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à$CMOS´µNonlinearµDelayµModel¡4$¡7$14³98¡$.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,±15.¡†±Interface´µT¤ÿþimingµofµComplexµSequentialµBlocks¡4±¡W±15³1¡E±.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	'Interface´µT¤ÿþimingµSpecification¡4	'¡W	'15³2¡’	'.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	vSequential´µCellµT¤ÿþimingµwithoutµITS¡4	v¡W	v15³3¡z	v.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÆSupported´µFeaturesµofµInterfaceµT¤ÿþiming¡4	Æ¡W	Æ15³4¡î	Æ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
$Describing´µBlocksµwithµInterfaceµT¤ÿþiming¡4
$¡W
$15³6¡—
$.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
tUsing´µLibraryµCompilerµSyntax¡4
t¡W
t15³6¡
t.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
ÄDif¤ÿÿferences´µfromµRegularµCellµSpecificationµ¡4
Ä¡W
Ä15³7¡¹
Ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Similarities´µtoµRegularµCellµSpecification¡4¡W15³7¡b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÇGD“I501ileaf_page_string1:xxxi¥	öä¥	öäâ²¡Ô¤ÿ±xxxi¡àÉ²Examples´µofµInterfaceµT¤ÿþimingµRelationships¡4É¡WÉ15³8¡EÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Input´µSetupµandµHold¡4¡W15³8¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:mOutput´µPropagation¡4m¡Wm15³9¡Xm.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:¿Through´µCombinationalµPaths¡4¿¡;¿15³1¤ÿü1¡]¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àInterface´µT¤ÿþimingµofµaµComplexµSequentialµBlock¡4¡715³13¡¹.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†uUsing´µBlocksµwithµInterfaceµT¤ÿþimingµinµSynthesis¡4u¡7u15³18¡bu.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ØInterpreting´µInterfaceµT¤ÿþimingµRelationships¡4Ø¡7Ø15³19¡ÑØ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à*Rules´µforµSpecifyingµInterfaceµT¤ÿþiming¡4*¡7*15³20¡´*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Example´µUsingµITS¡4¡715³22¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,*16.¡†*T¤ÿþiming´µandµPowerµReportµFormat¡4*¡W*16³1¡é*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ªHeader¡4ª¡Wª16³3¡kª.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Piecewise´µLinearµInformation¡4¡W16³3¡’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†qLibrary´µDefaults¡4q¡Wq16³4¡6q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÔLibrary³Level´µT¤ÿúemplates¡4Ô¡WÔ16³5¡Ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†7Cells¡47¡W716³7¡17.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†›Internal´µPowerµInformation¡4›¡W›16³8¡;›.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†þMultiple´µPowerµSupplyµInformation¡4þ¡Wþ16³9¡þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àPLibrary³Level´µInformation¡4P¡WP16³9¡uP.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¢Cell´µInformation¡4¢¡7¢16³10¡¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	Pins¡4	¡;	16³1¤ÿü1¡	.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†	iT¤ÿþiming´µInformation¡4	i¡7	i16³12¡p	i.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	»Constraints¡4	»¡7	»16³12¡	».µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Constraint´µT¤ÿúableµSyntax¡4
¡7
16³15¡X
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
pDelays¡4
p¡7
p16³17¡N
p.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÂDELA¤ÿüY´µLine¡4
Â¡7
Â16³17¡6
Â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDelay´µT¤ÿúableµSyntax¡4¡716³17¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’GUD“I501ileaf_page_string1:xxxii¥	öä¥	öäâ²¡,xxxii¡àÉ²Rise´µandµFallµV¤ÿüalues¡4É¡7É16³18¡É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àSAMPLE´µLine¡4¡716³20¡p.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àlCell´µDegradationµDesignµRule¡4l¡7l16³22¡él.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÎT¤ÿþiming´µReportµStatistics¡4Î¡7Î16³22¡Î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†0T¤ÿþiming´µReportµExamples¡40¡7016³23¡0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†‘Multiple´µPowerµSupplyµSignalµInformation¡4‘¡7‘16³34¡´‘.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,*17.¡†*Building´µEnvironments¡4*¡W*17³1¡ä*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†§Library³Level´µDefaultµAttributes¡4§¡W§17³2¡¯§.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àøDefault´µPinµAttributes¡4ø¡Wø17³2¡ø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àJDefault´µT¤ÿþimingµAttributes¡4J¡WJ17³4¡uJ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:›Linear´µDelayµModel¡4›¡W›17³4¡;›.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:íPiecewise´µLinearµDelayµModel¡4í¡Wí17³6¡]í.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à>Setting´µWireµLoadµDefaults¡4>¡W>17³7¡¯>.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:default_wire_load´µAttribute¡4¡W17³7¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ádefault_wire_load_mode´µAttribute¡4á¡Wá17³8¡´á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:2default_wire_load_capacitance´µAttribute¡42¡;217³1¤ÿü1¡b2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:„default_wire_load_resistance´µAttribute¡4„¡;„17³1¤ÿü1¡(„.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Õdefault_wire_load_area´µAttribute¡4Õ¡;Õ17³1¤ÿü1¡—Õ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à'Setting´µOtherµEnvironmentµDefaults¡4'¡;'17³1¤ÿü1¡—'.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:xdefault_max_utilization´µAttribute¡4x¡;x17³1¤ÿü1¡—x.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Êdefault_min_porosity´µAttribute¡4Ê¡7Ê17³12¡]Ê.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	default_operating_conditions´µAttribute¡4	¡7	17³13¡(	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	mdefault_cell_leakage_power´µAttribute¡4	m¡7	m17³13¡	m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	¾Examples´µofµLibrary³LevelµDefaultµAttributes¡4	¾¡7	¾17³13¡b	¾.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†
 Defining´µOperatingµConditions¡4
 ¡7
 17³15¡¯
 .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
qoperating_conditions´µGroup¡4
q¡7
q17³15¡Ì
q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÃDetermining´µOperatingµConditions¡4
Ã¡7
Ã17³17¡]
Ã.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDefining´µOperatingµConditionsµatµRuntime¡4¡717³17¡(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’UÏD“I501ileaf_page_string1:xxxiii¥	öä¥	öäâ²¡Ô¤ÿœxxxiii¡àÉ²timing_range´µGroup¡4É¡7É17³18¡É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDefining´µT¤ÿþimingµRangesµatµRuntime¡4¡717³19¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†Defining´µPowerµSupplyµGroups¡4¡717³20¡¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÔpower_supply´µgroup¡4Ô¡7Ô17³20¡Ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†9Defining´µWireµLoadµGroups¡49¡7917³21¡X9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àŒwire_load´µGroup¡4Œ¡7Œ17³21¡ªŒ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÞCalculating´µWireµArea¡4Þ¡7Þ17³26¡’Þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à1wire_load_table´µGroup¡41¡7117³29¡;1.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†–Selecting´µWireµLoadµGroupsµAutomatically¡4–¡7–17³30¡Ñ–.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àéwire_load_from_area´µAttribute¡4é¡7é17³32¡é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†NSpecifying´µDelayµScalingµAttributes¡4N¡7N17³35¡#N.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¡Calculating´µDelayµFactors¡4¡¡7¡17³36¡’¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ôCalculating´µV¤ÿýoltageµDelayµFactors¡4ô¡7ô17³36¡´ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:GCalculating´µT¤ÿúemperatureµDelayµFactors¡4G¡7G17³37¡EG.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:™Assigning´µProcessµDelayµFactors¡4™¡7™17³38¡´™.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ìSetting´µCombinedµScalingµFactor¡4ì¡7ì17³39¡—ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à?Intrinsic´µDelayµFactors¡4?¡7?17³39¡;?.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à’Slope³Sensitivity´µFactors¡4’¡7’17³40¡u’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àåDrive³Capability´µFactors¡4å¡7å17³41¡Xå.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à7Pin³and³Wire´µCapacitanceµFactors¡47¡7717³42¡z7.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àŠCMOS´µWire³ResistanceµFactors¡4Š¡7Š17³43¡@Š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÝPin³Resistance´µFactors¡4Ý¡7Ý17³44¡XÝ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	0Intercept³Delay´µFactors¡4	0¡7	017³45¡X	0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ƒPower³Scaling´µFactors¡4	ƒ¡7	ƒ17³46¡;	ƒ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	ÕT¤ÿþiming³Constraint´µFactors¡4	Õ¡7	Õ17³47¡’	Õ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
(Delay´µScalingµFactorsµExample¡4
(¡7
(17³53¡#
(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
{Scaling´µFactorsµforµIndividualµCells¡4
{¡7
{17³54¡z
{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÎScaling´µFactorsµAssociatedµwithµtheµNonlinearµDelayµ¡àModel¡4¡717³56¡¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÏD“I501ileaf_page_string1:xxxiv¥	öä¥	öäâ²¡,xxxiv¡,É²18.¡†ÉV¤ÿýerifying´µCMOSµLibraries¡4É¡WÉ18³1¡É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†0Library´µV¤ÿýerification¡40¡W018³2¡p0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†‡Checking´µLibraryµConsistency¡4‡¡W‡18³3¡’‡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†ÞPreparing´µaµT¤ÿúestµCircuit¡4Þ¡WÞ18³5¡Þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†5V¤ÿýerifying´µFunctionality¡45¡W518³8¡Ç5.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à‚Preparing´µforµFunctionµV¤ÿýerification¡4‚¡W‚18³8¡]‚.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÐCreating´µtheµT¤ÿúest³MappingµLibrary¡4Ð¡WÐ18³9¡]Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àMapping´µtheµT¤ÿúestµCircuitµNetlist¡4¡;18³1¤ÿü1¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àjCreating´µtheµSimulationµT¤ÿúestµV¤ÿýectors¡4j¡7j18³12¡—j.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à·Simulating´µtheµMappedµandµOriginalµT¤ÿúestµNetlists¡4·¡7·18³13¡Ö·.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àIdentifying´µFunctionµDescriptionµErrors¡4¡718³14¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àQV¤ÿýerifying´µT¤ÿúechnologyµandµVHDLµLibrariesµT¤ÿúogether¡4Q¡7Q18³14¡Q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:žCreating´µtheµT¤ÿúest³MappingµLibrary¡4ž¡7ž18³15¡´ž.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ëMapping´µtheµT¤ÿúestµCircuitµNetlist¡4ë¡7ë18³15¡zë.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:9Completing´µtheµV¤ÿýerification¡49¡7918³16¡9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†V¤ÿýerifying´µT¤ÿþimingµParameters¡4¡718³16¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÝGeneral´µT¤ÿúestingµMethodology¡4Ý¡7Ý18³18¡éÝ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à*Debugging´µwithµtheµreport_delay_calculationµCommand¡4*¡7*18³21¡„*.´µ.µ.µ.µ.µ.µ¡àwT¤ÿúesting´µBasicµCell³T¤ÿþimingµParameters¡4w¡7w18³22¡´w.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:ÄIntrinsic´µDelay¡4Ä¡7Ä18³23¡ÇÄ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:Resistance´µ(StandardµDelayµModel)¡4¡718³23¡î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:^Resistance´µ(PiecewiseµLinearµDelayµModel)¡4^¡7^18³24¡¹^.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:«Capacitance¡4«¡7«18³25¡«.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:øInput´µSlope¡4ø¡7ø18³26¡pø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	FSetup¡4	F¡7	F18³27¡ü	F.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	“Hold¡4	“¡7	“18³30¡Â	“.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:	àRising´µandµFallingµEdges¡4	à¡7	à18³32¡Ì	à.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
-Area¡4
-¡7
-18³32¡ß
-.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡:
zRanges´µforµPiecewiseµLinearµModel¡4
z¡7
z18³33¡î
z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
ÇT¤ÿúesting´µtheµInterconnectµModels¡4
Ç¡7
Ç18³33¡#
Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àT¤ÿúesting´µEnvironmentalµScaling¡4¡718³36¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’zD“I501ileaf_page_string1:xxxv¥	öä¥	öäâ²¡Ô¤ÿ¤xxxv¡,É²A.¡†ÉSample´µCMOSµT¤ÿúechnologyµLibrary¡4É¡pÉA³1¡#É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†'Library´µEnvironment¡4'¡p'A³1¡ª'.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àwLibrary´µGroup¡4w¡pwA³1¡Sw.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÆDate,´µRevision¡4Æ¡pÆA³2¡pÆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àDefault´µCellµAttributes¡4¡pA³2¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àfk³Factors¡4f¡pfA³3¡ßf.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¶Units¡4¶¡p¶A³4¡ˆ¶.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àNominal´µOperatingµConditions¡4¡pA³4¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àUCustom´µOperatingµConditions¡4U¡pUA³4¡éU.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à¥Power´µLookupµT¤ÿúables¡4¥¡p¥A³5¡¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àõT¤ÿþiming³Range´µModels¡4õ¡põA³6¡;õ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àEWire´µLoadµModels¡4E¡pEA³6¡ÇE.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡†£Cell´µDescriptions¡4£¡p£A³8¡S£.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àòPower´µT¤ÿþie¡4ò¡pòA³8¡üò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àBGround´µT¤ÿþie¡4B¡pBA³8¡B.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à’Pull³Up¡4’¡p’A³9¡Â’.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àâPull³Down¡4â¡pâA³9¡üâ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à2T¤ÿýwo³Input´µANDµGate¡42¡P2A³10¡2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àT¤ÿýwo³Input´µORµGate¡4¡TA³1¤ÿü1¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÑT¤ÿýwo³Input´µNANDµGate¡4Ñ¡PÑA³12¡;Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à!Inverter¡4!¡P!A³13¡Â!.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àqEight³to³One´µMultiplexer¡4q¡PqA³14¡uq.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡àÁJK´µFlip³Flop¡4Á¡PÁA³15¡6Á.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	D´µFlip³Flop¡4	¡P	A³18¡	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	`D´µFlip³FlopµwithµClearµandµSet¡4	`¡P	`A³20¡	`.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à	°D´µLatch¡4	°¡P	°A³24¡Â	°.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
Three³State´µInverter¡4
¡P
A³27¡
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
PPad´µCell¡4
P¡P
PA³29¡ß
P.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡à
 Bidirectional´µPadµCell¡4
 ¡P
 A³31¡
 .´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Glossary¡4¡JGL³1¡1.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’zÐOPS m:m:D€‚Document:lofÿ‚Last saved on:Tue, Dec 9, 1997 17:51:45ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///Gåååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›ØD“I501ileaf_page_string1:xxxvii¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿxxxvii¡,m²	¥	öä¡JmList´µofµFigures¡,K²Figure 1³1³The´µRoleµofµLibraryµCompiler¡4K¡wK1³4¡]K.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,µFigure 1³2³T¤ÿúechnology´µLibraryµStructure¡4µ¡wµ1³7¡]µ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 1³3³Symbol´µLibraryµStructure¡4¡w1³8¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,‰Figure 1³4³Using´µtheµCompiledµLibrariesµwithµDesignµCompiler¡4‰¡w‰1³9¡¡‰.´µ.µ.µ.µ.µ¡,òFigure 1³5³Using´µVHDLµLibrariesµwithµaµVHDLµSimulator¡4ò¡Wò1³10¡ò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,\Figure 2³1³Sample´µDataµSheetµforµ2³inputµANDµGate¡4\¡W\2³21¡œ\.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÆFigure 3³1³lc_shell´µStartupµDisplay¡4Æ¡wÆ3³3¡éÆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,0Figure 4³1³Main´µLibraryµCompilerµWindow¡40¡w04³3¡—0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,šFigure 4³2³Library´µCompilerµCommandµPrompt¡4š¡wš4³5¡š.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Figure 4³3³Menu´µBar¡4	¡w	4³6¡	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	mFigure 4³4³File´µPull³DownµMenu¡4	m¡w	m4³7¡’	m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	×Figure 4³5³Read´µLibraryµDialogµBox¡4	×¡w	×4³8¡	×.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
AFigure 4³6³Options´µDialogµBoxµforµRead¡4
A¡w
A4³9¡]
A.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
«Figure 4³7³Select´µOutputµFileµDialogµBox¡4
«¡W
«4³10¡z
«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 4³8³Read´µLibraryµDialogµBoxµforµEDIF¡4¡[4³1¤ÿü1¡î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ØD“I501ileaf_page_string1:xxxviii¥	öä¥	öäâ²¡,xxxviii¡,É²Figure 4³9³Read´µSymbolµLibraryµDialogµBox¡4É¡[É4³1¤ÿü1¡ÑÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,1Figure 4³10³Select´µNamesµFileµDialogµBox¡41¡W14³12¡´1.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,˜Figure 4³1¤ÿü1³W¤ÿÿrite´µLibraryµDialogµBox¡4˜¡W˜4³13¡˜.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÿFigure 4³12³Options´µDialogµBox¡4ÿ¡Wÿ4³15¡’ÿ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,gFigure 4³13³Encrypt´µLibraryµDialogµBox¡4g¡Wg4³16¡]g.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÎFigure 4³14³Update´µLibraryµDialogµBox¡4Î¡WÎ4³18¡@Î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,6Figure 4³15³Add´µModuleµDialogµBox¡46¡W64³20¡6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 4³16³Analyze´µPull³DownµMenu¡4¡W4³22¡#.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 4³17³Compare´µDialogµBox¡4¡W4³23¡Ì.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,lFigure 4³18³Library´µReportµDialogµBox¡4l¡Wl4³25¡@l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÔFigure 4³19³Options´µDialogµBoxµforµLibraryµReport¡4Ô¡WÔ4³26¡bÔ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,;Figure 4³20³Library´µReportµDialogµwithµCellµLists¡4;¡W;4³27¡E;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¢Figure 4³21³Options´µPull³DownµMenu¡4¢¡W¢4³28¡#¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
Figure 4³22³V¤ÿÿiew´µPull³DownµMenu¡4
¡W
4³30¡é
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,qFigure 4³23³Help´µPull³DownµMenu¡4q¡Wq4³31¡Ìq.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÙFigure 6³1³Reading´µSymbols¡4Ù¡wÙ6³5¡XÙ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,@Figure 6³2³Symbol´µHeightµandµWidth¡4@¡W@6³10¡#@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¨Figure 6³3³Pin´µApproachµDirections¡4¨¡W¨6³19¡é¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Figure 6³4³Cell´µSymbolµAN2¡4	¡W	6³22¡;	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	wFigure 6³5³Subsymbol´µGraphic¡4	w¡W	w6³25¡u	w.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÞFigure 6³6³Subsymbol´µinµaµSymbolµGraphicµ(AN2)¡4	Þ¡W	Þ6³26¡b	Þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
EFigure 6³7³Subsymbol´µinµSymbolµGraphicµ(AN3)¡4
E¡W
E6³26¡(
E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
­Figure 6³8³Key´µBoxµGraphicµSymbol¡4
­¡W
­6³30¡
­.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 8³1³Interpreting´µbus_holdµDriverµT¤ÿýype¡4¡W8³35¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ûD“I501ileaf_page_string1:xxxix¥	öä¥	öäâ²¡Ô¤ÿšxxxix¡,É²Figure 8³2³Pull³Up´µCellµT¤ÿþransistor¡4É¡WÉ8³35¡ÌÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,2Figure 8³3³Fanout´µµAttributes¡42¡W28³39¡X2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,›Figure 8³4³Input´µPadµT¤ÿþiedµtoµFixedµLogic¡4›¡W›8³58¡z›.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 9³1³Multibit´µFlip³Flop¡4¡W9³17¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,mFigure 9³2³Multibit´µLatch¡4m¡Wm9³28¡äm.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÖFigure 9³3³Generic´µSequentialµLibraryµCellµModel¡4Ö¡WÖ9³32¡bÖ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,?Figure 9³4³Mapping´µDatabookµT¤ÿþruthµT¤ÿúableµtoµStatetable¡4?¡W?9³34¡ó?.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¨Figure 9³5³statetable´µGroupµExample¡4¨¡W¨9³36¡#¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 9³6³Circuit´µwithµLatchµandµFlip³Flop¡4¡W9³44¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,zFigure 10³1³Supported´µMemoryµModuleµModel¡4z¡Wz10³2¡z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,âFigure 1¤ÿü1³1³Multicell´µPads¡4â¡[â1¤ÿü1³6¡â.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,KFigure 1¤ÿü1³2³Slew³Rate´µAttributes³
RisingµT¤ÿþransitions¡4K¡;K1¤ÿü1³15¡¹K.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,´Figure 1¤ÿü1³3³Slew³Rate´µAttributes³
FallingµT¤ÿþransitions¡4´¡;´1¤ÿü1³16¡¹´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 12³1³Scan´µCellµwithµtest_cellµGroup¡4¡W12³4¡´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,†Figure 12³2³Multibit´µScanµCellµwithµtest_cellµGroup¡4†¡;†12³1¤ÿü1¡†.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ïFigure 12³3³test_cell´µGroupµofµMultibitµScanµCell¡4ï¡7ï12³12¡Eï.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,XFigure 12³4³Scannable´µEquivalentµPairµ(ScanµCellµhasµ¡”ŸAsynchronousµPin)¡4Ÿ¡7Ÿ12³15¡’Ÿ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Figure 12³5³Sample´µT¤ÿúestµCircuitµforµMultiplexedµFlip³Flop¡4	¡7	12³16¡	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	qFigure 12³6³Scannable´µT¤ÿúestµCircuit¡4	q¡7	q12³20¡é	q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÙFigure 13³1³Components´µofµPowerµDissipation¡4	Ù¡W	Ù13³3¡	Ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
BFigure 13³2³Complex´µGateµExample¡4
B¡7
B13³10¡
B.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
«Figure 13³3³Internal´µPowerµforµCellµU1¡4
«¡7
«13³12¡@
«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 13³4³Internal´µPowerµforµCellµU2¡4¡713³13¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ûKD“I501ileaf_page_string1:xl¥	öä¥	öäâ²¡,xl¡,É²Figure 13³5³Internal´µPowerµT¤ÿúableµforµCellµOutput¡4É¡7É13³14¡EÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,2Figure 13³6³Library´µCellµwithµinternal_powerµInformation¡42¡7213³31¡ó2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,›Figure 14³1³T¤ÿþiming´µArcs¡4›¡W›14³3¡ä›.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 14³2³T¤ÿýwo³Inverter´µCell¡4¡W14³5¡X.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,lFigure 14³3³T¤ÿýwo´µModelingµT¤ÿúechniquesµforµT¤ÿýwo³InverterµCell¡4l¡Wl14³6¡Jl.´µ.µ.µ.µ.µ.µ.µ.µ¡,ÕFigure 14³4³Propagation´µDelayµT¤ÿþimeµW¤ÿþaveforms¡4Õ¡7Õ14³39¡EÕ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,>Figure 14³5³T¤ÿþransition´µT¤ÿþimeµDegradation¡4>¡7>14³44¡z>.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,§Figure 14³6³XOR´µGateµwithµState³DependentµT¤ÿþimingµArc¡4§¡7§14³53¡§.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 14³7³Setup´µandµHoldµConstraintsµforµ¡”VPositiveµEdgeµT¤ÿþriggeredµFlip³Flop¡4V¡7V14³58¡V.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¿Figure 14³8³Setup´µandµHoldµConstraintsµforµHigh³EnableµLatch¡4¿¡7¿14³59¡¡¿.´µ.µ.µ.µ.µ¡,(Figure 14³9³Nonsequential´µSetupµandµHoldµConstraints¡4(¡7(14³69¡ó(.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,‘Figure 14³10³Recovery´µT¤ÿþimingµConstraintµforµaµPositiveµ¡”ØEdgeµT¤ÿþriggeredµFlip³Flop¡4Ø¡7Ø14³70¡#Ø.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,@Figure 14³1¤ÿü1³Recovery´µT¤ÿþimingµConstraintµforµaµLow³Enableµ¡”‡Latch¡4‡¡7‡14³70¡6‡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ðFigure 14³12³T¤ÿþiming´µDiagramµforµRemovalµConstraint¡4ð¡7ð14³72¡¹ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,YFigure 14³13³No³Change´µT¤ÿþimingµCheck¡4Y¡7Y14³75¡]Y.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÁFigure 14³14³No³Change´µSetupµandµHoldµConstraintµW¤ÿþaveforms¡4Á¡7Á14³76¡ÛÁ.´µ.µ.µ¡,	*Figure 14³15³T¤ÿþiming´µDiagramµforµSkewµConstraint¡4	*¡7	*14³80¡b	*.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	“Figure 14³16³Interpretation´µofµConditionalµT¤ÿþimingµConstraintsµ¡”	ÚwithµNo³Change¡4	Ú¡7	Ú14³89¡X	Ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
CFigure 15³1³Interface´µT¤ÿþimingµofµaµComplexµBlock¡4
C¡W
C15³2¡E
C.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
«Figure 15³2³Data´µInputµwithµSpecifiedµSetupµConstraint¡4
«¡W
«15³9¡ó
«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 15³3³Output´µSectionµofµaµMacroµBlock¡4¡715³10¡î.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’KåD“I501ileaf_page_string1:xli¥	öä¥	öäâ²¡Ô¤ÿÕxli¡,É²Figure 15³4³Output´µT¤ÿþimingµRelationshipsµforµtheµBlockµinµ¡”Figure 15³3¡4¡715³10¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,tFigure 15³5³T¤ÿþiming´µRelationshipsµforµThroughµ¡”»CombinationalµPaths¡4»¡7»15³12¡Ì».´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 15³6³Complex´µSequentialµBlockµSupportedµbyµITS¡4¡715³13¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,„Figure 15³7³T¤ÿþiming´µRelationshipsµforµtheµCircuitµinµFigure 15³6¡4„¡7„15³14¡¡„.´µ.µ.µ.µ.µ¡,éFigure 15³8³Read´µCycleµT¤ÿþimingµofµtheµRAMµ(WRµ=µ1)¡4é¡7é15³22¡¹é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,MFigure 15³9³W¤ÿÿrite´µCycleµT¤ÿþimingµofµtheµRAMµ(WRµ=µ0)¡4M¡7M15³22¡¹M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,²Figure 17³1³Wire´µLoadµModelsµforµaµSpecificµDesign¡4²¡7²17³10¡œ².´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 17³2³Wire´µLoadµDefinitionµGraph¡4¡717³24¡].´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,{Figure 17³3³Propagation´µDelayµasµaµFunctionµofµSupplyµV¤ÿýoltage¡4{¡7{17³37¡¾{.´µ.µ.µ.µ¡,ßFigure 17³4³Propagation´µDelayµasµaµFunctionµofµT¤ÿúemperature¡4ß¡7ß17³38¡„ß.´µ.µ.µ.µ.µ.µ¡,DFigure 18³1³T¤ÿúest´µCircuitµNetlistµNetwork¡4D¡WD18³7¡]D.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¨Figure 18³2³Net´µandµCellµArcs¡4¨¡7¨18³18¡u¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Figure 18³3³Fanout´µT¤ÿúestµCircuitµSchematic¡4¡718³35¡´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’åÐOPS m:m:D€‚Document:lotÿ‚Last saved on:Tue, Dec 9, 1997 17:51:45ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///Gåååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›^D“I501ileaf_page_string1:xliii¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿÀxliii¡,m²	¥	öä¡JmList´µofµTables¡,<²T¤ÿúable 3³1³String´µandµListµConcatenationµOperator¡4<¡W<3³13¡b<.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¡T¤ÿúable 3³2³Boolean´µEvaluationsµofµNon³BooleanµT¤ÿýypes¡4¡¡W¡3³46¡Ö¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,T¤ÿúable 5³1³Commonly´µUsedµUnitsµofµMeasurement¡4¡w5³9¡b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,mT¤ÿúable 6³1³Layers´µinµSymbolµLibraries¡4m¡Wm6³13¡#m.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÓT¤ÿúable 6³2³Comparison´µofµBusedµandµSingle³PinµFormats¡4Ó¡WÓ6³19¡Ó.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,9T¤ÿúable 7³1³CMOS´µDefaultµAttributes¡49¡W97³24¡é9.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ŸT¤ÿúable 8³1³Driver´µT¤ÿýypes¡4Ÿ¡WŸ8³34¡ªŸ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,T¤ÿúable 8³2³V¤ÿüalid´µBooleanµOperators¡4¡W8³51¡é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,kT¤ÿúable 8³3³Comparison´µofµBusedµandµSingle³PinµFormats¡4k¡Wk8³73¡k.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÐT¤ÿúable 9³1³Function´µT¤ÿúableµforµSingle³StageµFlip³Flop¡4Ð¡WÐ9³10¡Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	6T¤ÿúable 9³2³Function´µT¤ÿúablesµforµMaster³SlaveµFlip³Flop¡4	6¡W	69³12¡¹	6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	œT¤ÿúable 9³3³Function´µT¤ÿúableµforµLatch¡4	œ¡W	œ9³24¡Ì	œ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
T¤ÿúable 9³4³Legitimate´µV¤ÿüaluesµforµT¤ÿúableµInputsµ¡”
I(InputµandµCurrentµInternalNodes)¡4
I¡W
I9³36¡
I.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
®T¤ÿúable 9³5³Legitimate´µV¤ÿüaluesµforµNextµInternalµNode¡4
®¡W
®9³37¡
®.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,T¤ÿúable 13³1³V¤ÿüalid´µBooleanµOperators¡4¡713³21¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’^*D“I501ileaf_page_string1:xliv¥	öä¥	öäâ²¡,xliv¡,É²T¤ÿúable 14³1³T¤ÿþiming´µGroupµAttributesµinµtheµDelayµModels¡4É¡7É14³14¡óÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,.T¤ÿúable 14³2³Delay´µAttributesµforµNo³ChangeµConstraints¡4.¡7.14³77¡ó..´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,’T¤ÿúable 14³3³Conditional´µT¤ÿþimingµAttributesµwithµ¡”ÙNo³ChangeµConstraints¡4Ù¡7Ù14³88¡Ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,=T¤ÿúable 17³1³Wire´µLoadµModelsµAttachedµtoµNetsµunderµ¡”„Dif¤ÿÿferentµWireµLoadµModes¡4„¡7„17³10¡]„.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,éT¤ÿúable 17³2³T¤ÿþiming´µConstraintµEquations¡4é¡7é17³52¡]é.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’*ÐOPS m:m:D€‚Document:loeÿ‚Last saved on:Tue, Dec 9, 1997 17:51:46ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///Gåååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’›¡D“I501ileaf_page_string1:xlv¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡Ô¤ÿÈxlv¡,m²	¥	öä¡JmList´µofµExamples¡,C²Example 3³1³T¤ÿýypical´µCommand¡4C¡WC3³12¡’C.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,«Example 5³1³Group´µStatementµSpecification¡4«¡w«5³4¡Ñ«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 5³2³Simple´µAttributeµSpecification¡4¡w5³6¡´.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,zExample 5³3³Defining´µtheµFunctionµofµaµPin¡4z¡wz5³6¡´z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,âExample 5³4³CMOS´µT¤ÿúechnologyµLibraryµExample¡4â¡Wâ5³10¡bâ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,JExample 6³1³Defining´µSizingµV¤ÿüariables¡4J¡wJ6³9¡@J.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,±Example 6³2³Layer´µDefinitionsµinµaµSymbolµLibrary¡4±¡W±6³16¡±.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 6³3³Cell´µSymbolµDefinition¡4¡W6³23¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 6³4³Defining´µaµSubsymbol¡4¡W6³25¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,èExample 6³5³Using´µaµSubsymbolµinµaµCellµ¡Ð	/SymbolµDescriptionµ(AN2)¡4	/¡W	/6³26¡z	/.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	—Example 6³6³Using´µaµSubsymbolµinµaµCellµ¡Ð	ÝSymbolµDescriptionµ(AN3)¡4	Ý¡W	Ý6³27¡z	Ý.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
EExample 6³7³A³Size´µSheetµT¤ÿúemplate¡4
E¡W
E6³29¡
E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
­Example 6³8³Describing´µanµInfiniteµT¤ÿúemplate¡4
­¡W
­6³30¡Ñ
­.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 6³9³Key´µBoxµSubsymbolµDefinition¡4¡W6³30¡Ñ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’¡„D“I501ileaf_page_string1:xlvi¥	öä¥	öäâ²¡,xlvi¡,É²Example 6³10³Defining´µSpecialµSymbols¡4É¡WÉ6³32¡zÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,1Example 7³1³General´µSyntaxµofµtheµLibraryµDescription¡41¡w17³3¡ó1.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,˜Example 7³2³Four´µpower_lut_templateµGroups¡4˜¡W˜7³19¡˜.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÿExample 7³3³power_lut_template´µReport¡4ÿ¡Wÿ7³20¡zÿ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,gExample 7³4³CMOS´µLibraryµGroupµExample¡4g¡Wg7³23¡Ñg.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÎExample 8³1³Cell´µGroupµExample¡4Î¡WÎ8³16¡ÌÎ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,6Example 8³2³A´µLibraryµwithµRoutability¡46¡W68³19¡@6.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 8³3³Connection´µClassµExample¡4¡W8³29¡z.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 8³4³Multiple´µConnectionµClassesµforµaµPin¡4¡W8³29¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,lExample 8³5³Description´µofµPull³UpµCellµT¤ÿþransistor¡4l¡Wl8³36¡l.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÔExample 8³6³Pin´µDriverµT¤ÿýypeµSpecifications¡4Ô¡WÔ8³36¡ÑÔ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,;Example 8³7³Minimum³Pulse³Width´µSpecificationµforµaµClockµPin¡4;¡W;8³50¡Û;.´µ.µ.µ¡,¢Example 8³8³Three³State´µCellµDescription¡4¢¡W¢8³54¡—¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
Example 8³9³V¤ÿýoltage´µRangeµforµInputµPin¡4
¡W
8³61¡—
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,qExample 8³10³Slew³Rate´µControlµAttributes¡4q¡Wq8³66¡´q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÙExample 8³1¤ÿü1³CMOS´µPinµGroupµExample¡4Ù¡WÙ8³67¡—Ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,@Example 8³12³type´µGroupµDescription¡4@¡W@8³69¡@@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¨Example 8³13³Alternate´µtypeµGroupµDescriptions¡4¨¡W¨8³70¡E¨.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Example 8³14³Bus´µDescription¡4	¡W	8³74¡u	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	wExample 8³15³Multibit´µLatchµwithµSignalµBundles¡4	w¡W	w8³80¡E	w.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÞExample 8³16³Multibit´µCellsµwithµgeometry_printµAttribute¡4	Þ¡W	Þ8³82¡	Þ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
EExample 8³17³Multibit´µCellsµwithµsingle_bit_degenerateµAttribute¡4
E¡W
E8³85¡Û
E.´µ.µ.µ¡,
­Example 8³18³Partial´µTDLµNetlistµwithµImplicitµPinµOrdering¡4
­¡W
­8³89¡J
­.´µ.µ.µ.µ.µ.µ.µ.µ¡,Example 9³1³Single³Stage´µDµFlip³Flop¡4¡[9³1¤ÿü1¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’„’D“I501ileaf_page_string1:xlvii¥	öä¥	öäâ²¡Ô¤ÿ³xlvii¡,É²Example 9³2³Single³Stage´µJKµFlip³Flop¡4É¡[É9³1¤ÿü1¡]É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,.Example 9³3³D´µFlip³FlopµwithµSynchronousµNegativeµClear¡4.¡W.9³12¡J..´µ.µ.µ.µ.µ.µ.µ.µ¡,”Example 9³4³Master³Slave´µDµFlip³Flop¡4”¡W”9³13¡@”.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ùExample 9³5³D´µFlip³FlopµDescription¡4ù¡Wù9³14¡ù.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,^Example 9³6³Multibit´µDµFlip³FlopµRegister¡4^¡W^9³18¡—^.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÄExample 9³7³D´µLatchµwithµActive³HighµEnableµandµ¡Ð
NegativeµClear¡4
¡W
9³25¡u
.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,pExample 9³8³SR´µLatch¡4p¡Wp9³25¡ªp.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÕExample 9³9³Multibit´µDµLatch¡4Õ¡WÕ9³27¡XÕ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,:Example 9³10³Multibit´µLatchesµwithµClear¡4:¡W:9³29¡—:.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡, Example 9³1¤ÿü1³JK´µFlip³FlopµwithµActive³Low¤ÿý,µDirect³Clear¤ÿý,µandµ¡ÐæNegative³EdgeµClock¡4æ¡Wæ9³41¡æ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,KExample 9³12³Example´µofµreport_libµ-tableµasic.dbµdf¤ÿÿfz¡4K¡WK9³52¡óK.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,±Example 9³13³Example´µofµreport_libµ-full_tableµasic.dbµdf¤ÿÿf¡4±¡W±9³53¡-±.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 9³14³Example´µofµreport_libµ³tableµasic.dbµdf¤ÿÿf_test¡4¡W9³54¡-.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,{Example 9³15³D´µFlip³Flop¡4{¡W{9³54¡{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,áExample 9³16³D´µFlip³FlopµwithµGatedµClock¡4á¡Wá9³55¡Ñá.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,FExample 9³17³D´µFlip³FlopsµwithµMaster³SlaveµClockµInputµPins¡4F¡WF9³55¡¡F.´µ.µ.µ.µ.µ¡,«Example 9³18³D´µFlip³FlopµwithµActive³LowµDirect³Clearµandµ¡ÐòActive³LowµDirect³Set¡4ò¡Wò9³56¡#ò.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	WExample 9³19³D´µFlip³FlopµwithµActive³LowµDirect³Clear¤ÿý,µ¡Ð	žActive³LowµDirect³Set,µandµOneµOutput¡4	ž¡W	ž9³56¡Ö	ž.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
Example 9³20³JK´µFlip³FlopµwithµActive³LowµDirect³Clearµandµ¡Ð
JNegative³EdgeµClock¡4
J¡W
J9³57¡
J.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
¯Example 9³21³D´µFlip³FlopµwithµScanµInputµPins¡4
¯¡W
¯9³58¡(
¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 9³22³D´µFlip³FlopµwithµSynchronousµClear¡4¡W9³58¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’’
ÚD“I501ileaf_page_string1:xlviii¥	öä¥	öäâ²¡,xlviii¡,É²Example 9³23³D´µLatch¡4É¡WÉ9³59¡ªÉ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,0Example 9³24³SR´µLatch¡40¡W09³59¡Ç0.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,˜Example 9³25³D´µLatchµwithµActive³LowµDirect³Clear¡4˜¡W˜9³60¡œ˜.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÿExample 9³26³Multibit´µDµLatchµwithµActive³LowµDirect³Clear¡4ÿ¡Wÿ9³60¡gÿ.´µ.µ.µ.µ.µ.µ.µ¡,fExample 9³27³D´µFlip³FlopµwithµScanµClock¡4f¡Wf9³61¡´f.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÍExample 9³28³D´µLatchesµwithµMaster³SlaveµEnableµInputµPins¡4Í¡WÍ9³61¡¡Í.´µ.µ.µ.µ.µ¡,4Example 9³29³FF´µShiftµRegisterµ(timingµremoved)¡44¡W49³63¡b4.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,œExample 9³30³FF´µCounterµ(timingµremoved)¡4œ¡Wœ9³64¡Ñœ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 10³1³report_lib´µ³full_tableµmem.dbµcell1¡4¡;10³1¤ÿü1¡E.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,jExample 10³2³Asynchronous´µ4x2µRAMµCellµwithµSingleµPort¡4j¡7j10³13¡gj.´µ.µ.µ.µ.µ.µ.µ¡,ÑExample 10³3³Asynchronous´µ16x18µRAMµCellµwithµSingleµPort¡4Ñ¡7Ñ10³16¡¡Ñ.´µ.µ.µ.µ.µ¡,8Example 10³4³Asynchronous´µ16x32µRAMµCellµwithµSingleµPort¡48¡7810³18¡¡8.´µ.µ.µ.µ.µ¡, Example 10³5³Asynchronous´µ1Kx8µRAMµCellµwithµSingleµPort¡4 ¡7 10³21¡„ .´µ.µ.µ.µ.µ.µ¡,Example 10³6³Asynchronous´µ4X2µRAMµCellµwithµSingleµPortµandµ¡ÐMAddressµLatches¡4M¡7M10³23¡’M.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,µExample 10³7³Asynchronous´µ1Kx8µRAMµCellµwithµ¡ÐûSingleµDataµPort¡4û¡7û10³26¡’û.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,bExample 10³8³Three³Port´µRegisterµFileµ16x8µRAMµCellµwithµ¡Ð©Three³StateµOutput¡4©¡7©10³29¡Ì©.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Example 10³9³Synchronous´µ16x2µRAMµCellµwithµSingleµPort¡4	¡7	10³33¡g	.´µ.µ.µ.µ.µ.µ.µ¡,	wExample 10³10³Synchronous´µ16x2µRAMµCellµwithµDualµPort¡4	w¡7	w10³36¡g	w.´µ.µ.µ.µ.µ.µ.µ¡,	ßExample 10³1¤ÿü1³Asynchronous´µ1Kx8µRAMµCellµwithµDualµPort¡4	ß¡7	ß10³39¡„	ß.´µ.µ.µ.µ.µ.µ¡,
FExample 10³12³ROM´µCell¡4
F¡7
F10³42¡
F.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
­Example 10³13³Asynchronous´µ16x32µRAMµCellµwithµDualµPort¡4
­¡7
­10³44¡¡
­.´µ.µ.µ.µ.µ¡,Example 10³14³Asynchronous´µ9x2µRAMµCellµwithµDualµPort¡4¡710³47¡g.´µ.µ.µ.µ.µ.µ.µ’
ÚçD“I501ileaf_page_string1:xlix¥	öä¥	öäâ²¡Ô¤ÿ¾xlix¡,É²Example 10³15³Asynchronous´µ16x18µRAMµCellµwithµDualµPort¡4É¡7É10³50¡¡É.´µ.µ.µ.µ.µ¡,.Example 10³16³Synchronous´µ16x8µRAMµCellµwithµOneµReadµPortµ¡ÐuandµOneµW¤ÿÿriteµPort¡4u¡7u10³54¡Ìu.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÚExample 10³17³Asynchronous´µ16x8µRAMµCellµwithµT¤ÿýwoµW¤ÿÿriteµPortsµ¡Ð!andµT¤ÿýwoµReadµPorts¡4!¡7!10³57¡!.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,†Example 10³18³RAM´µCellµwithµAddressµRowsµandµ¡ÐÍColumnsµDescription¡4Í¡7Í10³69¡Í.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,2Example 1¤ÿü1³1³Sample´µLibraryµReport¡42¡;21¤ÿü1³18¡#2.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,—Example 1¤ÿü1³2³Input´µBuf¤ÿÿfer¡4—¡;—1¤ÿü1³20¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ýExample 1¤ÿü1³3³Input´µBuf¤ÿÿferµwithµHysteresis¡4ý¡;ý1¤ÿü1³21¡—ý.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,bExample 1¤ÿü1³4³Input´µClockµBuf¤ÿÿfer¡4b¡;b1¤ÿü1³22¡¯b.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÇExample 1¤ÿü1³5³Output´µBuf¤ÿÿfer¡4Ç¡;Ç1¤ÿü1³23¡;Ç.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,-Example 1¤ÿü1³6³Bidirectional´µPad¡4-¡;-1¤ÿü1³25¡’-.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,’Example 1¤ÿü1³7³Multicell´µPadµComponents¡4’¡;’1¤ÿü1³27¡z’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,÷Example 1¤ÿü1³8³Cell´µwithµx_functionµAttribute¡4÷¡;÷1¤ÿü1³30¡´÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,]Example 12³1³Multiplexed´µDµFlip³FlopµScanµCell¡4]¡W]12³6¡E].´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÂExample 12³2³Statetable´µinµFull³CellµDescription¡4Â¡7Â12³12¡EÂ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,'Example 12³3³test_cell´µDescriptionµforµMultibitµScanµCells¡4'¡7'12³13¡-'.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 12³4³check_test´µResults³
ScannableµEquivalentsµ¡ÐÓDoµNotµExist¡4Ó¡7Ó12³17¡;Ó.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	8Example 12³5³check_test´µResults³
ScannableµEquivalentµExists¡4	8¡7	812³18¡Û	8.´µ.µ.µ¡,	žExample 12³6³Simple´µMultiplexedµDµFlip³FlopµScanµCell¡4	ž¡7	ž12³23¡ó	ž.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
Example 12³7³Multibit´µScanµCellsµwithµMultiplexedµDµFlip³Flopµ¡Ð
JandµEnable¡4
J¡7
J12³25¡
J.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
¯Example 12³8³LSSD´µScanµCell¡4
¯¡7
¯12³32¡’
¯.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 12³9³Clocked³Scan´µT¤ÿúestµCell¡4¡712³38¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ç
zD“I501ileaf_page_string1:l¥	öä¥	öäâ²¡,l¡,É²Example 12³10³Scan´µDµFlip³FlopµwithµAuxiliaryµClock¡4É¡7É12³42¡¹É.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,4Example 13³1³A´µLibraryµwithµInternalµPower¡44¡7413³30¡Ñ4.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,žExample 13³2³One³Dimensional´µInternalµPowerµT¤ÿúable¡4ž¡7ž13³32¡¹ž.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Example 13³3³T¤ÿýwo³Dimensional´µInternalµPowerµT¤ÿúable¡4	¡7	13³34¡¹	.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,tExample 13³4³Three³Dimensional´µInternalµPowerµT¤ÿúable¡4t¡7t13³35¡ót.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÞExample 13³5³cell´µwithµrail_connectionµAttributes¡4Þ¡7Þ13³41¡EÞ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,IExample 13³6³Library´µExampleµwithµpower_supplyµGroup¡4I¡7I13³42¡-I.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,´Example 13³7³Library´µExampleµwithµpower_supplyµGroup¡4´¡7´13³44¡-´.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 13³8³Library´µExampleµDefiningµAllµPowerµSuppliesµ¡ÐewithµNominalµOperatingµConditions¡4e¡7e13³46¡be.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÐExample 13³9³Example´µofµCellµwithµDefaultµPowerµSupply¡4Ð¡7Ð13³46¡-Ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,:Example 13³10³Example´µofµCellµwithµOneµPowerµSupply¡4:¡7:13³46¡:.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,¥Example 13³1¤ÿü1³Example´µofµCellµwithµT¤ÿýwoµPowerµSupplies¡4¥¡7¥13³47¡-¥.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 13³12³Example´µofµµCellµwithµT¤ÿýwoµPowerµSuppliesµ¡ÐVandµBidirµPin¡4V¡7V13³47¡;V.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÁExample 14³1³Three³State´µCellµwithµDisableµandµEnableµ¡ÐT¤ÿþimingµArcs¡4¡714³23¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,rExample 14³2³Combinational´µT¤ÿþimingµDescriptionµ¡Ð¸(PiecewiseµLinearµDelay)¡4¸¡7¸14³35¡z¸.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	#Example 14³3³Using´µT¤ÿúemplatesµinµtheµCMOSµNonlinearµ¡Ð	jT¤ÿþimingµModel¡4	j¡7	j14³41¡;	j.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÔExample 14³4³Using´µDegradationµT¤ÿúables¡4	Ô¡7	Ô14³45¡z	Ô.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
?Example 14³5³XOR´µCellµwithµState³DependentµT¤ÿþiming¡4
?¡7
?14³56¡Ö
?.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
ªExample 14³6³CMOS´µNonlinearµT¤ÿþimingµModelµUsingµConstraint¡4
ª¡7
ª14³65¡¾
ª.´µ.µ.µ.µ¡,Example 14³7³D´µFlip³FlopµDescriptionµ(StandardµDelayµModel)¡4¡714³92¡¡.´µ.µ.µ.µ.µ’
z
ÛD“I501ileaf_page_string1:li¥	öä¥	öäâ²¡Ô¤ÿìli¡,É²Example 14³8³D´µFlip³FlopµDescriptionµ(PiecewiseµLinearµ¡ÐDelayµModel)¡4¡714³95¡;.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,yExample 14³9³D´µFlip³FlopµDescriptionµ(CMOSµNonlinearµ¡Ð¿DelayµModel)¡4¿¡7¿14³98¡;¿.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,(Example 15³1³Description´µofµT¤ÿþimingµRelationshipsµinµFigure 15³2¡4(¡W(15³9¡Û(.´µ.µ.µ¡,‘Example 15³2³Description´µofµRelationshipsµinµFigure 15³4¡4‘¡;‘15³1¤ÿü1¡-‘.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,úExample 15³3³Description´µofµRelationshipsµinµFigure 15³5¡4ú¡7ú15³12¡-ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,bExample 15³4³Description´µofµtheµInterfaceµT¤ÿþimingµinµFigure 15³7¡4b¡7b15³15¡¾b.´µ.µ.µ.µ¡,ËExample 15³5³Library´µCompilerµModelµofµRAMµinµFigure 15³8µ¡ÐandµFigure 15³9¡4¡715³23¡u.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,{Example 16³1³T¤ÿþiming´µReportµHeader¡4{¡W{16³3¡#{.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,äExample 16³2³Piecewise´µLinearµDelayµModelµInformation¡4ä¡Wä16³3¡ä.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,LExample 16³3³T¤ÿþiming´µAttributeµDefaults¡4L¡WL16³4¡]L.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,µExample 16³4³T¤ÿúemplate´µExamples¡4µ¡Wµ16³6¡éµ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 16³5³CMOS´µCellµDescription¡4¡W16³7¡@.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,‡Example 16³6³Pin´µConstraintsµinµCMOSµLinearµDelayµModel¡4‡¡7‡16³15¡g‡.´µ.µ.µ.µ.µ.µ.µ¡,ðExample 16³7³Standard´µCombinationalµPinµDelays¡4ð¡7ð16³18¡ð.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,YExample 16³8³Combinational´µPinµDelaysµwithµNonlinearµ¡ÐŸDelayµModel¡4Ÿ¡7Ÿ16³19¡;Ÿ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	Example 16³9³Piecewise´µLinearµCombinationalµPinµDelays¡4	¡7	16³19¡J	.´µ.µ.µ.µ.µ.µ.µ.µ¡,	qExample 16³10³Standard´µSequentialµPinµDelays¡4	q¡7	q16³20¡E	q.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,	ÚExample 16³1¤ÿü1³Piecewise´µLinearµSequentialµPinµDelays¡4	Ú¡7	Ú16³21¡ó	Ú.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
CExample 16³12³T¤ÿþiming´µReportµforµDµLatchµandµDµFlip³Flop¡4
C¡7
C16³23¡-
C.´µ.µ.µ.µ.µ.µ.µ.µ.µ¡,
«Example 16³13³´µLibraryµwithµNonlinearµDelayµModel¡4
«¡7
«16³27¡œ
«.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 17³1³Setting´µStandardµT¤ÿþimingµDefaultµAttributes¡4¡W17³5¡.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’
ÛÆD“I501ileaf_page_string1:lii¥	öä¥	öäâ²¡,lii¡,É²Example 17³2³Setting´µPiecewiseµLinearµDefaultµT¤ÿþimingµAttributes¡4É¡WÉ17³7¡ÛÉ.´µ.µ.µ¡,.Example 17³3³Setting´µLibrary³LevelµDefaultsµforµaµCMOSµLibrary¡4.¡7.17³14¡Û..´µ.µ.µ¡,’Example 17³4³Defining´µT¤ÿþimingµRanges¡4’¡7’17³19¡@’.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,÷Example 17³5³Wire´µLoadµDefinition¡4÷¡7÷17³25¡é÷.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,[Example 17³6³Specification´µofµMultipleµwire_load_selectionµ¡Ð¢Groups¡4¢¡7¢17³31¡ª¢.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,Example 17³7³Wire´µLoadµGroupµSelection¡4¡717³33¡—.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,kExample 17³8³Setting´µk-Factors¡4k¡7k17³53¡¯k.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ÐExample 17³9³Individual´µScalingµFactors¡4Ð¡7Ð17³55¡zÐ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,4Example 18³1³Sample´µVHDL³FormatµNetlist¡44¡W418³6¡Ñ4.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,™Example 18³2³Sample´µT¤ÿúest³MappingµLibrary¡4™¡7™18³10¡Ñ™.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,ýExample 18³3³Cell³Arc´µOutput¡4ý¡7ý18³20¡uý.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ¡,bExample 18³4³T¤ÿúesting´µStandard³DelayµResistanceµParameters¡4b¡7b18³24¡¡b.´µ.µ.µ.µ.µ¡,ÆExample 18³5³Fanout´µT¤ÿúestµNetlist¡4Æ¡7Æ18³34¡ÌÆ.´µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ.µ’ÆÐOPS m:m:D€‚Document:1introÿ‚Last saved on:Tue, Dec 9, 1997 17:53:00ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%Båååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€å™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’6M(D“I501ileaf_page_string1:1-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡Ô¤ÿ¾1³1¡,m²².1â²/¥	öä¡Õm²â¡,W²	Introduction´µtoµLibraryµCompiler¡Ç²¥	öäÁÊËÃ¡Ä,«Ê«ÆÃ¡	öÇ¡þ]The´µSynopsysµLibraryµCompilerµsoftwareµreadsµtheµdescriptionµofµan¡þ¦ASICµlibraryµfromµaµUNIXµtextµfileµandµcompilesµitµintoµanµinternal¡þîdatabaseµ(dbµformat)µorµVHDLµlibraries.µThisµdatabaseµsupportsµall¡þ7Synopsysµapplicationsµthatµhandle:¡þ¬²S¡X¬²Simulation¡þ²S¡X²Synthesis¡þ{²S¡X{²Test¡þã²S¡Xã²Entry¡þ	`YouµuseµtheµLibraryµCompilerµprogramµthroughµtheµlc_shell¡þ	©commandµinterfaceµorµtheµgraphicalµuserµinterface.µSeeµChapterµ3,¡þ	òUsingµTheµLibraryµCompilerµShellµInterface,"µandµChapterµ4,µUsing¡þ
:theµLibraryµCompilerµGraphicalµInterface,"µinµthisµmanual.µSeeµalso¡þ
ƒtheµSynopsysµonlineµmanµpages,µandµtheµ²&DesignµCompiler¡þ
ÌReferenceµManual²µsetµforµdescriptionsµofµallµlc_shellµcommandsµthat¡þaffectµLibraryµCompiler.’(¾D“I501ileaf_page_string1:1-2¥	öäÃËÁâÊË¡Ä,,ñ¡Ä,ñ	cñ¡Ä	cñ	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ñÊñÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡.1³2¡þÉ²This´µchapterµdescribesµtheseµsubjects:¡þN²S¡XN²TheµroleµofµLibraryµCompiler¡þÁ²S¡XÁ²Technologyµlibraries¡þ5²S¡X5²Symbolµlibraries¡þ¨²S¡X¨²CompiledµlibrariesµandµDesignµCompiler¡þ²S¡X²VHDLµsimulationµlibrariesµandµtheµVHDLµsimulator¡þ®LibraryµCompilerµdocumentationµconsistsµofµtheµ²&LibraryµCompiler¡þöUserµGuide,µLibraryµCompilerµReferenceµManualµVolumeµ1,µ²and²&¡þ?LibraryµCompilerµReferenceµManualµVolumeµ2.¡,G²The´µRoleµofµLibraryµCompiler¡þ²The´µLibraryµCompilerµprogramµgeneratesµtwoµtypesµofµlibrariesµto¡þOsupportµSynopsysµsynthesisµandµsimulationµproducts:¡þÔ²S¡XÔ²Synthesisµlibraries¡þG²S¡XG²VHDLµsimulationµASCIIµlibraries’¾;D“I501ileaf_page_string1:1-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,‡¡Ä,‡	c‡¡Ä	c‡	c¡Ä	c,ÆÃÁÊËÃ¡Äþ‡Ê‡ÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡Ô¤ÿ¾1³3¡þÏ²Synthesis´µLibraries¡þn²The´µLibraryµCompilerµprogramµcreatesµtwoµtypesµofµlibrariesµto¡þ¶supportµSynopsysµsynthesisµtools:µtechnologyµlibrariesµandµsymbol¡þÿlibraries.µTheseµlibrariesµcontainµtheµtwoµtypesµofµinformation¡þHrequiredµtoµdescribeµASICµcomponents:µtechnicalµcharacteristics¡þandµschematicµsymbols.¡þ²S¡X²Technologyµlibrariesµcontainµtheµcharacteristicsµandµfunctionsµof¡X\eachµcomponentµinµanµASICµlibrary.µInformationµstoredµinµthe¡X¢technologyµlibrariesµconsistsµofµarea,µtiming,µfunction,µandµsoµon.¡XéTheµDesignµCompilerµandµTestµCompilerµprogramsµuseµthis¡X/informationµtoµmakeµsynthesisµdecisions.¡þ£²S¡X£²Symbolµlibrariesµcontainµinformationµaboutµtheµschematic¡XésymbolsµthatµrepresentµeachµASICµcomponent,µasµwellµas¡X0informationµaboutµspecialµsymbols,µsuchµasµpageµbordersµand¡Xwoff³sheetµconnectors.µDesignµAnalyzerµusesµthisµinformationµto¡X½generateµschematicsµofµdesignsµonµtheµcomputerµscreenµandµto¡XdrawµtheseµdesignsµwithµyourµPostScriptµplotterµorµprinter.¡þ×²VHDL´µSimulationµLibraries¡þv²The´µLibraryµCompilerµprogramµcanµalsoµgenerateµVHDLµlibraries¡þ¿thatµcontainµtheµtimingµandµfunctionalµinformationµneededµfor¡þ	simulation.’;	^D“I501ileaf_page_string1:1-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡.1³4¡þÏ²Creating´µLibraries¡þn²You´µcanµcreateµbothµtechnologyµandµsymbolµlibrariesµbyµwriting¡þ¶ASCIIµtextµdescriptions.µYouµcanµalsoµcreateµsymbolµlibrariesµby¡þÿtransferringµinformationµfromµaµvarietyµofµcomputer-aided¡þHengineeringµ(CAE)µsystemsµthatµuseµtheµEDIFµformat.¡þêAfterµyouµcreateµtheµlibraryµfiles,µtheµLibraryµCompilerµprogram¡þ3translatesµthemµintoµtheµSynopsysµinternalµdatabaseµformat.µYou¡þ|canµwriteµtheµcompiledµlibraryµoutµtoµaµdiskµfileµandµuseµitµrepeatedly.¡þTheµLibraryµCompilerµprogramµcanµalsoµwriteµoutµVHDLµsimulation¡þglibraries.¡þ
Figure 1³1µshowsµtheµroleµofµtheµLibraryµCompilerµprogram.¡,»²&Figure 1³1³TheµRoleµofµLibraryµCompiler¡,²¥	öäÃÁÊË¡Ä0¡Ä0g0¡Äg0g¡ÄgâãÇÆÃÃâ¡Ä	7¡Ä7g7¡Äg7g	¡Äg		âÇÆÃÃÁâÊË¡Ä*n>n¡Ä>n>¡Ä>*¡Ä**nâÇÆÃ¡^”²âTechnology´µLibrary¡ÔÆTextµFileÃ¡Ä%l9l¡Ä9l9Ð¡Ä9Ð%Ð¡Ä%Ð%lâÇÆÃ¡ˆ’âSymbolµLibrary¡qÄTextµorµEDIFµFileÃÁÊË¡Ä	0¡Ä0¤0¡Ä¤0¤	¡Ä¤		âÇÆÃÃÁâÊË¡Ä,ÎsÎ¡ÄsÎsb¡Äsb,b¡Ä,b,ÎâÇÆÃ¡côâSynopsys¡ƒ&Library¡kWCompilerÁÊËÃ¡Äg¡ŸÆÃÃÊË¡ÄÓ’Ÿ¡ÄŸÔ­¡ÄÔ­ÔŸ¡ÄÔŸÓ’ÇÆÃÊËÃ¡Äg§§ÆÃÃÊË¡ÄÑ™§¡Ä§Ñµ¡ÄÑµÑ§¡ÄÑ§Ñ™ÇÆÃÊËÃ¡Ä¥€1~ÆÃÃÊË¡Äüq1~¡Ä1~ü¡Äüü¡ÄüüqÇÆÃÃÁÊË¡Ä5*5ò¡Ä5ò½ò¡Ä½ò½*¡Ä½*5*ÆÃÁÊËÃ¡Ä£·,¸ÆÃÃÊË¡Äøª,¸¡Ä,¸øÅ¡ÄøÅø·¡Äø·øªÇÆÃÃÁÊË¡Ä^m}m¡Ä}m}	¡Ä}	^	¡Ä^	^mâÇÆÃ¡«“âVHDL¡xÅSimulation¡öLibrariesÃÁÊË¡Ä1	(1?¡Ä1?¸?¡Ä¸?¸	(¡Ä¸	(1	(ÆÃÃÁÊË¡Ä`¡Ä¡Ä`¡Ä``âÇÆÃ¡…:âCompiled¡mlTechnology¡Åand¡œÏSymbol¡wDatabases²¡Ê’	^ƒD“I501ileaf_page_string1:1-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡Ô¤ÿ¾1³5¡,Õ²Technology´µLibraries¡þ”²A´µtechnologyµlibraryµisµaµtextµfileµthatµcontainsµfourµkindsµof¡þÝinformationµaboutµtheµASICµtechnology:¡þaStructuralµInformationµ¡XªStructuralµinformationµdescribesµeachµcell'sµconnectivityµtoµthe¡Xóoutsideµworld,µincludingµcell,µbus,µandµpinµdescriptions.¡þYFunctionalµInformation¡X¢Functionalµinformationµdescribesµtheµlogicalµfunctionµofµevery¡XëoutputµpinµofµeveryµcellµsoµthatµtheµDesignµCompilerµprogramµcan¡X3mapµtheµlogicµofµaµdesignµtoµtheµactualµASICµtechnologyµyouµare¡X|using.µCellsµthatµdoµnotµhaveµaµfunctionµdescribedµinµthe¡XÅtechnologyµlibraryµareµleftµuntouchedµduringµoptimization.¡þ+TimingµInformationµ¡XtTimingµinformationµdescribesµtheµparametersµforµpin³to³pinµtiming¡X½relationshipsµandµdelayµcalculationµforµeachµcellµinµtheµlibraryµfor¡Xaccurateµtimingµanalysisµandµtimingµoptimizationµofµaµdesign.¡þlEnvironmentalµInformationµ¡X´Environmentalµinformationµdescribesµtheµmanufacturingµprocess,¡Xýoperatingµtemperature,µsupplyµvoltageµvariations,µandµdesign¡XFlayout,µallµofµwhichµdirectlyµaffectµtheµefficiencyµofµeveryµdesign.¡X¬Theseµvariablesµandµtheirµeffectsµareµdefinedµinµtheµenvironment¡Xõdescriptionsµofµtheµtechnologyµlibrary.µEnvironmental¡X	>descriptionsµincludeµinterconnectµwireµareas,µwireµcapacitance¡X	†andµresistance,µandµtheµscalingµfactorsµforµvariationsµinµprocess,¡X	Ïtemperature,µandµvoltage.’ƒ	D“I501ileaf_page_string1:1-6¥	öä¥	öä¡8Á²âIntroduction´µtoµLibraryµCompiler¡.1³6¡þÉ²Figure 1³2´µshowsµtheµstructureµofµaµtechnologyµlibrary.µAµtechnology¡þlibraryµcontainsµcellµandµenvironmentµdescriptions:¡þ–²S¡X–²CellµdescriptionsµdefineµeachµindividualµcomponentµinµtheµASIC¡XÝtechnology,µincludingµcell,µbus,µpin,µarea,µfunction,µandµtiming.¡þQ²S¡XQ²Environmentµdescriptions²&µ²containµinformationµaboutµtheµASIC¡X—technologyµthatµisµnotµuniqueµtoµindividualµcomponents.µThey¡XÞalsoµcontainµinformationµaboutµtheµeffectsµofµoperatingµconditions¡X$onµtheµtechnology,µvaluesµofµtheµcomponentsµofµdelayµscaling¡Xkequations,µstatisticalµdataµofµinterconnectµestimation,µandµdefault¡X±cellµattributes.’	(D“I501ileaf_page_string1:1-7¥	öä¥	öä¡8Á²âIntroduction´µtoµLibraryµCompiler¡Ô¤ÿ¾1³7¡,É²&Figure 1³2³Technology´µLibraryµStructureµ¡,
U²¥	öäÃËÁ	Ê	Ë¡Äx
Qxa¡Äxaa¡Äa
Q¡Ä
Qx
QâãÇÆÃÃÁâÊË¡ÄŒ…(…¡Ä(…(±¡Ä(±Œ±¡ÄŒ±Œ…âÇÆÃ¡œ¨²âDate´µandµRevisionÃ¡Äx™x¡Ä™x™¤¡Ä™¤¤¡Ä¤xâÇÆÃ¡›âDefaultµAttributesÃ¡Ä‚ª‚¡Äª‚ª®¡Äª®®¡Ä®‚âÇÆÃ¡!¥âWireµLoadµModelsÃ¡Ä8†8¡Ä†8†t¡Ä†tt¡Ät8âÇÆÃ¡Ÿd²âCell´µDescriptionsÃ¡ÄËýÿý¡ÄÿýÿI¡ÄÿIËI¡ÄËIËýâÇÆÃ¡5²âTechnology´µLibraryÃ¡Ä@q@¡Äq@ql¡Äqll¡Äl@âÇÆÃ¡!c²âScaling´µFactorsÃ¡Ä¸k¸¡Äk¸kä¡Äkää¡Ää¸âÇÆÃ¡$ÛâTimingµRangesÃ¡Äþ«C«¡ÄC«C×¡ÄC×þ×¡Äþ×þ«âÇÆÃ¡ÎâCellµAttributesÃ¡ÄIË¡ÄËËV¡ÄËVIV¡ÄIVIâÇÆÃ¡]F²âPinÃ¡Ä™}Ì}¡ÄÌ}Ì©¡ÄÌ©™©¡Ä™©™}âÇÆÃ¡¨ ²âPinµAttributesÃ¡Ä¤¡Ä<¡Ä<¤<¡Ä¤<¤âÇÆÃ¡´,²âTimingÃ¡Äíefe¡Äfef‘¡Äf‘í‘¡Äí‘íeâÇÆÃ¡üˆ²âTimingµAttributesÃ¡Ä¶¶¡Ä¶â¡Äââ¡Äâ¶âÇÆÃ¡ÙâNominalµOperatingµConditionsÃ¡Äüü¡Äü(¡Ä((¡Ä(üâÇÆÃ¡âCustomµOperatingµConditionsÃÁÊË¡Ä¡¡^¡Ä¡^ó^¡Äó^ó¡Äó¡ÆÃÃÁÊË¡Ät”¡Ä””I¡Ä”ItI¡ÄtItâÇÆÃ¡9²âEnvironment´µDescriptionsÃ¡Äã®“®¡Ä“®“Ú¡Ä“ÚãÚ¡ÄãÚã®âÇÆÃ¡úÑ²âTiming´µConstraintsÃ¡Äø1þ1¡Äþ1þm¡Äþmøm¡Äømø1âÇÆÃ¡]²âBus´µDescriptionsÃ¡ÄÉÉ¡ÄÉõ¡Äõõ¡ÄõÉâÇÆÃ¡¥ì²âLibrary´µAttributesÃ¡ÄAÜßÜ¡ÄßÜß¡ÄßA¡ÄAAÜâÇÆÃ¡XÿâBusµPinµAttributesÃ¡ÄC–Ì–¡ÄÌ–ÌÂ¡ÄÌÂCÂ¡ÄCÂC–âÇÆÃ¡V¹âDefaultµAttributesÃ¡Äýò´ò¡Ä´ò´¡Ä´ý¡ÄýýòâÇÆÃ¡âSequentialµFunctionÃ¡Ä—À˜À¡Ä˜À˜ì¡Ä˜ì—ì¡Ä—ì—ÀâÇÆÃ¡¤ãâCombinationalµFunctionÃÁÊË¡Ä®ˆîˆ¡Äîˆî
¡Äî
®
¡Ä®
®ˆÆÃÃÊË¡Ä‡	¯‡~Ë¡Ä‡~~Ë¡Ä~	¯Ë¡Ä	¯‡	¯ÆÃÃËÊË¡ÄNi1i¡Ä1i1	L¡Ä1	LN	L¡ÄN	LNiÆÃÃ¡Ä¯NÁN¡ÄÁNÁý¡ÄÁý¯ý¡Ä¯ý¯NÆÃ²¡Ê
U’(	ÞD“I501ileaf_page_string1:1-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡.1³8¡,Õ²Symbol´µLibraries¡þ”²Figure 1³3´µshowsµtheµstructureµofµaµsymbolµlibrary,µwhichµisµsimilar¡þÝtoµtheµstructureµofµaµtechnologyµlibrary.µForµDesignµAnalyzerµto¡þ%displayµyourµdesigns,µeachµcomponentµofµtheµASICµtechnologyµmust¡þnhaveµaµgraphicµrepresentation³
aµschematicµsymbolµinµaµsymbol¡þ·library.µAµnumberµofµspecialµsymbolsµinµaµsymbolµlibraryµalso¡þÿdescribeµsuchµthingsµasµoff³sheetµconnectors,µsheetµborder¡þHtemplates,µandµdefaultµlogicµsymbols.µ¡,ú²&Figure 1³3³SymbolµLibraryµStructure¡,
š²¥	öäÃÁÊË¡Ä
–2¡Ä22¡Ä2
–¡Ä
–
–âãÇÆÃÃÁâÊË¡ÄxV|V¡Ä|V|‚¡Ä|‚x‚¡Äx‚xVâÇÆÃ¡™y²âVariablesÃ¡ÄÅ00¡Ä0\¡Ä\Å\¡ÄÅ\Å0âÇÆÃ¡ïSâFontsÃ¡ÄÅ««¡Ä«×¡Ä×Å×¡ÄÅ×Å«âÇÆÃ¡ðÎâLine´µWidthsÃ¡ÄÅìÉì¡ÄÉìÉ¡ÄÉÅ¡ÄÅÅìâÇÆÃ¡ôâVisibilityÃ¡ÄÕkk¡Äk—¡Ä—Õ—¡ÄÕ—ÕkâÇÆÃ¡óŽâColorÃÁÊË¡ÄT-T¡ÄT˜¡Ä˜˜-¡Ä˜-T-ÆÃÃÁÊË¡ÄrÒ…Ò¡Ä…Ò…¡Ä…r¡ÄrrÒâÇÆÃ¡žþ²âLayersÃÁÊË¡Ä˜
.˜š¡Ä˜šHš¡ÄHšH
.¡ÄH
.˜
.âÇÆÃÃÁâÊË¡ÄrQ¹Q¡Ä¹Q¹¡Ä¹r¡ÄrrQâÇÆÃ¡}âSymbolsÃ¡Äó½p½¡Äp½pé¡Äpéóé¡Äóéó½âÇÆÃ¡à²âPinsÃ¡Äóüü¡Äü(¡Ä(ó(¡Äó(óüâÇÆÃ¡âSubsymbolsÃÁÊË¡Ä	ÎÞ¡ÄÞÞ¡ÄÞ	Î¡Ä	Î	ÎâÇÆÃÃÁâÊË¡ÄÖD¡ÄDDË¡ÄDËÖË¡ÄÖËÖâÇÆÃ¡þ»²âTemplatesÃ¡ÄóA´A¡Ä´A´m¡Ä´móm¡ÄómóAâÇÆÃ¡d²âDrawingµInstructionsÃ¡Äh”¸”¡Ä¸”¸À¡Ä¸ÀhÀ¡ÄhÀh”âÇÆÃ¡•·âDefaultµSpecialµSymbolsÃ¡Ä÷ƒ÷¡Äƒ÷ƒ	#¡Äƒ	#	#¡Ä	#÷âÇÆÃ¡N	âUsableµAreaÃ¡Ä1	/O	/¡ÄO	/O	[¡ÄO	[1	[¡Ä1	[1	/âÇÆÃ¡N	RâOrientationÃ¡Ä&	l	l¡Ä	l	˜¡Ä	˜&	˜¡Ä&	˜&	lâÇÆÃ¡M	âDrawingµInstructions²¡Ê
š’	ÞD“I501ileaf_page_string1:1-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡Ô¤ÿ¾1³9¡,Õ²Compiled´µLibrariesµandµDesignµCompiler¡þ”²You´µcanµuseµaµcompiledµtechnologyµorµsymbolµlibraryµwithµthe¡þÝDesignµCompilerµprogramµtoµgenerateµdesignsµandµschematics,µas¡þ%shownµinµFigure 1³4.¡þÈCompiledµlibrariesµareµworkstation³independent.µYouµcanµtransfer¡þlibrariesµbetweenµdifferentµhardwareµplatformsµifµtheµfilesµareµtreated¡þYasµbinaryµfiles.µToµtransferµtheµfiles,µuseµthe²µ²UNIX²µ²ftpµorµrcp¡þ¢commandµinµbinaryµmode.¡,T²&Figure 1³4³UsingµtheµCompiledµLibrariesµwithµDesignµCompiler¡,Ì²¥	öäÃÁâÊË¡ÄÉ†¡Ä†Œ†¡ÄŒ†ŒÉ¡ÄŒÉÉãÇÆÃÃÁâÊË¡Ä¤¼¡Ä¼‚¼¡Ä‚¼‚¤¡Ä‚¤¤âÇÆÃÃÁâÊË¡Ä)+n+¡Än+n#¡Än#)#¡Ä)#)+âÇÆÃâ¡_ƒ²Synopsys¡}´Design¡gæCompilerÃÁÊË¡Ä?¤?è¡Ä?èrè¡Ärèr¤¡Är¤?¤âÇÆÃÃâ¡Ä“¬¡Ä¬f¬¡Äf¬f“¡Äf““âÇÆÃÃÁâÊË¡Ä-ÑNÑ¡ÄNÑNa¡ÄNa-a¡Ä-a-ÑâÇÆÃ¡M÷âOptimized¡l)Netlists¡AŒTiming´µand¡‰¾Area¡@ðInformation¡<TSchematicsÃÁÊË¡Ä?Ã?¼¡Ä?¼r¼¡Är¼rÃ¡ÄrÃ?ÃâÇÆÃÃÁâÊË¡Äö7ö¡Ä7ö7Š¡Ä7ŠŠ¡ÄŠöâÇÆÃ¡òâCompiled¡©NTechnologyµand¡¡SymbolµLibrariesÁÊËÃ¡ÄÆÃÃÊË¡Äâ¡Äâ«¡Äâ«â¡ÄââÇÆÃÃÁÊË¡Äx:¡Ä::u¡Ä:uxu¡ÄxuxâÇÆÃ¡½7âNetlistµorµHDL¡!iInputÁÊËÃ¡Äq@	@ÆÃÃÊË¡ÄÙ2	@¡Ä	@ÙM¡ÄÙMÙ@¡ÄÙ@Ù2ÇÆÃÊËÃ¡ÄqK	KÆÃÃÊË¡ÄÙ=	K¡Ä	KÙY¡ÄÙYÙK¡ÄÙKÙ=ÇÆÃ²¡ÊÌ’ÇD“I501ileaf_page_string1:1-10¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Introduction´µtoµLibraryµCompiler¡.1³10¡,Õ²VHDL´µSimulationµLibrariesµandµtheµVHDLµSimulator¡þ”²A´µVHDLµsimulatorµusesµaµVHDLµsimulationµlibraryµwithµnetlist¡þÝinformationµtoµsimulateµyourµdesign,µasµshownµinµFigure 1³5.¡,Ž²&Figure 1³5³UsingµVHDLµLibrariesµwithµaµVHDLµSimulator¡,²¥	öäÃÁâÊË¡ÄÃ¡ÄÃŒÃ¡ÄŒÃŒ¡ÄŒãÇÆÃÃÁâÊË¡Äÿ¡Äz¡Äzzÿ¡ÄzÿÿâÇÆÃÃÁâÊË¡Ä!†f†¡Äf†f~¡Äf~!~¡Ä!~!†âÇÆÃâ¡LÞ²IEEE´µ1076¡DCompatible¡AVHDL¡YsSimulatorÃÁÊË¡Ä7ÿ7C¡Ä7CjC¡ÄjCjÿ¡Äjÿ7ÿâÇÆÃÃâ¡Äî¡Ä^¡Ä^^î¡Ä^îîâÇÆÃÃÁâÊË¡Ä%,F,¡ÄF,F$¡ÄF$%$¡Ä%$%,âÇÆÃâ¡AçSimulation¡bResultsÃÁÊË¡Ä77¡Ä7j¡Äjj¡Äj7âÇÆÃÃÁâÊË¡ÄyQ/Q¡Ä/Q/å¡Ä/åyå¡ÄyåyQâÇÆÃ¡wâVHDL¡ß©Simulation¡óÚLibrariesÁÊËÃ¡ÄzþþÆÃÃÊË¡Äàðþ¡Äþà¡Äààþ¡ÄàþàðÇÆÃÃÁÊË¡Äqq3q¡Ä3q3Õ¡Ä3ÕqÕ¡ÄqÕqqâÇÆÃ¡’—âVHDLµNetlistµand¡òÉStimulusÁÊËÃ¡Äi››ÆÃÃÊË¡ÄÓ›¡Ä›Ó¨¡ÄÓ¨Ó›¡ÄÓ›ÓÇÆÃÊËÃ¡Äj˜˜ÆÃÃÊË¡ÄÔŠ˜¡Ä˜Ô¦¡ÄÔ¦Ô˜¡ÄÔ˜ÔŠÇÆÃ²¡Ê’ÇÐOPS m:m:D€‚Document:2tutorÿ‚Last saved on:Tue, Dec 9, 1997 17:53:01ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G° wst:helvps20b± :44444444444444444444444444444444*..J< 0...........0003Q<<<<73A<.<3E<A7A<73<7N7730..3.3.33.J3333 .3.A..*  0*444444444444444444444444444444444....4.4.444444444.44.4443<<<<<<S<77774<AAAAA4A<<<<443......J.....433333343333344.4.*S.44S444444444..*444444S444444444444444.4444S444N°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Cwst:courps10b±C:*ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåå®åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’HTFD“I501ileaf_page_string1:2-1¥	öä² â¡º¡Ïº¡žº¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¾2³1¡,m²².2â²/¥	öä¡Õm²â¡,}²	Library´µDevelopmentµProcedure¡ù²¥	öäÁÊËÃ¡Ä,ÝÊÝÆÃ¡	öù¡þ²This´µchapterµdescribesµtheµgeneralµprocedureµforµcreating¡þûtechnologyµlibraries.µItµdoesµnotµdescribeµallµtheµcomponentsµofµa¡þDtechnologyµlibrary.µItµusesµaµminimumµexampleµtoµprovideµan¡þŒoverviewµofµtheµtasksµinµlibraryµdevelopmentµandµrefersµyouµto¡þÕchaptersµinµthisµguideµandµotherµLibraryµCompilerµmanualsµfor¡þspecificµinformation.¡þÆAµtechnologyµlibraryµdescribesµtheµstructure,µfunction,µtiming,µand¡þ	environmentµofµtheµASICµtechnologyµbeingµused.µAµtechnology¡þ	Xlibraryµcontainsµinformationµusedµinµtheseµsynthesisµactivities:µ¡þ	à²S¡X	à²Translation³
functionalµinformationµforµeachµcell¡þ
W²S¡X
W²Optimization³
areaµandµtimingµinformationµforµeachµcell¡X
ž(includingµtimingµconstraintsµonµsequentialµcells)¡þ²S¡X²Designµruleµfixing³
designµruleµconstraintsµonµcells’FCD“I501ileaf_page_string1:2-2¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³2¡þÉ²Library´µdevelopmentµconsistsµofµtheµfollowingµmajorµactivities.¡þa1.¡XaTheµlibraryµdeveloperµdescribesµaµlibraryµinµtextµformatµ(.libµor¡X¨.slib).µThisµchapterµdescribesµthisµactivity.¡þ*2.¡X*Theµlibraryµdeveloperµusesµlc_shellµtoµcompileµaµbinaryµformµof¡Xqtheµlibraryµ(.dbµorµ.sdb).µThisµchapterµdescribesµthisµactivity.¡þó3.¡XóTheµdesignerµusesµtheµlibraryµinµcompiledµformatµwithµdc_shell¡X:duringµoptimization.µReferµtoµtheµDesignµCompilerµReference¡X€Manualµsetµforµdescriptionµofµthisµactivity.¡þ*Theseµareµtheµmajorµtasksµinµdevelopingµaµlibraryµinµtextµformatµand¡þscompilingµtheµlibraryµintoµbinaryµformat:¡þ²S¡X²Taskµ1µµUnderstandingµLanguageµConcepts¡þ²S¡X²Taskµ2µµCreatingµaµLibrary¡þ²S¡X²Taskµ3µµDescribingµtheµEnvironment¡þ’²S¡X’²Taskµ4µµDefiningµtheµCells¡þ²S¡X²Taskµ5µµDescribingµApplication³SpecificµData¡þ—²S¡X—²Taskµ6µµCompilingµtheµLibrary¡þ	²S¡X	²Taskµ7µµManagingµtheµLibrary¡þ	ÃForµspecificµinformationµaboutµtheµlibraryµsyntax,µseeµtheµµ²&Library¡þ
CompilerµReferenceµManualµVolumeµ1².¡þ
ÌForµinformationµaboutµVHDLµlibrariesµandµsimulation,µseeµtheµ²&Library¡þCompilerµReferenceµManualµVolumeµ2².’C@D“I501ileaf_page_string1:2-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Ó,½¡Ä,½	c½¡Ä	c½	cÓ¡Ä	cÓ,ÓÆÃÁÊËÃ¡Äþ½Ê½ÆÃ¥	öäÃÁÊË¡Ä,d,N¡Ä,N	cN¡Ä	cN	cd¡Ä	cd,dÆÃÁÊËÃ¡ÄþNÊNÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¾2³3¡,Õ²Task´µ1µµUnderstandingµLanguageµConcepts¡þ¦²Information´µinµaµlibraryµisµcontainedµinµLibraryµCompilerµlanguage¡þïstatements.µLibraryµstatementsµconsistµofµtheseµtypes,µeachµwithµits¡þ8particularµsyntax:µgroup,µsimpleµattribute,µandµcomplexµattribute.¡þ€Chapterµ5,µUsingµLibraryµCompilerµSyntax,"µgivesµdetailsµabout¡þÉtheseµtypesµandµdefineµstatements,µwhichµareµcomplexµattributes¡þthatµyouµcanµuseµtoµcreateµuser³definedµsimpleµattributes.¡þ²References¡þº²ForµmoreµinformationµaboutµLibraryµCompilerµlanguage,µsee¡þG²S¡XG²Chapterµ5,µUsingµLibraryµCompilerµSyntax"¡þÂ²S¡XÂ²Chapterµ6,µBuildingµaµSymbolµLibrary"¡þ<²S¡X<²Chapterµ7,µBuildingµaµTechnologyµLibrary"¡þ·²S¡X·²²&LibraryµCompilerµReferenceµManualµVolumeµ1¡þž²Basic´µSyntaxµRulesµµ¡þ	K²These´µareµLibraryµCompilerµsyntaxµrules:¡þ	Ù²S¡X	Ù²Namesµareµcase³sensitiveµbutµnotµlimitedµinµlength.¡þ
S²S¡X
S²Eachµidentifierµmustµbeµuniqueµwithinµitsµscope.¡þ
Î²S¡X
Î²Statementsµcanµspanµmultipleµlines,µbutµeachµlineµbeforeµtheµlast¡Xmustµendµwithµaµcontinuationµcharacterµ(\).’@~D“I501ileaf_page_string1:2-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,÷,á¡Ä,á	cá¡Ä	cá	c÷¡Ä	c÷,÷ÆÃÁÊËÃ¡ÄþáÊáÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³4¡þÏ²Group´µStatements¡þn²A´µgroupµisµaµnamedµcollectionµofµstatementsµthatµdefineµaµlibrary,µa¡þ¶cell,µaµpin,µaµtimingµarc,µaµbus,µandµsoµforth.µ¡þYThisµisµtheµsyntaxµofµaµgroupµstatement:¡þÛ²(group_name´µ²(²(name²)²(µ²{¡þµµ...µ²(statementsµ²...¡þT}¡þ1²Attribute´µStatements¡þÐ²An´µ²&attribute²µstatementµdefinesµcharacteristicsµofµaµspecificµobject.¡þAttributesµareµdefinedµinµaµgroup.µ¡þ»Anµattributeµcanµbeµeitherµ²&simple²µorµ²&complex².µTheµtwoµtypesµof¡þattributesµareµdistinguishedµbyµtheirµsyntax.µAllµsimpleµattributesµuse¡þMtheµsameµgeneralµsyntax.µComplexµattributesµhaveµdifferent¡þ•syntacticµrequirements.¡þ8Thisµisµtheµsyntaxµofµaµsimpleµattributeµstatement:¡þ¹²(attribute_name²´µ²):²µ²(attribute_value²µ²);’~7D“I501ileaf_page_string1:2-5¥	öäÃËÁâÊË¡Ä,,ò¡Ä,ò	cò¡Ä	cò	c¡Ä	c,ÆÃÁÊËÃ¡Ä,òÊòÆÃ¥	öäÃÁÊË¡Ä,@,*¡Ä,*	c*¡Ä	c*	c@¡Ä	c@,@ÆÃÁÊËÃ¡Äþ*Ê*ÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¾2³5¡þÉ²This´µisµtheµsyntaxµofµaµcomplexµattribute:µ¡þJ²(attribute_name´µ(parameter1µ²[²(,µparameter2,µparameter3²µ...]²()¡,I²Task´µ2µµCreatingµaµLibrary¡þ²The´µexamplesµinµthisµchapterµdescribeµaµtechnologyµlibrary.µTo¡þOcreateµaµsymbolµlibrary,µreferµtoµChapterµ6,µBuildingµaµSymbol¡þ˜Library."¡þz²References¡þ²Forµmoreµinformationµaboutµcreatingµaµlibrary,µsee¡þœ²S¡Xœ²Chapterµ5,µUsingµLibraryµCompilerµSyntax"¡þ²S¡X²Chapterµ7,µBuildingµaµTechnologyµLibrary"¡þ‚²S¡X‚²²&LibraryµCompilerµReferenceµManualµVolumeµ1¡þS²Procedure¡þñ²Theseµareµtheµstepsµinµcreatingµaµlibrary:¡þ	u1.¡X	uDeterminingµtheµtechnology.¡þ	è2.¡X	èSelectingµaµdelayµmodel.¡þ
[3.¡X
[Determiningµwhereµthisµlibraryµwillµbeµused:µsynthesisµor¡X
¡simulation.¡þ4.¡XDescribingµtheµlibraryµinµLibraryµCompilerµsyntax.’7D“I501ileaf_page_string1:2-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,©,“¡Ä,“	c“¡Ä	c“	c©¡Ä	c©,©ÆÃÁÊËÃ¡Äþ“Ê“ÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³6¡þÏ²Determining´µtheµTechnology¡þn²Determine´µtheµtechnologyµforµtheµlibrary.µTheµtechnologyµcanµbe¡þ¶CMOSµ(default)µorµFPGA.µNoteµthatµanµFPGAµlibraryµrequiresµa¡þÿspecialµlicenseµduringµcompilation.¡þã²Selecting´µaµDelayµModel¡þƒ²Select´µtheµmodelµtoµbeµusedµinµdelayµcalculations.µTheµsupported¡þËdelayµmodelsµareµ¡þP²S¡XP²generic_cmos.µThisµdelayµmodelµisµalsoµreferredµtoµasµthe¡X–standardµdelayµmodelµorµtheµCMOSµlinearµdelayµmodel.µItµisµthe¡XÝdefaultµforµCMOSµtechnology.¡þQ²S¡XQ²piecewise_cmos.µThisµisµtheµCMOSµpiecewiseµlinearµmodel.¡þÄ²S¡XÄ²cmos2.µThisµdelayµmodelµisµsimilarµtoµtheµpiecewiseµlinear¡Xmodel.µItµisµforµCMOSµtechnologyµonly.¡þ~²S¡X~²table_lookup.µThisµisµtheµCMOSµnonlinearµdelayµmodel.¡þQ²Determining´µWhereµThisµLibraryµIsµUsed¡þñ²Determine´µwhetherµthisµlibraryµwillµbeµusedµforµsynthesisµorµfor¡þ	9simulation.µThisµchapterµdescribesµaµsynthesisµlibrary.µSeeµthe¡þ	‚²&LibraryµCompilerµReferenceµManualµVolumeµ2µ²forµinformationµabout¡þ	Êcreatingµaµsimulationµlibrary.’!D“I501ileaf_page_string1:2-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¾2³7¡þÏ²Describing´µtheµLibrary¡þm²Complete´µtheµfollowingµtasksµtoµdescribeµtheµlibraryµinµLibrary¡þµCompilerµsyntax:¡þ9²S¡X9²Namingµtheµlibrary¡þ¬²S¡X¬²Definingµtheµlibraryµgroup¡þ²S¡X²Specifyingµlibraryµcharacteristicsµsuchµasµtheµtechnologyµand¡Xfdelayµmodel¡þ7²Naming´µtheµLibrary¡þÕ²Library´µfilenamesµmustµconformµtoµUNIXµconventions.µSynopsys¡þrecommendsµtheseµsuffixesµforµlibraryµfilenames:µµµµ¡þ¢.lib¡XëTechnologyµlibraryµsourceµfiles¡þQ.slib¡X™Symbolµlibraryµsourceµfiles¡þ.db¡XHCompiledµtechnologyµlibrariesµinµSynopsysµdatabaseµformat¡þ¯.sdb¡X÷CompiledµsymbolµlibrariesµinµSynopsysµdatabaseµformat¡þ	^.vhd¡X	¦GeneratedµVHDLµsimulationµlibraries¡þ
*Thisµchapterµusesµexamplesµfromµtwoµtechnologyµlibraries:¡þ
Ìtutorial.lib¡þmy_lib.lib’!BD“I501ileaf_page_string1:2-8¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³8¡þÏ²Defining´µtheµLibraryµGroup¡þu²The´µlibraryµgroupµstatementµisµrequiredµandµmustµbeµtheµfirst¡þ¾executableµlineµinµyourµlibraryµsourceµfile.µSynopsysµrecommends¡þthatµyouµuseµtheµsameµnameµforµtheµlibraryµthatµtheµvendorµuses.µ¡þñ²Example¡XA²Theµlibraryµgroupµstatementµinµtutorial.libµnamesµtheµlibrary¡X‡example:¡þ²library(example)´µ{¡þI}¡þè²Note:²¡X0²A´µlibraryµnameµdoesµnotµneedµtoµbeµtheµsameµasµtheµlibrary¡Xysourceµfile.¡þi²Specifying´µLibraryµGroupµAttributes¡þ²Some´µsimpleµattributesµatµtheµlibraryµlevelµdefineµfeaturesµofµthe¡þXlibrary,µsuchµasµunitsµforµtime,µvoltage,µcurrent,µcapacitiveµload,¡þ¡piecewiseµlinearµdelay,µandµdocumentation.µ¡þ	KAµcomplexµattributeµforµtheµlibraryµgroupµdefinesµtheµtechnology,¡þ	”delayµmodel,µbusµnamingµstyle,µorµroutingµlayer.¡þ
~²LibraryµTechnologyµµ¡X
Î²Theµtechnologyµattributeµinµtheµlibraryµgroupµdefinesµthe¡Xtechnologyµusedµforµtheµlibrary.’BrD“I501ileaf_page_string1:2-9¥	öäÃËÁâÊË¡Ä,Â,¬¡Ä,¬	c¬¡Ä	c¬	cÂ¡Ä	cÂ,ÂÆÃÁÊËÃ¡Ä,¬Ê¬ÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¾2³9¡XÉ²If´µyouµdefineµtheµtechnologyµ(ratherµthanµacceptµtheµdefault),µthis¡Xmustµbeµtheµfirstµattributeµyouµdefine.¡þÎ²DelayµModelµ¡X²Theµdelayµmodelµattributeµdefinesµtheµdelayµmodelµthatµisµusedµin¡Xatheµlibrary.µIfµyouµuseµaµdelayµmodelµthatµisµnotµaµdefault,µitµmust¡X§beµtheµfirstµattributeµyouµdefineµafterµtheµtechnologyµattribute.¡þe²Example¡X±²Inµtutorial.lib,µtheµlibraryµgroupµspecifiesµCMOSµtechnologyµand¡Xøtheµlinearµdelayµmodel:¡þk²library(example)´µ{¡þ¦µµµtechnology(cmos);¡þáµµµdelay_modelµ:µgeneric_cmos;¡þ}¡þ®²In´µmy_lib.lib,µtheµlibraryµgroupµspecifiesµCMOSµtechnologyµandµthe¡þönonlinearµdelayµmodel:¡þk²library(NLDM)´µ{¡þ¦µµµtechnology(cmos);¡þáµµµdelay_modelµ:µtable_lookup;¡þ}¡,	²Task´µ3µµDescribingµtheµEnvironment¡þ	©²Variations´µinµoperatingµtemperature,µsupplyµvoltage,µand¡þ	òmanufacturingµprocessµcauseµperformanceµvariationsµinµelectronic¡þ
:networks.µUseµtheµLibraryµCompilerµenvironmentµattributesµtoµmodel¡þ
ƒtheseµvariations.µTheµDesignµCompilerµprogramµusesµthese¡þ
Ìenvironmentµmodelsµtoµmodifyµtheµsynthesisµandµoptimization¡þenvironment.µµµ’røD“I501ileaf_page_string1:2-10¥	öäÃËÁâÊË¡Ä,l,V¡Ä,V	cV¡Ä	cV	cl¡Ä	cl,lÆÃÁÊËÃ¡ÄþVÊVÆÃ¥	öäÃÁÊË¡Ä,{,e¡Ä,e	ce¡Ä	ce	c{¡Ä	c{,{ÆÃÁÊËÃ¡ÄþeÊeÆÃ¥	öäÃÁÊË¡Ä, ,Š¡Ä,Š	cŠ¡Ä	cŠ	c ¡Ä	c , ÆÃÁÊËÃ¡ÄþŠÊŠÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³10¡þÉ²Using´µdifferentµoperatingµconditionsµandµk³factorsµ(describedµinµthis¡þtask),µyouµcanµevaluateµtheµtimingµofµaµcircuitµunderµdifferent¡þZenvironmentalµconditions.µNormally,µdelayµvaluesµspecifiedµforµthe¡þ£cellsµinµaµtechnologyµlibraryµareµspecifiedµforµsomeµsetµofµnominal¡þìoperatingµconditions.¡þ¦²References¡þ,²Forµmoreµinformationµaboutµdescribingµtheµenvironment,µsee¡þ ²S¡X ²Chapterµ7,µBuildingµaµTechnologyµLibrary"¡þ²S¡X²Chapterµ17,µBuildingµEnvironments"¡þµ²Procedure¡þ;²TheseµareµtheµstepsµinµdescribingµtheµenvironmentµinµLibrary¡þ„Compilerµsyntax:¡þø1.¡XøModelingµdelayµcalculationµscalingµfactors.¡þ_2.¡X_Definingµdefaultµattributes.¡þÆ3.¡XÆDefiningµoperatingµconditions.¡þ-4.¡X-Modelingµtheµwireµload.¡þÚ²Modeling´µDelayµCalculationµScalingµFactorsµµ¡þ	`²The´µDesignµCompilerµprogramµcalculatesµdelayµestimatesµusingµthe¡þ	©scalingµfactorsµsetµinµtheµtechnologyµlibraryµenvironment.µThese¡þ	òk³factorsµ(attributesµthatµbeginµwith²µ²k_)µareµmultipliersµthatµscaleµcell¡þ
:delaysµasµaµfunctionµofµprocess,µtemperature,µandµvoltage.µEvery¡þ
ƒpartµofµaµcellµdescriptionµthatµisµpartµofµtheµdelayµequationµis¡þ
Ìindividuallyµscaledµwithµitsµownµk_factors.µTheµk_factorsµareµused¡þwithµoperatingµconditionsµgroups.’øD“I501ileaf_page_string1:2-11¥	öäÃËÁâÊË¡Ä,	‚,	l¡Ä,	l	c	l¡Ä	c	l	c	‚¡Ä	c	‚,	‚ÆÃÁÊËÃ¡Äþ	lÊ	lÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¤2³11¡þÉ²The´µscalingµfactorsµyouµdefineµforµyourµlibraryµdependµonµtheµtiming¡þdelayµmodelµyouµuse.µSeeµtheµ²&LibraryµCompilerµReferenceµManual¡þZVolumeµ1²µforµinformationµaboutµtheµdelayµanalysisµequationsµthatµthe¡þ£DesignµCompilerµprogramµuses.¡þ%Theµk_factorsµconsistµofµtheµfollowing:¡þ”²S¡X”²Calculatingµdelayµfactors¡þø²S¡Xø²Intrinsicµdelayµfactors¡þ[²S¡X[²Slope³sensitivityµfactorsµ(standardµdelayµmodel)¡þ¿²S¡X¿²Driveµcapabilityµfactorsµ(standardµdelayµmodel)¡þ"²S¡X"²Pinµandµwireµcapacitanceµfactors¡þ…²S¡X…²Wire³resistanceµfactors¡þé²S¡Xé²Pin³resistanceµfactorsµ(piecewiseµlinearµdelayµmodel)¡þL²S¡XL²Interceptµdelayµfactorsµ(piecewiseµlinearµdelayµmodel)¡þ°²S¡X°²Timingµconstraintµfactors¡þM²Example¡þ“²library(example)´µ{¡þÌµµµk_process_drive_fallµµµµµµµµµ:µµ1.0;¡þµµµk_process_drive_riseµµµµµµµµµ:µµ1.0;¡þ:}¡þÅ²See´µChapterµ17,µBuildingµEnvironments"µforµdescriptionµofµdelay¡þ	scalingµattributes.¡þ	»²Defining´µDefaultµAttributes¡þ
:²All´µenvironmentµattributesµhaveµbuilt³inµdefaultµsettingsµforµtypical¡þ
ƒcases.µIfµyouµrunµitµwithoutµvariables,µDesignµCompilerµusesµthese¡þ
Ìtypicalµcasesµduringµoptimization.µAsµanµalternative,µyouµcanµcreate¡þyourµownµdefaultµsettings.µµ’`D“I501ileaf_page_string1:2-12¥	öäÃËÁâÊË¡Ä,,ê¡Ä,ê	cê¡Ä	cê	c¡Ä	c,ÆÃÁÊËÃ¡ÄþêÊêÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³12¡þÉ²You´µcanµsetµglobalµdefaultµattributesµatµtheµlibraryµlevelµforµpins,¡þtiming,µwireµload,µchipµutilization,µroutability,µoperatingµconditions¡þZgroup,µandµcellµleakageµpower.µReferµtoµChapterµ17,µBuilding¡þ£Environments,"µforµaµdescriptionµofµlibrary³levelµdefaultµattributes.¡þr²Example¡þ¼²library(example)´µ{¡þøµµµdefault_intrinsic_fallµµµµµµµ:µµ1.0;¡þ,µµµdefault_intrinsic_riseµµµµµµµ:µµ1.0;¡þh}¡þ:²Defining´µOperatingµConditions¡þÐ²A´µsetµofµoperatingµconditionsµdefinitionsµspecifiesµtheµtemperature,¡þvoltage,µprocess,µandµRCµtreeµmodelµtoµuseµwhenµanalyzingµthe¡þatimingµandµotherµcharacteristicsµofµaµdesign.µOperatingµcondition¡þªsetsµareµusefulµforµtestingµyourµdesignµinµpredefined,µsimulated¡þóenvironments.µAµlibraryµcanµcontainµasµmanyµoperatingµconditions¡þ;asµyouµwant.¡þÕYouµdefineµoperatingµconditionsµinµanµoperating_conditionsµgroupµin¡þtheµlibraryµgroup.µ¡þí²Example¡þ	7²library´µ(example)µ{¡þ	sµµoperating_conditionsµ(WCCOM)µ{¡þ	¯µµµµprocessµ:µ1.5;¡þ	êµµµµtemperatureµ:µ70;¡þ
&µµµµvoltageµ:µ4.75;¡þ
bµµµµtree_typeµ:µworst_case_tree;¡þ
žµµ}¡þ
Ú}’`µD“I501ileaf_page_string1:2-13¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³13¡þÉ²name´µ¡X(WCCOM1µinµexample)µidentifiesµtheµsetµofµoperatingµconditions.¡þxprocess¡XÁTheµscalingµfactorµaccountsµforµvariationsµinµtheµoutcomeµofµthe¡X
actualµsemiconductorµmanufacturingµsteps,µtypicallyµ1.0µfor¡XRnormalµoperatingµconditions.¡þ¹temperature¡XTheµambientµtemperatureµinµwhichµtheµdesignµisµtoµoperate,µoften¡XJ25µdegreesµCelsiusµ(roomµtemperature).¡þ±voltage¡XúTheµoperatingµvoltageµofµtheµdesign,µtypicallyµ5µvoltsµforµaµCMOS¡XBlibrary.µ¡þ©tree_type¡XñTheµdefinitionµforµtheµenvironmentµinterconnectµmodel.µDesign¡X:Compilerµusesµtheµinterconnectµmodelµtoµselectµtheµformulaµfor¡Xƒcalculatingµinterconnectµdelays.µ¡þAtµoptimization,µDesignµCompilerµselectsµtheµoperatingµconditionsµto¡þPuseµaccordingµtoµthisµorderµofµprecedence:µ¡þÕ1.¡XÕTheµoperating_conditionsµgroupµspecifiedµbyµtheµdc_shell¡Xset_operating_conditionsµcommand.¡þ2.¡XTheµoperating_conditionsµgroupµdefinedµbyµtheµLibraryµCompiler¡XÕdefault_operating_conditionsµattribute.¡þ	I3.¡X	INominalµoperatingµconditionsµdefinedµinµtheµlibraryµgroup.’µ*D“I501ileaf_page_string1:2-14¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³14¡þÏ²Modeling´µtheµWireµLoad¡þˆ²To´µprovideµtheµinformationµthatµtheµDesignµCompilerµprogramµneeds¡þÐtoµestimateµinterconnectµwiringµdelays,µuseµtheµwire_loadµgroupµand¡þwire_load_selectionµgroup.µTheseµgroupsµdefineµtheµestimatedµwire¡þblengthµasµaµfunctionµofµfanoutµandµtheµscalingµfactorsµwhen¡þªdeterminingµwireµresistance,µcapacitance,µandµareaµforµaµgiven¡þólengthµofµwire.¡þý²Example¡þM²library´µ(example)µ{¡þŒµµµwire_load("90x90"){¡þÌµµµµµµresistanceµ:µ0;¡þµµµµµµcapacitanceµ:µ1;¡þKµµµµµµareaµ:µ0;¡þŠµµµµµµslopeµ:µ1.4;¡þÊµµµµµµfanout_length(1,µ1.9);¡þ	µµµ}¡þI}¡þÊ²name¡X("90x90"´µinµexample)µidentifiesµtheµwire_loadµgroup.µ¡þ‚resistance¡XÊTheµwireµresistanceµperµunitµlengthµofµinterconnectµwire.µThisµis¡X	usuallyµmeasuredµinµkilohmsµperµunitµlengthµofµmetal.¡þ	‚capacitance¡X	ËTheµcapacitanceµperµunitµlengthµofµinterconnectµwire.µThisµis¡X
usuallyµmeasuredµinµpFµperµunitµlengthµofµmetal.¡þ
ƒarea¡X
ÌTheµareaµperµunitµlengthµofµinterconnectµwire.µThisµisµusually¡Xmeasuredµasµareaµperµunitµlengthµofµmetal.’*–D“I501ileaf_page_string1:2-15¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³15¡þÉ²slope¡XThis´µattributeµcharacterizesµlinearµfanoutµlengthµbehaviorµbeyond¡XZtheµscopeµofµtheµlongestµlengthµdescribedµbyµtheµfanout_length¡X£attribute.µThisµisµinµunitsµofµareaµperµfanout.¡þ
fanout_length¡XRThisµattributeµdefinesµvaluesµthatµrepresentµfanoutµandµlength.¡X›Theµfirstµvalueµisµanµintegerµspecifyingµtheµtotalµnumberµofµpins¡Xäminusµoneµonµtheµnetµbeingµdrivenµbyµtheµgivenµoutput.µThe¡X,secondµvalueµisµtheµestimatedµamountµofµmetalµthatµis¡Xustatisticallyµfoundµonµaµnetworkµwithµtheµgivenµnumberµofµpins.¡þúYouµcanµdefineµanyµnumberµofµwire_loadµgroupsµinµaµtechnology¡þBlibrary,µbutµallµwire_loadµandµoperating_conditionsµgroupsµmustµhave¡þ‹uniqueµnames.¡þ-Ifµyouµdefineµaµwire_load_selectionµgroupµinµtheµlibraryµgroup,¡þvDesignµCompilerµautomaticallyµselectsµaµwire_loadµgroupµforµwire¡þ¿loadµestimationµbasedµonµtheµtotalµcellµareaµofµtheµdesign.¡þaSeeµChapterµ17,µBuildingµEnvironments,"µforµmoreµinformation¡þªaboutµdefiningµwireµloadsµandµselectingµwire_loadµµgroups¡þóautomatically.’–;D“I501ileaf_page_string1:2-16¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³16¡,Õ²Task´µ4µµDefiningµtheµCellsµµ¡þ”²Cell´µdescriptionsµareµmajorµelementsµinµaµtechnologyµlibrary.µThey¡þÝprovideµinformationµonµtheµarea,µfunction,µtiming,µandµpowerµofµeach¡þ%componentµinµanµASICµtechnology.µSpecifically,µcellµinformation¡þndescribes¡þó²S¡Xó²Structureµ-µCell,µbus,µandµpinµstructureµthatµdescribeµeachµcell's¡X9connectionµtoµtheµoutsideµworld.µ¡þ­²S¡X­²Functionµ-µTheµlogicalµfunctionµofµeveryµoutputµpinµofµeachµcell¡XóthatµDesignµCompilerµusesµtoµmapµtheµlogicµofµaµdesignµtoµthe¡X:actualµASICµtechnology.µ¡þ®²S¡X®²Timingµ-µTimingµanalysisµandµdesignµoptimizationµinformation¡Xôsuchµasµtheµparametersµforµpin³to³pinµtimingµrelationships,µdelay¡X;calculations,µandµtimingµconstraintsµforµsequentialµcells.µ¡þ®²S¡X®²Powerµ-µModelingµforµstate³dependentµandµpath³dependent¡Xõpowerµ(forµinformation,µseeµChapterµ13,µ"ModelingµPower).µ¡þh²S¡Xh²Otherµsynthesisµparametersµ-µTheseµparametersµdescribeµarea¡X¯andµdesignµrules.µForµexample,µeachµcellµcanµhaveµaµdefinitionµof¡Xötheµmaximumµfanoutµofµanµoutputµpin.’;D“I501ileaf_page_string1:2-17¥	öäÃËÁâÊË¡Ä,>,(¡Ä,(	c(¡Ä	c(	c>¡Ä	c>,>ÆÃÁÊËÃ¡Äþ(Ê(ÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¤2³17¡þÉ²Note:²¡X²Technology´µlibrariesµareµprocessedµwithoutµregardµtoµexplicitly¡XZspecifiedµunitsµofµmeasureµforµdelay,µcapacitance,µresistance,¡X£voltage,µtemperature,µorµarea.µChooseµconsistentµunitsµof¡Xìmeasureµ(nanoseconds,µpicofarads,µkilohms,µvolts,µandµdegrees¡X4Celsius)µthroughoutµtheµlibrary.¡X}¡XÆTheµunitsµusedµtoµdescribeµareaµdependµonµtheµASIC¡Xtechnology.µForµgateµarrays,µtheµvalueµofµareaµforµaµgivenµcellµis¡XWprobablyµtheµnumberµofµgatesµitµusesµ(physicalµgatesµorµgate¡X equivalents).µStandardµcellsµandµcell³basedµcustomµdesigns¡Xègenerallyµuseµaµmeasureµofµsurfaceµareaµsuchµasµsquare¡X1micrometers.µPadsµcanµbeµspecifiedµasµhavingµzeroµarea¡Xybecauseµtheyµdoµnotµoccupyµareaµinµtheµlogicµcoreµofµtheµchip.µ¡þw²References¡þ&²Referµtoµtheseµsourcesµforµmoreµinformationµaboutµdefiningµcells:¡þµ²S¡Xµ²Chapterµ5,µUsingµLibraryµCompilerµSyntax"¡þ0²S¡X0²Chapterµ8,µDefiningµCoreµCells"¡þ¬²S¡X¬²²&LibraryµCompilerµReferenceµManualµVolumeµ1¡þ	'²²S¡X	'²Chapterµ9,µDefiningµSequentialµCells"¡þ	¢²S¡X	¢²Chapterµ11,µDefiningµInput/OutputµPads"¡þ
²S¡X
²Chapterµ13,µModelingµPower"¡þ
™²S¡X
™²Chapterµ14,µTimingµArcs"¡þ²S¡X²Chapterµ15,µInterfaceµTimingµofµComplexµSequentialµBlocks"’1D“I501ileaf_page_string1:2-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,H,2¡Ä,2	c2¡Ä	c2	cH¡Ä	cH,HÆÃÁÊËÃ¡Äþ2Ê2ÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³18¡þÏ²Procedure¡þn²You´µcanµdivideµcellsµintoµtwoµtypes:µcoreµcellsµandµinput/output¡þ¶pads.µTheseµareµtheµactivitiesµinµdefiningµcells:¡þ;²S¡X;²Definingµcoreµcells¡þ¯²S¡X¯²Definingµinput/outputµpads¡þ‚²Defining´µCoreµCellsµ¡þ!²For´µtheµDesignµCompilerµprogramµtoµmapµtechnologyµandµoptimize¡þjdesignµdescriptions,µtheµtechnologyµlibraryµshouldµcontainµa¡þ²minimumµsetµofµcells.µDesignµCompilerµwritesµoutµaµwarning¡þûmessageµifµtheµdesignµcontainsµaµcellµthatµisµnotµincludedµinµthe¡þDlibraryµorµlibrariesµassociatedµwithµtheµdesign.µµ¡þæTheµminimumµcellµsetµforµaµCMOSµtechnologyµlibraryµis¡þk²S¡Xk²Oneµofµtheµfollowing:¡XÞ³¡”Þ2³inputµANDµgateµandµ2³inputµORµgate¡XR³¡”R2³inputµNORµgate¡þÆ²S¡XÆ²Inverter¡þ	9²S¡X	9²Three³stateµbuffer¡þ	­²S¡X	­²Dµflip³flopµwithµpreset,µclear,µandµcomplementaryµoutputµvalues.¡þ
 ²S¡X
 ²Dµlatchµwithµpreset,µclear,µandµcomplementaryµoutputµvalues.’1hD“I501ileaf_page_string1:2-19¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³19¡þÉ²Example¡X²The´µexampleµlibrariesµcontainµtheseµcells:¡þ ²S¡X ²2³inputµANDµgate¡þ²S¡X²2³inputµORµgate¡þ²S¡X²Inverter¡þ²S¡X²Three³stateµbuffer¡þ}²S¡X}²Dµflip³flop¡þThisµchapterµusesµportionsµofµtutorial.libµandµmy_lib.libµasµexamples¡þ^forµtheµvariousµstepsµinµtheµtasks.µReferµtoµtheµendµofµTaskµ5µforµthe¡þ¦completeµtextµofµtheµexampleµlibraries.¡þQTheseµareµtheµtasksµinµdefiningµcoreµcells:¡þÚ1.¡XÚReferringµtoµtheµdataµsheet.¡þQ2.¡XQCreatingµtheµcellµandµspecifyµaµname.¡þÉ3.¡XÉListingµpins,µspecifyingµtheµdirectionµandµcapacitiveµloadµfor¡Xeach.¡þ‡4.¡X‡Determiningµpinµfunctionsµ(combinationalµorµsequentialµlogic).¡þþ5.¡XþDescribingµtimingµinµtheµcell.¡þ	Ü²Referring´µtoµtheµDataµSheet¡þ
ƒ²While´µeachµcompanyµhasµitsµownµwayµofµdescribingµcomponentsµin¡þ
Ìdataµbooks,µmostµdataµsheetsµcontainµinformationµaboutµarea,¡þcapacitance,µintrinsicµdelays,µandµextrinsicµdelaysµbasedµonµloading.’hWD“I501ileaf_page_string1:2-20¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³20¡þÉ²The´µunitµofµmeasureµforµcapacitanceµdoesµnotµmatterµtoµDesign¡þCompiler,µbutµyouµshouldµmakeµsureµthatµtheµunitsµyouµselectµare¡þZconsistentµinµtheµlibraryµandµwithµtheµtimingµequationµfactorsµusedµto¡þ£describeµtheµlibrary.µTheµunitsµusedµtoµmeasureµcapacitanceµare¡þìusuallyµstandardµloadµunitsµorµpicofarads.¡þŽTheµintrinsicµriseµandµintrinsicµfallµofµaµcomponentµareµtheµriseµand¡þ×fallµdelaysµthroughµaµmacrocellµregardlessµofµdelaysµcausedµby¡þ layout,µloading,µandµenvironment.¡þÂRiseµresistanceµandµfallµresistanceµareµfactorsµthatµcalculateµthe¡þextrinsicµdelayµbasedµonµloadingµwhenµtheyµareµmultipliedµbyµthe¡þTcapacitiveµloadµonµtheµoutputµpin.µTheµunitsµforµriseµandµfall¡þœresistanceµareµaµvalueµofµtimeµperµaµunitµofµload.¡þ?Youµwriteµthisµinformationµfromµtheµdataµsheetµinµtheµcell¡þ‡descriptionsµinµLibraryµCompilerµsyntaxµasµshownµinµtheµfollowing¡þÐsections.¡þsFigure 2³1µshowsµaµsampleµdataµsheetµforµtheµ2³inputµANDµgate.¡þ»Theµinformationµonµthisµdataµsheetµcanµbeµdescribedµinµaµlibraryµthat¡þusesµaµgeneric_cmosµdelayµmodel.µIfµyouµdescribedµthisµcellµinµa¡þMlibraryµthatµusesµtheµnonlinearµdelayµmodel,µyouµwouldµuseµthe¡þ•valuesµthatµwereµcharacterizedµbyµaµSPICEµtool.µ’W¥D“I501ileaf_page_string1:2-21¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³21¡,É²&Figure 2³1³Sample´µDataµSheetµforµ2³inputµANDµGate¡9	É²¥	öä²¡NüCELL¤ÿþ NAME¡vþFUNCTION¡ÄúCELL¤ÿþ COUNTÁÊËÃ¡Ä`Í`ÎÆÃÃ¡Ä’Ã’ÊÆÃÃ¡Ä<<ÉÆÃÃÊË¡ÄÂëÂ<¡ÄÂ<0<¡Ä0<0ë¡Ä0ëÂëÆÃÃ¡Äûcû@¡Äû@—@¡Ä—@—c¡Ä—cûcÆÃÊËÃ¡Äûy”{ÆÃÃ¡ÄüÖ˜ÖÆÃÃ¡Äü©—©ÆÃÃ¡Äû•ÆÃÃ¡ÄÚ{ÚcÆÃÃ¡Ä¹@¹cÆÃ¡£kINPUT¡ÞkOUTPUTÃ¡Äÿ3›3ÆÃ¡ŸZ¡!þL¡$)L¡!WH¡^ŸA¡`ÍL¡\ûL¡X'H¡XYH¡FœB¡EÊL¡FýH¡F'L¡BUH¡!ËL¡,TRUTH ¤ÿÿT¤ÿýABLE¡Ã;GA¤ÿýTE¡t=I/O¡øz¤ÿõ2¡ø¾¤ÿõ2¡„~¤ÿõ0¡„¼¤ÿõ0¡g‹2-INPUT¤ÿÿ ¤ÿþAND¡ƒaAN2¡€AN2P¡Q2LOGIC SYMBOLÃ¡Í›ÉéáÜGšRÆÃÊË¡Ä™Ê-Ê¡Ä-Ê-S¡Ä-S™SÆÃÊËÃ¡Ä”ö-øÆÃÃ¡Ä”(,(ÆÃÃ¡ÄÑjÆÃ¡{ýA¡y.B¡oZ¡ëþAN2x¡?AC CHARACTERISTICSÃÊË¡Äh`hU¡ÄhUÈU¡ÄÈUÈ`¡ÄÈ`h`ÆÃÊËÃ¡Äg¾É¾ÆÃÃ¡Ä°U°bÆÃÃ¡Ä°†È„ÆÃÃ¡ÄY-ÆÃÃ¡ÄnõÅõÆÃÃ¡Äf-Ê-ÆÃÃ¡Ä³U³_ÆÃÃ¡Ä?‡?^ÆÃÃ¡Ä'…']ÆÃ¡ùyTpLH¡yTpHL¡»®T¤ÿþup¡O¬Kup¡Ù­Tdn¡Z­Kdn¡»ä0.39¡¿ 0.51¡ÌPnS¡	äA,B->Z¡4è0.122¡60.053¡.QnS/LU¡Òç0.53¡Ð0.58¡Kå0.038¡L0.023¡GPnS/LU¡ÜPnS¡‚›CELL¡šP¤ÿýA¤ÿýTH¡æAN2¡…AN2P¡×TUNIT¡A,B->ZÃÊË¡Äþ	þ|¡Äþ|¨|¡Ä¨|¨	¡Ä¨	þ	ÆÃÊËÃ¡Äý®¨®ÆÃÃ¡Äýå¨åÆÃÃ¡ÄT{T	ÆÃÃ¡ÄùR¬ÆÃ¡ªCELL¡ŸPIN¡z×AN2¡t	AN2P¡Õ£Z¡ÕÙ25¡Ù	57ÃÊË¡Ä3	3w¡Ä3wÏw¡ÄÏwÏ	¡ÄÏ	3	ÆÃÊËÃ¡Ä3©Î©ÆÃÃ¡Ä3âÎâÆÃÃ¡Ä‚v‚	ÆÃÃ¡Ä/z€§ÆÃ¡>¦CELL¡E›PIN¡­ÓAN2¡§	AN2P¡žA,B¡Õ1.0¡	1.0¡^INPUT¤ÿÿ LOAD¡€f(LU)¡iOUTPUT¤ÿÿ DRIVE¡Xb(LU)¡^#²'Number´µofµgates¶andµI/O¡^]slots¡^¯used´µbyµcell¡v’Loadµcapacitanceµof¡AÌinput.µItµisµalsoµaµfactorµin¡–delayµcalculation.¡™óLoadµdriveµcapabilityµof¡c-input¡‡+Shows´îµthe¡‡efunctionality¡‘lName´µof¡‘¾standard¡‘drive²r¡GÑ²'Nameµof¡G#high¡G]driver¡Î–FunctionµofµmacrocellÃÁÊË¡Ää	«äÅ¡ÄäÅÃ¡ÄÃ	©¡Ä	©ä	«ÆÃÊËÃ¡Ä
ÎäÏÆÃÃ¡Ä’QäQÆÃÃ¡ÄäÆÃÃ¡Ä’†ä†ÆÃ¡b	}max_fanou¡b	·t¡/	pcapacitanc¡/	ªe¡øÉDelay¡øPath¡ûµrelated_pi¡ûïn¡Î­intrinsic_ri¡Îçse¡«intrinsic_f¡«Pall¡3årise_resistan¡3ce¡u>fall_resistanc¡uxeÁâÊËÃ¡ÄƒBÛÄÆÃÃÁâÊË¡Äa-a-ÁâÊË¡Äa-b¡ÄbƒB¡ÄƒBU4¡ÄU4a-âãÇÆÃÁÊËÃ¡ÄƒBƒBÆÃÁÃ¡ÄƒBÛÄÆÃÃÁÊË¡Äa-a-Á¡Äa-b¡ÄbƒB¡ÄƒBU4¡ÄU4a-ÇÆÃÁÊËÃ¡ÄƒBƒBÆÃÁâÊËÃ¡ÄjŽõÕÆÃÃÁâÊË¡ÄH¢H¢ÁâÊË¡ÄH¢<š¡Ä<šjŽ¡ÄjŽH°¡ÄH°H¢âÇÆÃÁÊËÃ¡ÄjŽjŽÆÃÁÃ¡ÄjŽõÕÆÃÃÁÊË¡ÄH¢H¢Á¡ÄH¢<š¡Ä<šjŽ¡ÄjŽH°¡ÄH°H¢ÇÆÃÁÊËÃ¡ÄjŽjŽÆÃÁâÊËÃ¡Ä^u3ÆÃÃÁâÊË¡ÄBZBZÁâÊË¡ÄBZFL¡ÄFL^u¡Ä^u4]¡Ä4]BZâÇÆÃÁÊËÃ¡Ä^u^uÆÃÁÃ¡Ä^u3ÆÃÃÁÊË¡ÄBZBZÁ¡ÄBZFL¡ÄFL^u¡Ä^u4]¡Ä4]BZÇÆÃÁÊËÃ¡Ä^u^uÆÃÁÃ¡Ä3™¥ÆÃÁâÊËÃ¡Ä8~ÆÃÃÁâÊË¡Ä__ÁâÊË¡Ä_f%¡Äf%8¡Ä8f¡Äf_âÇÆÃÁÊËÃ¡Ä88ÆÃÁÃ¡Ä8~ÆÃÃÁÊË¡Ä__Á¡Ä_f%¡Äf%8¡Ä8f¡Äf_ÇÆÃÁÊËÃ¡Ä88ÆÃÁâÊËÃ¡Ä¾Öl­ÆÃÃÁâÊË¡Ä›Å›ÅÁâÊË¡Ä›Åš·¡Äš·¾Ö¡Ä¾ÖÍ¡ÄÍ›ÅâÇÆÃÁÊËÃ¡Ä¾Ö¾ÖÆÃÁÃ¡Ä¾Öl­ÆÃÃÁÊË¡Ä›Å›ÅÁ¡Ä›Åš·¡Äš·¾Ö¡Ä¾ÖÍ¡ÄÍ›ÅÇÆÃÁÊËÃ¡Ä¾Ö¾ÖÆÃÁÃ¡Äl­uÆÃÁâÊËÃ¡ÄYr\àÆÃÃÁâÊË¡ÄYKYKÁâÊË¡ÄYKfD¡ÄfDYr¡ÄYrMD¡ÄMDYKâÇÆÃÁÊËÃ¡ÄYrYrÆÃÁÃ¡ÄYr\àÆÃÃÁÊË¡ÄYKYKÁ¡ÄYKfD¡ÄfDYr¡ÄYrMD¡ÄMDYKÇÆÃÁÊËÃ¡ÄYrYrÆÃÁâÊËÃ¡Ä¨ÆÃÃÁâÊË¡ÄÄ:Ä:ÁâÊË¡ÄÄ:ÀH¡ÄÀH¨¡Ä¨Ñ6¡ÄÑ6Ä:âÇÆÃÁÊËÃ¡Ä¨¨ÆÃÁÃ¡Ä #úžÆÃÃÁÊË¡Ä¸A¸AÁ¡Ä¸A³N¡Ä³N #¡Ä #Ç?¡ÄÇ?¸AÇÆÃÁÊËÃ¡Ä # #ÆÃÁâÊËÃ¡ÄÕÔËÆÃÃÁâÊË¡ÄÕhÕhÁâÊË¡ÄÕháa¡ÄáaÕ¡ÄÕÈa¡ÄÈaÕhâÇÆÃÁÊËÃ¡ÄÕÕÆÃÁÃ¡ÄÕÔËÆÃÃÁÊË¡ÄÕhÕhÁ¡ÄÕháa¡ÄáaÕ¡ÄÕÈa¡ÄÈaÕhÇÆÃÁÊËÃ¡ÄÕÕÆÃÁâÊËÃ¡Ä€…~÷ÆÃÃÁâÊË¡Ä€^€^ÁâÊË¡Ä€^W¡ÄW€…¡Ä€…tW¡ÄtW€^âÇÆÃÁÊËÃ¡Ä€…€…ÆÃÁÃ¡Ä€…~÷ÆÃÃÁÊË¡Ä€^€^Á¡Ä€^W¡ÄW€…¡Ä€…tW¡ÄtW€^ÇÆÃÁÊËÃ¡Ä€…€…ÆÃÁâÊËÃ¡ÄØ’Ø4ÆÃÃÁâÊË¡ÄØkØkÁâÊË¡ÄØkåc¡ÄåcØ’¡ÄØ’Ìc¡ÄÌcØkâÇÆÃÁÊËÃ¡ÄØ’Ø’ÆÃÁÃ¡ÄØ’Ø4ÆÃÃÁÊË¡ÄØkØkÁ¡ÄØkåc¡ÄåcØ’¡ÄØ’Ìc¡ÄÌcØkÇÆÃÁÊËÃ¡ÄØ’Ø’ÆÃÁâÊËÃ¡Ä¤ƒäAÆÃÃÁâÊË¡ÄÀhÀhÁâÊË¡ÄÀhÎk¡ÄÎk¤ƒ¡Ä¤ƒ¼Z¡Ä¼ZÀhâÇÆÃÁÊËÃ¡Ä¤ƒ¤ƒÆÃÁÃ¡Ä¤ƒäAÆÃÃÁÊË¡ÄÀhÀhÁ¡ÄÀhÎk¡ÄÎk¤ƒ¡Ä¤ƒ¼Z¡Ä¼ZÀhÇÆÃÁÊËÃ¡Ä¤ƒ¤ƒÆÃÁâÊËÃ¡ÄÅÕ\	CÆÃÃÁâÊË¡Ä©ñ©ñÁâÊË¡Ä©ñœí¡ÄœíÅÕ¡ÄÅÕ­þ¡Ä­þ©ñâÇÆÃÁÊËÃ¡ÄÅÕÅÕÆÃÁÃ¡Ä­ÙD	GÆÃÃÁÊË¡Ä‘õ‘õÁ¡Ä‘õ„ñ¡Ä„ñ­Ù¡Ä­Ù•	¡Ä•	‘õÇÆÃÁÊËÃ¡Ä­Ù­ÙÆÃÁâÊËÃ¡Äú8:öÆÃÃÁâÊË¡ÄÁâÊË¡Ä# ¡Ä# ú8¡Äú8¡ÄâÇÆÃÁÊËÃ¡Äú8ú8ÆÃÁÃ¡Äú8:öÆÃÃÁÊË¡ÄÁ¡Ä# ¡Ä# ú8¡Äú8¡ÄÇÆÃÁÊËÃ¡Äú8ú8ÆÃÁâÊËÃ¡Ä1J õÆÃÃÁâÊË¡ÄP3P3ÁâÊË¡ÄP3^8¡Ä^81J¡Ä1JO$¡ÄO$P3âÇÆÃÁÊËÃ¡Ä1J1JÆÃÁÃ¡ÄT~ÿÆÃÃÁÊË¡Ä.=.=Á¡Ä.=;B¡Ä;BT¡ÄT,/¡Ä,/.=ÇÆÃÁÊËÃ¡ÄTTÆÃÁâÊËÃ¡ÄÕ™	?ÆÃÃÁâÊË¡ÄåñåñÁâÊË¡Äåñ×í¡Ä×íÕ¡ÄÕèþ¡ÄèþåñâÇÆÃÁÊËÃ¡ÄÕÕÆÃÁÃ¡ÄÕ™	?ÆÃÃÁÊË¡ÄåñåñÁ¡Äåñ×í¡Ä×íÕ¡ÄÕèþ¡ÄèþåñÇÆÃÁÊËÃ¡ÄÕÕÆÃ²¡½	É’¥ÀD“I501ileaf_page_string1:2-22¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³22¡þÏ²Specifying´µtheµCellµName¡þn²A´µcellµgroupµdefinesµaµsingleµcellµinµtheµtechnologyµlibrary.µ¡þL²Example¡X›²Thisµstatementµforµtheµ2³inputµANDµcellµnamesµtheµcellµand¡Xâdefinesµitsµarea.¡þa²cell(AN2)´µ{µµµµµµµµµµµµµ/*µtwo³inputµANDµgateµ*/¡þžµµareaµ:µ2µ;¡þÛµµ...¡þ}¡þ•²area¡XÝAttribute´µthatµdefinesµtheµcellµarea.µTheµdefaultµareaµisµzero.µYou¡X&shouldµspecifyµanµareaµforµtheµcellµifµyouµwantµtoµuseµthisµlibrary¡Xnforµareaµoptimization.µTheµexceptionµisµpadµcells,µwhichµhave¡X·zeroµareaµbecauseµtheyµareµnotµusedµasµinternalµgates.¡þ}²Listing´µtheµPins¡þ²A´µcellµgroupµmustµcontainµdescriptionsµofµallµpinsµinµtheµcell.µYou¡þedefineµpinsµinµpinµgroupsµinµaµcellµgroup.µ¡þ	D²Example¡X	’²Inµtheµ2³inputµANDµcell,µtwoµpinµstatementsµlistµthreeµpins:µA,µB,¡X	ÙandµZ.’ÀD“I501ileaf_page_string1:2-23¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³23¡þÃ²´µµpin(A,B)µ{¡þýµµµµdirectionµ:µinputµ;¡þ7µµµµcapacitanceµ:µ1µ;¡þqµµ}¡þ«µµpin(Z)µ{¡þåµµµµdirectionµ:µoutputµ;¡þµµµµfunctionµ:µ"Aµ*µB"µ;¡þYµµµµtiming()µ{¡þ”µµµµµµintrinsic_riseµ:µ0.39µ;¡þÎµµµµµµintrinsic_fallµ:µ0.53µ;¡þµµµµµµrise_resistanceµ:µ0.122µ;¡þBµµµµµµfall_resistanceµ:µ0.038µ;¡þ|µµµµµµrelated_pinµ:µ"AµB"µ;¡þ¶µµµµ}¡þðµµ}¡þ*}¡þ·²The´µpinµgroupµexampleµdemonstratesµpinµdirection,µcapacitance,¡þfunction,µandµtimingµspecifications.¡þ°²SpecifyingµPinµDirectionµandµCapacitanceµµ¡þû²directionµ¡XCAttributeµthatµdefinesµAµandµBµasµinputµpinsµandµZµasµanµoutput¡XŒpin.¡þécapacitance¡X2Attributeµthatµdefinesµtheµinputµpinµloadµ(inputµcapacitance)¡Xzplacedµonµtheµnetwork.µLoadµunitsµshouldµbeµconsistentµwith¡XÃotherµcapacitanceµspecificationsµthroughoutµtheµlibrary.µTypical¡X	unitsµofµmeasureµforµcapacitanceµareµpicofaradsµand¡X	Tstandardizedµloads.¡þ	ð²SpecifyingµPinµFunctionµ¡þ
:²function¡X
ƒAttributeµthatµdefinesµtheµlogicµfunctionµofµanµoutputµpinµinµterms¡X
Ìofµtheµcell'sµinputµorµinoutµpins.µInµthisµstatement,µtheµfunctionµof¡XpinµZµisµdefinedµasµtheµlogicalµANDµofµpinsµAµandµB.’©D“I501ileaf_page_string1:2-24¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³24¡þÉ²Specifying´µPinµTimingµ¡þ²timing¡X`Anµoutputµpinµoftenµcontainsµtimingµgroups.µTheµnameµofµaµtiming¡X©groupµisµalwaysµnull.µTimingµgroupsµdescribeµtheµfollowing:¡X³¡”Aµpin³to³pinµdelay¡Xƒ³¡”ƒAµtimingµconstraintµsuchµasµsetupµandµhold¡”TheµtimingµgroupµforµpinµZµdescribesµtheµdelaysµbetweenµpinµZ¡”NandµpinsµAµandµB.¡XµSeeµDescribingµTiming"µlaterµinµthisµsectionµforµmoreµinformation¡Xûaboutµtiming.¡þÞ²Determining´µPinµFunctions¡þ}²The´µfunctionµofµaµcellµisµtheµlogicalµ(Boolean)µoperationµofµaµcell's¡þÅoutputµpinµinµtermsµofµitsµinputµpinsµandµstate.µAµcell'sµfunctionµcan¡þbeµeitherµcombinationalµorµsequential.µCombinationalµcellµlogic¡þWdependsµonlyµonµtheµinputµstates.µAnµexampleµofµaµcombinational¡þŸcellµisµaµNANDµgate.¡þBInµcontrast,µsequentialµcellµlogicµisµmadeµupµofµstorageµorµregister¡þ‹elements.µExamplesµofµstorageµelementsµareµflip³flopsµandµlatches.¡þ	-Inµcombinationalµcells,µeachµoutputµpinµhasµitsµfunctionµspecifiedµby¡þ	vaµfunctionµattributeµcontainingµaµBooleanµexpression.µµ’©D“I501ileaf_page_string1:2-25¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³25¡þÉ²Sequential´µcellµbehaviorµisµdefinedµwithµoneµofµtheseµgroups:µ¡þN²S¡XN²ff³
forµaµflip³flopµ¡þÂ²S¡XÂ²latch³
forµaµlatchµ¡þ5²S¡X5²statetable³
forµgeneralµsequentialµbehaviorµ¡þÇBothµtheµffµandµlatchµgroupsµcreateµtwoµstateµvariablesµthat¡þrepresentµnoninvertedµoutputµandµinvertedµoutput.µYouµcanµuse¡þXtheseµstateµvariablesµinµtheµfunctionµattributeµwhenµyouµdefineµan¡þ¡outputµpin'sµfunction.µµµµ¡þDTheµstatetableµgroupµdefinesµaµstateµtable.µTheµLibraryµCompiler¡þprogramµcreatesµanµinternalµnodeµthatµrepresentsµtheµoutputµfunction¡þÕofµtheµstateµtable.µYouµcanµspecifyµthisµinternalµnodeµinµan¡þinternal_nodeµorµstate_functionµattributeµwhenµyouµdefineµanµoutput¡þgpin'sµfunction.µµµ¡þK²Example´µ³
µDµFlip³FlopµwithµstatetableµGroup¡þë²This´µexampleµusesµanµinternal_nodeµattributeµstatementµforµthe¡þ4functionµofµtheµoutputµpins.¡þµ²cell(flipflop1)´µ{¡þòµµareaµ:µ7µ;¡þ	/µµpin(D)µ{¡þ	lµµµµdirectionµ:µinputµ;¡þ	©µµµµcapacitanceµ:µ1.3µ;¡þ	æµµµµtiming()µ{¡þ
#µµµµµµtiming_typeµ:µsetup_risingµ;¡þ
`µµµµµµintrinsic_riseµ:µ0.9µ;¡þ
µµµµµµintrinsic_fallµ:µ0.9µ;¡þ
Ùµµµµµµrelated_pinµ:µ"CP"µ;¡þµµµµ}’åD“I501ileaf_page_string1:2-26¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³26¡þÃ²´µµµµtiming()µ{¡þýµµµµµµtiming_typeµ:µhold_risingµ;¡þ7µµµµµµintrinsic_riseµ:µ0.5µ;¡þrµµµµµµintrinsic_fallµ:µ0.5µ;¡þ¬µµµµµµrelated_pinµ:µ"CP"µ;¡þæµµµµ}¡þ µµ}¡þZµµpin(CP)µ{¡þ•µµµµdirectionµ:µinputµ;¡þÏµµµµcapacitanceµ:µ1.3µ;¡þ	µµµµmin_pulse_width_highµ:µ1.5µ;¡þCµµµµmin_pulse_width_lowµµ:µ1.5µ;¡þ~µµ}¡þ¸µµstatetableµ("µDµµµµCP",µIQµµµIQN")µ{¡þòµµµµtableµ:µµµµL/HµµRµµ:µ³µ³µ:µL/HµµH/L,\¡þ,µµµµµµµµµµµµµµµµµ³µµµ~Rµ:µ³µ³µ:µNµµµµN"µ;¡þgµµ}¡þ¡µµpin(Q)µ{¡þÛµµµµdirectionµ:µoutputµ;¡þµµµµinternal_nodeµ:µ"IQ"µ;¡þOµµµµtiming()µ{¡þŠµµµµµµtiming_typeµ:µrising_edgeµ;¡þÄµµµµµµintrinsic_riseµ:µ1.11µ;¡þþµµµµµµintrinsic_fallµ:µ1.43µ;¡þ8µµµµµµrise_resistanceµ:µ0.1513µ;¡þsµµµµµµfall_resistanceµ:µ0.0544µ;¡þ­µµµµµµrelated_pinµ:µ"CP"µ;¡þçµµµµ}¡þ!µµ}¡þ\µµpin(QN)µ{¡þ–µµµµdirectionµ:µoutputµ;¡þÐµµµµinternal_nodeµ:µ"IQN"¡þ	
µµµµtiming()µ{¡þ	Eµµµµµµtiming_typeµ:µrising_edgeµ;¡þ	µµµµµµintrinsic_riseµ:µ1.58µ;¡þ	¹µµµµµµintrinsic_fallµ:µ1.56µ;¡þ	óµµµµµµrise_resistanceµ:µ0.1513µ;¡þ
-µµµµµµfall_resistanceµ:µ0.0544µ;¡þ
hµµµµµµrelated_pinµ:µ"CP"µ;¡þ
¢µµµµ}¡þ
Üµµ}¡þ}’åED“I501ileaf_page_string1:2-27¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³27¡þÏ²Example´µ³
µDµFlip³FlopµwithµffµGroup¡þ²In´µthisµcell,µallµtheµdefinitionsµareµtheµsameµasµinµtheµprevious¡þÊexampleµexceptµthatµtheµffµgroupµstatementµreplacesµtheµstatetable¡þgroupµstatementµandµtheµfunctionµattributeµratherµthanµthe¡þ[internal_nodeµattributeµdefinesµtheµoutputµpin'sµfunction.¡þTheµDµflip³flopµdefinesµtwoµvariables,µIQµandµIQN.µTheµnext_state¡þZequationµdeterminesµtheµvalueµofµIQµafterµtheµnextµclocked_on¡þ£transition.µInµthisµexample,µIQµisµassignedµtheµvalueµofµtheµDµinput.¡þ2²cell(flipflop1)´µ{¡þqµµareaµ:µ7µ;¡þ°µµpin(D)µ{¡þïµµµµdirectionµ:µinput;¡þ-µµµµ...¡þlµµ}¡þ«µµpin(CP)µ{¡þêµµµµdirectionµ:µinput;¡þ)µµµµ...¡þhµµ}¡þ¦µµff(IQ,IQN)µ{¡þåµµµµnext_stateµ:µ"D"µ;¡þ$µµµµclocked_onµ:µ"CP"µ;¡þcµµ}¡þ¢µµpin(Q)µ{¡þáµµµµdirectionµ:µoutputµ;¡þ	 µµµµfunctionµ:µ"IQ"µ;¡þ	^µµµµ...¡þ	µµ}¡þ	Üµµpin(QN)µ{¡þ
µµµµdirectionµ:µoutputµ;¡þ
Zµµµµfunctionµ:µ"IQN";¡þ
™µµµµ...¡þ
Øµµ}¡þ}’E®D“I501ileaf_page_string1:2-28¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³28¡þÏ²Describing´µTiming¡þn²Timing´µisµdividedµintoµtwoµmajorµareas:µdescribingµdelayµ(theµactual¡þ¶circuitµtiming)µandµspecifyingµconstraintsµ(boundaries).µChapterµ14,¡þÿTimingµArcs,"µdescribesµtimingµarcs,µwhichµare,µwithµnetlist¡þHinterconnectµinformation,µtheµpathsµfollowedµbyµtheµpathµtracer¡þduringµpathµanalysis.µTimingµarcsµcanµbeµdelayµarcsµorµconstraint¡þÙarcs.µEachµtimingµarcµhasµaµstartpointµandµanµendpoint.µThe¡þ"startpointµcanµbeµanµinput,µoutput,µorµinoutµpin.µTheµendpointµis¡þjalwaysµanµoutputµpinµorµanµinoutµpin.µTheµonlyµexceptionµisµa¡þ³constraintµtimingµarc,µsuchµasµaµsetupµorµholdµconstraintµbetween¡þütwoµinputµpins.¡þžYouµdescribeµtimingµdelayµandµconstraintsµinµtheµtimingµgroupµofµa¡þçpinµinµtheµcell.µTimingµgroupsµcontainµtheµinformationµthatµtheµDesign¡þ0Compilerµprogramµneedsµtoµmodelµtimingµarcsµandµtraceµpaths.¡þxTimingµgroupsµdefineµtheµtimingµarcsµthroughµaµcellµandµthe¡þÁrelationshipsµbetweenµclockµandµdataµinputµsignals.µYouµcanµdefine¡þ
moreµthanµoneµtimingµgroupµforµeachµpin.µDefineµtwoµorµmoreµtiming¡þRgroupsµtoµallowµmultipleµtimingµarcsµforµeachµpathµbetweenµanµinput¡þ›andµoutputµpin.µThisµattributeµisµrequiredµinµallµtimingµgroups:¡þrelated_pin¡XhAttributeµthatµdefinesµtheµpinµorµpinsµrepresentingµtheµstartpoint¡X±ofµaµtimingµarc.’®D“I501ileaf_page_string1:2-29¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³29¡þÉ²All´µdelayµinformationµinµaµlibraryµrefersµtoµanµinput³to³outputµpinµpair¡þorµanµoutput³to³outputµpinµpair.µYouµcanµdefineµtheseµtypesµofµdelay:¡þ²S¡X²Intrinsicµdelay¡XÖTheµfixedµdelayµfromµinputµtoµoutputµpins.¡þE²S¡XE²Transitionµdelay¡X‹Theµtimeµitµtakesµtheµdrivingµpinµtoµchangeµstate.µTransitionµdelay¡XÒattributesµrepresentµtheµresistanceµencounteredµinµmakingµlogic¡Xtransitions.¡þ‡²S¡X‡²Slopeµsensitivity¡XÎTheµincrementalµtimeµdelayµdueµtoµslowingµchangingµinput¡Xsignals.¡þTheµdelayµmodelµyouµuseµdeterminesµwhichµsetµofµattributesµfor¡þædelayµcalculationµyouµspecifyµinµaµpin'sµtimingµgroup.µForµexample,¡þ/toµdescribeµtheµfollowingµtypesµofµdelayµinµtheµCMOSµlinearµdelay¡þwmodel,µuseµtheseµattributes:¡”Intrinsicµdelay³
intrinsic_riseµandµintrinsic_fallµµ¡”KTransitionµdelay³
rise_resistanceµandµfall_resistance¡””Slopeµsensitivity³
slope_riseµandµslope_fall¡þYouµcanµsetµvariousµtimingµconstraintsµsuchµasµthese:¡þ²S¡X²Setupµandµholdµarcs¡XÖSetµtheseµconstraintsµtoµensureµthatµaµdataµsignalµhasµstabilized¡X	beforeµlatchingµitsµvalue.¡þ	‹²S¡X	‹²Recoveryµandµremovalµarcs¡X	ÒUseµtheµrecoveryµtimingµarcµandµtheµremovalµtimingµarcµfor¡X
asynchronousµcontrolµpinsµsuchµasµclearµandµpreset.µµ¡þ
‡²S¡X
‡²Skew¡X
ÎThisµisµanotherµconstraintµthatµtheµVHDLµlibraryµgeneratorµuses¡Xforµsimulation.’ìD“I501ileaf_page_string1:2-30¥	öäÃËÁâÊË¡Ä,9,#¡Ä,#	c#¡Ä	c#	c9¡Ä	c9,9ÆÃÁÊËÃ¡Äþ#Ê#ÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³30¡þÉ²You´µcanµalsoµsetµstate³dependentµandµconditionalµconstraints.¡þlSeeµChapterµ14,µTimingµArcs,"µforµinformationµaboutµtheµtiming¡þ´groupµattributesµforµsettingµconstraintsµandµdefiningµdelayµwithµthe¡þýdifferentµdelayµmodels.µChapterµ16,µTimingµReportµFormat,"¡þFdescribesµhowµtoµgetµinformationµaboutµtimingµinµtheµcellsµusingµthe¡þŽLibraryµCompilerµreport_libµ³timingµcommand.¡þr²Defining´µInput/OutputµPads¡þ²Input/output´µpadsµareµtheµspecialµcellsµatµtheµchipµboundariesµthat¡þZallowµcommunicationµwithµtheµworldµoutsideµtheµchip.µTheir¡þ£characteristicsµdistinguishµthemµfromµtheµotherµcellsµthatµmakeµup¡þìtheµcoreµofµanµintegratedµcircuit.µSomeµofµtheseµdistinguishing¡þ4characteristicsµareµlongerµdelays;µhigherµdriveµcapabilities;µvoltage¡þ}levelsµforµtransferringµlogicµsignalsµtoµtheµcore,µorµlogicµvaluesµfrom¡þÆtheµcore.µYouµmustµcaptureµtheseµcharacteristicsµinµtheµlibraryµso¡þthatµintegratedµcircuitµdesignersµcanµinsertµtheµcorrectµpadsµduring¡þWsynthesis.µ¡þúToµdefineµI/Oµpads,µyouµcombineµtheµlibrary,µcell,µandµpinµgroup¡þBattributesµthatµdescribeµinput,µoutput,µandµbidirectionalµpadµcells.¡þåTheµexampleµlibrariesµdoµnotµcontainµexamplesµofµI/Oµpads,µwhich¡þ	-areµoftenµdefinedµinµaµseparateµlibrary.’ìåD“I501ileaf_page_string1:2-31¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³31¡þÉ²These´µareµtheµstepsµinµdefiningµI/Oµpads.¡þ=1.¡X=Identifyingµpadµcells¡þ¤2.¡X¤Describingµmulticellµpads¡þ3.¡XDefiningµunitsµforµpadµcells¡þs4.¡XsIdentifyingµareaµresources¡þÚ5.¡XÚDescribingµinputµpads¡þA6.¡XADescribingµoutputµpads¡þ¨7.¡X¨Modelingµwireµload¡þV²Identifying´µPadµCells¡þÜ²When´µitµsynthesizesµaµchip,µtheµDesignµCompilerµprogramµusesµthe¡þ%methodsµthatµyouµusedµtoµidentifyµcellsµasµI/Oµpads.µDesign¡þnCompilerµfiltersµpadµcellsµoutµofµnormalµcoreµoptimizationµandµtreats¡þ¶themµdifferentlyµduringµtechnologyµtranslation.µTheseµattributes¡þÿidentifyµpads:¡þspad_cellµandµauxiliary_pad_cell¡X¼AttributesµthatµidentifyµaµcellµasµanµI/Oµpad.µµµµµ¡þpad_typeµ:µclock¡XcAttributeµthatµidentifiesµaµclockµdriverµpadµcell.µµ¡þ×Padµpinµattributes:¡þ	Kis_pad¡X	“AttributeµonµpinsµthatµidentifiesµlogicalµI/Oµpadµpins.µµ¡þ	òdirection¡X
:Attributeµdefiningµwhetherµaµpadµisµanµinput,µoutput,µor¡X
ƒbidirectionalµpad.µForµbidirectionalµpins,µyouµcanµdefineµmultiple¡X
Ìdriver_typeµattributesµforµtheµsameµpinµtoµmodelµbothµoutputµand¡Xinputµbehavior.µµ’åiD“I501ileaf_page_string1:2-32¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³32¡þÏ²Describing´µMulticellµPadsµ¡þn²Pads´µcanµhaveµmultipleµcells³
aµpadµcellµandµaµdriverµcell,µfor¡þ¶example.µYouµcanµdescribeµI/Oµpadsµinµoneµofµtwoµways:¡þ;²S¡X;²Asµoneµcellµwithµmanyµattributes¡þ¯²S¡X¯²Asµaµcollectionµofµcells,µeachµwithµattributesµaffectingµthe¡Xõoperationµofµtheµlogicalµpad¡þ‡Aµlibraryµusingµtheµfirstµmethodµtoµdescribeµmultipleµcellsµcontainsµa¡þÏdifferentµcellµforµeachµpossibleµcombinationµofµpadµcharacteristics.µA¡þlibraryµusingµtheµsecondµmethodµcontainsµaµsmallerµnumberµof¡þacomponents,µbutµeachµtypeµofµpadµmustµbeµindividuallyµconstructed¡þ©fromµspecificµcomponents.¡þLTheseµareµattributesµthatµdescribeµmultipleµcells:µ¡þÑauxiliary_pad_cell¡XIndicatesµthatµtheµcellµcanµbeµusedµasµpartµofµaµlogicalµpad.µµ¡þ€multicell_pad_pin¡XÉIdentifiesµtheµpinsµtoµconnectµtoµcreateµaµworkingµmulticellµpadµor¡Xanµauxiliaryµpadµcell.µµµ¡þxconnection_class¡XÁIdentifiesµtheµpinsµthatµareµtoµbeµconnectedµtoµpinsµonµotherµcells.¡X		’isD“I501ileaf_page_string1:2-33¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³33¡þÏ²Defining´µUnitsµforµPadµCells¡þn²To´µhandleµpadsµforµfull³chipµsynthesis,µtheµDesignµCompilerµprogram¡þ¶needsµtheµphysicalµquantitiesµofµtime,µcapacitance,µresistance,¡þÿvoltage,µcurrent,µandµpower.µUseµtheseµattributesµtoµsupplyµthis¡þHinformation:¡þÌcapacitive_load_unit¡XDefinesµtheµcapacitanceµassociatedµwithµaµstandardµload.¡þ|pulling_resistance_unit¡XÄDefinesµtheµunitµforµtheµpulling_resistanceµattributeµforµpull³up¡Xandµpulldownµdevicesµonµpads.¡þtvoltage_unit¡X¼Definesµtheµunitµforµtheµinput_voltageµandµoutput_voltageµgroups¡Xthatµdefineµinputµorµoutputµvoltageµrangesµforµtheµpads.¡þlcurrent_unit¡X´Definesµcurrentµvaluesµforµtheµdrive_currentµandµpulling_current¡Xýattributes.¡þÃ²Identifying´µAreaµResources¡þb²For´µfullµchipµsynthesis,µtheµDesignµCompilerµprogramµneedsµthis¡þ«attributeµthatµdescribesµtheµareaµresourcesµassociatedµwithµtheµchip:¡þ	0area¡X	xDescribesµtheµconsumptionµofµcoreµandµareaµresourcesµbyµcells¡X	Áandµwiring.µµ’s,D“I501ileaf_page_string1:2-34¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³34¡þÏ²Describing´µInputµPadsµµµ¡þ]²To´µdescribeµtheµinputµvoltageµcharacteristicsµandµpadsµwith¡þ¥hysteresis,µuseµtheseµcomponents:¡þinput_voltageµgroup¡XgDefinesµinputµvoltageµrangesµthatµcanµbeµassignedµtoµpadµinput¡X°pins.µµµ¡þhysteresisµattribute¡XZIdentifiesµwhetherµaµpadµhasµhysteresis.µPadsµwithµhysteresis¡X¢sometimesµhaveµdifferentµderatingµfactorsµfromµcellsµinµtheµcore.¡XëYouµdescribeµtheµtimingµofµcellsµwithµhysteresisµwithµaµscaledµcell¡X4groupµasµdescribedµinµChapterµ14,µTimingµArcs."µµ¡þã²Describing´µOutputµPadsµµµ¡þq²Output´µpadµdescriptionsµincludeµtheµoutputµvoltageµcharacteristics¡þºandµtheµdriveµcurrentµratingµofµoutputµandµbidirectionalµpads.¡þAdditionally,µanµoutputµpadµdescriptionµincludesµinformationµabout¡þKtheµslewµrateµofµtheµpad.µUseµtheµfollowingµcomponentsµtoµdescribe¡þ”outputµpads:¡þoutput_voltageµgroup¡XVDefinesµoutputµvoltageµrangesµforµtheµoutputµpinµofµaµpadµcell.µµ¡þ·drive_currentµattribute¡XÿDefinesµtheµdriveµcurrentµsuppliedµbyµtheµpadµbufferµinµunits¡X	Hconsistentµwithµtheµcurrent_unitµattribute.µµ¡þ	©slew_controlµattribute¡X	òQualitativelyµmeasuresµtheµlevelµofµslewµrateµcontrolµassociated¡X
:withµanµoutputµpad.µAdditionally,µthereµareµeightµattributesµthat¡X
ƒquantitativelyµmeasureµtheµbehaviorµofµtheµpadµonµrisingµand¡X
Ìfallingµtransitions.µReferµtoµChapterµ11,µDefiningµInput/Output¡XPads,"µforµinformationµaboutµtheseµattributes.µµ’,ñD“I501ileaf_page_string1:2-35¥	öäÃËÁâÊË¡Ä,_,I¡Ä,I	cI¡Ä	cI	c_¡Ä	c_,_ÆÃÁÊËÃ¡Ä,IÊIÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¤2³35¡þÏ²Modeling´µWireµLoad¡þi²You´µcanµdefineµaµnumberµofµwire_loadµgroupsµtoµcontainµallµthe¡þ±informationµtheµDesignµCompilerµprogramµneedsµtoµestimate¡þúinterconnectµwiringµdelays.µEstimatedµwireµloadsµforµpadsµcanµbe¡þCsignificantlyµdifferentµfromµthoseµofµcoreµcells.µ¡þàTheµwire_loadµmodelµforµtheµnetµconnectingµanµI/Oµpadµtoµtheµcore¡þ)needsµtoµbeµhandledµseparatelyµbecauseµitµisµusuallyµlongerµthan¡þrmostµotherµnetsµinµtheµcircuit.µSomeµI/Oµpadµnetsµextendµcompletely¡þºacrossµtheµchip.¡þXSeeµtheµTaskµ3µDescribingµtheµEnvironment"µsectionµearlierµinµthis¡þ¡chapterµforµanµexampleµofµtheµwire_loadµgroup.¡,Ÿ²Task´µ5µµDescribingµApplication³SpecificµData¡þX²There´µareµotherµattributesµandµgroupsµthatµyouµcanµspecifyµinµyour¡þ technologyµlibraryµforµfixingµdesignµrulesµorµmodelingµtheµdesignµfor¡þétestingµorµpower.¡þ†ThisµchapterµdoesµnotµdescribeµcreatingµVHDLµsimulationµlibraries,¡þÏbutµyouµcanµcreateµaµVHDLµsimulationµlibraryµthatµmatchesµyour¡þ	technologyµlibraryµwithµtheµLibraryµCompilerµwrite_libµ³fµvhdl¡þ	`command.µFromµanµexistingµtechnologyµlibrary,µtheµLibraryµCompiler¡þ	©VHDLµlibraryµgeneratorµcanµcreateµfourµtypesµofµVHDLµsimulation¡þ	òlibraries:µunit³delayµstructuralµmodelµ(UDSM),µfull³timingµstructural¡þ
:modelµ(FTSM),µfull³timingµgate³levelµssimulationµmodelµ(FTGS),µor¡þ
ƒVITALµsimulationµmodelµ(VITAL).µToµunderstandµtheµstructureµand¡þ
ÌcontentsµofµVHDLµsimulationµlibraries,µseeµtheµ²&LibraryµCompiler¡þReferenceµManualµVolumeµ2.µ’ñßD“I501ileaf_page_string1:2-36¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Z,D¡Ä,D	cD¡Ä	cD	cZ¡Ä	cZ,ZÆÃÁÊËÃ¡ÄþDÊDÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³36¡þÏ²References¡þn²For´µinformationµaboutµthisµtask,µsee¡þò²S¡Xò²Chapterµ7,µBuildingµaµTechnologyµLibrary"¡þf²S¡Xf²Chapterµ8,µDefiningµCoreµCells"¡þÚ²S¡XÚ²Chapterµ12,µDefiningµTestµCells"¡þM²S¡XM²Chapterµ13,µModelingµPower"¡þÁ²S¡XÁ²Chapterµ17,µBuildingµEnvironments"¡þ”²Procedure¡þ3²Theseµareµtheµtasksµinµdescribingµapplication³specificµdata:¡þ¸1.¡X¸Settingµdesignµrules¡þ+2.¡X+Modelingµforµtestableµcircuits¡þŸ3.¡XŸModelingµforµpower¡þ4.¡XAddingµsynthesis³to³layoutµfeatures¡þ¤Theµexampleµlibraryµdoesµnotµincludeµexamplesµofµtheseµoptional¡þíattributes.’ßSD“I501ileaf_page_string1:2-37¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¤2³37¡þÏ²Setting´µDesignµRulesµ¡þP²In´µthisµtask,µyouµsetµtheµdesignµruleµconstraintsµonµcells;µthatµis,µyou¡þ™specifyµvaluesµforµfanoutµandµcapacitiveµload.µµµ¡þSomeµdesignsµhaveµinputµloadµlimitationsµthatµanµoutputµpinµcan¡þgdrive,µregardlessµofµanyµloadingµcontributedµbyµinterconnectµmetal¡þ¯layers.µToµlimitµtheµnumberµofµinputsµonµtheµsameµnetµdrivenµbyµan¡þøoutputµpin,µyouµcanµdefineµaµmaximumµfanoutµvalueµonµaµcell's¡þAoutputµpinsµandµaµfanoutµloadµonµitsµinputµpins.µYouµcanµdefineµa¡þ‰maximumµtransitionµtimeµonµanµoutputµpin.µYouµcanµalsoµlimitµthe¡þÒtotalµcapacitiveµloadµthatµanµoutputµpinµcanµdrive.¡þWToµspecifyµloadµvalues,µuseµtheµfollowingµattributes:¡þÈfanout_load¡XSpecifiesµhowµmuchµtoµaddµtoµtheµfanoutµonµtheµnet.¡þnmax_fanout¡X¶Specifiesµtheµmaximumµnumberµofµloadsµaµpinµcanµdrive.¡þmax_transition¡X\Specifiesµtheµmaximumµlimitsµofµtheµtransitionµdelayµonµa¡X¤networkµ(totalµcapacitiveµloadµonµaµnetwork).¡þmax_capacitance¡XJSpecifiesµtheµmaximumµtotalµcapacitiveµloadµthatµanµoutputµpin¡X“canµdrive.¡þïmin_fanout¡X	8Specifiesµtheµminimumµnumberµofµloadsµaµpinµcanµdrive.¡þ	•min_transition¡X	ÞSpecifiesµtheµminimumµlimitsµofµtheµtransitionµdelayµonµaµnetwork¡X
&(totalµcapacitiveµloadµonµaµnetwork).¡þ
ƒmin_capacitance¡X
ÌSpecifiesµtheµminimumµtotalµcapacitiveµloadµthatµanµoutputµpin¡Xcanµdrive.’SFD“I501ileaf_page_string1:2-38¥	öäÃËÁâÊË¡Ä,¤,Ž¡Ä,Ž	cŽ¡Ä	cŽ	c¤¡Ä	c¤,¤ÆÃÁÊËÃ¡ÄþŽÊŽÆÃ¥	öäÃÁÊË¡Ä,$,¡Ä,	c¡Ä	c	c$¡Ä	c$,$ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³38¡þÉ²See´µChapterµ8,µ"DefiningµCoreµCells,"µforµmoreµinformationµabout¡þtheµdesignµruleµattributes.¡þÞ²Modeling´µforµTestableµCircuits¡þo²Synopsys´µTestµCompilerµisµaµtoolµthatµfacilitatesµtheµdesignµof¡þ¸testableµcircuitsµwithµminimalµspeedµandµareaµoverheads,µand¡þgeneratesµanµassociatedµsetµofµtestµvectorsµautomatically.µTheµTest¡þICompilerµprogramµusesµeitherµfull³scanµorµpartial³scanµmethodology¡þ’toµaddµscanµcellsµtoµyourµdesignµandµhelpµmakeµaµdesign¡þÚcontrollableµandµobservable.¡þoToµuseµTestµCompiler,µaddµtest³specificµdetailsµofµscannableµcellsµto¡þ¸technologyµlibraries.µYouµidentifyµscannableµflip³flopsµandµlatches,¡þandµselectµtheµtypesµofµnonscannableµcellsµtheyµreplaceµforµaµgiven¡þIscanµmethodology.µReferµtoµChapterµ12,µDefiningµTestµCells,"µfor¡þ‘informationµaboutµscanµcells.¡þ^²Modeling´µforµPower¡þï²You´µcanµmodelµstaticµandµdynamicµpowerµforµCMOSµtechnology.¡þ8Theµthreeµcomponentsµofµpowerµdissipationµareµleakageµpower,¡þ€shortµcircuitµ(orµinternal)µpower,µandµswitchingµpower.µµµµ¡þ	Leakageµpowerµisµtheµstaticµ(orµquiescent)µpowerµdissipatedµwhen¡þ	]theµgateµisµnotµswitching.µItµisµimportantµtoµmodelµforµdesignsµthatµare¡þ	¦inµanµidleµstateµmostµofµtheµtime.¡þ
:Representµleakageµpowerµinformationµwithµtheµcell³level¡þ
ƒcell_leakage_powerµattributeµandµassociatedµlibrary³levelµattributes¡þ
Ìthatµspecifyµscalingµfactors,µunits,µandµaµdefaultµvalue.µTheµfollowing¡þexampleµdescribesµleakageµpower.’FÛD“I501ileaf_page_string1:2-39¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³39¡þÃ²library(power_sample)´µ{¡þ¡…leakage_power_unitµ:µ1nWµ;¡þG¡…Gdefault_cell_leakage_powerµ:µ0.1µ;¡þ‰¡…‰k_volt_cell_leakage_powerµ:µ0.000000µ;¡þË¡…Ëk_temp_cell_leakage_powerµ:µ0.000000µ;¡þ¡…k_process_cell_leakage_powerµ:µ0.000000µ;¡þO¡…O...¡þ‘¡…‘cell(AN2)µ{¡þÓ¡…Ó¡Ó...¡þ¡…¡cell_leakage_powerµ:µ0.2µ;¡þX¡…X¡Xleakage_power()µ{¡þš¡…š¡š¡“šwhenµ:µ"!A"µ;¡þÜ¡…Ü¡Ü¡“Üvaluesµ:µ2.0µ;¡þ¡…¡}¡þ`¡…`}¡þ¢}¡þW²Short´µcircuitµorµinternalµpowerµisµtheµpowerµdissipatedµwheneverµa¡þŸpinµmakesµaµtransition.µLibraryµdevelopersµcanµchooseµeither¡þG²S¡XG²Toµincludeµtheµeffectµofµtheµoutputµcapacitanceµinµthe¡Xinternal_powerµgroupµ(definedµinµaµpinµgroupµwithinµaµcell),µwhich¡XÔgivesµtheµoutputµpinsµzeroµcapacitance,µor¡þa²S¡Xa²Toµgiveµtheµoutputµpinsµaµrealµcapacitance,µwhichµcausesµthem¡X¨toµbeµincludedµinµtheµswitchingµpower,µandµmodelµonlyµtheµshort¡Xîcircuitµpowerµasµtheµcell'sµinternalµpowerµ(inµtheµinternal_power¡X	5group).¡þ	òSwitchingµ(orµinterconnect)µpowerµisµtheµpowerµdissipatedµbyµthe¡þ
:capacitiveµloadµonµaµnetµwheneverµtheµnetµmakesµaµlogical¡þ
ƒtransition.µPowerµisµdissipatedµwhenµtheµcapacitiveµloadµisµcharged¡þ
Ìorµdischarged.µSwitchingµpowerµ(alongµwithµinternalµpower)µisµused¡þtoµcomputeµtheµdesign'sµtotalµdynamicµpowerµdissipation.’ÛÎD“I501ileaf_page_string1:2-40¥	öäÃËÁâÊË¡Ä,S,=¡Ä,=	c=¡Ä	c=	cS¡Ä	cS,SÆÃÁÊËÃ¡Äþ=Ê=ÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³40¡þÉ²See´µChapterµ13,µ"ModelingµPower,"µChapterµ7,µBuildingµa¡þTechnologyµLibrary,"µandµChapterµ17,µBuildingµEnvironments,"µfor¡þZinformationµaboutµtheµattributesµusedµinµmodelingµstaticµandµdynamic¡þ£power.¡þ²Adding´µSynthesis³to³LayoutµFeatures¡þ/²In³place´µoptimization,µwireµloadµmodelµcreation,µandµroutabilityµare¡þxsynthesis³to³layoutµfeaturesµyouµcanµaddµtoµyourµdesign.¡þa²In³Place´µOptimizationµ¡þ²You´µcanµuseµin³placeµoptimization,µanµincrementalµoptimizationµstep,¡þLtoµimproveµperformanceµorµfixµdesignµruleµviolationsµintroducedµby¡þ•layout.¡þ;In³placeµoptimizationµoccursµafterµplacementµandµrouting,µwhen¡þƒDesignµCompilerµoptimizesµaµcriticalµpathµbyµreplacingµindividual¡þÌcellsµwithµsimilarµonesµthatµimproveµtheµspeedµorµpowerµofµthe¡þcircuit.¡þ»Forµin³placeµoptimization,µuseµtheµfollowingµattributes:¡þ	Ain_place_swap_mode¡X	ŠLibrary³levelµprocessingµattributeµthatµspecifiesµwhetherµin³place¡X	Óoptimizationµisµallowedµwithµthisµlibrary.µItµdescribesµtheµcriteria¡X
thatµµtheµDesignµCompilerµprogramµusesµinµcellµswappingµduring¡X
din³placeµoptimization.µ¡þ
Ìcell_footprint¡XCell³levelµattributeµthatµspecifiesµwhichµcellsµcanµbeµswapped.µ’ÎìD“I501ileaf_page_string1:2-41¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³41¡þÏ²Routability´µ¡þn²Factors´µthatµaffectµaµdesign'sµroutabilityµareµtheµnumberµof¡þ¶feedthroughsµavailable,µmaximumµfanout,µandµhighµnumberµofµinputs¡þÿtoµcells.µYouµcanµputµattributesµinµtheµlibraryµthatµwillµprovideµthe¡þHDesignµCompilerµprogramµwithµfeedthroughµinformation.µTheseµare¡þtheµattributesµthatµaffectµroutability:¡þdefault_min_porosity¡X^Libraryµgroupµattributeµthatµspecifiesµtheµconstraintµvalueµfor¡X¦DesignµCompilerµifµthereµisµnoµporosityµspecificationµatµthe¡Xïdc_shellµcommandµline.µPorosityµisµtheµtotalµfeedthroughµarea¡X8availableµdividedµbyµtheµcellµarea.µ¡þžrouting_layers¡XçLibraryµgroupµattributeµthatµdeclaresµtheµroutingµlayersµavailable¡X0forµplaceµandµrouteµforµtheµlibrary.µThisµattributeµrepresentsµthe¡Xxsymbolicµnameµusedµlaterµinµaµlibraryµtoµdescribeµroutability¡XÁinformationµassociatedµwithµeachµlayer.¡X(Thisµattributeµmustµbeµdefinedµinµtheµlibraryµbeforeµother¡Xproutabilityµinformationµinµaµcell.µOtherwise,µcellµroutability¡X¹informationµinµtheµlibraryµisµconsideredµanµerror.µEachµlibraryµcan¡Xhaveµonlyµoneµrouting_layersµcomplexµattribute.µ’ì/D“I501ileaf_page_string1:2-42¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³42¡,Õ²Example´µTechnologyµLibraryµSourceµFile¡þƒ²This´µisµtheµsourceµfileµforµaµtechnologyµlibraryµusingµaµCMOSµlinear¡þÌdelayµmodel.µThisµtechnologyµlibraryµcontainsµexamplesµofµcoreµcells¡þonly.¡þ²library(example)´µ{¡þÈtechnologyµ(cmos)µ;µµµµµµµµµµµµµµµµµµµ/*µtechnologyµ*/¡þdelay_modelµ:µgeneric_cmos;µµµµµµµµµµµ/*µdelayµmodelµ*/¡þ?default_inout_pin_capµµµµ:µµµµµµ1.0;µµ/*µdefaultµattributesµ*/¡þsdefault_inout_pin_fall_resµµµ:µµ0.0;¡þ§default_inout_pin_rise_resµµµ:µµ0.0;¡þÛdefault_input_pin_capµµµµµµµµ:µµ1.0;¡þdefault_intrinsic_fallµµµµµµµ:µµ1.0;¡þCdefault_intrinsic_riseµµµµµµµ:µµ1.0;¡þwdefault_output_pin_capµµµµµµµ:µµ0.0;¡þ«default_output_pin_fall_resµµ:µµ0.0;¡þßdefault_output_pin_rise_resµµ:µµ0.0;¡þdefault_slope_fallµµµµµµµµµµµ:µµ0.0;¡þFdefault_slope_riseµµµµµµµµµµµ:µµ0.0;¡þzdefault_fanout_loadµµµµµµµµµµ:µµ1.0;¡þ¶time_unitµµµµµµµµµµµµµµµµµµµµ:µ"1ns";µ/*µlibraryµunitsµ*/¡þêpulling_resistance_unitµµµµµµ:µ"100ohm";¡þvoltage_unitµµµµµµµµµµµµµµµµµ:µ"1V";¡þRcurrent_unitµµµµµµµµµµµµµµµµµ:µ"1mA";¡þ…capacitive_load_unit(1,pf);¡þÁnom_processµµµµµµµµµµµµµµµµµµ:µµ1.0;¡þõnom_temperatureµµµµµµµµµµµµµµ:µ25.0;¡þ)nom_voltageµµµµµµµµµµµµµµµµµµ:µ5.0;¡þdoperating_conditions(WCCOM)µ{µµµµ/*µoperatingµconditionµmodelsµ*/¡þ˜µµprocessµ:µ1.5µ;¡þÌµµtemperatureµ:µ70µ;¡þ	µµvoltageµ:µ4.75µ;¡þ	4µµtree_typeµ:µ"worst_case_tree"µ;¡þ	h}¡þ	£operating_conditions(WCIND)µ{¡þ	×µµprocessµ:µ1.5µ;¡þ
µµtemperatureµ:µ85µ;¡þ
?µµvoltageµ:µ4.75µ;¡þ
sµµtree_typeµ:µ"worst_case_tree"µ;¡þ
§}¡þ
âoperating_conditions(WCMIL)µ{¡þµµprocessµ:µ1.5µ;’/½D“I501ileaf_page_string1:2-43¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³43¡þÃ²´µµtemperatureµ:µ125µ;¡þ÷µµvoltageµ:µ4.5µ;¡þ+µµtree_typeµ:µ"worst_case_tree"µ;¡þ_}¡þšoperating_conditions(BCCOM)µ{¡þÎµµprocessµ:µ0.6µ;¡þµµtemperatureµ:µ0µ;¡þ6µµvoltageµ:µ5.25µ;¡þiµµtree_typeµ:µ"best_case_tree"µ;¡þ}¡þÙoperating_conditions(BCIND)µ{¡þµµprocessµ:µ0.6µ;¡þAµµtemperatureµ:µ³40µ;¡þtµµvoltageµ:µ5.25µ;¡þ¨µµtree_typeµ:µ"best_case_tree"µ;¡þÜ}¡þoperating_conditions(BCMIL)µ{¡þKµµprocessµ:µ0.6µ;¡þµµtemperatureµ:µ³55µ;¡þ³µµvoltageµ:µ5.5µ;¡þçµµtree_typeµ:µ"best_case_tree"µ;¡þ}¡þVwire_load("05x05")µ{µµµµµµµµµµµµµµµµ/*µwireµloadµmodelsµ*/¡þŠµµresistanceµ:µ0µ;¡þ¾µµcapacitanceµ:µ1µ;¡þòµµareaµ:µ0µ;¡þ&µµslopeµ:µ0.186µ;¡þZµµfanout_length(1,0.39)µ;¡þŽ}¡þÉwire_load("10x10")µ{¡þýµµresistanceµ:µ0µ;¡þ1µµcapacitanceµ:µ1µ;¡þeµµareaµ:µ0µ;¡þ™µµslopeµ:µ0.311µ;¡þÍµµfanout_length(1,0.53)µ;¡þ	}¡þ	<wire_load("20x20")µ{¡þ	pµµresistanceµ:µ0µ;¡þ	¤µµcapacitanceµ:µ1µ;¡þ	Øµµareaµ:µ0µ;¡þ
µµslopeµ:µ0.547µ;¡þ
?µµfanout_length(1,0.86)µ;¡þ
s}¡þ
¯wire_load("30x30")µ{¡þ
âµµresistanceµ:µ0µ;¡þµµcapacitanceµ:µ1µ;’½3D“I501ileaf_page_string1:2-44¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³44¡þÃ²´µµareaµ:µ0µ;¡þ÷µµslopeµ:µ0.782µ;¡þ+µµfanout_length(1,1.40)µ;¡þ_}¡þ›wire_load("40x40")µ{¡þÏµµresistanceµ:µ0µ;¡þµµcapacitanceµ:µ1µ;¡þ7µµareaµ:µ0µ;¡þkµµslopeµ:µ1.007µ;¡þŸµfanout_length(1,1.90)µ;¡þÒ}¡þwire_load("50x50")µ{¡þCµµresistanceµ:µ0µ;¡þwµµcapacitanceµ:µ1µ;¡þ«µµareaµ:µ0µ;¡þßµµslopeµ:µ1.218µ;¡þµµfanout_length(1,1.80)µ;¡þF}¡þƒwire_load("60x60")µ{¡þ·µµresistanceµ:µ0µ;¡þëµµcapacitanceµ:µ1µ;¡þµµareaµ:µ0µ;¡þSµµslopeµ:µ1.391µ;¡þ‡µµfanout_length(1,1.70)µ;¡þº}¡þ÷wire_load("70x70")µ{¡þ+µµresistanceµ:µ0µ;¡þ_µµcapacitanceµ:µ1µ;¡þ“µµareaµ:µ0µ;¡þÇµµslopeµ:µ1.517µ;¡þûµµfanout_length(1,1.80)µ;¡þ.µ}¡þkwire_load("80x80")µ{¡þŸµµresistanceµ:µ0µ;¡þÓµµcapacitanceµ:µ1µ;¡þ	µµareaµ:µ0µ;¡þ	;µµslopeµ:µ1.590µ;¡þ	oµµfanout_length(1,1.80)µ;¡þ	¢}¡þ	ßwire_load("90x90")µ{¡þ
µµresistanceµ:µ0µ;¡þ
Gµµcapacitanceµ:µ1µ;¡þ
{µµareaµ:µ0µ;¡þ
¯µµslopeµ:µ1.64µ;¡þ
âµµfanout_length(1,1.9)µ;¡þ}’3?D“I501ileaf_page_string1:2-45¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³45¡þÃ²´µµcell(AN2)µ{µµµµµµµµµµµµµµµµµµµµµ/*µtwo³inputµANDµgateµ*/¡þ÷µµµµareaµ:µ2µ;¡þ+µµµµpin(A,B)µ{¡þ_µµµµµµdirectionµ:µinputµ;¡þ’µµµµµµcapacitanceµ:µ1µ;¡þÆµµµµ}¡þµµµµpin(Z)µ{¡þ9µµµµµµdirectionµ:µoutputµ;¡þlµµµµµµfunctionµ:µ"Aµ*µB"µ;¡þ µµµµµµtiming()µ{¡þÔµµµµµµµµintrinsic_riseµ:µ0.39µ;¡þµµµµµµµµintrinsic_fallµ:µ0.53µ;¡þ<µµµµµµµµrise_resistanceµ:µ0.122µ;¡þpµµµµµµµµfall_resistanceµ:µ0.038µ;¡þ¤µµµµµµµµrelated_pinµ:µ"AµB"µ;¡þØµµµµµµ}¡þµµµµ}¡þ?µµ}¡þ~µµcell(OR2)µ{µµµµµµµµµµµµµµµµµµµµµµ/*µtwo³inputµORµgateµ*/¡þ²µµµµareaµ:µ2µ;¡þæµµµµpin(AµB)µ{¡þµµµµµµµdirectionµ:µinputµ;¡þMµµµµµµµcapacitanceµ:µ1µ;¡þµµ}¡þÀµµµµpin(Z)µ{¡þôµµµµµµdirectionµ:µoutputµ;¡þ'µµµµµµfunctionµ:µ"Aµ+µB"µ;¡þ[µµµµµµtiming()µ{¡þµµµµµµµµintrinsic_riseµ:µ0.38µ;¡þÃµµµµµµµµintrinsic_fallµ:µ0.85µ;¡þ÷µµµµµµµµrise_resistanceµ:µ0.1443µ;¡þ+µµµµµµµµfall_resistanceµ:µ0.0589µ;¡þ_µµµµµµµµrelated_pinµ:µ"AµB"µ;¡þ“µµµµµµ}¡þÇµµ}¡þú}¡þ	9µµcell(TRI_INV2)µ{µµµµµµµµµµµµµµ/*µthree³stateµINVERTERµ*/¡þ	mµµµµareaµ:µ3µ;¡þ	¡µµµµpin(A)µ{¡þ	Õµµµµµµdirectionµ:µinputµ;¡þ
µµµµµµcapacitanceµ:µ2µ;¡þ
<µµµµ}¡þ
{µµµµpin(E)µ{¡þ
¯µµµµµµdirectionµ:µinputµ;¡þ
âµµµµµµcapacitanceµ:µ2µ;¡þµµµµ}’?ÍD“I501ileaf_page_string1:2-46¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³46¡þÃ²´µµµµpin(Z)µ{¡þ÷µµµµµµdirectionµ:µoutputµ;¡þ+µµµµµµfunctionµ:µ"A'"µ;¡þ_µµµµµµthree_stateµ:µ"E'"µ;¡þ’µµµµµµtiming()µ{¡þÆµµµµµµµµintrinsic_riseµ:µ0.39µ;¡þúµµµµµµµµintrinsic_fallµ:µ0.75µ;¡þ.µµµµµµµµrise_resistanceµ:µ0.15µ;¡þbµµµµµµµµfall_resistanceµ:µ0.06µ;¡þ–µµµµµµµµrelated_pinµ:µ"A"µ;¡þÊµµµµµµ}¡þµµµµµµtiming()µ{¡þ?µµµµµµµµtiming_typeµ:µthree_state_enable;¡þsµµµµµµµµintrinsic_riseµ:µ0.39µ;¡þ¦µµµµµµµµintrinsic_fallµ:µ0.75µ;¡þÚµµµµµµµµrise_resistanceµ:µ0.15µ;¡þµµµµµµµµfall_resistanceµ:µ0.06µ;¡þBµµµµµµµµrelated_pinµ:µ"E"µ;¡þvµµµµµµ}¡þ·µµµµµµtiming()µ{¡þëµµµµµµµµtiming_typeµ:µthree_state_disableµ;¡þµµµµµµµµintrinsic_riseµ:µ0.25µ;¡þSµµµµµµµµintrinsic_fallµ:µ0.35µ;¡þ‡µµµµµµµµrise_resistanceµ:µ0.15µ;¡þºµµµµµµµµfall_resistanceµ:µ0.06µ;¡þîµµµµµµµµrelated_pinµ:µ"E"µ;¡þ"µµµµµµ}¡þVµµµµ}¡þŠµµ}¡þËµµcell(FF1)µ{µµµµµµµµµµµµµµµµµµµµµµµµµµµ/*µDµFLIP³FLOPµ*/¡þÿµµµµareaµ:µ7µ;¡þ3µµµµpin(D)µ{¡þgµµµµµµdirectionµ:µinputµ;¡þ›µµµµµµcapacitanceµ:µ1.3µ;¡þÎµµµµµµtiming()µ{¡þ	µµµµµµµµtiming_typeµ:µsetup_risingµ;¡þ	6µµµµµµµµintrinsic_riseµ:µ0.9µ;¡þ	jµµµµµµµµintrinsic_fallµ:µ0.9µ;¡þ	žµµµµµµµµrelated_pinµ:µ"CP"µ;¡þ	Òµµµµµµ}¡þ
µµµµµµtiming()µ{¡þ
Gµµµµµµµµtiming_typeµ:µhold_risingµ;¡þ
{µµµµµµµµintrinsic_riseµ:µ0.5µ;¡þ
¯µµµµµµµµintrinsic_fallµ:µ0.5µ;¡þ
âµµµµµµµµrelated_pinµ:µ"CP"µ;¡þµµµµµµ}’ÍàD“I501ileaf_page_string1:2-47¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³47¡þÃ²´µµµµ}¡þµµµµpin(CP)µ{¡þ4µµµµµµdirectionµ:µinputµ;¡þhµµµµµµcapacitanceµ:µ1.3µ;¡þ›µµµµµµmin_pulse_width_highµ:µ1.5µ;¡þÏµµµµµµmin_pulse_width_lowµµ:µ1.5µ;¡þµµµµ}¡þ@µµµµstatetableµ("DµCP",µ"IQµIQN")µ{¡þtµµµµµµtableµ:µ"L/HµµRµµ:µ³µ³µ:µL/HµH/L,\¡þ¨µµµµµµµµµµµµµµµ³µµµ~Rµ:µ³µ³µ:µNµµN"µ;¡þÜµµµµ}¡þµµµµpin(Q)µ{¡þMµµµµµµdirectionµ:µoutputµ;¡þ€µµµµµµinternal_nodeµ:µ"IQ"µ;¡þ´µµµµµµinverted_outputµ:µfalse;¡þèµµµµµµtiming()µ{¡þµµµµµµµµtiming_typeµ:µrising_edgeµ;¡þPµµµµµµµµintrinsic_riseµ:µ1.11µ;¡þ„µµµµµµµµintrinsic_fallµ:µ1.43µ;¡þ¸µµµµµµµµrise_resistanceµ:µ0.1513µ;¡þìµµµµµµµµfall_resistanceµ:µ0.0544µ;¡þ µµµµµµµµrelated_pinµ:µ"CP"µ;¡þSµµµµµµ}¡þ‡µµµµ}¡þÄµµµµpin(QN)µ{¡þøµµµµµµdirectionµ:µoutputµ;¡þ,µµµµµµinternal_nodeµ:µ"IQN"¡þ`µµµµµµinverted_outputµ:µtrue;¡þ”µµµµµµtiming()µ{¡þÈµµµµµµµµtiming_typeµ:µrising_edgeµ;¡þüµµµµµµµµintrinsic_riseµ:µ1.58µ;¡þ/µµµµµµµµintrinsic_fallµ:µ1.56µ;¡þcµµµµµµµµrise_resistanceµ:µ0.1513µ;¡þ—µµµµµµµµfall_resistanceµ:µ0.0544µ;¡þËµµµµµµµµrelated_pinµ:µ"CP"µ;¡þÿµµµµµµ}¡þ	3µµµµ}¡þ	gµµ}¡þ	¤}µµµ/*µendµofµlibraryµ*/’à^D“I501ileaf_page_string1:2-48¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³48¡,Õ²Example´µTechnologyµLibraryµwithµDelayµ¡þ€²This´µisµtheµsourceµfileµforµaµtechnologyµlibraryµthatµusesµtheµnonlinear¡þÈdelayµmodel.¡,9²-library(NLDM)´µ{¡,ntechnologyµ(cmos)µ;µµµµµµµµµµµµµµµµµµµ/*µtechnologyµ*/¡,£delay_modelµ:µtable_lookup;µµµµµµµµµµµ/*µdelayµmodelµ*/¡,default_inout_pin_capµµµµµµµµ:µµ1.0;µµ/*µdefaultµattributesµ*/¡,;default_input_pin_capµµµµµµµµ:µµ1.0;¡,idefault_output_pin_capµµµµµµµ:µµ0.0;¡,–default_fanout_loadµµµµµµµµµµ:µµ1.0;¡,k_process_pin_capµµµµµµµµµµµµ:µµ0.0;µµ/*µdelayµcalculationµscalingµfactorsµ*/¡,.k_process_wire_capµµµµµµµµµµµ:µµ0.0;¡,\k_process_wire_resµµµµµµµµµµµ:µµ1.0;¡,Šk_temp_pin_capµµµµµµµµµµµµµµµ:µµ0.0;¡,·k_temp_wire_capµµµµµµµµµµµµµµ:µµ0.0;¡,åk_temp_wire_resµµµµµµµµµµµµµµ:µµ0.0;¡,k_volt_pin_capµµµµµµµµµµµµµµµ:µµ0.0;¡,Ak_volt_wire_capµµµµµµµµµµµµµµ:µµ0.0;¡,nk_volt_wire_resµµµµµµµµµµµµµµ:µµ0.0;¡,Øtime_unitµµµµµµµµµµµµµµµµµµµµ:µ"1ns";µ/*µlibraryµunitsµ*/¡,pulling_resistance_unitµµµµµµ:µ"100ohm";¡,4voltage_unitµµµµµµµµµµµµµµµµµ:µ"1V";¡,bcurrent_unitµµµµµµµµµµµµµµµµµ:µ"1mA";¡,capacitive_load_unit(1,pf);¡,Änom_processµµµµµµµµµµµµµµµµµµ:µ1.0;¡,ònom_temperatureµµµµµµµµµµµµµµ:µ25.0;¡, nom_voltageµµµµµµµµµµµµµµµµµµ:µ5.0;¡,Šoperating_conditions(WCCOM)µ{µµµµµµµµµ/*µoperatingµconditionµmodelsµ*/¡,¸µµprocessµ:µ1.5µ;¡,åµµtemperatureµ:µ70µ;¡,	µµvoltageµ:µ4.75µ;¡,	Aµµtree_typeµ:µ"worst_case_tree"µ;¡,	n}¡,	¤operating_conditions(WCIND)µ{¡,	Ñµµprocessµ:µ1.5µ;¡,	ÿµµtemperatureµ:µ85µ;¡,
-µµvoltageµ:µ4.75µ;¡,
Zµµtree_typeµ:µ"worst_case_tree"µ;¡,
ˆ}¡,
½operating_conditions(WCMIL)µ{¡,
ëµµprocessµ:µ1.5µ;¡,µµtemperatureµ:µ125µ;’^8D“I501ileaf_page_string1:2-49¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³49¡,½²-´µµvoltageµ:µ4.5µ;¡,êµµtree_typeµ:µ"worst_case_tree"µ;¡,}¡,Moperating_conditions(BCCOM)µ{¡,{µµprocessµ:µ0.6µ;¡,¨µµtemperatureµ:µ0µ;¡,Öµµvoltageµ:µ5.25µ;¡,µµtree_typeµ:µ"best_case_tree"µ;¡,1}¡,foperating_conditions(BCIND)µ{¡,”µµprocessµ:µ0.6µ;¡,Âµµtemperatureµ:µ³40µ;¡,ïµµvoltageµ:µ5.25µ;¡,µµtree_typeµ:µ"best_case_tree"µ;¡,K}¡,€operating_conditions(BCMIL)µ{¡,®µµprocessµ:µ0.6µ;¡,Ûµµtemperatureµ:µ³55µ;¡,	µµvoltageµ:µ5.5µ;¡,7µµtree_typeµ:µ"best_case_tree"µ;¡,d}¡,™wire_load("05x05")µ{µµµµµµµµµµµµµµµµµµ/*µwireµloadµmodelsµ*/¡,Îµµresistanceµ:µ0µ;¡,üµµcapacitanceµ:µ1µ;¡,*µµareaµ:µ0µ;¡,Wµµslopeµ:µ0.186µ;¡,…µµfanout_length(1,0.39)µ;¡,³}¡,èwire_load("10x10")µ{¡,µµresistanceµ:µ0µ;¡,Cµµcapacitanceµ:µ1µ;¡,qµµareaµ:µ0µ;¡,žµµslopeµ:µ0.311µ;¡,Ìµµfanout_length(1,0.53)µ;¡,ú}¡,/wire_load("20x20")µ{¡,]µµresistanceµ:µ0µ;¡,Šµµcapacitanceµ:µ1µ;¡,¸µµareaµ:µ0µ;¡,æµµslopeµ:µ0.547µ;¡,	µµfanout_length(1,0.86)µ;¡,	A}¡,	vwire_load("30x30")µ{¡,	¤µµresistanceµ:µ0µ;¡,	Ñµµcapacitanceµ:µ1µ;¡,	ÿµµareaµ:µ0µ;¡,
-µµslopeµ:µ0.782µ;¡,
Zµµfanout_length(1,1.40)µ;¡,
ˆ}¡,
½wire_load("40x40")µ{¡,
ëµµresistanceµ:µ0µ;¡,µµcapacitanceµ:µ1µ;’8VD“I501ileaf_page_string1:2-50¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³50¡,½²-´µµareaµ:µ0µ;¡,êµµslopeµ:µ1.007µ;¡,µfanout_length(1,1.90)µ;¡,F}¡,ƒwire_load("50x50")µ{¡,±µµresistanceµ:µ0µ;¡,ßµµcapacitanceµ:µ1µ;¡,µµareaµ:µ0µ;¡,:µµslopeµ:µ1.218µ;¡,hµµfanout_length(1,1.80)µ;¡,•}¡,Ówire_load("60x60")µ{¡,µµresistanceµ:µ0µ;¡,.µµcapacitanceµ:µ1µ;¡,\µµareaµ:µ0µ;¡,Šµµslopeµ:µ1.391µ;¡,·µµfanout_length(1,1.70)µ;¡,å}¡,#wire_load("70x70")µ{¡,Pµµresistanceµ:µ0µ;¡,~µµcapacitanceµ:µ1µ;¡,¬µµareaµ:µ0µ;¡,Úµµslopeµ:µ1.517µ;¡,µµfanout_length(1,1.80)µ;¡,5µ}¡,swire_load("80x80")µ{¡, µµresistanceµ:µ0µ;¡,Îµµcapacitanceµ:µ1µ;¡,üµµareaµ:µ0µ;¡,)µµslopeµ:µ1.590µ;¡,Wµµfanout_length(1,1.80)µ;¡,…}¡,Âwire_load("90x90")µ{¡,ðµµresistanceµ:µ0µ;¡,µµcapacitanceµ:µ1µ;¡,Kµµareaµ:µ0µ;¡,yµµslopeµ:µ1.64µ;¡,§µµfanout_length(1,1.9)µ;¡,Ô}¡,	/*µDefineµoneµdimensionalµlookupµtableµofµsizeµ4µ*/¡,	@lu_table_template(trans_template)µ{¡,	mµµµvariable_1µ:µinput_net_transition;¡,	›µµµindex_1µ("0.0,µ0.5,µ1.5,µ2.0");¡,	É}¡,
/*µDefineµtemplateµofµsizeµ3x3µ*/¡,
4lu_table_template(constraint_template)µ{¡,
bµµµvariable_1µ:µconstrained_pin_transition;¡,
µµµvariable_2µ:µrelated_pin_transition;¡,
½µµµµµµindex_1µ("0.0,µ0.5,µ1.5");¡,
ëµµµµµµindex_2µ("0.0,µ2.0,µ4.0");¡,}’VD“I501ileaf_page_string1:2-51¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³51¡,½²-´µµcell(AN2)µ{µµµµµµµµµµµµµµµµµµµµµµµµµ/*µtwo³inputµANDµgateµ*/¡,êµµµµareaµ:µ2µ;¡,µµµµpin(A,B)µ{¡,Fµµµµµµdirectionµ:µinputµ;¡,sµµµµµµcapacitanceµ:µ1µ;¡,¡µµµµ}¡,Øµµµµpin(Z)µ{¡,µµµµµµdirectionµ:µoutputµ;¡,3µµµµµµfunctionµ:µ"Aµ*µB"µ;¡,aµµµµµµtiming()µ{¡,Žµµµµµµµrise_propagation(scalar)µ{¡,¼µµµµµµµµµµµvaluesµ("0.12");¡,êµµµµµµµµ}µ¡,µµµµµµµµfall_propagation(scalar)µ{¡,Eµµµµµµµµµµµvaluesµ("0.12");¡,sµµµµµµµµ}µ¡, µµµµµµµµrise_transition(trans_template)µ{¡,Îµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,üµµµµµµµµ}µ¡,*µµµµµµµµfall_transitionµ(trans_template)µ{¡,Wµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,…µµµµµµµµ}¡,³µµµµµµµµrelated_pinµ:µ"AµB"µ;¡,àµµµµµµ}¡,µµµµ}¡,<µµ}¡,©µµcell(OR2)µ{µµµµµµµµµµµµµµµµµµµµµµµµµ/*µtwo³inputµORµgateµ*/¡,×µµµµareaµ:µ2µ;¡,µµµµpin(AµB)µ{¡,2µµµµµµµdirectionµ:µinputµ;¡,`µµµµµµµcapacitanceµ:µ1µ;¡,µµ}¡,Äµµµµpin(Z)µ{¡,òµµµµµµdirectionµ:µoutputµ;¡,µµµµµµfunctionµ:µ"Aµ+µB"µ;¡,Mµµµµµµtiming()µ{¡,{µµµµµµµµrise_propagation(scalar)µ{¡,¨µµµµµµµµµµµvaluesµ("0.12");¡,Öµµµµµµµµ}µ¡,	µµµµµµµµfall_propagation(scalar)µ{¡,	1µµµµµµµµµµµvaluesµ("0.12");¡,	_µµµµµµµµ}µ¡,	µµµµµµµµrise_transition(trans_template)µ{¡,	ºµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,	èµµµµµµµµ}µ¡,
µµµµµµµµfall_transitionµ(trans_template)µ{¡,
Cµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,
qµµµµµµµµ}¡,
Ÿµµµµµµµµrelated_pinµ:µ"AµB"µ;’LD“I501ileaf_page_string1:2-52¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³52¡,½²-´µµµµµµ}¡,êµµ}¡,}¡,Sµµcell(TRI_INV2)µ{µµµµµµµµµµµµµµµµµµµµ/*µthree³stateµINVERTERµ*/¡,µµµµareaµ:µ3µ;¡,®µµµµpin(A)µ{¡,Üµµµµµµdirectionµ:µinputµ;¡,
µµµµµµcapacitanceµ:µ2µ;¡,7µµµµ}¡,rµµµµpin(E)µ{¡, µµµµµµdirectionµ:µinputµ;¡,Îµµµµµµcapacitanceµ:µ2µ;¡,ûµµµµ}¡,6µµµµpin(Z)µ{¡,dµµµµµµdirectionµ:µoutputµ;¡,’µµµµµµfunctionµ:µ"A'"µ;¡,¿µµµµµµthree_stateµ:µ"E'"µ;¡,íµµµµµµtiming()µ{¡,µµµµµµµµrise_propagation(scalar)µ{¡,Hµµµµµµµµµµµvaluesµ("0.12");¡,vµµµµµµµµ}µ¡,¤µµµµµµµµfall_propagation(scalar)µ{¡,Ñµµµµµµµµµµµvaluesµ("0.12");¡,ÿµµµµµµµµ}µ¡,-µµµµµµµµrise_transition(trans_template)µ{¡,Zµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,ˆµµµµµµµµ}µ¡,¶µµµµµµµfall_transitionµ(trans_template)µ{¡,ãµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,µµµµµµµµ}¡,?µµµµµµµµrelated_pinµ:µ"A"µ;¡,lµµµµµµ}¡,§µµµµµµtiming()µ{¡,Õµµµµµµµµtiming_typeµ:µthree_state_enable;¡,µµµµµµµµrise_propagation(scalar)µ{¡,0µµµµµµµµµµµvaluesµ("0.12");¡,^µµµµµµµµ}µ¡,Œµµµµµµµµfall_propagation(scalar)µ{¡,¹µµµµµµµµµµµvaluesµ("0.12");¡,çµµµµµµµµ}µ¡,	µµµµµµµµrise_transition(trans_template)µ{¡,	Bµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,	pµµµµµµµµ}µ¡,	žµµµµµµµµfall_transitionµ(trans_template)µ{¡,	Ëµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,	ùµµµµµµµµ}¡,
'µµµµµµµµrelated_pinµ:µ"E"µ;¡,
Tµµµµµµ}¡,
µµµµµµtiming()µ{¡,
½µµµµµµµµtiming_typeµ:µthree_state_disableµ;¡,
ëµµµµµµµµrise_propagation(scalar)µ{¡,µµµµµµµµµµµvaluesµ("0.12");’LáD“I501ileaf_page_string1:2-53¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³53¡,½²-´µµµµµµµµ}µ¡,êµµµµµµµµfall_propagation(scalar)µ{¡,µµµµµµµµµµµvaluesµ("0.12");¡,Fµµµµµµµµ}µ¡,sµµµµµµµµrise_transition(trans_template)µ{¡,¡µµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,Ïµµµµµµµµ}µ¡,üµµµµµµµµfall_transitionµ(trans_template)µ{¡,*µµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,Xµµµµµµµµ}¡,…µµµµµµµµrelated_pinµ:µ"E"µ;¡,³µµµµµµ}¡,áµµµµ}¡,µµ}¡,Eµµcell(FF1)µ{µµµµµµµµµµµµµµµµµµµµµµµµµµµ/*µDµFLIP³FLOPµ*/¡,sµµµµareaµ:µ7µ;¡, µµµµpin(D)µ{¡,Îµµµµµµdirectionµ:µinputµ;¡,üµµµµµµcapacitanceµ:µ1.3µ;¡,*µµµµµµtiming()µ{¡,Wµµµµµµµµtiming_typeµ:µsetup_risingµ;¡,…µµµµµµµµrelated_pinµ:µ"CP"µ;¡,³µµµµµµµµrise_constraint(constraint_template)µ{¡,àµµµµµµµµµµµvaluesµ("0.0,µ0.13,µ0.19",µ\¡,µµµµµµµµµµµµµµµµµµµ"0.21,µ0.23,µ0.41",µ\¡,<µµµµµµµµµµµµµµµµµµµ"0.33,µ0.37,µ0.50");¡,iµµµµµµµµ}¡,—µµµµµµµµfall_constraint(constraint_template)µ{¡,Åµµµµµµµµµµµvaluesµ("0.0,µ0.14,µ0.20",µ\¡,òµµµµµµµµµµµµµµµµµµµ"0.22,µ0.24,µ0.42",µ\¡, µµµµµµµµµµµµµµµµµµµ"0.34,µ0.38,µ0.51");¡,Nµµµµµµµµ}¡,{µµµµµµ}¡,²µµµµµµtiming()µ{¡,àµµµµµµµµtiming_typeµ:µhold_risingµ;¡,µµµµµµµµrelated_pinµ:µ"CP"µ;¡,;µµµµµµµµrise_constraint(constraint_template)µ{¡,iµµµµµµµµµµµvaluesµ("0.0,µ0.13,µ0.19",µ\¡,–µµµµµµµµµµµµµµµµµµµ"0.21,µ0.23,µ0.41",µ\¡,Äµµµµµµµµµµµµµµµµµµµ"0.33,µ0.37,µ0.50");¡,òµµµµµµµµ}¡,	µµµµµµµµfall_constraint(constraint_template)µ{¡,	Mµµµµµµµµµµµvaluesµ("0.0,µ0.14,µ0.20",µ\¡,	{µµµµµµµµµµµµµµµµµµµ"0.22,µ0.24,µ0.42",µ\¡,	¨µµµµµµµµµµµµµµµµµµµ"0.34,µ0.38,µ0.51");¡,	Öµµµµµµµµ}¡,
µµµµµµ}¡,
1µµµµ}¡,
hµµµµpin(CP)µ{¡,
–µµµµµµdirectionµ:µinputµ;¡,
Äµµµµµµcapacitanceµ:µ1.3µ;’ágD“I501ileaf_page_string1:2-54¥	öä¥	öä¡8Á²âLibrary´µDevelopmentµProcedure¡.2³54¡,½²-´µµµµµµmin_pulse_width_highµ:µ1.5µ;¡,êµµµµµµmin_pulse_width_lowµµ:µ1.5µ;¡,µµµµ}¡,Sµµµµstatetableµ("DµCP",µ"IQµIQN")µ{¡,µµµµµµtableµ:µ"L/HµµRµµ:µ³µ³µ:µL/HµH/L,\¡,®µµµµµµµµµµµµµµµ³µµµ~Rµ:µ³µ³µ:µNµµN"µ;¡,Üµµµµ}¡,µµµµpin(Q)µ{¡,Eµµµµµµdirectionµ:µoutputµ;¡,rµµµµµµinverted_outputµ:µfalse;¡, µµµµµµinternal_nodeµ:µ"IQ"µ;¡,Îµµµµµµtiming()µ{¡,ûµµµµµµµµtiming_typeµ:µrising_edgeµ;¡,)µµµµµµµµrise_propagation(scalar)µ{¡,Wµµµµµµµµµµµvaluesµ("0.12");¡,„µµµµµµµµ}µ¡,²µµµµµµµµfall_propagation(scalar)µ{¡,àµµµµµµµµµµµvaluesµ("0.12");¡,µµµµµµµµ}µ¡,;µµµµµµµµrise_transition(trans_template)µ{¡,iµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,–µµµµµµµµ}µ¡,Äµµµµµµµµfall_transitionµ(trans_template)µ{¡,òµµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,µµµµµµµµ}¡,Mµµµµµµµµrelated_pinµ:µ"CP"µ;¡,{µµµµµµ}¡,¨µµµµ}¡,ãµµµµpin(QN)µ{¡,µµµµµµdirectionµ:µoutputµ;¡,?µµµµµµinternal_nodeµ:µ"IQN"¡,lµµµµµµinverted_outputµ:µtrue;¡,šµµµµµµtiming()µ{¡,Èµµµµµµµµtiming_typeµ:µrising_edgeµ;¡,õµµµµµµµµrise_propagation(scalar)µ{¡,#µµµµµµµµµµµvaluesµ("0.12");¡,Qµµµµµµµµ}µ¡,~µµµµµµµµfall_propagation(scalar)µ{¡,¬µµµµµµµµµµµvaluesµ("0.12");¡,Úµµµµµµµµ}µ¡,	µµµµµµµµrise_transition(trans_template)µ{¡,	5µµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,	cµµµµµµµµ}µ¡,	‘µµµµµµµµfall_transitionµ(trans_template)µ{¡,	¾µµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡,	ìµµµµµµµµ}¡,
µµµµµµµµrelated_pinµ:µ"CP"µ;¡,
Gµµµµµµ}¡,
uµµµµ}¡,
£µµ}¡,
Þ}µµµ/*µendµofµlibraryµ*/’gÇD“I501ileaf_page_string1:2-55¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öäÃÁÊË¡Ä,X,B¡Ä,B	cB¡Ä	cB	cX¡Ä	cX,XÆÃÁÊËÃ¡ÄþBÊBÆÃ¥	öä¥	öä¡0Á²Library´µDevelopmentµProcedure¡Ô¤ÿ¤2³55¡,Õ²Task´µ6µµCompilingµtheµLibrary¡þ˜²References¡þ²For´µinformationµaboutµcompilingµtheµlibrary,µsee¡þ‰²S¡X‰²Chapterµ3,µUsingµtheµLibraryµCompilerµShellµInterface"¡þí²S¡Xí²Chapterµ4,µUsingµtheµLibraryµCompilerµGraphicalµInterface"¡þ’²Procedure¡þ²CompileµtheµlibraryµusingµtheµLibraryµCompilerµcommandsµatµthe¡þ[commandµinterfaceµ(lc_shell)µorµtheµgraphicalµuserµinterface.¡þ²In´µlc_shellµ¡þy²1.¡XyRead´µtheµlibraryµsourceµfileµintoµtheµLibraryµCompilerµprogram.¡þÙ²lc_shell>´µ²)read_libµ~synopsys/libraries/tutorial.lib¡þQ²2.¡XQSave´µtheµlibraryµmemoryµfileµtoµaµdiskµfileµinµeitherµSynopsys¡X—internalµdatabaseµformatµ(.db)µorµVHDLµformat.¡”ñ²-lc_shell>´µ²Cwrite_libµ³formatµdbµ³output¡”~synopsys/libraries/example.db¡þ²In´µtheµGraphicalµInterface¡þ	
²1.¡X	
Read´µtheµlibraryµsourceµfileµintoµtheµLibraryµCompilerµprogram.¡X	nEnterµtheµread_libµcommandµonµtheµcommandµlineµorµuseµdialog¡X	µfromµtheµpull³downµmenuµFileµ>µRead.¡þ
#2.¡X
#SaveµtheµlibraryµmemoryµfileµtoµaµdiskµfileµinµeitherµSynopsys¡X
jinternalµdatabaseµformatµ(.db)µorµVHDLµformat.¡X
ÎEnterµtheµwrite_libµcommandµonµtheµcommandµlineµorµuseµdialog¡Xfromµtheµpull³downµmenuµFileµ>µWrite.’ÇD“I501ileaf_page_string1:2-56¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,x,b¡Ä,b	cb¡Ä	cb	cx¡Ä	cx,xÆÃÁÊËÃ¡ÄþbÊbÆÃ¥	öäÃÁÊË¡Ä,¡,‹¡Ä,‹	c‹¡Ä	c‹	c¡¡Ä	c¡,¡ÆÃÁÊËÃ¡Äþ‹Ê‹ÆÃ¥	öä¥	öä¡8Á²Library´µDevelopmentµProcedure¡.2³56¡,Õ²Task´µ7µµManagingµtheµLibrary¡þ²²References¡þ?²Refer´µtoµtheseµchaptersµforµinformationµaboutµmanagingµtheµlibrary:¡þ¸²S¡X¸²Chapterµ3,µUsingµtheµLibraryµCompilerµShellµInterface"¡þ#²S¡X#²Chapterµ4,µUsingµtheµLibraryµCompilerµGraphicalµInterface"¡þÛ²Procedure¡þh²ManageµtheµlibrariesµwithµtheµotherµLibraryµCompilerµcommandsµat¡þ±theµcommandµinterfaceµ(lc_shell)µorµtheµgraphicalµuserµinterface.¡þúTheseµcommandsµperformµtheµfollowingµoperations.¡þrreadµ¡X»Loadsµaµpreviouslyµsavedµ.dbµlibraryµintoµtheµLibraryµCompiler¡Xprogram¡þdupdate_lib¡X­Addsµnewµgroupsµ(cells,µoperatingµconditions,µtiming³range,¡Xöscalingµfactors,µbusµtypeµdefinitions,µinterconnectµwireµload)µto¡X>theµexistingµlibrary.¡þŸreport_libµ¡XèGeneratesµaµreportµofµtheµcontentsµofµeitherµaµsourceµlibraryµ(.lib)¡X	0orµcompiledµlibraryµ(.db).¡þ	‘compare_libµ¡X	ÚComparesµaµsymbolµlibraryµagainstµtheµcorresponding¡X
"technologyµlibraryµforµconsistency.¡þ
ƒlist¡X
ÌDisplaysµinformationµ(nameµinµmemory,µvariableµvalues,¡Xlicenses)µforµresidentµlibraries.’,D“I501ileaf_page_string1:2-57¥	öä¥	öä¡0Á²âLibrary´µDevelopmentµProcedure¡Ô¤ÿ¤2³57¡þÉ²remove_lib´µ¡XRemovesµaµlibraryµfromµmemory.¡þxencrypt_lib¡XÁSecuresµaµVHDLµsourceµlibraryµfile.¡þ(add_module¡XpAddsµonlyµmemoryµmodulesµtoµanµexistingµlibrary.’,ÐOPS m:m:D€‚Document:3shellÿ‚Last saved on:Tue, Dec 9, 1997 17:53:02ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:timsps10b±:*#'!!!(!!*#	*!!!!!!****° wst:helvps20b± :44444444444444444444444444444444*..J< 0...........0003Q<<<<73A<.<3E<A7A<73<7N7730..3.3.33.J3333 .3.A..*  0*444444444444444444444444444444444....4.4.444444444.44.4443<<<<<<S<77774<AAAAA4A<<<<443......J.....433333343333344.4.*S.44S444444444..*444444S444444444444444.4444S444N°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Lwst:courps11±L:.°Nwst:courps12bi±N:                                                                                          2                                       °}wst:helvps16bi±}:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåšåå®åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’UïD“I501ileaf_page_string1:3-1¥	öä² â¡º¡Ïº¡žº¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¾3³1¡,m²².3â²/¥	öä¡Õm²â¡,p²	Using´µtheµLibraryµCompilerµShellµInterface¡ç²¥	öäÁÊËÃ¡Ä,ËÊËÆÃ¡	öç¡þ“The´µtwoµmethodsµofµgainingµaccessµtoµtheµLibraryµCompilerµprogram¡þÜare:¡þ^²S¡X^²Usingµtheµlc_shellµcommandµlineµinterface¡þÏ²S¡XÏ²UsingµtheµLibraryµCompilerµgraphicalµinterface¡þ\Thisµchapterµdescribesµtheseµsubjects:¡þÞ²S¡XÞ²Commandµinterface¡þ	O²S¡X	O²Llibraryµfilesµandµmemoryµfiles¡þ	Á²S¡X	Á²Usingµsearch_path¡þ
2²S¡X
2²Commandµsyntax¡þ
£²S¡X
£²Usingµcommands¡þ²S¡X²Readingµinµlibraries’ïD“I501ileaf_page_string1:3-2¥	öäÃËÁâÊË¡Ä,,‡¡Ä,‡	c‡¡Ä	c‡	c¡Ä	c,ÆÃÁÊËÃ¡Ä,‡Ê‡ÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³2¡þÉ²²S¡XÉ²Writing´µlibraryµfiles¡þ<²S¡X<²Loadingµcompiledµlibraries¡þ®²S¡X®²Addingµtoµexistingµlibraries¡þ!²S¡X!²Reportingµlibraryµinformation¡þ“²S¡X“²Listingµresidentµlibraries¡þ²S¡X²Comparingµlibraries¡þx²S¡Xx²Removingµlibrariesµfromµmemory¡þê²S¡Xê²EncryptingµVHDLµsourceµlibraries¡þ]²S¡X]²Usingµshellµcommands¡þÏ²S¡XÏ²Variables¡þ_Forµadditionalµinformationµonµtheµcommands,µreferµtoµthe²'´µ²Synopsys¡þ¨Design´µCompilerµreferenceµmanualsµor²&µ²Synopsysµonlineµman¡þðpages.¡þ‘ReferµtoµChapterµ4,µUsingµtheµLibraryµCompilerµGraphical¡þÙInterface,"²&µ²forµinformationµaboutµtheµgraphicalµuserµinterface.¡,Ý²Using´µtheµCommandµInterface¡þ	š²Like´µotherµcommand³orientedµinterfaces,µlc_shellµhasµboth¡þ	ãcommandsµ(directives)µandµvariablesµ(symbolsµorµnamedµvalues).¡þ
ƒUseµlc_shellµcommandsµtoµperformµspecificµactionsµonµaµlibrary.µFor¡þ
Ìexample,µuseµtheµread_libµcommandµtoµcompileµaµlibraryµsourceµfile¡þintoµtheµLibraryµCompilerµprogram.’û4D“I501ileaf_page_string1:3-3¥	öäÃËÁâÊË¡Ä,!,¡Ä,	c¡Ä	c	c!¡Ä	c!,!ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¾3³3¡þÉ²Use´µlc_shellµvariablesµtoµholdµoneµorµmoreµvalues,µsuchµasµthe¡þmodelingµoptionµorµtheµsearchµpath.¡þ¢ToµuseµLibraryµCompiler,µyouµmustµknowµhowµtoµdoµtheseµtasks,¡þëwhichµareµdescribedµinµtheµfollowingµsections:¡þc²S¡Xc²Startµtheµlc_shellµLibraryµCompilerµcommand³lineµinterface.¡þÎ²S¡XÎ²Useµaµsimpleµsequenceµofµlc_shellµcommands.¡þ9²S¡X9²Interruptµanµlc_shellµcommand.¡þ£²S¡X£²Exitµtheµlc_shellµinterface.¡þ[²Starting´µtheµCommandµInterface¡þè²Make´µsureµtheµlc_shellµprogramµisµinstalledµsoµthatµyouµcanµaccessµit¡þ1fromµyourµUNIXµprompt.µInµtheµfollowingµexamples,µtheµpercentµsign¡þy(%)µrepresentsµtheµgenericµUNIXµsystemµprompt.¡þ
Toµstartµlc_shellµatµyourµUNIXµprompt,µenterµthisµcommand:¡þ²%´µ²)lc_shellµ¡þ²Figure 3³1´µshowsµtheµdisplayedµtext.¡,­²&Figure 3³1³lc_shellµStartupµDisplay¡w²¥	öäÒÔyÝ4‹Œ)ÿÿÿÿÿÿÿÿÿ¡’û4~D“I501ileaf_page_string1:3-4¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³4¡þÉ²Note:²¡X²If´µyouµcannotµstartµlc_shell,µreferµtoµtheµSynopsysµInstallation¡XZReferenceµManualµforµyourµhardwareµplatformµandµinstallµyour¡X£systemµproperlyµbeforeµcontinuing.¡þQTheµlc_shellµinvocationµcommandµhasµseveralµoptions:¡þÜ³f¡X%Executesµaµscriptµfileµ(fileµofµlc_shellµcommands)µandµstartsµthe¡Xnlc_shellµinterface:¡”Õ²%´µ²)lc_shellµ-fµscript_file¡þT²³no_init¡XPrevents´µSynopsysµLibraryµCompilerµsetupµfilesµ(describedµlater¡Xåinµthisµsection)µfromµbeingµread:¡þO³no_initµ³fµcommand_log.file¡X˜Useµthisµoptionµonlyµwhenµyouµhaveµaµcommandµlogµorµother¡Xáscriptµfileµthatµyouµwantµtoµincludeµtoµreproduceµaµprevious¡X)LibraryµCompilerµsession.¡þ”³xµcommand_string¡XÜExecutesµtheµlc_shellµstatementµinµcommand_stringµbefore¡X%displayingµtheµinitialµlc_shellµprompt.µMultipleµstatementsµcanµbe¡Xnentered.µSeparateµeachµstatementµbyµaµsemicolon.µForµexample:¡”Õ²%´µ²)lc_shellµ-xµ"shµdate;µechoµhello"¡þ	u²You´µcanµkeepµcommonlyµusedµsetsµofµlc_shellµcommandsµinµaµscript¡þ	¾fileµandµexecuteµthemµusingµtheµ³fµoption.µThisµexampleµredirects¡þ
outputµgeneratedµbyµlc_shellµtoµaµfileµnamedµoutput_file,µwhichµyou¡þ
Ocanµreadµlater:¡þ
Ø²%´µ²)lc_shellµ-fµcommon.scriptµ>&µoutput_file’~œD“I501ileaf_page_string1:3-5¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¾3³5¡þÉ²Note:²¡X²The´µpipeµcharacterµ(|)µhasµnoµmeaningµinµlc_shell.µUseµthe¡XZbackslashµtoµescapeµdoubleµquotesµwhenµexecutingµaµUNIX¡X£command.µForµexample,µtheµfollowingµcommandµrequires¡Xìbackslashµcharactersµbeforeµtheµdoubleµquotesµtoµprevent¡X4LibraryµCompilerµfromµendingµtheµcommandµprematurely:¡Xž²lc_shell>´µ²)shµ"grepµ\"textstringµ\"µmy_file"²¡þS²Understanding´µtheµCommandµLog¡þÐ²The´µcommandµlogµrecordsµallµlc_shellµcommandsµprocessedµinµa¡þLibraryµCompilerµsessionµincluding²&µ²setupµfile²&µ²commandsµand¡þavariableµassignments.¡þâAfterµaµLibraryµCompilerµsession,µuseµtheµcommandµlogµasµaµrecord¡þ+ofµlibraryµexploration.µYouµcanµalsoµeditµaµcommandµlogµtoµproduceµa¡þsscriptµforµaµparticularµsession.¡þôTheµnameµofµtheµcommandµlogµfileµisµdeterminedµbyµthe¡þ=command_log_fileµvariable.µTheµdefaultµcommandµlogµnameµis¡þ…./lc_command.log.µAnµlc_shellµsessionµcreatesµaµfileµnamed¡þÎlc_command.logµinµyourµdirectory.µItµalsoµoverwritesµanyµexisting¡þlc_command.logµcurrentlyµinµyourµdirectory.¡þ—Setµtheµcommand_log_fileµvariableµinµaµsetupµfileµsinceµitµdoesµnot¡þàtakeµeffectµifµyouµchangeµitµinteractivelyµduringµaµLibraryµCompiler¡þ	(session.µSeeµtheµnextµsection,µUsingµSetupµFiles,"µforµmore¡þ	qinformation.¡þ	òNote:²¡X
:²IfµyouµexperienceµproblemsµwhenµyouµuseµLibraryµCompiler,¡X
ƒsaveµtheµcommandµlogµfileµforµreferenceµwhenµyouµcontact¡X
ÌSynopsys.µMoveµorµrenameµtheµcommandµlogµfileµtoµpreventµit¡Xfromµbeingµoverwrittenµbyµtheµnextµlc_shellµsession.’œíD“I501ileaf_page_string1:3-6¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³6¡þÏ²Using´µSetupµFiles¡þn²The´µdefaultµvaluesµofµmanyµLibraryµCompilerµvariablesµareµsetµin¡þ¶Synopsysµsetupµorµinitializationµfiles.µTheµsetupµfilesµareµscriptµfiles¡þÿthatµareµautomaticallyµprocessedµbyµlc_shellµduringµinitialization,¡þHunlessµyouµuseµtheµ³no_initµoption.µTheµnameµofµtheµsetupµfileµis¡þ.synopsys_lc.setup.¡þ3Note:²¡X|²YouµcannotµincludeµUNIXµenvironmentµvariablesµ(suchµas¡XÄ$SYNOPSYS)µinµtheµ.synopsys_lc.setupµfile.¡þgTheµsetupµfilesµresideµinµoneµofµthreeµtypesµofµdirectoriesµreadµby¡þ°LibraryµCompilerµinµtheµfollowingµorder:¡þ41.¡X4TheµSynopsysµrootµdirectory¡þ¨2.¡X¨Yourµhomeµdirectory¡þ3.¡XTheµdirectoryµwhereµyouµstartµLibraryµCompilerµ(theµcurrent¡Xbdirectory)¡þôIfµtheµsetupµfilesµshareµcommandsµorµvariables,µvaluesµinµtheµlast¡þ<setupµfileµreadµoverrideµtheµvaluesµinµpreviouslyµreadµfiles.’íöD“I501ileaf_page_string1:3-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ž,ˆ¡Ä,ˆ	cˆ¡Ä	cˆ	cž¡Ä	cž,žÆÃÁÊËÃ¡ÄþˆÊˆÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¾3³7¡þÏ²Using´µlc_shellµCommands¡þZ²To´µcompileµaµtechnologyµlibraryµsourceµfileµnamedµmy_library.libµinto¡þ¢aµSynopsysµdatabase,µfollowµtheseµsteps:¡þ1.¡XStartµtheµlc_shellµinterface,µasµdescribedµinµthisµchapter.¡X²%²)´µlc_shell¡X³²LibraryµCompilerµ(TM)¡XçInitializing...¡Xlc_shell>¡þ•²2.¡X•Read´µinµtheµlibraryµsourceµfileµ(translateµitµintoµaµSynopsys¡XÛdatabaseµandµstoreµtheµdatabaseµinµcomputerµmemory).¡XA²lc_shell>²)´µread_libµmy_library.lib¡þ»²3.¡X»Write´µtheµlibraryµtoµaµUNIXµfile.¡X ²lc_shell>²)´µwrite_libµ-outputµmy_library.dbµmy_lib¡þš²4.¡XšReceive´µtheµdesiredµlibraryµreports.¡X²lc_shell>²)´µreport_libµmy_lib¡þy²5.¡XyExit´µtheµLibraryµCompilerµprogram.¡Xß²lc_shell>²)´µexit¡X²Thankµyou...¡þØ²Interrupting´µCommands¡þ	c²If´µyouµenterµtheµwrongµoptionsµforµaµcommandµorµenterµtheµwrong¡þ	¬command,µyouµcanµinterruptµcommandµprocessing.µTypeµthe¡þ	ôinterruptµcharacter,µControl³c.µ²¡þ
ƒ²Theµtimeµitµtakesµforµtheµcommandµtoµrespondµtoµanµinterruption¡þ
Ìdependsµonµtheµsizeµofµtheµlibraryµandµtheµcommandµbeing¡þinterrupted.’ö©D“I501ileaf_page_string1:3-8¥	öäÃËÁâÊË¡Ä,P,:¡Ä,:	c:¡Ä	c:	cP¡Ä	cP,PÆÃÁÊËÃ¡Äþ:Ê:ÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³8¡þÉ²If´µanµincludeµscriptµfileµisµbeingµprocessedµandµyouµinterruptµoneµof¡þitsµcommands,µtheµscriptµprocessingµitselfµisµinterrupted.µNoµfurther¡þZscriptµcommandsµareµprocessedµandµcontrolµreturnsµtoµlc_shell.¡þÛIfµyouµenterµControl³cµthreeµtimesµbeforeµaµcommandµrespondsµto¡þ#yourµinterruption,µlc_shellµitselfµisµinterruptedµandµexitsµwithµthe¡þlfollowingµmessage:¡þÕ²Information:´µProcessµterminatedµbyµinterrupt.¡þŠ²Leaving´µtheµCommandµInterface¡þ²You´µcanµuseµeitherµtheµquitµorµtheµexitµcommandµtoµleaveµtheµLibrary¡þOCompilerµprogramµandµreturnµtoµtheµoperatingµsystem:¡þ¹²lc_shell>²)´µexitµ¡þí²Thankµyou...¡þ!%¡þª²or¡þ²lc_shell>²)µquitµ¡þH²Thankµyou...¡þ|%¡þ²You´µcanµalsoµexitµlc_shellµbyµtypingµtheµendµofµfileµ(EOF)µcharacter,¡þNControl³d:¡þ·²lc_shell>²)´µ^d¡þë²Thankµyou...¡þ	%¡þ	©²Note:²¡X	ò²The´µlc_shellµprogramµdoesµnotµautomaticallyµsaveµinformation¡X
:fromµtheµsession,µexceptµwhenµtheµcommand_logµvariableµisµset.¡X
ƒIfµyouµhaveµsetµtheµcommand_logµvariable,µtheµcommandµlogµis¡X
Ìwrittenµtoµtheµ./lc_command.logµfileµorµtoµtheµfileµspecifiedµbyµthe¡Xcommand_log_fileµvariable.’©ËD“I501ileaf_page_string1:3-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¾3³9¡,Õ²Describing´µLibraryµFilesµandµMemoryµFiles¡þ”²ASIC´µlibrariesµareµdescribedµbyµlibraryµsourceµfiles,µwhichµareµUNIX¡þÝtextµfiles.µForµexample,¡þ^²/usr/local/libraries/my_library.lib¡þù²WhenµyouµreadµaµlibraryµintoµLibraryµCompiler¡þ~²S¡X~²TheµfileµisµtranslatedµintoµSynopsysµdatabaseµ(.db)µformat.¡þñ²S¡Xñ²LibraryµCompilerµstoresµeachµlibraryµinµaµmemoryµfileµinµthis¡X8format¡X¨²pathname/filename:library¡X%²where¡X¨³¡”¨pathnameµisµtheµdirectoryµfromµwhichµtheµsourceµfileµwasµread.¡X³¡”filenameµisµtheµnameµofµtheµdefaultµdiskµfilenameµforµthe¡”bcompiledµlibrary.¡XÖ³¡”Ölibraryµisµtheµuser³specifiedµnameµofµtheµlibrary.¡þgTheµdefaultµdiskµfilenameµforµaµlibraryµisµtheµlibraryµnameµwithµthe¡þ°suffixµ.dbµforµaµtechnologyµlibrary,µorµtheµsuffixµ.sdbµforµaµsymbol¡þølibrary.µForµexample,µtheµmemoryµfilenameµforµaµtechnologyµlibrary¡þ	Anamedµmy_libµis¡þ	Ã²/usr/local/libraries/my_lib.db:my_lib’Ë`D“I501ileaf_page_string1:3-10¥	öäÃËÁâÊË¡Ä,å,Ï¡Ä,Ï	cÏ¡Ä	cÏ	cå¡Ä	cå,åÆÃÁÊËÃ¡Ä,ÏÊÏÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³10¡þÉ²Two´µdifferencesµexistµbetweenµUNIXµlibraryµsourceµfilesµandµLibrary¡þCompilerµmemoryµfiles:¡þ ²S¡X ²Libraryµsourceµfilesµexistµinµyourµhostµcomputer'sµUNIXµfile¡Xçsystem;µLibraryµCompilerµmemoryµfilesµexistµinµtheµworking¡X-memoryµofµtheµLibraryµCompilerµprogram.¡þ¨²S¡X¨²LibraryµsourceµfilenamesµareµcompleteµUNIXµfilenames;µLibrary¡XïCompilerµmemoryµfilenamesµareµcomposedµofµtheµUNIX¡X5pathnameµandµaµlibraryµname.µYouµcanµspecifyµaµcompiled¡X|libraryµbyµeitherµitsµfullµmemoryµfilenameµorµitsµlibraryµnameµifµthe¡XÂlibraryµnameµisµuniqueµinµmemory.¡þ`Theµlistµ³librariesµcommandµlistsµallµlibrariesµinµmemoryµandµtheir¡þ©memoryµfilenames:¡þ4²lc_shell>´µ²)listµ-libraries¡þs²Libraryµµµ¡“sFileµµµµµ¡(sPath¡þ§------µµµ¡“§----µµµµµ¡(§----¡þÛµµAµµµµµµ¡“ÛA.dbµµµµ¡¡Û/user1/libraries¡þµµBµµµµµµµ¡“B.dbµµµ¡¡/home/libraries¡,%²Using´µsearch_path¡þø²If´µaµfilenameµhasµaµrelativeµpathnameµ(itµdoesµnotµstartµwithµoneµof¡þ	@theµdirectoryµprefixes²&µ²/µ,µµ./µ,µµ../µ,µorµµ~),µLibraryµCompilerµsearches¡þ	‰forµthatµfileµinµtheµdirectoriesµspecifiedµbyµtheµsearch_path.µThe¡þ	Òsearch_pathµcontainsµanµorderedµlistµofµdirectories.µLibraryµCompiler¡þ
readsµtheµfileµfromµtheµfirstµdirectoryµinµwhichµitµisµfound.¡þ
ÌTheµsearch_pathµvariableµisµdescribedµinµtheµonlineµhelpµ(help¡þsearch_path).’`gD“I501ileaf_page_string1:3-11¥	öäÃËÁâÊË¡Ä,[,E¡Ä,E	cE¡Ä	cE	c[¡Ä	c[,[ÆÃÁÊËÃ¡Ä,EÊEÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³11¡þÉ²Use´µtheµwhichµcommandµtoµseeµwhereµaµfileµwithµaµrelativeµname¡þcanµbeµfoundµinµtheµsearch_pathµdirectories.¡þƒ²lc_shell>´µ²)whichµmy_library.db¡þ½²{/usr/libraries/example/my_library.db}¡,›²Explaining´µCommandµSyntax¡þ;²An´µlc_shellµcommandµhasµaµnameµandµmayµhaveµoptionsµor¡þ„arguments.¡þùcommandµname¡XATheµnameµofµaµcommand,µforµexample,µexit.¡þ options¡XéOptionµnamesµareµprefixedµbyµaµhyphenµ(³).µAµcommandµcan¡X1haveµzeroµorµmoreµoptions.µForµexample,µtheµreadµcommandµhas¡Xznoµoptions,µbutµtheµlistµcommandµhasµmanyµoptions.¡XÙYouµcanµabbreviateµ(truncate)µoptionµnamesµasµlongµasµthe¡X!abbreviationµisµuniqueµtoµtheµrelatedµcommand.µForµexample,µthe¡Xjlistµcommandµhasµbothµ³librariesµandµ³licensesµoptions.µThe¡X³minimumµabbreviationsµforµtheseµoptionsµareµ³libµandµ³lic.¡þarguments¡XZCommand³specificµvalues.µBothµcommandsµandµoptionsµcan¡X£haveµarguments.µForµexample,µtheµreadµcommandµhasµno¡Xëoptions,µbutµhasµoneµargumentµ(theµfileµname).µTheµwrite_lib¡X	4commandµhasµtwoµoptions:µ³formatµandµ³output.µTheµ³formatµand¡X	}³outputµoptionsµeachµrequireµanµargumentµ(namely,µtheµformat¡X	Åandµtheµfilename).¡þ
:Note:²¡X
ƒ²TheµLibraryµCompilerµtoolsµareµcaseµsensitive.µForµexample,µthe¡X
Ìfollowingµtwoµcommandsµareµnotµequivalent:µcompare_libµlib¡XLIB1µandµcompare_libµlibµlib1.’gÏD“I501ileaf_page_string1:3-12¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³12¡þÉ²Example 3³1´µshowsµaµcommandµwithµitsµname,µoptions,µand¡þargumentsµlabeled.¡,Ã²&Example 3³1³TypicalµCommand¡þ²¥	öäÃËÁÊË¡Ä–í–¡Äí–íâ¡Äíââ¡Äâ–âãÇÆÃ¡&²²$âCommand¡&ÜnameÃ¡ÄZ–Ä–¡ÄÄ–Ä¡ÄÄZ¡ÄZZ–âÇÆÃ¡f²âCommand´
µoption¡fÜandµoption¡fargumentÃ¡Ä–î–¡Äî–îâ¡Äîââ¡Äâ–âÇÆÃ¡"²âCommand¡"ÜargumentÃ¡Äýññ¡ÄñU¡ÄUýU¡ÄýUýñâÇÆÃ¡	²âlc_shell>´µ²)µµwrite_libµµµµ-formatµvhdl¡TIexampleÁ	Ê	ËÃ¡Ä
'²'ÆÃÁÊËÃ¡Ä]']’ÆÃÃÁÊË¡Ä!œ¶œ¡Ä¶œ¶À¡Ä¶À!À¡Ä!À!œâÇÆÃ¡-¸²$âPromptÁÊËÃ¡Ä‰(‰”ÆÃÁ	Ê	ËÃ¡ÄŸ'G'ÆÃÁÊËÃ¡Äò'ò’ÆÃÁ	Ê	ËÃ¡Ä+µ+ÆÃÁÊËÃ¡Ä`+`–ÆÃÁ	Ê	ËÃ¡ÄA#é#ÆÃ²¡¡þÏ²After´µprocessingµeachµcommand,µlc_shellµreturnsµaµstatusµvalueµthat¡þisµtheµvalueµofµtheµcommand.µThisµstatusµvalueµisµalsoµsetµinµlc_shell¡þ`variableµlc_shell_statusµ(seeµUsingµControlµFlowµCommands"µlater¡þ©inµthisµchapter).¡þLWhenµyouµenterµaµlongµcommandµwithµmanyµoptionsµand¡þ”arguments,µyouµcanµsplitµitµacrossµoneµorµmoreµlinesµbyµusingµthe¡þÝcontinuationµcharacter²&,²µbackslashµ(\).µForµexample,¡þ^²lc_shell>´µ²)read_libµ"/usr/home/libraries/"µ+µ\¡þ’"my_library.lib"¡þ-²Refer´µalsoµtoµtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µfor¡þvtheµsyntaxµandµdescriptionµofµallµLibraryµCompilerµcommands.’Ï	%D“I501ileaf_page_string1:3-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ü,æ¡Ä,æ	cæ¡Ä	cæ	cü¡Ä	cü,üÆÃÁÊËÃ¡ÄþæÊæÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³13¡þÏ²Arithmetic,´µString,µandµListµOperators¡þ\²The´µlc_shellµprogramµprovidesµaµstringµ(list)µoperatorµyouµcanµuse¡þ¥withµcommandµarguments.µTable 3³1µshowsµthisµoperator.¡,B²&Table 3³1³StringµandµListµConcatenationµOperator¡þ¨²¥	öä¡Ð²"OperatorÁã¡ÃÄþ„ÿ„ÿûþûþ„Ç¡ÃÄþ„)„)ŒþŒþ„Ç²¡*¨¥	öä¡GÐ²"Example¡ÃÄ*„„Œ*Œ*„Ç²¡‚¨¥	öä¡ŸÐ²"Result¡ÃÄÚ„Û„ÛûÚûÚ„Ç¡ÃÄ‚„Û„ÛŒ‚Œ‚„Ç²¡Ú¨¡þ ¥	öä¡@²+¡ÃÄþüÿüÿcþcþüÇ¡ÃÄþü)ü)ýþýþüÇ²¡* ¥	öä¡G@²string"´µ+µstring"¡ÃÄ*üüý*ý*üÇ²¡‚ ¥	öä¡Ÿ@²stringµstring"¡ÃÄÚüÛüÛcÚcÚüÇ¡ÃÄ‚üÛüÛý‚ý‚üÇ²¡Ú ¡þˆ¥	öä¡¨²+µµ¡ÃÄþdÿdÿËþËþdÇ²¡*ˆ¥	öä¡G¨²{aµbµc}µ+µd"²¡‚ˆ¥	öä¡Ÿ¨²{aµbµcµd}¡ÃÄÚdÛdÛËÚËÚdÇ²¡Úˆ¡þð¥	öä¡²+µ¡ÃÄþÌÿÌÿ3þ3þÌÇ¡ÃÄþ,),)4þ4þ,Ç²¡*ð¥	öä¡G²{aµbµc}µ+µ{dµe}¡ÃÄ*,,4*4*,Ç²¡‚ð¥	öä¡Ÿ²{aµbµcµdµe}¡ÃÄÚÌÛÌÛ3Ú3ÚÌÇ¡ÃÄ‚,Û,Û4‚4‚,Ç²¡Úð¡þ©²String´µandµlistµoperatorsµcanµalsoµbeµusedµwithµvariables:¡þ²lc_shell>´µ²)my_libµ=µ"my_library.db"¡þZ²Warning:µµDefiningµnewµvariableµ'my_lib'µmy_library.db¡þÐlc_shell>µ²)"readµ/usr/home/libraries/"µ+µmy_lib¡þ²Loadingµdbµfileµ'/usr/home/libraries/my_library.db'¡þlc_shell>µ²)listµsearch_path¡þ¼²search_pathµ=µ{µ/home,µ/libraries/filesµ}¡þ3lc_shell>µ²)search_pathµ=µ/usr/librariesµ+µsearch_path¡þn²{µ/usr/libraries,µ/home,µ/libraries/filesµ}¡þ	6²Redirecting´µCommandµOutputµµ¡þ	Ä²To´µsendµtheµoutputµofµanµlc_shellµcommandµtoµaµfileµinsteadµofµto¡þ
standardµoutputµ(usuallyµtheµscreen),µuseµtheµ>µoperator.¡þ
‚²(command²´µ>µ²(file¡þ²If´µfileµdoesµnotµexist,µitµisµcreated.µIfµitµdoesµexist,µitµisµoverwritten.’	%D“I501ileaf_page_string1:3-14¥	öäÃËÁâÊË¡Ä,Š,t¡Ä,t	ct¡Ä	ct	cŠ¡Ä	cŠ,ŠÆÃÁÊËÃ¡Ä,tÊtÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³14¡þÉ²For´µexample,µtoµredirectµaµreportµtoµaµfile,µenter¡þV²lc_shell>´µ²)report_libµmy_lib1µ>µlib.report¡þù²To´µappendµcommandµoutputµtoµaµfile,µuseµtheµ>>µoperator.¡þ†²(command²´µ>>µ²(file¡þ)²If´µfileµdoesµnotµexist,µitµisµcreated.µIfµitµdoesµexist,µtheµoutputµis¡þrappendedµtoµtheµendµofµtheµfile.¡þ%Forµexample,µtoµappendµaµreportµtoµtheµendµofµaµfile,µenter¡þ±²lc_shell>´µ²)report_libµmy_lib2µ>>µlib.report¡,Ê²Using´µCommands¡þŸ²Use´µlc_shellµcommandsµinµtheµfollowingµthreeµways:¡þ/²S¡X/²Typeµsingleµcommandsµinteractivelyµinµlc_shell.¡þ«²S¡X«²Executeµcommandµscriptsµinµlc_shell.µCommandµscriptsµareµtext¡Xñfilesµofµlc_shellµcommandsµandµmayµnotµrequireµyourµinteraction¡X	8toµcontinueµorµcompleteµaµprocess.µAµscriptµcanµstartµtheµlc_shell,¡X	~performµvariousµprocessesµonµyourµlibrary,µsaveµtheµchangesµby¡X	Åwritingµthemµtoµaµfile,µandµexitµtheµlc_shell.¡þ
A²S¡X
A²Typeµsingleµcommandsµinteractivelyµinµtheµcommandµlineµofµthe¡X
‡LibraryµCompilerµgraphicalµuserµinterfaceµcommandµwindow.¡X
ÎYouµcanµdoµthisµtoµsupplementµtheµsubsetµofµcommands¡Xavailableµthroughµtheµmenuµinterface.’ˆD“I501ileaf_page_string1:3-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³15¡þÏ²Getting´µHelpµInformation¡þS²Library´µCompilerµhasµtwoµlevelsµofµhelpµinformation:µcommandµuse¡þ›andµtopic.¡þR²Command´µUseµHelp¡þÖ²The´µintendedµuseµ(syntax)µofµaµlc_shellµcommandµisµdisplayedµwhen¡þyouµuseµtheµ³helpµoptionµwithµaµcommandµname.µForµexample,µthe¡þgread_libµcommand'sµuseµhelpµis¡,Õ²lc_shell>´µ²)read_libµ-help¡,²Usage:µµread_lib¡,N¡þN-format¡N(EDIFµsymbolµformat;µdefaultµisµSynopsysµformat)¡,Š¡þŠ-symbol¡Š(withµEDIF,µnameµofµSynopsysµlibraryµfileµto¡,Àcreate)¡,ü¡þü<file_name>¡“ü(technologyµorµsymbolµlibraryµfile)¡,9¡þ9-no_warnings¡“9(disableµwarningµmessages)¡,u¡þu-names_fileµ<file_list>µµ(oneµorµmoreµnamesµfiles)¡þ²The´µcommandµuseµhelpµdisplaysµtheµcommand'sµpossibleµoptions¡þIandµarguments.¡þ²Topic´µHelpµµµ¡þ„²The´µhelpµcommandµdisplaysµinformationµaboutµanµlc_shellµcommand¡þÌ(includingµtheµhelpµcommandµitself),µandµaµvariableµorµvariable¡þ	group.¡þ	œ²Syntax¡þ
²help´µ[²(topic²]¡þ
ƒ²topic¡X
ÌNames´µaµcommand,µvariable,µorµvariableµgroup.µIfµyouµdoµnot¡Xnameµaµtopic,µtheµhelpµcommandµdisplaysµitsµownµmanµpage.’ˆÊD“I501ileaf_page_string1:3-16¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³16¡þÉ²The´µhelpµcommandµletsµyouµdisplayµtheµmanµpagesµinteractively¡þwhileµyouµareµrunningµlc_shell.µManµpagesµforµallµcommands,¡þZvariables,µandµpredefinedµvariableµgroupsµandµuserµmessagesµ(for¡þ£example,µDBVH³1)µareµincludedµinµtheµonlineµhelpµpages.¡þFTheµfollowingµexampleµreturnsµtheµmanµpageµforµtheµhelpµcommand¡þŽitself:¡þ²lc_shell>´µ²)help¡þ«²The´µfollowingµexampleµreturnsµtheµmanµpageµforµtheµreport_lib¡þócommand:¡þu²lc_shell>´µ²)helpµreport_lib¡þ²The´µfollowingµexampleµreturnsµtheµmanµpageµforµtheµvariableµgroup¡þXsystem:¡þÚ²lc_shell>´µ²)helpµsystem_variables¡þu²If´µyouµrequestµhelpµforµaµtopicµthatµcannotµbeµfound,µLibraryµCompiler¡þ¾displaysµtheµfollowingµerrorµmessage:¡þ?²lc_shell>´µ²)helpµxxyxx_topic¡þ|²Error:µNoµmanualµentryµforµ'xxyxx_topic'’Ê`D“I501ileaf_page_string1:3-17¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³17¡,Õ²Reading´µinµLibraries¡þ­²The´µread_libµcommandµloadsµaµtechnologyµorµsymbolµlibraryµsource¡þöfileµintoµtheµLibraryµCompilerµprogramµandµcompilesµitµtoµthe¡þ>Synopsysµdatabaseµformat.µYouµspecifyµtheµnameµofµtheµlibraryµin¡þ‡LibraryµCompilerµwithµtheµlibraryµgroupµstatement.¡þ…²Syntax¡þÓ²read_lib´µ²(filename²µ[-formatµ²(format_name²]µ\µ¡þµµµµµµµµµ[-symbolµ²(intermediate_symbol_library_file²]µ\¡þ;µµµµµµµµµ[-no_warnings]µ[-names_file²(µnameµmappingµfiles²]¡þ°²filename¡XùName´µofµtheµsymbolµlibraryµorµtechnologyµlibrary.µfilenameµisµa¡XBstring.¡þ¯-formatµformat_name¡X÷Definesµtheµformatµofµtheµlibrary.µUseµthisµoptionµonlyµwith¡X@EDIF³derivedµsymbolµlibraries.µformat_nameµisµaµstring.µIfµno¡Xˆformat_nameµisµspecified,µSynopsysµlibraryµformatµisµassumed.¡þõ-symbolµintermediate_symbol_library_file¡X>NamesµtheµintermediateµlibraryµfileµproducedµinµSynopsysµlibrary¡X‡format.µµintermediate_symbol_library_fileµisµaµstring.µUseµthis¡XÏoptionµwithµEDIFµlibraryµdescriptionµfiles.¡þ	<-no_warnings¡X	…Suppressesµallµwarningµmessages.µUseµthisµoptionµsparingly;¡X	Íwarningsµcanµidentifyµseriousµlibraryµproblems.¡þ
:-names_fileµname_mapping_files¡X
ƒChangesµtheµnamesµofµsymbolsµandµsymbolµpins.¡X
Ìname_mapping_filesµfollowsµtheµsameµformatµasµthe¡Xname³mappingµfilesµinµtheµchange_namesµcommand.’`šD“I501ileaf_page_string1:3-18¥	öäÃËÁâÊË¡Ä,°,š¡Ä,š	cš¡Ä	cš	c°¡Ä	c°,°ÆÃÁÊËÃ¡Ä,šÊšÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³18¡þÉ²For´µexample,µtoµreadµtheµcmos.libµtechnologyµlibraryµintoµLibrary¡þCompiler,µtypeµtheµfollowingµcommand:¡þ‚²lc_shell>´µ²)read_libµcmos.lib¡þ²The´µfollowingµexampleµreadsµanµEDIFµsymbolµlibrary,µcmos.edif,µinto¡þYLibraryµCompilerµandµcreatesµaµsymbolµlibraryµfileµnamedµcmos.slib¡þ¢inµSynopsysµformat.¡,²lc_shell>´µ²)read_libµ-formatµedifµ-symbolµcmos.slibµcmos.edif¡,ð²Writing´µLibraryµFiles¡þŽ²The²´µ²write_lib´µcommandµsavesµaµlibraryµmemoryµfileµtoµaµdiskµfileµin¡þ×eitherµSynopsysµinternalµdatabaseµformatµ(.db),µorµVHDLµformat.¡þŒ²Syntax¡þÓ²write_lib´µ²(library_name²µ[-formatµ²(format_name²]µ\¡þµµµµµµµµµµµµµµµµµµ[-names_fileµname_mapping_files]µ\¡þ;µµµµµµµµµµµµµµµµµµ[-output²(µfile²]¡þ´²library_name¡XýSpecifies´µtheµfileµtoµwrite.µToµwriteµaµfileµinµ.dbµformat,µuseµthe¡XEnameµofµtheµtechnologyµorµsymbolµlibraryµforµlibrary_name.¡X¤Byµdefault,µtheµnamesµofµtheµoutputµfilesµthatµareµsavedµtoµdisk¡Xìareµtheµsameµasµtheµlibraryµnames.µTheµtechnologyµlibraryµfile¡X	5hasµaµ.dbµsuffix,µandµtheµsymbolµlibraryµhasµaµ.sdbµsuffix.¡X	“ToµwriteµaµfileµinµVHDLµformat,µuseµtheµnameµofµtheµtechnology¡X	ÜlibraryµusedµtoµgenerateµtheµVHDLµlibraryµforµtheµlibrary_name.¡þ
:-formatµformat_name¡X
ƒDefinesµLibraryµCompilerµoutputµformat.µIfµyouµdoµnotµuseµthe¡X
Ì³formatµoption,µLibraryµCompilerµgeneratesµaµfileµinµSynopsys¡Xdatabaseµformat.’šD“I501ileaf_page_string1:3-19¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³19¡XÉ²To´µgenerateµaµVHDL³formattedµlibrary,µuseµvhdlµfor¡Xformat_name.µWhenµyouµselectµVHDLµformat,µLibraryµCompiler¡XZusesµtheµcompiledµtechnologyµlibraryµspecifiedµbyµlibrary_name¡X£toµgenerateµandµwriteµaµVHDLµlibraryµtoµdisk.µTheµVHDLµlibrary¡Xìconsistsµofµtheµfollowingµfiles:¡XH*_FTSM.vhd¡X¥*_UDSM.vhd¡X*_FTGS.vhd¡X_*_VITAL.vhd¡X¼*_Vtables.vhd¡X*_components.vhd¡Xu*_Vcomponents.vhd¡þ-names_fileµname_mapping_files¡XdChangesµtheµnamesµofµsymbolsµandµsymbolµpins.¡X¬name_mapping_filesµfollowsµtheµsameµformatµasµthe¡Xõname³mappingµfilesµinµtheµchange_namesµcommand.¡þR-outputµfile¡XšSpecifiesµanµoutputµfileµnameµthatµisµdifferentµfromµlibrary_name.¡XãIfµyouµuseµ³output,µLibraryµCompilerµwritesµaµdiskµfileµwithµtheµfile¡X,nameµexactlyµasµdefined.¡þTheµfollowingµexampleµwritesµtheµcompiledµcmosµtechnologyµlibrary¡þåtoµaµfileµcalledµcmos.db.µThisµfileµresidesµinµtheµcurrentµworking¡þ	.directory.¡þ	›²lc_shell>²)´µwrite_libµcmos¡þ
'²To´µwriteµtheµsame²µ²libraryµtoµaµfileµnamedµcmos1.dbµinµthe¡þ
p/libraries/workµdirectory,µenter¡þ
Ü²lc_shell>´µ²)write_libµcmosµ-oµ/libraries/work/cmos1.db’êD“I501ileaf_page_string1:3-20¥	öäÃËÁâÊË¡Ä,„,n¡Ä,n	cn¡Ä	cn	c„¡Ä	c„,„ÆÃÁÊËÃ¡Ä,nÊnÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³20¡þÉ²The´µfollowingµexampleµgeneratesµVHDLµlibrariesµfromµaµCMOS¡þlibrary.¡þ—²lc_shell>²)´µwrite_libµ-fµvhdlµcmos¡þ4²You´µcanµspecifyµmanyµmodelingµfeaturesµbeforeµyouµgenerateµthe¡þ}VHDLµlibraries.µReferµtoµtheµ²&LibraryµCompilerµReferenceµManual¡þÅVolumeµ2²µforµmoreµinformation.¡þmToµwriteµtheµsameµlibraryµto²µ²VHDLµfilesµnamedµcmos1µinsteadµofµthe¡þµlibraryµnameµinµtheµ/libraries/workµdirectory,µenter¡þ:²lc_shell>´µ²)write_libµ-fµvhdlµcmosµ-oµ/libraries/work/cmos1¡þØ²Note:²¡X ²To´µcreateµaµVHDLµlibrary,µreadµtheµsourceµfileµintoµtheµLibrary¡XiCompilerµprogramµinµtheµsameµsessionµthatµyouµgenerateµthe¡X²library.¡,Ä²Loading´µCompiledµLibraries¡þŠ²You´µcanµloadµaµpreviouslyµsavedµdbµlibraryµintoµLibraryµCompiler¡þÒwithµtheµreadµcommand.µTheµreadµcommandµloadsµcompiled¡þ	librariesµfromµaµfileµintoµmemory.¡þ
²Syntax¡þ
N²read´µ²(file_list¡þ
Ì²file_list¡XA´µlistµofµoneµorµmoreµUNIXµfilenamesµcontainingµlibraries.’êD“I501ileaf_page_string1:3-21¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³21¡þÉ²For´µexample,µtoµreadµinµaµcompiledµlibraryµfileµnamedµlib.db,µenter¡þK²lc_shell>´µ²)readµlib.db¡þ‡²Loadingµdbµfileµ'/libraries/ex/lib.db'¡þÄ{}¡þ>lc_shell>µ²)listµ-libraries¡þ{²Library¡{File¡“{µµµPath¡þ¸------¡¸µµ¡“¸----¡¸µµµ----¡þõLib_1µµ¡õlib.db¡õµµµ/libraries/ex¡þ²Note´µthatµtheµlib.dbµfileµcontainsµaµtechnologyµlibraryµcalledµLib_1.¡þ2Toµloadµmultipleµlibraries:¡þ´²lc_shell>´µ²)readµ{my_lib1.dbµmy_lib2.db}¡þñ²Loadingµdbµfileµ'/libraries/ex/my_lib1.db'¡þ.Loadingµdbµfileµ'/libraries/ex/my_lib2.db'¡þj{}¡þälc_shell>µ²)listµ-libraries¡þ!²Libraryµµ¡“!File¡!¡¡!Path¡þ^------¡^¡“^----¡^¡¡^----¡þ›µLib_1¡›¡“›lib.db¡¡›/libraries/ex¡þØµlib1µ¡Ø¡“Ømy_lib1.db¡(Ø/libraries/ex¡þµlib2¡¡“my_lib2.db¡(/libraries/ex¡þ°²Note´µthatµlibraryµlib.dbµwasµloadedµbeforeµtheµlatestµreadµcommand.’ýD“I501ileaf_page_string1:3-22¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,õ¡Ä,õ	cõ¡Ä	cõ	c¡Ä	c,ÆÃÁÊËÃ¡ÄþõÊõÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³22¡,Õ²Adding´µDataµtoµExistingµLibraries¡þ²The´µupdate_libµcommandµletsµyouµaddµcells,µoperatingµconditions,¡þÈtimingµrange,µscalingµfactor,µbusµtypeµdefinition,µinterconnectµwire¡þload,µandµotherµgroupµstatementsµtoµanµexistingµlibrary.µTheµgroups¡þYareµaddedµtoµtheµlibraryµasµifµtypedµatµtheµendµofµtheµoriginalµtextµof¡þ¢theµlibraryµfile.µYouµcanµchangeµgroupsµyouµhaveµaddedµtoµaµlibrary¡þêwithµupdate_libµbyµoverwritingµthemµwithµaµsubsequentµupdate_lib¡þ3command.µNoteµthatµyouµcannotµoverwriteµtheµoriginalµdataµinµaµ.db¡þ{file.¡þE²Groups¡þÕ²Onlyµlibrary³levelµgroupµstatementsµcanµbeµaddedµtoµaµlibrary.µValid¡þgroupsµthatµyouµcanµadd,µandµtheirµlimitations,µfollow.¡þ°Technologyµlibraries¡þ*²S¡X*²cell¡þ–²S¡X–²operating_conditions¡þ²S¡X²scaling_factors¡þm²S¡Xm²timing_range¡þÙ²S¡XÙ²wire_load¡þ	D²S¡X	D²wire_load_selection¡þ	°²S¡X	°²scaled_cell¡þ
²S¡X
²typeµ(Youµcannotµoverwriteµexistingµtypeµgroupsµbecauseµtheir¡X
bdefinitionsµmayµalreadyµhaveµaffectedµsubsequentµgroup¡X
©declarationsµinµtheµlibrary.µYouµcan,µhowever,µaddµnewµones.)¡þ²S¡X²voltage’ýØD“I501ileaf_page_string1:3-23¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³23¡þÉ²Symbol´µlibraries¡þ2²S¡X2²symbol¡þÀ²Syntax¡þ²Thisµisµtheµsyntaxµtoµaddµnewµgroupsµtoµanµexistingµlibrary:¡,}²update_lib´µ[-overwrite]µ[-permanent]µ²(library_name²µ²(filename²¡,³[-no_warnings]¡þ%²³overwrite¡XmIndicates´µthatµtheµgroupµdeclaredµinµfilenameµoverwritesµthe¡X¶groupµwithµtheµsameµnameµinµlibrary_name.µOnlyµgroupsµthatµare¡Xþaddedµbyµaµpreviousµupdate_libµcommandµcanµbeµoverwritten;¡XGgroupsµincludedµinµtheµoriginalµlibraryµareµnotµmodified.¡þ -permanent¡XèIndicatesµthatµgroupsµdeclaredµinµfilename,µwhenµwrittenµinto¡X1library³name,µcannotµbeµoverwrittenµbyµsubsequentµupdate_lib¡Xzcommands.¡þÒlibrary_name¡XNameµofµtheµexistingµlibraryµtoµwhichµyouµaddµtheµnewµgroups.¡XdTheµlibraryµnameµisµtheµnameµassignedµwithµtheµlibrary¡X¬(library_name)µstatementµinµtheµlibraryµ.libµfile.¡þfilename¡XMNameµofµtheµfileµwhereµoneµorµmoreµnewµgroupsµisµfound.µThe¡X–syntaxµofµthisµfileµisµsimilarµtoµaµnormalµLibraryµCompilerµlibrary¡Xßdescription,µexceptµitµcontainsµonlyµlibrary³levelµgroupsµwithout¡X	'theµlibraryµgroupµdefinition.¡þ	€-no_warnings¡X	ÉSuppressesµallµwarningµmessages.µUseµthisµoptionµsparingly;¡X
warningsµcanµidentifyµseriousµlibraryµproblems.¡þ
zAnµexampleµofµtheµcommandµis¡þ
Þ²lc_shell>´µ²)update_libµ-overwriteµ-permanentµcmosµadd_ms.lib’ØD“I501ileaf_page_string1:3-24¥	öäÃËÁâÊË¡Ä,f,P¡Ä,P	cP¡Ä	cP	cf¡Ä	cf,fÆÃÁÊËÃ¡ÄþPÊPÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³24¡þÉ²This´µcommandµaddsµtheµgroupsµinµadd_ms.libµtoµtheµcmosµlibrary¡þandµoverwritesµsimilarlyµnamedµgroupsµinµcmosµthatµwereµaddedµby¡þZaµpreviousµupdate_libµcommand.µGroupsµaddedµwithµthisµcommand¡þ£areµnotµoverwrittenµbyµsubsequentµupdate_libµcommands.¡þ ²Adding´µMemoryµModules¡þN²To´µaddµaµmemoryµmoduleµtoµanµexistingµlibrary,µyouµuseµthe¡þ—update_libµcommand.µHowever,µifµyouµdoµnotµhaveµaµLibrary¡þßCompilerµlicense,µyouµcanµaddµgroupsµwithµmoduleµfunctionality¡þ(usingµtheµadd_moduleµcommand.µTheµadd_moduleµcommand¡þqperformsµtheµsameµfunctionµasµupdate_libµexceptµthatµitµisµlimitedµto¡þ¹memoryµmodulesµonly.¡þ±²Syntax¡þ$²Thisµisµtheµsyntaxµtoµaddµgroupsµwithµmemoryµtoµanµexistingµlibrary¡þmwithoutµaµLibraryµCompilerµlicense:¡þù²add_module´µ[-overwrite]µ[-permanent]µ²(filenameµlibrary_name²¡þ-[-no_warnings]¡þ¬²-overwrite¡XõIndicates´µthatµtheµgroupµdeclaredµinµfilenameµoverwritesµthe¡X	=groupµwithµtheµsameµnameµinµlibrary_name.µOnlyµgroupsµadded¡X	†byµaµpreviousµupdate_libµcommandµcanµbeµoverwritten;µgroups¡X	Ïincludedµinµtheµoriginalµlibraryµareµnotµmodified.¡þ
:-permanent¡X
ƒIndicatesµthatµgroupsµdeclaredµinµfilename,µwhenµwrittenµinto¡X
Ìlibrary³name,µcannotµbeµoverwrittenµbyµsubsequentµupdate_lib¡Xcommands.’þD“I501ileaf_page_string1:3-25¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³25¡þÉ²filename¡XName´µofµtheµfileµwhereµoneµorµmoreµnewµgroupsµisµfound.µThe¡XZsyntaxµofµthisµfileµisµsimilarµtoµaµnormalµLibraryµCompilerµlibrary¡X£description,µexceptµitµcontainsµonlyµlibrary³levelµgroupsµwithout¡Xìtheµlibraryµgroupµdefinition.¡þ`library_name¡X¨Nameµofµtheµexistingµlibraryµtoµwhichµyouµaddµtheµnewµgroups.¡XñTheµlibraryµnameµisµtheµnameµassignedµwithµtheµlibrary¡X:(library_name)µstatementµinµtheµlibraryµ.libµfile.¡þ­-no_warnings¡XöSuppressesµallµwarningµmessages.µUseµthisµoptionµsparingly;¡X?warningsµcanµidentifyµseriousµlibraryµproblems.¡þÞInµthisµexample,µtheµlibraryµfileµadd_ram.lib,µwhichµcontainsµmodule¡þ'informationµ(thatµis,µaµRAMµgroup),µisµaddedµtoµtheµlibraryµmemory.¡þÄ²lc_shell>´µ²)add_moduleµadd_ram.libµmemory¡þÏ²Processing¡þ–²If´µLibraryµCompilerµfindsµanµerrorµwhileµprocessingµaµgroup,µitµdoes¡þßnotµaddµthatµgroupµtoµtheµlibrary.µValidµgroupsµareµadded;µthe¡þ	'update_libµandµadd_moduleµoperationsµreturnµzeroµifµillegalµgroups¡þ	pareµpresent.¡þ
:Theµreport_libµcommandµplacesµanµasteriskµ(*)µafterµtheµnamesµofµall¡þ
ƒcellsµaddedµtoµtheµlibraryµwithµtheµupdate_libµandµadd_module¡þ
Ìcommands.µForµadditionalµinformation,µreferµtoµtheµnextµsection,¡þReportingµLibraryµInformation."’þnD“I501ileaf_page_string1:3-26¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³26¡,Õ²Reporting´µLibraryµInformation¡þƒ²The´µreport_libµcommandµdisplaysµinformationµaboutµtheµsymbol¡þËlibrariesµandµtechnologyµlibrariesµcompiledµinµtheµLibraryµCompiler¡þdatabase.µµµ¡þ²S¡X²Forµsymbolµlibraries,µreport_libµlistsµtheµnamesµofµallµsymbols¡X×definedµinµtheµlibrary.¡þD²S¡XD²Forµtechnologyµlibraries,µreport_libµlistsµtheµoperatingµconditions,¡XŠtimingµranges,µpowerµmodels,µandµwireµloadµmodels.µCellsµare¡XÑannotatedµaccordingµtoµtheµattributesµspecifiedµforµthem.µThe¡Xreport_libµcommandµalsoµdisplaysµtimingµarcsµuponµrequest.¡þÒ²Syntax¡þ²report_lib´µ²(libraryµ²[-timing]²(µ²[-power]¡þNµµµµµµµµµµ²(µ²[-timing_arcs]µ[-vhdl_name]²(µ²[-table]µ²(¡þ‚µµµµµµµµµµµ²[-full_table]µ[²(cell_list²]¡þý²library¡XFString´µspecifyingµtheµnameµofµtheµreportedµlibrary.µIfµthe¡XŽrequestedµlibraryµisµnotµinµmemory,µanµerrorµmessageµisµprinted.¡þñ-timing¡X9Printsµaµreportµofµtimingµinformationµforµverification.µYouµcanµuse¡X‚theµ³timingµoptionµonlyµwhenµyouµreadµtheµ.libµfileµintoµLibrary¡XËCompilerµduringµtheµsameµsession.µSeeµChapterµ16,µTiming¡X	ReportµFormat,"µforµinformationµaboutµtheµtimingµreportµformat.¡þ	v-powerµ¡X	¾Printsµaµreportµofµpowerµinformationµforµeachµcellµthatµhasµpower¡X
modeling,µasµfollows:¡,
f²Attributes:¡,
Ùa´µ-µaverageµpowerµspecification¡,iµ-µinternalµpower’nRD“I501ileaf_page_string1:3-27¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³27¡,Ã²l´µ-µleakageµpower¡,rfµ-µriseµandµfallµpowerµspecification¡,u¡þu¡…u¡u¡“u¡uPower¡,³Cell¡þ³¡…³#¡³Attr¡“³¡³Togglingµpin¡¯³Sourceµofµpath¡Ë³when¡,ñ_____________________________________________________________¡,/EO¡þ/¡…/0¡/i,a¡“/¡/Z¡¡/¡(/¡¯/B¡6/¡½/¡D/¡Ë/A'¡,m¡þm¡…m1¡mi,a¡“m¡mZ¡¡m¡(m¡¯mB¡6m¡½m¡Dm¡ËmA¡,«¡þ«¡…«2¡«i,a¡“«¡«Z¡¡«¡(«¡¯«B¡6«¡½«¡D«¡Ë«¡,é¡þé¡…é3¡éi,a¡“é¡éZ¡¡é¡(é¡¯éA¡6é¡½é¡Dé¡ËéB'¡,'¡þ'¡…'4¡'i,a¡“'¡'Z¡¡'¡('¡¯'A¡6'¡½'¡D'¡Ë'B¡,e¡þe¡…e5¡ei,a¡“e¡eZ¡¡e¡(e¡¯eA¡6e¡½e¡De¡Ëe¡,£E01¡þ£¡…£0¡£i,a¡“£¡£Z¡¡£¡(£¡¯£B¡6£¡½£¡D£¡Ë£A'¡,á¡þá¡…á1¡ái,a¡“á¡áZ¡¡á¡(á¡¯áB¡6á¡½á¡Dá¡ËáA¡,¡þ¡…2¡i,a¡“¡Z¡¡¡(¡¯A¡6¡½¡D¡Ë¡,]¡þ]¡…]3¡]i,a¡“]¡]Z¡¡]¡(]¡¯]B¡6]¡½]¡D]¡Ë]¡R]¡,›¡þ›¡…›4¡›i,a¡“›¡›Z¡¡›¡(›¡¯›A¡6›¡½›¡D›¡Ë›B'¡,Ù¡þÙ¡…Ù5¡Ùi,a¡“Ù¡ÙZ¡¡Ù¡(Ù¡¯ÙA¡6Ù¡½Ù¡DÙ¡ËÙB¡þP²-timing_arcs¡X™Prints´µaµlistµofµtheµtimingµarcsµdefinedµforµeachµcell.µAnµexample¡Xâofµtheµtimingµarcµreportµfollows.¡,w²Cell´µµµµAttributesµµµ#µµµµSense/TypeµµµµµµµµµµµFromµµµµµµµµµTo¡,µ-----------------------------------------------------------------¡,ë--¡,)dffµµµµµµµµµµµµµµµµµµ0µµµµrisingµedgeµµµµµµµµµµCLKµµµµµµµµµµQ¡,gµµµµµµµµµµµµµµµµµµµµµ1µµµµpresetµnegµunateµµµµµPREµµµµµµµµµµQ¡,¥µµµµµµµµµµµµµµµµµµµµµ2µµµµclearµposµunateµµµµµµCLRµµµµµµµµµµQ¡,äµµµµµµµµµµµµµµµµµµµµµ3µµµµrisingµedgeµµµµµµµµµµCLKµµµµµµµµµµQN¡,	"µµµµµµµµµµµµµµµµµµµµµ4µµµµclearµposµunateµµµµµµPREµµµµµµµµµµQN¡,	`µµµµµµµµµµµµµµµµµµµµµ5µµµµpresetµnegµunateµµµµµCLRµµµµµµµµµµQN¡þ	×²-vhdl_name¡X
 Prints´µaµreportµofµproposedµVHDLµnamesµthatµdifferµfromµLibrary¡X
hCompilerµnames.¡þ
Ì-table¡XPrintsµcompactµstatetableµinformationµforµtechnologyµlibraryµcells.’RmD“I501ileaf_page_string1:3-28¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³28¡þÉ²-full_table¡XPrints´µcompleteµstatetableµandµmemoryµinformationµfor¡XZtechnologyµlibraryµcells.¡þÏcell_list¡XListµofµcellsµforµwhichµinformationµisµtoµbeµreported.µTheµdefaultµis¡X`toµreportµonµallµcellsµinµtheµtechnologyµlibrary.¡þToµredirectµtheµreportµtoµaµdiskµfile,µuseµtheµ>µoption.¡þ ²lc_shell>²)´µreport_libµ-timing²Nµlibraryµ²)>µ²Nfile_name¡þP²The´µfollowingµexampleµdisplaysµinformationµforµtheµcmosµlibrary²:¡þïlc_shell>´µ²)report_libµcmos¡þŸ²When´µreportingµonµcells,µLibraryµCompilerµmightµindicateµtheyµhave¡þètheµfollowingµattributes:¡þ‡²Components:¡þ	´µµµµAttributes:¡þJµµµµµµµafµ-µactiveµfalling¡þ‹µµµµµµµahµ-µactiveµhigh¡þÌµµµµµµµalµ-µactiveµlow¡þ	µµµµµµµarµ-µactiveµrising¡þ	Oµµµµµµµµbµ-µblackµboxµ(functionµunknown)¡þ	µµµµµµµµcµ-µclockµenable¡þ	Ñµµµµµµµµdµ-µdont_touch¡þ
µµµµµµµmoµ-µmap_only¡þ
Sµµµµµµµµpµ-µpreferred¡þ
”µµµµµµµµrµ-µremovable¡þ
Õµµµµµµµµsµ-µstatetable¡þµµµµµµsa0µ-µdont_faultµstuck-at-0’m™D“I501ileaf_page_string1:3-29¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³29¡þÃ²´µµµµµµsa1µ-µdont_fault_stuck-at-1¡þµµµµµsa01µ-µdont_faultµbothµstuck-at-0µandµstuck-at-1¡þFµµµµµµµµtµ-µtestµcell¡þˆµµµµµµµµuµ-µdont_use¡þCellµµµµµµµµµµµµµµµµµµAttributes¡þM--------------------------¡þŽcell_nameµµµµµµµµµµµµµµcell_attributes¡þÐµµµµPin:µpin_nameµµµµµµµpinµattributes¡þU²active´µfallingµandµactive_rising¡XThisµreportsµtheµactiveµedgeµofµtheµclockµpinµforµflip³flops.¡þactiveµhighµandµactive_low¡X\Thisµreportsµtheµactiveµlevelµofµtheµenableµpinµforµlatches.¡þÓblackµboxµ¡XBecauseµtheµDesignµCompilerµprogramµcannotµrecognizeµwhat¡Xdfunctionµtheµcellµperforms,µitµcannotµinsertµtheµcellµautomatically¡X­intoµyourµdesignµorµreplaceµitµwithµgatesµinµtheµnetlistµduring¡Xõsynthesis.¡þlclock_enableµ¡XµThisµisµtheµclock³enablingµmechanism.¡þ+dont_touch¡XtYouµsetµtheµdont_touchµattributeµtoµtrueµinµtheµcellµgroupµto¡X¼indicateµthatµallµinstancesµofµtheµcellµmustµremainµinµtheµnetwork.¡þ	3map_only¡X	{Youµsetµtheµmap_onlyµattributeµtoµtrueµinµtheµcellµgroupµto¡X	Äexcludeµthisµcellµfromµlogic³levelµoptimizationµduringµcompilation.¡þ
:preferred¡X
ƒYouµsetµtheµpreferredµattributeµtoµtrueµinµtheµcellµgroupµtoµindicate¡X
Ìthatµthisµcellµisµtheµpreferredµreplacementµduringµthe¡Xgate³mappingµphaseµofµoptimization.’™ÆD“I501ileaf_page_string1:3-30¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³30¡þÉ²removable¡XThe´µDesignµCompilerµprogramµknowsµwhatµfunctionµtheµcell¡XZperforms,µsoµtheµcellµcanµbeµreplacedµbyµanotherµcellµduring¡X£synthesisµandµoptimization.µEvenµifµsomeµtypeµofµcellµcanµbe¡Xìreplaced,µitsµfunctionµmayµbeµtooµcomplexµforµDesignµCompiler¡X4toµinsertµitµintoµtheµdesignµautomatically.¡þ§sa0,µsa1,µsa01¡XïYouµspecifiedµaµstuck³atµvalueµinµtheµdont_faultµattributeµforµfault¡X8modelingµtheµcellµorµpin.¡þªstatetable¡XóThisµcellµcontainsµaµstatetable.¡þfdont_use¡X®Youµsetµtheµdont_useµattributeµtoµtrueµinµtheµcellµgroupµtoµindicate¡X÷thatµthisµcellµshouldµnotµbeµaddedµtoµtheµdesignµduring¡X?optimization.¡þ²test_cell¡XúThisµisµaµtestµcell.¡þ—Ifµaµlibraryµcellµhasµfootprintµinformationµandµtheµlibraryµisµenabledµfor¡þßin³placeµoptimizationµwithµtheµin_place_swap_modeµattribute,¡þ(report_libµprintsµtheµcellµfootprintµforµeachµcell,µasµshownµinµthe¡þqfollowingµexample.µSeeµChapterµ7,µBuildingµaµTechnologyµLibrary,"¡þ¹forµinformationµaboutµthisµattribute.¡þ	S²´µµµCellµµµµµµµµµµµµµµµµFootprintµµµµAttributes¡þ	”µµµ-----------------------------------------------¡þ	ÔµµµM21Hµµµµµµµµµµµµµµµµ"FP_F"¡þ
µµµM21Lµµµµµµµµµµµµµµµµ"FP_F"¡þ
UµµµM41Hµµµµµµµµµµµµµµµµ"FP_H"¡þ
–µµµM41Lµµµµµµµµµµµµµµµµ"FP_H"¡þ
ÖµµµR01Hµµµµµµµµµµµµµµµµ"FP_A"¡þµµµR01Lµµµµµµµµµµµµµµµµ"FP_A"’ÆD“I501ileaf_page_string1:3-31¥	öäÃËÁâÊË¡Ä,m,W¡Ä,W	cW¡Ä	cW	cm¡Ä	cm,mÆÃÁÊËÃ¡Ä,WÊWÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³31¡,®²Listing´µResidentµLibraries¡þ’²The´µlistµcommandµdisplaysµallµinformationµaboutµvariousµlc_shell¡þÛitems,µsuchµasµtheµvalueµofµaµvariable,µtheµnamesµofµtheµlibrariesµin¡þ#memory,µtheµnamesµofµallµlc_shellµcommands,µtheµnamesµand¡þlvaluesµofµvariablesµinµdifferentµvariableµgroups,µandµanyµlicenses¡þµcurrentlyµbeingµused.¡þÁ²Syntax¡þ²list´µ[-commands]µ[-licenses]²(µ²[²(variable_name²]µ¡þEµµµµµ[-libraries]µ[-variablesµ²(variable_group²]¡þÇ²-commands¡XLists´µallµlc_shellµcommands.¡þ-licenses¡XÈListsµtheµlicensesµyouµhaveµcheckedµout.µUseµtheµlc_shell¡Xcommandµlicense_usersµtoµlistµallµlicensesµinµuse.¡þvariable_name¡XÉListsµtheµvalueµofµanµlc_shellµvariable.¡þ	9-libraries¡X	‚Listsµallµlibrariesµresidingµinµmemory.¡þ	ò-variablesµvariable_group¡X
:Listsµtheµnamesµandµvaluesµofµvariablesµdefinedµinµoneµofµthe¡X
ƒfollowingµgroups.µTheµavailableµvariableµgroupsµareµconfigurable¡X
Ìandµcanµbeµchanged,µorµnewµvariableµgroupsµcanµbeµcreated¡Xwithµtheµgroup_variableµcommand.’AD“I501ileaf_page_string1:3-32¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³32¡RÉ²all¡”All´µlc_shellµvariables.¡Rwsystem¡”ÀGlobalµsystemµvariables.¡R%vhdlio¡”nVariablesµthatµaffectµwritingµVHDLµfilesµandµlibraries.¡þðForµinformationµonµpredefinedµvariableµgroups,µuseµtheµhelp¡þ8commandµwithµgroup_variable.µForµexample,¡þ·²lc_shell>´µ²)helpµsystem_variables¡þP²This´µexampleµlistsµtheµvalueµofµtheµdesignerµvariable:¡þÏ²lc_shell>´µ²)listµdesigner¡þh²This´µexampleµlistsµtheµvaluesµofµtheµvariablesµinµtheµvhdlioµvariable¡þ±group:¡þ0²lc_shell>´µ²)listµ-variablesµvhdlio¡þÉ²After´µexecutingµread_libµcmos.libµinµthisµexample,µtheµlistµ³libraries¡þcommandµdisplaysµtheµfollowing:¡þ²lc_shell>´µ²)listµ-libraries¡þ		²LibraryµµµµFileµµµµµµPath¡þ	F-------µµµµ----µµµµµµ----¡þ	‚cmosµµµµµµµcmos.dbµµµ/home/user/libraries¡þ
²After´µexecutingµread_libµ-formatµedifµ-symbolµcmos.slibµcmos.edif,¡þ
[theµlibrariesµlistingµshows¡þ
Ú²lc_shell>²)´µlistµ-libraries’AD“I501ileaf_page_string1:3-33¥	öäÃËÁâÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³33¡þÃ²Library´µµµµFileµµµµµµPath¡þþ-------µµµµ----µµµµµµ----¡þ9cmosµµµµµµµcmos.sdbµµ/home/user/libraries¡þtcmosµµµµµµµcmos.dbµµµ/home/user/libraries¡,\²Comparing´µLibraries¡þ²The´µcompare_libµcommandµcomparesµaµtechnologyµlibraryµwithµa¡þMsymbolµlibraryµforµconsistency.µThisµcommandµperformsµtwoµchecks:¡þÆ1.¡XÆItµverifiesµthatµeachµcellµinµtheµtechnologyµlibraryµhasµa¡Xcorrespondingµsymbolµdefinitionµinµtheµsymbolµlibrary.¡þx2.¡XxItµchecksµthatµtheµpinµnamesµforµeachµcellµinµtheµtechnology¡X¾libraryµmatchµtheµpinµnamesµdefinedµforµthatµcell'sµcorresponding¡Xsymbol.¡þ¹²Syntax¡þ²compare_lib´µ²(filename1µfilename2²¡þ|²filename1´µandµfilename2¡XÄNamesµtheµlibrariesµyouµwantµtoµcompare.µOneµlibraryµmustµbeµa¡Xtechnologyµlibraryµandµtheµotherµaµsymbolµlibrary.µBoth¡XVargumentsµareµstrings.µTheµorderµinµwhichµtheµfileµnamesµappear¡Xžisµnotµimportant.¡þ	Beforeµyouµuseµtheµcompare_libµcommand,µyouµmustµhaveµtwo¡þ	`librariesµinµLibraryµCompiler.µUseµtheµlistµcommandµtoµdisplayµthe¡þ	©librariesµthatµresideµinµmemory.¡þ
:Inµtheµfollowingµexample,µtheµlistµcommandµverifiesµthatµtheµlibraries¡þ
ƒtoµbeµcomparedµresideµinµmemory;µthenµtheµcompare_libµcommand¡þ
Ìcomparesµtheµcmos.dbµtechnologyµlibraryµwithµtheµcmos.sdbµsymbol¡þlibrary.’D“I501ileaf_page_string1:3-34¥	öäÃËÁâÊË¡Ä,|,f¡Ä,f	cf¡Ä	cf	c|¡Ä	c|,|ÆÃÁÊËÃ¡Ä,fÊfÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³34¡þÃ²lc_shell>´µ²)listµ-libraries¡þ:²LibraryµµµµFileµµµµµµPath¡þu-------µµµµ----µµµµµµ----¡þ°cmosµµµµµµµcmos.dbµµµ/home/user/libraries¡þìcmosµµµµµµµcmos.sdbµµ/home/user/libraries¡þclc_shell>²)µcompare_libµcmos.db:cmosµcmos.sdb:cmos¡þö²Library´µCompilerµreportsµdiscrepanciesµbetweenµtheseµlibraries.¡þŠForµaµcompleteµdescriptionµofµcompare_lib,µreferµtoµtheµSynopsys¡þÒonlineµmanµpages.¡,½²Removing´µLibrariesµfromµMemory¡þh²Use´µtheµremove_libµcommandµtoµremoveµlibrariesµfromµlc_shell¡þ°memory.µremove_libµremovesµjustµtheµlibraryµfromµmemory.µThe¡þùreclaimedµmemoryµisµthenµavailableµforµuseµbyµLibraryµCompilerµwith¡þBotherµlibraries.¡þÕNote:²¡X²Toµsaveµaµchangedµlibraryµtoµaµdiskµfile,µuseµtheµwrite_lib¡XgcommandµtoµsaveµthatµlibraryµtoµaµUNIXµfileµbeforeµusingµthe¡X¯remove_libµcommand.¡þ	u²Syntax¡þ	¾²remove_lib´µµ[²(lib_list²][-all][-quiet]¡þ
Q²If´µyouµdoµnotµdefineµanyµarguments,µnoµlibraryµisµremoved.¡þ
Ìlib_list¡XListµofµlibrariesµtoµbeµremoved.’FD“I501ileaf_page_string1:3-35¥	öäÃËÁâÊË¡Ä,,ÿ¡Ä,ÿ	cÿ¡Ä	cÿ	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ÿÊÿÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³35¡þÉ²all¡XRemoves´µallµlibrariesµinµmemory.¡þuquiet¡X¾Preventsµinformationalµmessagesµfromµbeingµdisplayed.¡þ<Note:²¡X…²Theµremove_libµcommandµdoesµnotµfreeµswapµspaceµ(memory)¡XÎalreadyµclaimedµbyµtheµLibraryµCompilerµprogram.µItµdoes,¡Xhowever,µreuseµreclaimedµmemoryµforµfutureµlc_shell¡X_commands.¡,U²Encrypting´µVHDLµSourceµLibraries¡þ²Use´µtheµencrypt_libµcommandµtoµsecureµaµVHDLµsourceµlibraryµfile.¡þQTheµencrypt_libµcommandµletsµyouµprotectµtheµsecurityµofµVHDL¡þ™modelsµthatµcontainµproprietaryµinformation.µTheµencryptedµVHDL¡þâfileµcanµbeµparsedµbyµtheµSynopsysµVHDLµSystemµSimulatorµ(VSS).¡þ±²Syntax¡þû²encrypt_lib²(´µfile_name²µ[-outputµ²(encrypted_file²]¡þv²file_name¡X¿Name´µofµtheµVHDLµsourceµlibraryµfileµtoµbeµencrypted.¡þ	"-outputµencrypted_file¡X	kWritesµtheµencryptedµoutputµtoµaµfileµnameµdifferentµfromµthe¡X	´defaultµcurrent_directory/fileµname.E¡þ
2Ifµyouµdoµnotµuseµtheµ³outputµoption,µyourµencryptedµoutputµfileµhas¡þ
{theµnameµcurrent_directory/fileµname.E.¡þThisµisµanµexampleµofµtheµcommand’FD“I501ileaf_page_string1:3-36¥	öäÃËÁâÊË¡Ä,„,n¡Ä,n	cn¡Ä	cn	c„¡Ä	c„,„ÆÃÁÊËÃ¡Ä,nÊnÆÃ¥	öäÃÁÊË¡Ä,w,a¡Ä,a	ca¡Ä	ca	cw¡Ä	cw,wÆÃÁÊËÃ¡ÄþaÊaÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³36¡þÃ²lc_shell>´µ²)encrypt_libµmy_file.vhd¡,Ä²Using´µShellµCommands¡þ„²The´µfollowingµsectionsµexplainµdifferentµshellµcommandsµtoµuseµwith¡þÌlc_shell.¡þ±²Command´µAliases¡þP²Some´µlc_shellµcommandsµwithµoptionsµandµargumentsµcanµbeµquite¡þ™long.µUseµtheµaliasµcommandµtoµcreateµshortcutsµforµcommonlyµused¡þácommands.¡þc²lc_shell>´µ²)aliasµmy_writelibµ"write_libµ-formatµvhdl"¡þþ²The´µpreviousµaliasµcommandµcreatesµaµnewµalias,µmy_writelib.µTo¡þGwriteµaµlibraryµalreadyµloadedµintoµlc_shellµ(lib1)µinµVHDLµformat,¡þenter¡þ²lc_shell>´µ²)my_writelibµlib1¡þ¬²The´µlc_shellµprogramµdoesµnotµechoµtheµenteredµaliasµdefinition.¡þ	OForµLibraryµCompilerµtoµrecognizeµanµalias,µuseµtheµaliasµatµthe¡þ	˜beginningµofµaµline.¡þ
:Anµaliasµdefinitionµtakesµeffectµimmediately,µbutµlastsµonlyµuntilµyou¡þ
ƒexitµtheµLibraryµCompilerµworkµsession.µToµsaveµcommonlyµused¡þ
Ìaliasµdefinitions,µincludeµthemµinµtheµ.synopsys_lc.setupµ(orµother¡þsetup)µfile.µSeeµUsingµSetupµFiles"µearlierµinµthisµchapter.’JD“I501ileaf_page_string1:3-37¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³37¡þÉ²The²´µ²unalias²µ²commandµremovesµaliasµdefinitions.¡þ¦²alias´µCommand¡þA²The´µaliasµcommandµcreatesµaµshortcutµ(orµalias)µforµcommandsµused¡þŠfrequently.¡þa²Syntax¡þ¬²alias´µ[²(identifierµ²[²(definition²]]¡þ(²identifier¡XpThe´µnameµofµtheµaliasµyouµareµcreatingµ(ifµdefinitionµisµsupplied)¡X¹orµlistingµ(ifµnoµdefinitionµisµsupplied).µTheµidentifierµcanµcontain¡Xletters,µdigits,µandµunderscoresµ(µ_µ).µIfµnoµidentifierµisµgiven,µall¡XJaliasesµareµlisted.¡þ°definition¡XøTheµcommandsµforµwhichµyouµareµcreatingµanµaliasµ(identifier).µIf¡XAtheµidentifierµisµalreadyµdefined,µtheµdefinitionµoverwritesµthe¡XŠexistingµdefinition.µIfµnoµdefinitionµisµdefined,µtheµdefinitionµof¡XÒidentifierµisµdisplayed.¡þ’²unalias´µCommandµ¡þ	-²The´µunaliasµcommandµremovesµaliasµdefinitions.¡þ
²Syntax¡þ
O²unalias´µ[-allµ|²(µaliasµ²...]¡þ
Ì³²all¡XRemoves´µallµaliasµdefinitions.’JTD“I501ileaf_page_string1:3-38¥	öäÃËÁâÊË¡Ä,7,!¡Ä,!	c!¡Ä	c!	c7¡Ä	c7,7ÆÃÁÊËÃ¡Äþ!Ê!ÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³38¡þÉ²alias´µ...¡XGivesµoneµorµmoreµaliasesµwhoseµdefinitionsµyouµwantµremoved.¡þ–Forµexample,µtoµdefineµtheµnewµcommandµlv,µwhichµlistsµall¡þÞvariables,µenter¡þ_²lc_shell>´µ²)aliasµlvµ"listµ-variablesµall"¡þù²To´µlistµallµvariables,µenter¡þz²lc_shell>´µ²)lv¡þ²To´µremoveµtheµlvµalias,µenter¡þ•²lc_shell>´µ²)unaliasµlv²¡þp²Listing´µPreviouslyµEnteredµCommands¡þ²To´µlistµtheµcommandsµyouµhaveµusedµinµtheµlc_shellµsession,µuseµthe¡þWhistoryµcommand.µByµredirectingµtheµoutputµofµtheµhistoryµcommand,¡þ youµcanµcreateµaµfileµtoµuseµasµtheµbasisµforµaµcommandµscriptµas¡þéshownµinµtheµexamplesµinµthisµsection.¡þŠTheµReexecutingµCommands"µsectionµlaterµinµthisµchapterµexplains¡þÓhowµtoµreexecuteµaµpreviousµcommand.¡þ	µ²history´µCommandµµ¡þ
²Syntax¡þ
Ú²history´µ[²(n²]µ[-r]µ[-h]’TD“I501ileaf_page_string1:3-39¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³39¡þÉ²n¡XLists´µupµtoµnµpreviouslyµenteredµcommands.¡þo³r¡X¸Listsµtheµcommandsµinµreverseµorder.µTheµmostµrecentµcommand¡Xisµissuedµfirst.¡þ^³h¡X§Displaysµcommandsµwithoutµindexµnumbersµ(commandsµare¡Xïnumberedµfromµoneµinµeachµsession).µThisµoptionµisµusefulµin¡X8creatingµaµcommandµscriptµfileµfromµpreviouslyµentered¡Xcommands.¡þóForµexample,µtoµdisplayµaµlistµofµallµcommandsµenteredµinµthe¡þ<session,µenter¡þª²lc_shell>´µ²)history¡þä²µµµµ1µread_libµmy_lib.lib¡þµµµµ2µlistµ-variablesµsystem¡þYµµµµ3µaliasµmy_writeµ"write_libµ-formatµvhdl"¡þ“µµµµ4µmywriteµmy_lib¡þÍµµµµ5µhistory¡þZ²To´µlistµonlyµtheµpreviousµtenµcommands,µenter¡þÉ²lc_shell>´µ²)historyµ10¡þ²µµµ1µ²(command¡þ=²µµµ2µ²(command¡þw²µµµ.µ.µ.¡þ±µµ10µ²(command¡þ	?²To´µcreateµaµcommandµscriptµfileµfromµaµhistoryµofµcommands,µuse¡þ	‡theµhistoryµ³hµcommand,µredirectingµtheµoutputµtoµtheµdesiredµscript¡þ	Ðfile.¡þ
>²lc_shell>´µ²)historyµ-hµ>µhistory.script¡þ
Ì²You´µmustµeditµtheµcreatedµfileµ(history.script)µbecauseµtheµlastµline¡þcontainsµtheµcallµtoµhistoryµitselfµandµoverwritesµtheµfile.’D“I501ileaf_page_string1:3-40¥	öäÃËÁâÊË¡Ä,ÿ,é¡Ä,é	cé¡Ä	cé	cÿ¡Ä	cÿ,ÿÆÃÁÊËÃ¡ÄþéÊéÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³40¡þÉ²To´µexecuteµtheµnewµscriptµfileµlater,µuseµtheµincludeµcommandµor¡þstartµlc_shellµwithµtheµ³fµoption.¡þ²lc_shell>´µ²)includeµhistory.script¡þ9²Reexecuting´µCommands¡þ»²To´µreexecuteµpreviouslyµenteredµcommandsµ(command¡þsubstitutions),µuseµtheµexclamationµpointµ(µ!µ)µoperator:¡þu!!¡X¾Reexecutesµtheµlastµcommand.¡þ!-n¡XcReexecutesµtheµnthµcommandµfromµtheµlast.¡þÀ!n¡X	Reexecutesµtheµcommandµnumberedµnµ(fromµaµhistoryµlist).¡þf!text¡X¯Reexecutesµtheµmostµrecentµcommandµthatµstartedµwithµtext.µThe¡X÷textµmustµbeginµwithµaµletterµorµunderscoreµ(_)µandµcanµcontain¡X@numbers.¡þ!?text¡XæReexecutesµtheµmostµrecentµcommandµthatµcontainsµtext¡X.anywhereµinµit.µTheµtextµmustµbeginµwithµaµletterµorµunderscore¡Xw(_)µandµcanµcontainµnumbers.¡þèWhenµanµlc_shellµcommandµbeginsµwithµanµexclamationµpoint,µthe¡þ	1indicatedµcommandµisµechoedµinµitsµentirety.¡þ	ž²lc_shell>´µ²)!!¡þ	Ø²last_command¡þ
’²Command´µSubstitution¡þ²If´µyouµenterµtheµfollowingµcommands,’›D“I501ileaf_page_string1:3-41¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³41¡,Ã²lc_shell>´µ²)read_libµ-formatµedifµ-symbolµcmos.slibµcmos.edif¡,²lc_shell>µ²)write_lib²µ²)cmos¡þŸ²you´µcanµreexecuteµtheµlastµcommandµ(write_lib)µbyµaddingµthe¡þç³outputµoption.¡þo²lc_shell>´µ²)!!µ-output²µ²)cmos1.db¡þ­²write_libµcmosµ-outputµcmos1.db¡þM²To´µlistµtheµcommandµhistory,µenter¡þÕ²lc_shell>´µ²)history¡þ²µµµµ1µreadµ_lib-formatµedifµ-symbolµcmos.sdbµcmos.edif¡þQµµµµ2µwrite_libµcmos¡þµµµµ3µwrite_libµcmosµ-outputµcmos1.db¡þÍµµµµ4µhistory¡þm²To´µreexecuteµtheµpreviousµread_libµcommandµ(commandµnumberµ1),¡þµenter¡þ=²lc_shell>´µ²)!1¡þ{²read_libµ-formatµedifµ-symbolµcmos.sdbµcmos.edif¡þ²To´µreexecuteµtheµpreviousµread_libµcommandµ(theµlastµcommand¡þdstartingµwithµre),µenter¡þì²lc_shell>´µ²)!re¡þ	*²read_libµ-formatµedifµ-symbolµcmos.sdbµcmos.edif¡þ	Ê²To´µreexecuteµtheµlastµread_libµcommandµ(theµlastµcommand¡þ
containingµedif),µenter¡þ
›²lc_shell>´µ²)!?edif¡þ
Ù²read_libµ-formatµedifµ-symbolµcmos.sdbµcmos.edif’›ëD“I501ileaf_page_string1:3-42¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³42¡þÏ²Shell´µCommands¡þo²The´µcommandµinterfaceµincludesµtheseµfourµcommandsµthat¡þ¸communicateµwithµtheµUNIXµenvironment:¡þ=pwd¡X†ListsµLibraryµCompiler'sµworkingµdirectory.¡þícdµdirectory¡X6ChangesµLibraryµCompiler'sµworkingµdirectoryµtoµtheµgiven¡Xdirectoryµorµtoµyourµhomeµdirectoryµifµnoµdirectoryµisµspecified.¡þælsµdirectory¡X.Listsµtheµfilesµinµtheµgivenµdirectoryµorµinµtheµworkingµdirectoryµif¡Xwnoµdirectoryµisµspecified.¡þÞshµcommand¡X'CallsµUNIXµtoµexecuteµaµcommand.µTheµUNIXµcommandµshould¡Xobeµenclosedµinµdoubleµquotes.¡þõTheµfollowingµexamplesµshowµhowµtoµuseµtheµfourµshellµcommands,¡þ>startingµbyµinvokingµtheµlc_shellµprogramµfromµaµUNIXµprompt:¡þÀ²%´µ²)cd¡þý²%µ²)pwd¡þ:²/usr/brian¡þw%µ²)lc_shell¡þ´²LibraryµCompilerµ(TM)¡þñ...¡þ	.Initializing...¡þ	klc_shell>µ²)pwd¡þ	¨²/usr/brian¡þ	ålc_shell>µ²)cdµedif_designs¡þ
"²lc_shell>µ²)pwd¡þ
_²/usr/brian/edif_designs¡þ
œlc_shell>µ²)ls¡þ
Ù²my_lib1.edif¡þmy_lib2.edif’ëD“I501ileaf_page_string1:3-43¥	öäÃËÁâÊË¡Ä,+,¡Ä,	c¡Ä	c	c+¡Ä	c+,+ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³43¡þÃ²my_libs.script¡þ;lc_shell>´µ²)shµ"moreµmy_designs.script"¡þw²readµ/usr/brian/edif_designs/my_design1.edif¡þ³set_unix_variableµ...¡þï...¡þ+listµ-files¡þg...¡þ£pwd¡þß...¡þlc_shell>µ²)cd¡þW²lc_shell>µ²)pwd¡þ“²/usr/brian¡þe²Command´µScripts¡þû²A´µscriptµfile,µalsoµcalledµaµcommandµscript²&,µ²isµaµsequenceµofµlc_shell¡þDcommandsµinµaµtextµfile.µUseµtheµinclude²µ²commandµtoµexecuteµthe¡þŒcommandsµinµaµscriptµfile.¡þ&Byµdefault,µLibraryµCompilerµdisplaysµcommandsµinµtheµscriptµfileµas¡þotheyµexecute.µTheµvariableµecho_include_commandsµ(inµtheµsystem¡þ·variableµgroup)µdeterminesµifµincludedµcommandsµareµdisplayedµas¡þtheyµareµprocessed.µTheµdefaultµforµecho_include_commandsµis¡þItrue.¡þâYouµcanµwriteµcommentsµinµyourµscriptµfileµusingµtheµ/*µandµ*/¡þ	+delimiters.¡þ
²Using´µtheµincludeµCommand¡þ
Í²Syntax¡þ²include´µ²(file’iD“I501ileaf_page_string1:3-44¥	öäÃËÁâÊË¡Ä,	a,	K¡Ä,	K	c	K¡Ä	c	K	c	a¡Ä	c	a,	aÆÃÁÊËÃ¡Äþ	KÊ	KÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³44¡þ²file¡XIName´µofµtheµscriptµfile.µIfµfileµisµaµrelativeµpathnameµ(itµdoesµnot¡X’startµwithµ/,µ./,µ../,µorµ~),µLibraryµCompilerµsearchesµforµtheµfileµin¡XÛtheµdirectoriesµlistedµinµtheµsearch_pathµvariableµ(inµtheµsystem¡X#variableµgroup).µLibraryµCompilerµreadsµtheµfileµfromµtheµfirst¡Xldirectoryµinµwhichµitµexists.¡þÛForµexample,µtoµexecuteµtheµcommandsµcontainedµinµtheµmy_script¡þ$fileµinµyourµhomeµdirectory,µenter¡þ²lc_shell>´µ²)includeµ~/my_script¡þÉ²(command²¡þ²(command²µ/*²(comment²*/¡þ<.µ.µ.¡þÇ²To´µexecuteµtheµcommandsµinµtheµsample.scriptµfile,µwhereµtheµpath¡þtoµthisµfileµisµdefinedµbyµtheµsearch_pathµvariable,µenter¡þ{²lc_shell>´µ²)search_pathµ=µ{.,µmy_dir,¡þ¯/usr/synopsys/libraries}¡þé²{.,µmy_dir,µ/usr/synopsys/libraries}¡þ"lc_shell>µ²)includeµsample.script¡þ\²(command²¡þ–²(command²µ/*²(comment²*/¡þÏ.µ.µ.¡þZ²In´µtheµpreviousµexample,µLibraryµCompilerµsearchesµforµthe¡þ£sample.scriptµfileµinµtheµdirectoryµ(.),µthenµinµtheµsubdirectoryµmy_dir,¡þìthenµinµtheµdirectoryµ/usr/synopsys/libraries.¡þ	›²Command´µStatus¡þ
²After´µlc_shellµexecutesµaµcommand,µitµsetsµaµstatusµvalueµinµthe¡þ
csystemµvariableµlc_shell_status.µThisµvalueµisµtheµsameµasµtheµvalue¡þ
«displayedµbyµlc_shellµafterµprocessingµaµcommand.¡þ²lc_shell>´µ²)aliasµmyreadµ"read_libµ-formatµedif’iíD“I501ileaf_page_string1:3-45¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³45¡þÃ²)-no_warnings"¡þ²1¡þš²The´µcommandµstatusµvalueµreturnedµforµtheµpreviousµaliasµcommand¡þãisµone,µindicatingµsuccessfulµcommandµcompletion.µYouµcanµalso¡þ,useµtheµlistµcommandµtoµshowµtheµvalueµofµtheµlc_shell_status¡þtvariable.¡þõ²lc_shell>²)´µlistµlc_shell_status¡þ2²lc_shell_statusµ=µ1¡þÍ²The´µlc_shell_statusµvariableµisµtheµonlyµvariableµthatµchangesµtype.¡þTheµtypeµofµlc_shell_statusµdependsµonµtheµtypeµofµtheµreturnµvalue¡þ^fromµtheµlastµlc_shellµcommand.¡þIfµaµcommandµcannotµexecuteµproperlyµ(suchµasµaµread_lib¡þIcommandµthatµtriesµtoµreadµaµlibraryµfileµcontainingµanµerror),µits¡þ‘returnµvalueµisµanµerrorµstatusµvalue.µTheµerrorµstatusµvalueµisµzero¡þÚforµmostµcommands,µandµaµnullµlistµ({})µforµcommandsµthatµreturnµa¡þ#list.¡þ£²lc_shell>´µ²)listµno_such_var¡þà²Error:µVariableµ'no_such_var'µisµundefined.µ(UI-1)¡þ0¡þ—lc_shell>µ²)read_libµ-formatµedifµ-symbolµbad_lib.slib¡þËbad_lib.edif¡þ	²Errorµ.µ.µ.¡þ	D{}¡þ	ß²Following´µisµanµexampleµofµcheckingµforµaµnullµlist:¡þ
`²if´µ(lc_shell_statusµ==µnull)µ{¡þ
¡…
quit¡þ
Ú}’í	ÒD“I501ileaf_page_string1:3-46¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³46¡þÏ²Using´µControlµFlowµCommands¡þb²Control´µflowµcommandsµdetermineµtheµexecutionµorderµofµother¡þ«commands.µThreeµcontrolµflowµcommandsµareµif,µwhile,µandµforeach.¡þBAnµifµstatementµcontainsµseveralµsetsµofµcommands.µOneµsetµof¡þ‹theseµcommandsµisµexecutedµoneµtime,µasµdeterminedµbyµthe¡þÔevaluationµofµaµgivenµconditionµexpression.µTheµwhileµcommand¡þrepeatedlyµexecutesµaµsingleµsetµofµcommandsµsoµlongµasµaµgiven¡þeconditionµevaluatesµtrue.µTheµforeachµcommandµexecutesµaµsetµof¡þ®commandsµonceµforµeachµvalueµofµaµdefinedµvariable.¡þEUseµanyµofµtheµlc_shellµcommandsµinµaµcontrolµflowµcommand,¡þincludingµanotherµif,µwhile,µorµforeach.¡þ%Primarily,µyouµuseµtheµcontrolµflowµcommandsµinµcommandµscripts.¡þmAµcommonµuseµisµtoµcheckµifµaµpreviousµcommandµexecuted¡þ¶successfully.¡þMTheµconditionµexpressionµisµevaluatedµasµaµBooleanµvariable.¡þ–Table 3³2µshowsµhowµeachµnon³Booleanµvariableµtypeµisµevaluated.¡þßForµexample,µtheµintegerµzeroµisµevaluatedµasµaµBooleanµfalse.µA¡þ'non³zeroµintegerµisµevaluatedµasµaµBooleanµtrue.µUseµcondition¡þpexpressionsµtoµcompareµtwoµvariablesµofµtheµsameµtypeµorµaµsingle¡þ¸variableµofµanyµtype.µAllµvariableµtypesµhaveµBooleanµevaluations.µ¡,	]²&Table 3³2³BooleanµEvaluationsµofµNon³BooleanµTypes¡,	Æ²¥	öä¡I	î²"Boolean¡I
$EvaluationÁã¡ÃÄ,	¢-	¢-
Q,
Q,	¢Ç¡ÃÄ,	¢¾	¢¾	ª,	ª,	¢Ç²¡¿	Æ¥	öä¡Ü

²"Int/Float¡ÃÄ¿	¢Q	¢Q	ª¿	ª¿	¢Ç²¡R	Æ¥	öä¡o

²"String¡ÃÄR	¢å	¢å	ªR	ªR	¢Ç²¡æ	Æ¥	öä¡

²"List¡ÃÄy	¢z	¢z
Qy
Qy	¢Ç¡ÃÄæ	¢z	¢z	ªæ	ªæ	¢Ç²¡y	Æ¡,
v¥	öä¡I
–²False¡ÃÄ,
R-
R-
¹,
¹,
RÇ¡ÃÄ,
R¾
R¾
S,
S,
RÇ²¡¿
v¥	öä¡Ü
–²0,´µ0.0¡ÃÄ¿
RQ
RQ
S¿
S¿
RÇ²¡R
v¥	öä¡o
–²"µ"¡ÃÄR
Rå
Rå
SR
SR
RÇ²¡æ
v¥	öä¡
–²{µ}¡ÃÄy
Rz
Rz
¹y
¹y
RÇ¡ÃÄæ
Rz
Rz
Sæ
Sæ
RÇ²¡y
v¡,
Þ¥	öä¡I
þ²T¤ÿþrue¡ÃÄ,
º-
º-!,!,
ºÇ¡ÃÄ,¾¾",",Ç²¡¿
Þ¥	öä¡Ü
þ²Others¡ÃÄ¿QQ"¿"¿Ç²¡R
Þ¥	öä¡o
þ²Nonemptyµstring¡ÃÄRåå"R"RÇ²¡æ
Þ¥	öä¡
þ²Nonemptyµlist¡ÃÄy
ºz
ºz!y!y
ºÇ¡ÃÄæzz"æ"æÇ²¡y
Þ’	Ò€D“I501ileaf_page_string1:3-47¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³47¡þÏ²if´µCommand¡þ\²The´µifµcommandµexecutesµaµcommandµifµtheµspecifiedµexpressionµis¡þ¤true.¡þe²Syntaxµ¡þ­²if´µ(if_expression)µ{¡þèµµµif_command¡þ#µµµif_command¡þ^µµµ...¡þ™}µelseµifµ(else_if_expression)µ{¡þÔµµµelse_if_command¡þµµµelse_if_command¡þKµµµ...¡þ†}µelseµ{¡þÁµµµelse_command¡þüµµµelse_command¡þ7µµµ...¡þr}¡þ²This´µisµhowµtheµifµcommandµisµexecuted:¡þ}1.¡X}Whenµif_expressionµisµtrue,µexecuteµallµif_commands.¡þç2.¡XçWhenµif_expressionµisµnotµtrueµandµelse_if_expressionµisµtrue,¡X.executeµallµelse_if_commands.¡þ˜3.¡X˜Whenµneitherµif_expressionµnorµelse_if_expressionµisµtrue,¡Xßexecuteµallµelse_commands.¡þ	aEachµexpressionµisµevaluatedµasµaµBooleanµvariableµ(see¡þ	ªTable 3³2).¡þ
:Theµelseµifµandµelseµbranchesµareµoptional.µIfµyouµuseµanµelseµifµor¡þ
ƒelseµbranch,µtheµwordµelseµmustµbeµonµtheµsameµlineµasµthe¡þ
Ìprecedingµrightµbraceµ(}),µasµshownµinµtheµsyntax.µYouµcanµhave¡þmanyµelseµifµbranchesµbutµonlyµoneµelseµbranch.’€ÚD“I501ileaf_page_string1:3-48¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³48¡þÉ²The´µfollowingµscriptµexampleµshowsµhowµtoµuseµaµvariable¡þ(vendor_library)µtoµcontrolµtheµlinkµandµfontµlibraries.¡þ“²vendor_library´µ=µmy_lib¡þÐifµ((vendor_libraryµ!=µXlib)µ&&µ(vendor_libraryµ!=µYlib))¡þ{¡þAµµvendor_libraryµ=µXlib¡þ~}¡þ»ifµ(vendor_libraryµ==µXlib)µ{¡þ÷µµlink_libraryµ=µXlib.db¡þ4µµfont_libraryµ=µ1_25.font¡þq}µelseµ{¡þ®µµlink_libraryµ=µYlib.db¡þëµµfont_libraryµ=µ1_30.font¡þ(}¡þ½²A´µlibraryµisµloadedµandµcheckedµforµerrors;µifµerrorsµareµfound,µthe¡þscriptµquits.µOtherwise,µtheµvalueµofµtheµlc_shell_statusµvariable¡þNcontrolsµtheµreadµofµtheµlibrary.¡þÏ²read_lib´µmy_lib.lib¡þifµ(lc_shell_statusµ!=µ1)µ{¡þIµµquit¡þ†}¡þc²}²while´µCommand¡þ	²The´µwhileµcommandµrepeatsµaµcommandµbetweenµtheµwhileµandµthe¡þ	Jmatchingµendµstatementµwhenµtheµexpressionµisµtrue.’Ú D“I501ileaf_page_string1:3-49¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³49¡þÉ²Syntax¡þ²while´µ(²(expression²)µ{¡þSµµµ²(while_command¡þ‘²µµµ²(while_command¡þÎ²µµµ...¡þ}¡þ«²As´µlongµasµexpressionµisµtrue,µallµwhileµcommandsµareµexecuted¡þórepeatedly.µTheµexpressionµisµevaluatedµasµaµBooleanµvariableµ(see¡þ<Table 3³2).¡þæIfµcontinueµisµencounteredµinµaµwhileµloop,µcommandµexecution¡þ/immediatelyµstartsµoverµatµtheµtopµofµtheµwhileµloop,µreevaluatingµthe¡þwexpression.¡þ!Ifµbreakµisµencountered,µcommandµexecutionµjumpsµtoµtheµnext¡þjcommandµafterµtheµendµofµtheµwhileµloop.¡þAnµexpressionµcanµtestµtheµreturnµvalueµofµaµstatementµbyµchecking¡þ]theµsystemµvariableµlc_shell_status.µInµthisµway,µcontinued¡þ¥commandµexecutionµdependsµonµsuccessfulµcompletionµofµa¡þîpreviousµcommand.¡þ˜Theµfollowingµscriptµexampleµdisplaysµ0µtoµ19,µexitingµtheµwhileµafter¡þàcountµisµgreaterµthanµ20µ(ifµcommandµreturnsµ0µtoµlc_shell_status):¡þ	g²count´µ=µ0¡þ	¥whileµ(lc_shell_statusµ!=µ0)µ{¡þ	âµµcountµ=µcountµ+µ1¡þ
 µµifµ(countµ<µ20µ)µ{¡þ
]µµµµlistµcount¡þ
›µµ}¡þ
Ù}’ ìD“I501ileaf_page_string1:3-50¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³50¡þÏ²foreach´µCommandµ²}µ¡þn²The´µforeachµcommandµexecutesµaµsetµofµcommandsµonceµforµeach¡þ¶valueµassigned.¡þ•²Syntax¡þà²foreach²)´µ(²(variable_name²,²(µlist²µ)µ{¡þµµµ²(foreach_command¡þZ²µµµ²(foreach_command¡þ—²µµµ...¡þÔ}¡þQ²variable_name¡XšThe´µnameµofµtheµvariableµsuccessivelyµsetµtoµeachµvalueµinµlist.¡þlist¡XIAnyµvalidµexpressionµcontainingµvariablesµorµconstants.¡þ¯foreach_command¡XøAnµlc_shellµstatement.µAllµstatementsµmustµbeµterminatedµby¡XAeitherµaµsemicolonµorµaµcarriageµreturn.¡þÅTheµforeachµcommandµsetsµvariable_nameµtoµeachµvalue¡þrepresentedµbyµlistµandµexecutesµtheµidentifiedµsetµofµcommandsµfor¡þWeachµvalue.µTheµvariable_nameµretainsµitsµvalueµuponµterminationµof¡þŸtheµforeachµloop.¡þ	BAµcarriageµreturnµorµsemicolonµmustµprecedeµtheµclosingµbraceµof¡þ	‹theµforeachµcommand.’ì‘D“I501ileaf_page_string1:3-51¥	öä¥	öä¡eÁ²âUsing´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³51¡þÉ²The´µfollowingµscriptµexampleµshowsµaµsimpleµcaseµofµtraversingµall¡þtheµelementsµofµlistµvariableµxµandµprintingµthem:¡þ‘²x´µ=µ{a,µb,µc}¡þÎforeachµ(µmember,µxµ)µ{¡þ
µµlistµmemberµ;¡þG}¡þá²The´µresultµofµthisµcommandµis¡þmemberµ=µa¡þ!memberµ=µb¡þÀmemberµ=µc¡þ ²continue´µCommand¡þ=²The´µcontinueµcommandµisµusedµonlyµinµaµwhileµorµforeachµcommand¡þ…toµskipµtheµremainderµofµtheµloop'sµcommands,µbeginµagain,µand¡þÎreevaluateµexpression.µIfµexpressionµisµtrue,µallµcommandsµare¡þexecutedµagain.¡þñ²Syntax¡þ	;²continue¡þ	Õ²Theµfollowingµscriptµexampleµisµsimilarµtoµtheµpreviousµwhile¡þ
example,µbutµthisµscriptµskipsµtheµdisplayµofµ3.¡þ
²count´µ=µ0¡þ
Úwhileµ(lc_shell_statusµ!=µ0)µ{¡þµµcountµ=µcountµ+µ1’‘D“I501ileaf_page_string1:3-52¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµShellµInterface¡.3³52¡þÃ²´µµifµ(countµ=µ3)µ{¡þ²)µµµµ²continue¡þ<µµ}¡þyµµifµ(countµ<µ20)µ{¡þò²)µµµµ²listµcount¡þ/µµ}¡þl}¡þG²break´µCommand¡þä²The´µbreakµcommandµisµusedµonlyµinµaµwhileµorµforeachµcommandµto¡þ-skipµtheµremainderµofµtheµloop'sµcommandsµandµjumpµtoµtheµfirst¡þucommandµoutsideµtheµloop.¡þQ²Syntax¡þœ²break¡þÙThe´µfollowingµscriptµexampleµdisplaysµ1µtoµ19µbutµbreaks¡þoutµofµtheµwhileµloopµafterµcountµisµgreaterµthanµ19µ(if¡þAcommandµreturnsµ0µtoµlc_shell_status):¡þ~countµ=µ1¡þºwhileµ(countµ>µ0)µ{¡þ÷µµifµ(countµ<µ20)µ{¡þ4²)µµµµ²listµcount¡þq}¡þ­µµifµ(lc_shell_statusµ!=µ1)µ{¡þêµµµµbreak¡þ	'µµ}¡þ	cµµcountµ=µcountµ+µ1¡þ	 }¡þ
:²Note:²¡X
ƒ²The´µdifferenceµbetweenµcontinueµandµbreakµisµthatµcontinue¡X
Ìcausesµcommandµexecutionµtoµstartµover,µbutµbreakµcauses¡Xcommandµexecutionµtoµbreakµoutµofµtheµwhileµorµforeachµloop.’¯D“I501ileaf_page_string1:3-53¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,P,:¡Ä,:	c:¡Ä	c:	cP¡Ä	cP,PÆÃÁÊËÃ¡Ä,:Ê:ÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³53¡þÏ²Using´µWildcardµCharacters¡þ_²Use´µtheµwildcardµcharacter,µanµasteriskµ(*)µtoµmatchµaµnumberµof¡þ§charactersµinµaµname.µForµexample,µu*µindicatesµallµobjectµnames¡þðthatµbeginµwithµtheµletterµu.µu*zµindicatesµallµobjectµnamesµthatµbegin¡þ9withµtheµletterµuµandµendµinµtheµletterµz.µWildcardµcharactersµmustµbe¡þprecededµbyµdoubleµbackslashesµ(µ\\µ)µtoµremoveµtheirµspecial¡þÊmeaning.µForµexample,µ\\*µindicatesµanµobjectµwhoseµnameµisµ*.¡þ]Thisµuseµofµbackslashesµisµsimilarµtoµtheµuseµofµbackslashesµin¡þ¦UNIX.¡,²Using´µVariablesµ¡þ;²Variables´µstoreµvaluesµforµuseµbyµlc_shellµcommands.µForµexample,¡þ„settingµtheµvariableµvhdllib_architectureµtoµfullµtimingµgate³level¡þÌsimulationµ(FTGS)µtellsµwrite_libµcommandµtoµgenerateµoptimized¡þgate³levelµsimulationµlibraries.¡þ¨Setµvariableµvaluesµinµtheµlc_shellµinterfaceµorµinµtheµmenuµinterface.¡þñVariablesµcanµbeµaµcharacter,µanµinteger,µaµfloatingµpoint,µorµlist¡þ:data.¡þÍEachµlc_shellµvariableµhasµaµnameµandµaµvalue.¡þ	Gname¡X	Aµsequenceµofµcharacters.µSomeµvariablesµareµpredefined,µsuch¡X	Ùasµcommand_log_fileµ(theµnameµofµtheµlc_shellµlogµfile),µand¡X
!text_print_commandµ(theµprintµcommand).¡þ
ƒvalue¡X
ÌAµvalidµvalue,µsuchµasµaµfileµnameµorµlistµofµfileµnames,µaµnumber,¡Xorµaµsetµofµcommandµoptionsµandµarguments.’¯àD“I501ileaf_page_string1:3-54¥	öäÃËÁâÊË¡Ä,,ø¡Ä,ø	cø¡Ä	cø	c¡Ä	c,ÆÃÁÊËÃ¡ÄþøÊøÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³54¡þÉ²Variables´µcanµbeµanµindividualµorµaµpartµofµaµvariableµgroup.µFor¡þexample,µtheµsystemµvariableµgroupµcontainsµtheµdesignerµand¡þZcompanyµvariables.¡þëForµinformationµonµpredefinedµvariableµgroups,µuseµtheµhelp¡þ3commandµwithµvariable_group_variables.¡þ¨²lc_shell>´µ²)helpµsystem_variables¡þ9²Variables´µcanµbeµset,µcreated,µlisted,µandµremovedµusingµthe¡þ‚methodsµdescribedµinµtheµfollowingµsections.¡þH²Setting´µVariableµValues¡þÔ²To´µsetµtheµvalueµofµaµvariable,µenterµtheµvariableµname,µanµequal¡þsignµ(=),µandµtheµappropriateµvalue.µLibraryµCompilerµechoesµthe¡þfnewµvalue.¡þÚ²lc_shell>´µ²)designerµ=µ"brian"¡þ²brian¡þ‹lc_shell>µ²)vhdllib_architectureµ=µ{FTGS"}¡þÆ²{FTGS"}¡þ<lc_shell>µ²)search_pathµ=µ{µ.µ/usr/synopsys/libraries}¡þw²{µ.,µ/usr/synopsys/libraries}¡þ		²You´µcanµalsoµsetµaµvariableµtoµbeµequalµtoµaµlistµofµlibraryµobjects,µas¡þ	Rshownµbyµtheµfollowingµexamples.µTheµexampleµdefinesµtheµtypesµof¡þ	šVHDLµlibrariesµyouµwantµtoµgenerate.µInµtheµnextµexample,¡þ	ãoptimizedµgate³levelµandµVITALµsimulationµlibrariesµareµgenerated¡þ
,whenµyouµuseµtheµwrite_libµcommand:¡þ
 ²lc_shell>²)´µvhdllib_architectureµ=µ{"FTGS","VITAL"}¡þ
Û²{"FTGS","VITAL"}’àâD“I501ileaf_page_string1:3-55¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Í,·¡Ä,·	c·¡Ä	c·	cÍ¡Ä	cÍ,ÍÆÃÁÊËÃ¡Äþ·Ê·ÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³55¡þÏ²Creating´µVariables¡þn²To´µcreateµaµnewµvariable,µuseµtheµsameµsyntaxµusedµtoµsetµan¡þ¶existingµvariable.µTheµlc_shellµprogramµissuesµaµwarningµmessage¡þÿwhenµaµnewµvariableµisµcreatedµ(inµcaseµyouµmisspelledµtheµnameµof¡þHanµexistingµvariable),µthenµechoesµtheµvalueµofµtheµnewµvariable.¡þÉ²lc_shell>´µ²)numeric_varµ=µ107.3¡þ²Warning:µDefiningµnewµvariableµ'numeric_var'.¡þC107.3¡þ½lc_shell>µ²)my_varµ=µ"my_value"¡þú²Warning:µDefiningµnewµvariableµ'my_var'.¡þ7my_value¡þ°lc_shell>µ²)list_varµ=µ{µ/home/frank,/usr/libraries,/tmpµ}¡þí²Warning:µDefiningµnewµvariableµ'list_var'.¡þ*{/home/brian,µ/usr/libraries,µ/tmp}¡þ²Listing´µVariableµValues¡þ¦²To´µdisplayµaµvariableµvalue,µuseµtheµlistµcommand.¡þ'²lc_shell>´µ²)listµdesigner¡þd²designerµ=µ"brian"¡þÞlc_shell>µ²)listµnumeric_var¡þ	²numeric_varµ=µ107.3’âŠD“I501ileaf_page_string1:3-56¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,ð¡Ä,ð	cð¡Ä	cð	c¡Ä	c,ÆÃÁÊËÃ¡ÄþðÊðÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµShellµInterface¡.3³56¡þÏ²Removing´µVariables¡þl²To´µremoveµaµvariableµfromµlc_shell,µuseµtheµremove_variable¡þ´command.¡þ4²lc_shell>´µ²)remove_variableµmy_var¡þÎ²Variables´µrequiredµbyµlc_shellµcannotµbeµremoved.µForµexample,¡þsystemµvariables,µsuchµasµcommand_log_fileµandµsearch_path¡þ`cannotµbeµremoved.¡þ@²Creating´µVariableµGroups¡þÝ²Related´µvariablesµcanµbeµcombinedµinµvariableµgroupsµwithµthe¡þ&group_variableµcommand.µMostµpredefinedµvariablesµareµpartµofµa¡þogroup,µsuchµasµtheµsystemµvariableµgroupµorµtheµvhdlioµvariable¡þ·group.¡þXVariableµgroupsµareµaµconvenienceµforµrelatingµvariables;µthereµare¡þ noµoperationsµonµvariableµgroupsµthemselvesµ(exceptµtoµaddµa¡þévariableµorµlistµtheµmemberµvariables).¡þÄ²Syntax¡þ	²group_variable´µµ²(group_name²µµ"²(variable_name²"¡þ	Œ²group_name¡X	ÔNew´µorµexistingµvariableµgroupµname.¡þ
:"variable_name"¡X
ƒVariableµaddedµtoµgroup_name.µTheµvariable_nameµmustµbe¡X
Ìenclosedµinµdoubleµquotes;µotherwise,µitsµvalueµisµusedµasµthe¡Xvariableµname.’Š7D“I501ileaf_page_string1:3-57¥	öäÃËÁâÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öä¥	öä¡eÁ²Using´µtheµLibraryµCompilerµShellµInterface¡Ô¤ÿ¤3³57¡þÉ²For´µexample,µtoµcreateµaµnewµvariableµgroupµmy_var_group,µenter¡þK²lc_shell>²)´µgroup_variableµmy_var_groupµ"my_var"¡þ‡²lc_shell>²)µgroup_variableµmy_var_groupµ"numeric_var"¡þ"²When´µyouµcreateµaµvariableµgroup,µyouµcannotµdeleteµit.µHowever,¡þkyouµcanµremoveµaµvariableµfromµtheµgroupµwithµtheµremove_variable¡þ´command.¡þ˜²Listing´µVariableµGroups¡þ7²To´µlistµvariableµgroupµmembersµandµtheirµvalues,µuseµtheµlist¡þ€³variablesµcommandµwithµtheµvariableµgroup'sµname.¡þ²lc_shell>´µ²)listµ-variablesµmy_var_group¡þ>²µµµµµµµµmy_varµµµµµµµµµµµµµµmy_value¡þ{µµµµµµµµnumeric_varµµµµµµµµ107.3¡þõlc_shell>µ²)listµ-variablesµsystem¡þ2²auto_link_optionsµ"-all"¡þncommand_log_fileµ"./lc_command.log"¡þ«...¡þèecho_include_commandsµ"true"¡þ%verbose_messagesµ"true"’7ÐOPS m:m:D€‚Document:4guiÿ‚Last saved on:Tue, Dec 9, 1997 17:53:07ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°)wst:courps12b±):                                                                                          2                                       °.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°spsb:symbb9±	%%%%%	
'	!'%%ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåå®åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’<­&D“I501ileaf_page_string1:4-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¾4³1¡,m²².4â²/¥	öä¡Õm²â¡,O²	Using´µtheµLibraryµCompilerµGraphical¡,¿Interface¡,²¥	öäÁÊËÃ¡Ä,ÊÆÃ¡	ö,¡þºLibrary´µCompilerµisµtheµgraphicalµinterfaceµtoµtheµLibraryµCompiler¡þtool.µWithµit,µyouµuseµaµmouseµandµaµcursorµtoµselectµcommands,¡þLoptions,µandµfileµnames.¡þÐYouµcanµalsoµaccessµtheµLibraryµCompilerµprogramµthroughµthe¡þcommandµlineµinterface,µlc_shell.µInµlc_shell,µyouµenterµUNIX³style¡þacommands,µarguments,µandµoptions.µTheµcommandµlineµinterfaceµis¡þªdescribedµinµChapterµ3,µUsingµtheµLibraryµCompilerµShellµInterface."¡þ	.ToµunderstandµtheµLibraryµCompiler'sµgraphicalµinterface,µyouµmust¡þ	wunderstandµtheµfollowingµconceptsµdescribedµinµthisµchapter:¡þ	ç²S¡X	ç²UnderstandingµLibraryµCompilerµfunctions¡þ
L²S¡X
L²StartingµLibraryµCompiler¡þ
°²S¡X
°²Usingµtheµinterface¡þ²S¡X²Usingµtheµmenusµbar’&lD“I501ileaf_page_string1:4-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,á,Ë¡Ä,Ë	cË¡Ä	cË	cá¡Ä	cá,áÆÃÁÊËÃ¡Ä,ËÊËÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡.4³2¡,Õ²Understanding´µLibraryµCompilerµFunctions¡þw²Library´µCompilerµisµaµmenu³drivenµgraphicalµinterface.µThisµinterface¡þ¿isµbasedµonµtheµMicrosoftµWindowsµstyleµguide.µWithµtheµgraphical¡þuserµinterfaceµ(GUI),µyouµcan¡þ~²S¡X~²Readµandµwriteµlibrariesµinµmultipleµformats,µsuchµasµSynopsys¡XÅinternalµdatabaseµ(db),µVHDL,µandµEDIF.¡þ-²S¡X-²Generateµaµvarietyµofµreports.¡þ–²S¡X–²Updateµandµoverwriteµlibrariesµbyµaddingµcells,µoperating¡XÜconditions,µtimingµrange,µscalingµfactor,µbusµtypeµdefinition,¡X#interconnectµwireµload,µandµotherµgroupµstatements.¡þ‹²S¡X‹²Compareµaµtechnologyµlibraryµwithµaµsymbolµlibraryµfor¡XÒconsistency.¡þ:²S¡X:²EncryptµVHDLµfiles.¡þ£²S¡X£²SetµLibraryµCompilerµoptionµvalues,µsuchµasµtheµnameµofµa¡Xêtechnologyµlibrary.¡þR²S¡XR²Displayµandµmoveµthroughµlevelsµofµaµdirectoryµtreeµhierarchy.¡,!²Starting´µLibraryµCompilerµ¡þÃ²The´µLibraryµCompilerµprogram'sµGUIµoperatesµunderµtheµXµWindow¡þ	andµOPENµLOOKµSystems.¡þ	1.¡X	StartµtheµXµWindowµ(xinitµcommand)µorµOPENµLOOKµSystem¡X	È(openwinµcommand)µonµyourµsystem.¡þ
12.¡X
1Startµtheµlibraryµcompilerµinterfaceµbyµenteringµtheµfollowing¡X
wcommandµatµtheµUNIXµprompt:¡X
Ü²%´µ²)library_compiler’lÆD“I501ileaf_page_string1:4-3¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¾4³3¡þÉ²The´µLibraryµCompilerµwindowµinµFigure 4³1µappearsµonµyourµscreen.¡þlForµdetailsµonµinstallingµandµsettingµupµLibraryµCompilerµandµits¡þ´directories,µseeµthe²&µSynopsysµInstallationµReferenceµManual.¡,fFigure 4³1³MainµLibraryµCompilerµWindow¡,ç²¥	öäÁÊËÃ¡Ä”eUfÆÃÒÔhì?a®b¯)é£)ƒÿ‘@é£)ƒÿ‘@é£)ƒÿ‘@ÁâÊËÃ¡Ä8öÈÆÃÃÁâÊË¡ÄïïÁâÊË¡Äï á¡Ä á8¡Ä8ó¡ÄóïâãÇÆÃÁÊËÃ¡Ä88ÆÃÁÃ¡Ä8öÈÆÃÃÁÊË¡ÄïïÁ¡Äï á¡Ä á8¡Ä8ó¡ÄóïÇÆÃÁÊËÃ¡Ä88ÆÃÁâÊËÃ¡ÄŒ.6ÙÆÃÃÁâÊË¡ÄppÁâÊË¡Äpt¡ÄtŒ.¡ÄŒ.b¡ÄbpâÇÆÃÁÊËÃ¡ÄŒ.Œ.ÆÃÁÃ¡ÄŒ.6ÙÆÃÃÁÊË¡ÄppÁ¡Äpt¡ÄtŒ.¡ÄŒ.b¡ÄbpÇÆÃÁÊËÃ¡ÄŒ.Œ.ÆÃÁâÊËÃ¡ÄUfòfÆÃÃÁâÊË¡Ä.f.fÁâÊË¡Ä.f&Y¡Ä&YUf¡ÄUf&r¡Ä&r.fâÇÆÃÁÊËÃ¡ÄUfUfÆÃÁÃ¡Ä7eÔeÆÃÃÁÊË¡Ä7e7eÁ¡Ä7e0Y¡Ä0Y_e¡Ä_e0r¡Ä0r7eÇÆÃÁÊËÃ¡Ä7e7eÆÃÁâÊËÃ¡Äh
ÆÃÃÁâÊË¡Ä@@ÁâÊË¡Ä@9ö¡Ä9öh¡Äh9¡Ä9@âÇÆÃÁÊËÃ¡ÄhhÆÃÁÃ¡Äh
ÆÃÃÁÊË¡Ä@@Á¡Ä@9ö¡Ä9öh¡Äh9¡Ä9@ÇÆÃÁÊËÃ¡ÄhhÆÃÁâÊËÃ¡Ä+°áeÆÃÃÁâÊË¡Ä””ÁâÊË¡Ä”‡¡Ä‡+°¡Ä+°˜¡Ä˜”âÇÆÃÁÊËÃ¡Ä+°+°ÆÃÁÃ¡Ä+°áeÆÃÃÁÊË¡Ä””Á¡Ä”‡¡Ä‡+°¡Ä+°˜¡Ä˜”ÇÆÃÁÊËÃ¡Ä+°+°ÆÃÁÃ¡ÄáeépÆÃÃ¡ÄëµQ´ÆÃÁâÊËÃ¡ÄQ´'´ÆÃÃÁâÊË¡Ä*´*´ÁâÊË¡Ä*´#¨¡Ä#¨Q´¡ÄQ´#À¡Ä#À*´âÇÆÃÁÊËÃ¡ÄQ´Q´ÆÃÁÃ¡ÄQ´'´ÆÃÃÁÊË¡Ä*´*´Á¡Ä*´#¨¡Ä#¨Q´¡ÄQ´#À¡Ä#À*´ÇÆÃÁÊËÃ¡ÄQ´Q´ÆÃ¡Êç’ÆD“I501ileaf_page_string1:4-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡.4³4¡,Õ²Using´µtheµInterface¡þt²To´µuseµtheµinterface,µselectµanµaction²&,µ²suchµas²&µ²read²&.µ²Thenµselectµan¡þ½object²&,µ²suchµasµaµlibrary.µSelectµobjectsµandµactionsµbyµname.¡þGTheµLibraryµCompilerµwindowµcontainsµtheµfollowingµmainµelements:¡þ¼²S¡X¼²Titleµbarµshowingµtheµnameµofµtheµprogram,µSynopsysµLibrary¡XCompilerµTool,µacrossµtheµtopµofµtheµdisplay.¡þj²S¡Xj²Menuµbarµcontainingµpull³downµmenus.µTheµmenuµbarµisµlocated¡X±directlyµbelowµtheµtitleµbar.µYouµcanµaccessµLibraryµCompiler¡X÷commandsµusingµtheµmenuµbar.µTheµmenusµinµtheµbarµinclude¡X>File,µAnalyze,µOptions,µView,µandµHelp.µSeeµFigure 4³3.¡X¥Seeµaµdescriptionµofµanyµmenuµcommandµbyµholdingµtheµright¡Xìmouseµbuttonµoverµtheµcommand.µµToµissueµaµcommand,µrelease¡X2theµmouseµbuttonµwhileµtheµpointerµisµstillµoverµtheµmenu¡Xycommand.µMoveµtheµmouseµpointerµawayµfromµtheµmenu¡X¿commandµbeforeµreleasingµtheµmouseµbuttonµifµyouµdon'tµwantµto¡Xissueµtheµcommand.¡XyTheµtoolµadheresµtoµtheµaction³objectµruleµofµuserµinteraction.¡X¿Youµmustµfirstµchooseµaµverbµfromµtheµmenuµbarµ(actionµto¡Xperformµonµanµobject)µandµthenµchooseµtheµobjectµ(suchµasµa¡XLlibraryµfilename).¡þ¿²S¡X¿²Toolµbarµlocatedµunderµtheµmenuµbar.µItµcontainsµaµrowµofµpush¡X	buttonsµrepresentingµcommandµactions.µTheµtoolµbarµhasµbuttons¡X	LforµtheµFile²´	µ²Read,´µFileµ²´	µ²&>´µ²Write,µFileµ²´	µ²&>´µ²Encrypt,µFileµ²&>µ²Add¡X	’Module,µFileµ²&>µ²Update,µAnalyzeµ²&>µ²Compare,µandµAnalyzeµ²&>¡X	Ù²Reportµpull³downµmenuµitems.¡þ
A²S¡X
A²Messageµareaµlocatedµatµtheµcenterµofµtheµwindow.µMessages¡X
‡fromµtheµLibraryµCompilerµprogramµtoµtheµuser,µandµshell¡X
Îresponsesµfromµuserµinputµareµdisplayedµinµthisµarea.µItµhasµa¡Xverticalµandµhorizontalµscrollµbar.’kD“I501ileaf_page_string1:4-5¥	öäÃËÁâÊË¡Ä,†,p¡Ä,p	cp¡Ä	cp	c†¡Ä	c†,†ÆÃÁÊËÃ¡Ä,pÊpÆÃ¥	öä¥	öä¡Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¾4³5¡þÉ²²S¡XÉ²Command´µlineµpromptµlocatedµunderµtheµmessageµarea.µYou¡XcanµtypeµanyµLibraryµCompilerµcommandµatµtheµLibraryµCompiler¡XVcommandµline.µItµisµusuallyµeasierµtoµissueµcommandsµfrom¡Xmenusµandµbuttons,µbutµsomeµLibraryµCompilerµcommandsµare¡Xãnot µavailableµthroughµtheµgraphicalµinterfaceµandµmustµbe¡X*enteredµatµtheµcommandµline.µTheµcommandµlineµprovidesµa¡Xqhistoryµofµcommandsµyouµhaveµenteredµandµaµshortcutµto¡X·executeµcommandsµdisplayedµwithµaµcheckµmarkµ(²n²).µAnµX¡Xþbuttonµbesideµtheµcommandµentryµlineµletsµyouµcancelµthe¡XDcurrentlyµdisplayedµcommand.µTheµscrollµbarµonµtheµrightµsideµof¡X‹theµwindowµletsµyouµscrollµthroughµpreviouslyµentered¡XÑcommands.µSeeµFigure 4³2.¡þ9²S¡X9²Statusµbarµlocatedµalongµtheµbottomµofµtheµwindow.µItµdisplaysµa¡X€briefµdescriptionµofµtheµcommandµchosenµ(suchµasµCompareµa¡XÆTechnologyµLibraryµtoµaµSymbolµLibraryµinµMemory)µorµhelpful¡Xhints.¡,–²&Figure 4³2³LibraryµCompilerµCommandµPrompt¡þæ²´µ¡- ¥	öäÒÓÐ/ÿ”ß`EaF·ûÀ&ˆ1ÏüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüÁäãâäÀ¿äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääâäÀŸäÕüüüü	†9ü†1üÕ„Iæü!†!ü!†!üÕ„Iæü†1ü	†9üüüÁäãâäÀ¿äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääâäÀŸäÕüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüü?ääÖääÏâääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãÁääÈüääÀŸääÕßääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáÿäüüüü	ÈÏ2ü	ïÇ:ü¢ÈˆÍÉÀ3^ÀÌüU ‚IÈü*‹ÍüÇ	À³ÀÃÀÁÈiÎÐÀÔÔÙÁÈü*:EÀ¥À¢ÏÐ÷À†À¨À¨À´IÇ±ËÎüU"ÈpÊùÇ¨ôÃïÀTÀ,å±ÄÆü¢ÈPÀƒÈÈ˜´ÃÇü	ïÇ-ÀåÈˆÀd´ÂÈü	ÈÏ)ŠÁÈ*´ÁüÎÀ…Ç¨ô	ÀTÕÏÂå±ÖÕü‰ÃÀ¥ÀRÏÐ÷È¨À”IÇ±ÖÕüˆÁÀƒÀÃÀ±À°ÉÀ3ÎÐÀÀ˜ÔÙÀÌÀÍÈüüŒÐÞüääÀŸääÕÞü?ääÖääÏüˆßääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáÿäüˆâääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãÁääÈüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüüÐääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüü	1Æ!ÂA$õ4AÆþþæüÈÃ‹ÇÇ~~ü	Å4ÈüJÀƒÈØÊËØÓîÖÂÀð)ÀåÀžÀ.ÄÀ%ÏÎÀÃÀÅÀ˜ÙÀ¸Æ³ÀÅÀ˜ÐÈÕüQÀÅÀÅÏÀZZÀ\éÀ–êÀh	ÀÓÀ­ÀIåÀ£áÀ´ÀtuÀ£áÀÇÀÐüîÇÀdÉÌññ		Áæ	òÀ2õÌÂÇÀ1éîÆììÎÝîîÆËÈÝÁÆüYÎ<ðMÏ|ÈÝÁÕüÏ\ÁÀ°È	Ô.ÁÈÉÕRÈ	ÚüÏ2‰È+iˆÏüaÀ2îÇñàñññøÈø	ÆõyÂÎHÉÇÈ	ÍüÏÀÅÏÀ]ZÀ\À\ÀêÀÖêÀtÐÀÁÀÐÀ.ÈÆå´AååÀÐ¤ÈüÄÅÀÀ£åÀ;ÄîØÀ:À:ÀÏìÖÀÒÀäÀå$ÆèÀ#ÀÄíÙÈAÀƒÀÄíÐÎÈÀ‘Õü•Èü”ÁÇü”ÁÈWüüüÄÆüÿ¡É ¡,Æ²Using´µtheµMenuµBar¡þ	f²You´µcanµuseµtheµpull³downµmenusµtoµissueµLibraryµCompiler¡þ	¯commands.µYouµcanµdefineµargumentsµtoµtheµcommandsµbyµclicking¡þ	øtheµleftµmouseµbuttonµonµsubmenus,µandµenteringµorµselectingµtextµin¡þ
@dialogµboxes.¡þ
ÌTheµLibraryµCompilerµWindowµmenuµbarµcontainsµtheµnamesµofµthe¡þmainµmenuµitems:µFile,µAnalyze,µOptions,µView,µandµHelp.’k	½D“I501ileaf_page_string1:4-6¥	öäÃËÁâÊË¡Ä,i,S¡Ä,S	cS¡Ä	cS	ci¡Ä	ci,iÆÃÁÊËÃ¡ÄþSÊSÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡.4³6¡þÉ²Menu´µitemsµfollowedµbyµellipsisµpointsµ(...)µrequireµargumentsµsuch¡þasµfileµnamesµthatµyouµprovideµinµaµdialogµbox.¡þÀPull³downµmenusµandµsubmenusµhaveµacceleratorµkeys,µindicated¡þbyµtheµunderlinedµletter.µForµtop³levelµmenus,µsuchµasµFile,µhold¡þQdownµaµmetaµkeyµ(forµexample,µAlt,µRight,µLeft,µorµ³µonµSun¡þšworkstations),µthenµpressµtheµindicatedµkey.µToµmakeµlower³level¡þâselections,µjustµpressµtheµkey.¡þFigure 4³3µshowsµtheµmenuµbar.¡,O²&Figure 4³3³MenuµBar¡%‹²¥	öäÒÓÐ%Œ¤a0b1†ûÈüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääü)üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüŠüÐÀãääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáàüÉÀóääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãàüüü¥Àc‰ÉÌeüÏ•×ŠÎxÈüÓÏ•À-‹Î´KsÈ–ÁÏüÀ\a–ÉÀ1À›ÖÀÀ‡ÀÌÀgÏsÀcÀgÀÀ±êÀLÚÀÙÀ†ÀÃñÀ°×•ÁÈü™ÄQÀ–ÀƒÀKÏÀÏÐÀÇ
ÀhÀ7ïåÁÀh-À-üZ–À&„Â"ÕBÀìÉÈÈ"Ápü™ÀÀ*	ÀŠÀ‰ÈÖÕ‡ÂÀ*wÇü–ÃÁSÇÀFÇ	xü™ÍôùÁˆôÁí%ü™À-ÂÀƒÀOÇÀÇÐÀåÂ½Àh	åÁÙ-À-ü™×ôÀÀÉÀÀ…ÖÈ~ÀcÀãÐÀlôxÚÀÌÀÁÀÃÌÀñÈË××Ìüÿãüÿá–ÌZQ‰ÌTüüü‹üÁääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüÁääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüüüüþÀfKJÈYeÀLËyü>ÀÎÁÈüsÈÈYÀ+üsØJÊÀáÕÀaãÙ(ÀSÀbÀlÓÀn×K×ÀfÎxÀÈüZ"ïÀ’ÀÐxÀ´ÒÎÀTÀÀ-ÇÀ-´ÉÇü<ÀCRÀŠ¨ªôÀ"Åðåü<aåÁÏÍˆÀ&\ëåðÍüÈÂÏó<ˆÀåÖ<üÈZð(ë/Çü(ë9õëÀ,ÈÀ¨ÆÀª8ÇÀ,ÂåüJÀ¨À”ÎÀÑÎÀT%%”ÉÇüzÀfØjÀ6À1ÀÛ~ÙÈÎÀÌÓÀc×
Àƒ×ÀÈIËÙÀÁÈü	ä?ÚÞÞãü	ä?Ú2ÞÞãü‹ÓMËüüüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáÿ¡Ñ‹¡þ£²File¡þM²TheµFileµmenuµcontainsµcommandsµforµmanagingµlibraries.µWhen¡þ–youµclickµonµaµcommandµinµtheµmenu,µLibraryµCompilerµexecutesµit¡þßandµechoesµtheµcommandµinµtheµmessageµareaµsubwindow.¡þ	TheµFileµmenuµhasµsixµitems:µRead,µWrite,µEncrypt,µUpdate,¡þ	ÕAddModule,µandµExit.µEachµofµtheµfirstµfiveµbringsµupµaµdialogµforµone¡þ
ofµtheseµoperations:µreading,µwriting,µencrypting,µupdatingµaµfile,µor¡þ
faddingµaµmemoryµmoduleµtoµaµlibrary.¡þFigure 4³4µshowsµtheµFileµpull³downµmenuµitems.’	½õXD“I501ileaf_page_string1:4-7¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¾4³7¡,É²&Figure 4³4³File´µPull³DownµMenu¡þ ²¥	öäÒÔÿË^©_ª)	£)éƒÿ‘@£)éƒÿ‘@£)éƒ@ÿ‘@¡Ò ¡þ	²Read¡þ©²Readµletsµyouµselectµandµreadµinµlibraryµdescriptionµsourceµfilesµfrom¡þñtheµReadµLibraryµdialogµbox.’õX=D“I501ileaf_page_string1:4-8¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³8¡,É²&Figure 4³5³Read´µLibraryµDialogµBox¡+F²¥	öäÒÓÐ.#•WãEäF
ûÈÅ™9ü1š)üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüš	üÖÀÇääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüÐÀçäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüüü¬ÌYÎü¨ÁÚ[üÔ¨Àh\­ÕüÀ¸©ÚÚÕYËÀlÀñÀ¶Í¨Ïü©øÀiÀiÎÁÀhü©ÔÁÈ+ÀÈÔÅü©ëÎÕ,ÕÀEÇüªÀyÎÎ1ü©ðÄ1Èü©ùÀyÀuÎÉÏÀÁÀt9ü¨ÁÀœÚÀìÀØÖÀÌÝÎÀíéÈüü²Éüüü›üÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚü‰äääääääääääääãüü?ÀØ1È•ÜÍrqüÏ!–ÀÍtüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ—ÖÈÐÀ†ÍüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ—ÀÈÁÈÀÇëükZ”ÏÊ	ÈùÀ˜—À)À[À%ÀžÀlÙôååüyÊÒI”ÁËÉÀ™ÊÀ¤À-ÀÀ´ŽÁÇüð,IÏ”ÖKÀÄÈ˜Ã*À,ülÂÌ’ÂÈÉÊÄÚÌœÀØŽÁÇüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈœñåüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—À)íÂÐôåëüÏ•âÏžÀÀ†À–À-´ÀÇðüÏ•âÏžÖÉÀÀžÀfÙÐÀ†Ìüüü½ÌüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüœÌSÌKÀÛJrbü¦ÌJüœÀÀËÀ¸ÀÃÀ3ØÀÛÀÁÌÀfÀÞÀoØÙÀ/À1À¶Ä™ÛäääääääääääääãüœÀ%À§Àt	ÎZÀ%À¤ÑÀ-ÅÀZÀ´À–ÈÀÆOääääääääääääääÚü#ÀÀ°–Ê"À…ÎÌBÚË,ùÀªçˆÐääääääääääääääÞääääääääääääääÈü6ÁÈ–ÀÈ8óé	ÒÅÌÀØÀ[*ü"ÁÀ†–ùÈXÁÕ,ñÃÀ•ü#–ÇÌÀÐóÀzhARÀÑÀ:ü!–ùÀÐ
Î]ùåÐÀ.ÈÀZÀ´ÀçüœÀcÀ¼ÀÌÀÌÀØÀØÀÌÀ;ÀÃÀÌÀÛÀfÀÀãØÀyÀÂÀ3Îü­ÄütÄ§ôü§ÌümÀ¶ü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚ?ääääääääääääääüüü?äääääääääääääääääääääÚüäääääääääääääääääääääÞü¹ÛÈÉÎzÎq‹×[ü¹ÐÇq‘À-üºÖÌÀmÀ¼ÀyÆÀ“ÏñÀ°‰ÀSÀyÀ±ÀãÏüºÀÀ¬ÂÀZÀµÆÀ•åÁÀjÏŠÀ´ÀjÀÕåü¹ÐÇÃÁÈË=ŠÏÇÍüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏUÊÌ‘Ô	ÈüäääääääääääääääääääÕäääääääääääääääääääãˆÁÀGÈ‘À°	Õü–ÖäÚ˜ääèQËÅÄ;‰ÀSjÎü}6Ï–ÉÕ˜ÀÀ¬ZÀ´À°À]åÛÀjÏ‰À-ÀºÂÀÕåüˆÊ—ÐÚ—ÌÀÏÀÀlØÙÎÀ3ÏàÀñÈ‰×ÀwÀ™ÀãÀÌü
ÀæÀÆÀlÊÌ–ËÛÈÀyÀÀ°ÉüÀÑÀ«-Å4Ä‰ÖÏÀ´hŒÈÂÀÐüJÁÁZ1ô‹À-ÀTÇ‹ÁÇÁÕü
Ï+ò‰äÀ°ÀØÂÆüÏ“ïˆÁäÕñÀ¨ŒÃÅü
ÈÆÀcŠÍÀÐÊÍüÀèÀ-4–É´Çü
ÀÞÀfÏ×ÀaÀ¶ÀØ˜ÎÙöÀ˜ü—ÒˆÊ;ŒÁÏLääääääääääääääÚ?ääääääääääääääüÏ™ÉäÏ ’ÐääääääääääääääÞääääääääääääääÈüÏ™ÖäÈyü–ÖäÚ˜ääüü–ÖäÚ˜ääüSmÈ˜ÛQü_™ßÈÊü
ÕÙÀñÕËÍ˜ÎáÊÀyÀ°üÀÐÀµÀjÀÐh™à´ÇükÏÀXÀ°9œÍüqÀ³ÎšÐÀýÈÍÇü°ìæšÖä<ükÁÀ£ÀC9™ÁÈËüÀÐÀ»ÀjÀÐh˜Ì´ü
ÀæÀvÀñÀãÀmÀ°™ÉyÈü¡Íü¡ÛãÂü¡âáÃü–ÖäÚü–ÖäÚüüSKÈ6Ï•ÞIüÈR•Ááü
ÕÙÀñÕøÀlÀlÚÊÌ”ÉÐÕÌØÀÆüÀÐÀµÀjÀÐøÀÀ±Àh4•ÉÚÀ,ÀZükÏÀXÀ°)öÈ1—ÃªüqÀ³Îà—ßÀìaü°ìæ
Î—âÞÀTükÁÀ£Ç)ÅÁÈÆ–ËÃÊüÀÐÀ»ÀjÀÐÀ±Àt4•Ï,ÀZðü
ÀæÀvÀñÕÊËÎÀíÀ¶ÀØ–ÌÀØÅü‰Ï—ÁÈüÚ´˜äÚüÚÎÙ—ÉäÕüüüük6Ï™ÐÏÌÀÞÙàâÈüWšÖÕtÀ´ÀÀsÈü
ÀƒÀËÀ¸ÚÊÌ™ÌßÆÁÀJüÀÅÀ§ÀuÀh4šÛÈü;4œÁÇÀtüÈÁäÎÂÆÙaüÕÉäÏAü;Î	ÈÆ›ÎÁÇÁÀJüÀÅåÁÀh4™Ê´ü
À³ÀÌÀÌÀñÀ¶ÀØ›ÏÀÌÀ™ÈÙÀcËü¢Ëü¢ÐäÈü¢ÛäüüüüKzÀÎšÜzüO›âü
À´ÀžØÌÉËšÀÁÞÊÀÀ™ÀæÀÞüÀÄÀ­ÀZÀ4›áÀÀÑÀ-ü;QÆ)œÁôÀ+yü\žÖÀû
ÀÁËÿäüžÛãÏÖÿäü;ÀCÊyÅ›ÉÁÀÀÐIüÀÂÀíÀZšÍÀèÀ-ü
êÀžØÀÌÀÛÀl›ÊÊÀÆÀaÀÞ×üJ ÎüÀÐŸßáü
ÕŸäÞüüüüJyËØÏÀÎ™ÁÚmÈ	Èü|ÍÀZIšÉÞY
Èü<ÏÍYÉË™ÊÖÏËÀ3ÀoÀ7ÀžØüZšÐÕhÀ–çÀ-ÀZü()ÇÙÊÿäül âÀØŽÄËÀlÿäü(œäÚõühÏÅ›Ì9JÀhüZZ÷™ÁÈhÀÇÀ-ÀZüJØÏËØÀÆÀÛÀl›ÍÀmÀ³ÑÀñÀžØü£ÉüÏÁäÕüÏÐäÏü–ÖäÚ˜ääüœâäääääääääääääääääääãü–ÖäÚ˜ääüJyßÎÀÀ°´àKü|Ø	È›ÖÈ—×ü<ÏùÊÁÀ†›ÅÇÁÀæÀ6Ï”ÀóÀwÀqÀäÈüZ
ŽÒÜÂÀÐÁåÏˆÁáÁÀhÀŽÀêÀÔÀääääääääääãü
ô!žÀµÀQ“áÒqÉääääääääääáül ÉãÉÎ•ÒAÁÏüÀcŒÐäÈÀ’åˆÊÍÂÏüh÷ÎÄŽïŽÀƒÇ‰ÃÅÇüZŽòŒËÀÑ‰ÂÆŠÁÀhÀêÏüJØÏÌÀcÀmÀ¶ŽôÁÁÕÀFÎÇŠÎÀóÀÀ™ÀÙÈü—ÄŒÌ
ŠÈüÏžÖãÈüÏ¡Éü–ÖäÚ˜ääüäääääääääääääääääääÕ§ÐÏÀ*ÀªÀªÀªÀªÀªÀªÀªåüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏŠÖÕÀjÀªÀªÀªÀªÀªÀªÀªåü¾ÌÍÀGÏü¾À3À˜ÀKåü¾ÀdÀLÇËÀmÀÀ6ØÀÆÙü¾ÄÆÀKÎÉÀVÀÀZ´ü€FÀÊÀ¢!ÀÀªÀ,ü€AÆlØü¾ÄÆÀLÀ…ÇÀTñü¾ÀdÀLÇ#ÀhÐü¾À3À˜ÀKÀ¢ÀÀZÆÀ´ü¾ÌÍÀGÏÀŒÀÏÊØÄÙü¾ÖÕÇÂ4üjÏÌÖÀößÏ±ÐÏÀUëÀUÀUÀUÀUùÀUÇü{IÚ,À9Ï³ÀUÀSÀUÀUÀeÀUÀ5ÀUÇüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎ®ÐÏüÀÀ–µÀhÀ-"ÀÀZ¯ÖÕü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎ®ÌÍÖÀ‡Õü‹ßÀÈ±ÍÌÉïÀÐü‹ßÀÔ±ÎË üŒÌÍü	ÀÐü	ÀÐüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚ¥ÎË ü¾ÍÌÉïÀÐü¾ÌÍÖÀ‡Õü¾ÖÕü¾ÐÏüJáYr
À†ÏÉÅÀÎÎüJÀœˆÊÀlÉP8üÀãÀÁÀ›×ÐÀÀ±ÈÊÌDÉËüÀÕÀ£ÀFÀ­ÀÀV4÷ÅðübÃÀ*È1()Æü|’é¦ÐÏüðŒí¦ÖÕülÎ3zÅ(¦ÌÍÖÀÏÀ†àüÀÕå-ÀÀVÄxÀ4-¦ÍÌÉÀÃÇ×üaÀãÀÌÀÙÀžÀgÀŒÂÁãÀØ÷ÛÀlðþ¦ÎË ü‰ÌÄŒãü‰ÀÀ”P­ÉÏü‰ÖÌKs­ÉÏüü?ääääääääääääääääääÏÖäÚ¥ÎË üääääääääääääääääääÕÛäÞ¥ÍÌÉÀÃÇü¾ÌÍÖÀÏÀ†Îü¾ÖÕü¾ÐÏüüüüüüüü¾ÐÏü¾ÖÕü¾ÌÍÐÀÆËáü¾ÍÌÀå:ü¾ÎËü€Îü€QÏ:ü€	Æ:ü€YÈü¾ÎËü¾ÍÌÀÀ¡ÕÀ:ü¾ÌÍÐÀÇÀìáü¾ÖÕü¾ÐÏüüüüüüüüüü¼äääääääääääääääääáü»ÁäääääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ›iüÄ›)üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüâÏ™?Õÿ¡ËF¡þ…²TheµReadµLibraryµdialogµboxµshownµinµFigure 4³5µcontainsµthe¡þÍfollowingµelements:¡þoFileµName¡X¸Anµeditableµtextµfieldµthatµshowsµtheµnameµofµtheµlibraryµtoµbe¡Xread.¡þvFileµlist¡X¿Aµscrollableµlistµboxµdisplayingµallµlibraryµfilesµofµaµspecifiedµtype¡X	inµtheµcurrentµdirectory.¡þ	|ListµFilesµofµType¡X	ÅAµpull³downµmenuµofµtheµavailableµfileµtypesµtoµlistµinµtheµfileµlist.¡þ
:Directories¡X
ƒAµscrollableµlistµboxµthatµdisplaysµallµancestorµandµchild¡X
Ìdirectoriesµofµtheµcurrentµdirectory.µItµletsµyouµviewµandµmove¡Xthroughµtheµhierarchy.’=D“I501ileaf_page_string1:4-9¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¾4³9¡þÉ²Options´µbutton¡XAµbuttonµtoµbringµupµanµOptionsµdialogµboxµasµshownµin¡XZFigure 4³6.µItµletsµyouµcheckµandµmodifyµtheµoptionsµWarnings¡X£associatedµwithµaµreadµcommand.µIfµyouµsetµtheµoptionsµtoµfalse,¡XìWarningsµsuppressesµallµwarningµmessages.µTheµdefaultµsetting¡X4isµtrue.µForµmoreµinformation,µreferµtoµOptionsµmenuµitemsµlater¡X}inµtheµchapter.µWarningsµcanµidentifyµseriousµlibraryµproblems.¡,:²&Figure 4³6³OptionsµDialogµBoxµforµRead¡þ¾²¥	öäÒÓÐÿ†|3c4dPûÈÅƒ9ü1„)üüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÏ‚	ßüÐÀçääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü Ï\qüÙ)>üÔœÀ´1ÏË ÕüÀ˜›ÁÀJÀ6ÀLÀÇÀ†ÀÃÕÂÀŒÙÉÀÃÕœÈüžÀÀLÀïÀ¥Õ´ùÀ¥ÈüžÄ
Á{ü¢ÃÏpü¢ÉÆ°BüœÁÀJEÂÈÈüÀ´ÀÀ,ÀÇÐåÀºùÀ£üÙÑÒÀÇÀ†ÀgÏÜËÀvÀcÀÆü¨ùåüžÍ‰ÉÏüüü…üÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüüäääääääääääääääääääääääääääääääääääääÈâäÕˆÐääääääääääääääãü?äääääääääääääääääääääääääääääääääääää?äÏü³ÁääääääääääääääÞüüIäääáüü	Þr´ØÀ1Èüt¦ÕÀZÂÈüñÀãµÀ¥ùü
ÀjÀÕÈµ÷ütÉA¢ÉÌürÀaÏ£ÂÄ‘÷üÀzÏ£ÁÅ‘ùücA£åÀ¥ÂÈü
ÀjÀíÈ£ÇÀZÁÇü	ÀŒÀñÀÛÎ¢ÉÞØÍÏü¨ÉÞüüIäääáüü?äääääääääääääääääääääääääääääääääääää?äÏüäääääääääääääääääääääääääääääääääääääÈâäÕüü³ÁääääääääääääääÞüü³Ðääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü³Ðääääääääääääääãü³Éääääääääääääääáüüüüü¶ÌÏIÕÁÏÌüºÀÐÂÏü·Ö×)ÀäÀžÀfõÙü·ÀÀ­ÀÔÀ­À´ü·ùÈk,ü·ÀËzÒØü·ÃÀðÀ,$ü¶ÀÀZÉ(Í!ÁÀÐüŠÌÎÁÈÎÏ¦ÂÀÀ­ÒÀÐÀ.ÀØÀÀ´üŒÁÈ¨ÖÀ×ÉÀáÀãÀÀ¶ÀÆÙüŠôÀ¯À7ÀžËÖ×ü‹ÀçÀ-ÀÀÀ­ü‹ÌÊÍÅüŠÄÀNÄÒQÀ6üŠÉÀ,À‰üŠÃÈ*ÁÀ´ü‹ÀÇÀ.ÀšÀÀ­üŠÉÑÀñÀÀìÀÏ×ü³Éääääääääääääääáü³Ðääääääääääääääãüüüüüüüüüüÿäääääääääääääääääääääääääääáü¢À3Í	Èü¥ÁÈüÀ˜zœÐÀ›ÀÙÀ¶À6Ùü~šâÆÀíÀ4ÀÀXÀ´âääääääääääääääääääääääääãüKÀÍÀìÀÛÀØ˜ßÄÀLÉÆÄÄÀ,âääääääääääääääääääääääääáü*ÀÀ¢ÀÊÀ¬ÀZšÐÃØüÀ&ÁæÃÃÀ™ÀÀ«$üKélžÄÀÐüÀÕÈšÀåXÀ´üÀh™ËÀÇÙÀÍÀ³ÍÙüÀÐ,ÀZžÎüRÀcÀ¼ÀfÀÙÀ˜ØžÀZüoŸØü-üääääÀáääääääääääääääääääääääÞüüüüüüüüü£ÐÏü£ÖÕü£ÌÍÛÕü£À3À˜ÒÕü£ÀdÀLÀÌÚü£ÄÆÁÀhü¦Éü¦Ãqü£ÄÆxü£ÀdÀL*Ìü£À3À˜±Àhü£ÌÍÉÌÀlÚü£ÖÕü£ÐÏüüüüüüüüüüüü£ÐÏü£ÖÕü£ÌÍÖÏÎü£ÍÌÉÏü£ÎËÐÀü¦À-ÀÀVÈü¥ÉÀ°ÂÏü¥ÉÀœÀÀ†ü¦À,ÂÀGÈü£ÎËÁÈü£ÍÌ.À‹ÀVÈü£ÌÍËÀÀçÀü£ÖÕü£ÐÏüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¡ßääääääääääääääääääääääääääääääääáüäääääääääääääääääääääääääääÞääääääääääääääääääääääääääääääääãüÿäääääääääääääääääääääääääääáüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÕ…püÄ…)üüüüüüÄÆüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüâÏƒ?Õÿ¡Š¾¡þ	²RedirectµtoµLogµbutton¡X	LAµbuttonµtoµbringµupµaµfileµselectionµdialogµshownµinµFigure 4³7.¡X	”Youµcanµredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þ
OKµbutton¡X
TAµbuttonµtoµreadµinµtheµspecifiedµfile.¡þ
ÌCancelµbutton¡XAµbuttonµtoµcloseµtheµdialogµboxµwithoutµreading.’cD“I501ileaf_page_string1:4-10¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³10¡þÉ²Format¡XA´µmenuµwithDB,µSynopsys,µEDIF,µandµSLIBµformat¡XZselections.SelectingµµactivatesµtwoµbuttonsµlabeledµSymbolµLib¡X£and²&µ²NamesµFile.µTheseµbuttonsµareµshownµinµFigure 4³8.¡XìClickingµonµSymbolµLibµbringsµupµtheµReadµSymbolµLibrary¡X4dialogµboxµshownµinµFigure 4³9.µClickingµonµNamesµFileµbrings¡X}upµtheµSelectµNamesµFileµdialogµboxµshownµinµFigure 4³10.¡,²&Figure 4³7³SelectµOutputµFileµDialogµBox¡-h²¥	öäÒÓÐ/E”ï;(<)ãûÈÅ„9ü1…)üääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈü…	üÖÀÇäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüÐÀçääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüüüžÍŠÀ1ÈüœØx)2ÛÈüÔ›ÀZ´1:ÐÀ°ÕüÀ¸›ÊØÁÀáÀéêÀJÀ3ÀLÀØÀfÀ˜iÖœÏüœÅÀZÂÀÒÀÙÈLÀ4˜ÈüœÀLk4üœÀ2ÌyˆÐQüœÄ×ðŠÐÈüœÎÂ)ÅÁÀJÃ"DüœÀZÀ^ÂÀòÀõÈÀ´À,À,À4ÀXÀXÈüœØØÀ1ÀáÀãÈÙÀÒÓÀ6ÓÌÀ1Àüü¥Ïüüü†üÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüü´Ðäääääääääääääãüü?ÀØ1È•ÜÍrq‘ÁäääääääääääääÞüÏ!–ÀÍtüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈükZ”ÏÊ	ÈùÀ˜•ÉÀÃÌüyÊÒI”ÁËÉÀ–ùåðüð,IÏ”ÖKÀÄÈ•÷ëëülÂÌ’ÂÈÉÊÄÚÌ—åüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—åüÏ•âÏžëüÏ•âÏœ÷ëðüºùåôüºÉÀÃËüüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüœÌSÏÙÚÀ°QØÍÎü¢À´Í‰ÀZÏüJääääÕ”ÀÀËÀ¸ÁÀLÀsÀÍÀ¼ÀyÀŒÁÕÀÉÀãÀÉyÆüœÀ%À§Àt!	ùÀ¢ÀZÀ´ÀÒÀJÀÕÀ©Bü#Êq•ÊÀ–ÁÀTÉ
ÎäääääääääääääÞü6˜ÀÈéÀlÍ	ÀÁÆÏ:ü"øÀfæ•ùÈÕõØÀ¨ÂÏñÆäääääääääääääãü#ø•ÇÌÀÐÁÀNqÀhËÃÀ6ÈÈÁüZ–ùÀÐ<À´ùåÀZÀ´ÇÂÀèÀ.ÀÕÀ¥ÀÚü$–ÀcÀ¼ÀÌÀÌÀØáÀ{ÉÀÌØÙÅÁÀÞÀÀãÀÃØÀ1Èü$¡ÇütÀÚÄœë¡áüÈÀXœÎÁá‹ÐäääääääääääääãücÀfÍ­ÉäääääääääääääáüüüJääääÕüü?äääääääääääääääääääääÚ ÖSüäääääääääääääääääääääÞ ÀÈü¹À)À¼ÀØÀñÕüºÀZÀ5ÀjÀÐüºÎÆÌüºÓzüºÀXðüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏ)ÈaÍüäääääääääääääääääääÕäääääääääääääääääääãˆÀÀÝÁÀjÀÐü–ÖäÚ˜ääÀ;ÀÌÀñÀæü>ÏËÉi’Üü^i•âüÀîÀc–ÖÍÃÀ³ì’ÀÁÞÀÀ¸ÀóÀcÀÇÀü
ÀÝÀÈÃÈì‹ÄüÐÀuÀhÀÕÀ«ÀVÈ‹ÈüU-Œô‹À†y‹ÁÇüWŒòÀûrÉÈÊ‹ÂÆü*ÈŒïãxùÈÐÈŠÃÅüÈÍÀmÃ‹ÀcObÁÈŠÊÍü,ÈÂÏÀ,’Í
ÀhùÀÛÀVÈÉäääääääääääääáüJÀ3ÃfÀÏËÀ1À³Ì“ÊËÀÌÀóÀ3À·ÀŽÐäääääääääääääãü,’Òv’ÁÏü(â˜ßáülâ˜äÞü–ÖäÚ˜ääüü–ÖäÚ˜ääü>Ï×Éi’ÁÚ}ü^-•ÉÞüÀîÀc–ÖÍÃÀ³ì’ÊÖÏÀmÀåÀÜÀyÀ'Èü
ÀÝÀÀ…ÃÈì“ÐÕõÀÓÀºÀµÀ+ÇüU
-–ËüWô”âÀØÅÏJü*À¨”äÚðJÏüÈÍÀmÃ”Ìi*Ïü,ÀÂÏÀ,’ÁÈÀÐ´À»ÇüJÀ3ÃfÀÏßÀ1À³Ì”ÍÀaÀæÀfÙÀgÈü,™Éü(â˜ÁäÕülâ˜ÐäÏü–ÖäÚü–ÖäÚüü>Ï×Éi“ÖÈ3<ÍÚü^-–ÛÏZÀÁÀhüÀîÀc–ÖÍÃÀ³ì“ÍàÁèÀ›ÎÏü
ÀÝÀÀÃÈì”ßÂÀÄÀ¬÷ÁÀhüU-—ÇÃôÁÀhüW”ÉãÏ(ü*È”ÐäÈPüÀ°ÍÀmÃ•ÏÇíü,À­ÂÏÀ,“ËÀÂÀì×ÁÀhüJÀ3ÃfÀÏ×À1À³Ì”ÁêÀ±À˜àÍÚü,šÌkü(â™Öä-ülâ™ßãüüüü>ÏÉÉi”ÝaÍü^—ãüÀîÀc–ÖËÃÀ³ì“ÁÀƒÚÁÀƒÀÌÀÌÚü
ÀÝÀÈÃÈì”ÁÞÂÀ…åÁÀhüUc-—ù
ôüWÍ•ÛÀötü*ÀœÈõ•ßáùxüÀ¼À°ÀmÃ•ÊÂÈùÀèÌü,ÈÂÏÀ,”Î	ÀEåÁÀhüJÀ3ÃfÀÏÉÀ1À³Ì•ËÌÀóÀÃÍÚü,›Ïü(âšâÞülâ™ÁäÚüüüü>ÏÛÉi”ÉÕqØü^—ÐÚZüÀîÀc–ÖðÃÀ³ì”ËÛÈ¦ü
ÀÝÀÀŽÃÈì•ÖÏüU=-üW–äÀ°ü*À°•ÁäÕüÈÍÀmÃ–Í¦ü,À­ÂÏÀ,”ÉÀZüJÀ3ÃfÀÏ×À1À³Ì–ÎàØü,›Êü(âšÉäÏülâšÖäÈüü±ääü±ääü>Ï×Éi•ÛQü^-˜ßÈÊüÀîÀc–ÖÉÃÀ³ì•ÎáÊÀyÀ·ÀÀ1ÈØü
ÀÝÀÈÃÈì–à´ÀKÀVÈZüU-šÀ2ÏÀ*ÈÎüWÀ–ÐÀýÈÍÀMÀ†8ü*È–Öä<ÂÀGÀ•XüÈÍÀmÃ–ÁÈËÀÁÈü,À­ÂÏÀ,•Ì´ÀÀVç]üJÀ3ÃfÀÏ×À1À³Ì–ÉyÀ‡ÀÂ;ü,œÍ%ü(â›ÛãÂßÈülâ›âáÃcßÈü–ÖäÚ˜ääüœâäääääääääääääääääääãü–ÖäÚ˜ääü>ÏßÉi˜ÌI×Ìü^<™Þ-ÎüÀîÀc–ÖùÃÀ³ì•ÁÃ$ÀñÀäÈÎü
ÀÝÀÈÃÈì‹ÒŠÉÕÀ%ÀjÀÔÈ‰ÁÏüU
-›À°üW—ßÕcÎü*ÈŒÀcŠâÞxæŠÊÍüÀ”ÍÀmÃ‹ï‹ÄÂÀÇÇ‰ÃÅü,ÈÂÏÀ,‹òŠÏÀjÀÒÀí‰ÂÆüJÀ3ÃfÀÏÌÀ1À³Ì‹ô‹ÅËÀñÀáÀžÌˆÁÇü,’Ä‰ÁÈÈü(âœäÕülâü–ÖäÚ˜ääüäääääääääääääääääääÕüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏüüüüüüüüüüüüjÏÌÖÀößÏü{IÚ,À9ÏüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎüÀÀ–µÀhÀ-"ÀÀZü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎü‹ßÀÈü‹ßÀÔüŒÌÍüüüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚüüüüüJáQÉÀýÈ	çÊcüJÀœüÀ¶È8üÀæÀiY×Ø"øÀfæüÀÐø-ÀZùÄø‘ÇüåàZ‰ÀÆüÂÇàËÀl$‰éüòÇõ$‰íü5åÈIÀhrÀÚÄˆðüÀÐùÈ-ÀZÈÀXˆÅüaÀæÀcÉÀÀžØùcÀfÀ1Çþü—ãüŠÂÈÈüŠÁÈJüü?ääääääääääääääääääÏÖäÚüääääääääääääääääääÕÛäÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ†iüÄ†)üüüüüüÄÆüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüâÏ„?Õÿ¡Éh’c&lD“I501ileaf_page_string1:4-11¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³11¡,É²&Figure 4³8³Read´µLibraryµDialogµBoxµforµEDIF¡- ²¥	öäÒÓÐ/ÿ”WãEäFaûÈÅ™9ü1š)üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüš	üÖÀÇääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüÐÀçäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüüü¬ÌYÎü¨ÁÚ[üÔ¨Àh\­ÕüÀ¸©ÚÚÕYËÀlÀñÀ¶Í¨Ïü©øÀiÀiÎÁÀhü©ÔÁÈ+ÀÈÔÅü©ëÎÕ,ÕÀEÇüªÀyÎÎ1ü©ðÄ1Èü©ùÀyÀuÎÉÏÀÁÀt9ü¨ÁÀœÚÀìÀØÖÀÌÝÎÀíéÈüü²Éüüü›üÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚü‰äääääääääääääãüü?ÀØ1È•ÜÍrqüÏ!–ÀÍtüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ—ÖÈÐÀ†ÍüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ—ÀÈÁÈÀÇëükZ”ÏÊ	ÈùÀ˜—À)À[À%ÀžÀlÙôååüyÊÒI”ÁËÉÀ™ÊÀ¤À-ÀÀ´ŽÁÇüð,IÏ”ÖKÀÄÈ˜Ã*À,ülÂÌ’ÂÈÉÊÄÚÌœÀØŽÁÇüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈœñåüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—À)íÂÐôåëüÏ•âÏžÀÀ†À–À-´ÀÇðüÏ•âÏžÖÉÀÀžÀfÙÐÀ†Ìüüü½ÌüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüœÌSÏÙÚÀ°QØÍÎü¢À´Í‰ÀZÏüœÀÀËÀ¸ÁÀLÀsÀÍÀ¼ÀyÀŒÁÕÀÉÀãÀÉyÆ™ÛäääääääääääääãüœÀ%À§Àt!	ùÀ¢ÀZÀ´ÀÒÀJÀÕÀ©BOääääääääääääääÚü#	À±Ï”ÊÀ–ÁÀTÉ
ÎŠÐääääääääääääääÞääääääääääääääÈü62Ï”ÀÈéÀlÍ	ÀÁÆÏ:ü"ÐÀŒÀ4È”ùÈÕõØÀ¨ÂÏñÆü#ÀÀVÃÈ”ÇÌÀÐÁÀNqÀhËÃÀ6ÈÈÁü–ùÀÐ<À´ùåÀZÀ´ÇÂÀèÀ.ÀÕÀ¥ÀÚüL—ÀcÀ¼ÀÌÀÌÀØáÀ{ÉÀÌØÙÅÁÀÞÀÀãÀÃØÀ1ÈüLÏ¡ÇütÀÂë¡áüÀVÎÁáügÀÀ³ü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚ?ääääääääääääääüüü?äääääääääääääääääääääÚüäääääääääääääääääääääÞü¹ÛÈÉÎzÎq‹×[ü¹ÐÇq‘À-üºÖÌÀmÀ¼ÀyÆÀ“ÏñÀ°‰ÀSÀyÀ±ÀãÏüºÀÀ¬ÂÀZÀµÆÀ•åÁÀjÏŠÀ´ÀjÀÕåü¹ÐÇÃÁÈË=ŠÏÇÍüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏUÊÌ‘Ô	ÈüäääääääääääääääääääÕäääääääääääääääääääãˆÁÀGÈ‘À°	Õü–ÖäÚ˜ääèQËÅÄ;‰ÀSjÎüÛÁÈÒ’Ü›ÀÀ¬ZÀ´À°À]åÛÀjÏ‰À-ÀºÂÀÕåüfÊJÀ,’âšÌÀÏÀÀlØÙÎÀ3ÏàÀñÈ‰×ÀwÀ™ÀãÀÌüÀîÀcaÀfxÀÃì’ÀÁÞÀÀ¸ÀóÀcÀÇÀÉü
ÀÝÐµÎì‹ÄüÐÀuÀhÀÕÀ«ÀVÈ‹ÈÂÀÐüUB2Œô‹À†y‹ÁÇÁÕü‰ÍòÀûrÉÈÊ‹ÂÆü*<ïãxùÈÐÈŠÃÅüGÊËÆŒÀcObÁÈŠÊÍü,ÐµÎ“Í
ÀhùÀÛÀVÈüJÀ3ÃÛÀaÀ†ÙÀÛÍ“ÊËÀÌÀóÀ3À·Àü,’Òv’ÁÏLääääääääääääääÚ?ääääääääääääääü(â˜ßá—ÐääääääääääääääÞääääääääääääääÈülâ˜äÞü–ÖäÚ˜ääüü–ÖäÚ˜ääüÛÉÏÒ’ÁÚ}üfùåIÀ,’ÉÞüÀîÀcaÀfxÀÃì’ÊÖÏÀmÀåÀÜÀyÀ'Èü
ÀÝÐåÀµÎì“ÐÕõÀÓÀºÀµÀ+ÇüUÇ1–ËüÈÍ•âÀØÅÏJ‘ÐääääääääääääääÞü*<•äÚðJÏÉääääääääääääääÚüGÊËÆ•Ìi*Ïü,ÑÕÀµÎ“ÁÈÀÐ´À»ÇüJÀ3ÃÛÀgÀæÙÀÛÍ”ÍÀaÀæÀfÙÀgÈü,™Éü(â˜ÁäÕšÝbqÀaÀ°ülâ˜ÐäÏšÀºÈü–ÖäÚ£ÀÆÀ»Àƒ×	À†ü–ÖäÚ¢À¶wÀFÀ­ü»ÀlÀª#üÛÉÏÒ“ÖÈ3<ÍÚ”õüfùåIÀ,“ÛÏZÀÁÀh”ÀÈÀTüÀîÀcaÀfxÀÃì“ÍàÁèÀ›ÎÏ˜Ã#ü
ÀÝÑåÀµÎì”ßÂÀÄÀ¬÷ÁÀh”ÀºÆQÀ­ÀüUå1—ÇÃôÁÀh”ÝÄÀÌÀÛ×ÎâÀ¶ü‰Í•ÉãÏ(—Æü*<•ÐäÈP—ëü†ÊËÆ–ÏÇí˜Îü,ÕåÀµÎ”ËÀÂÀì×ÁÀhüJÀ3ÃÛÀcÀÆÙÀÛÍ”ÁêÀ±À˜àÍÚü,šÌkü(â™Öä-ülâ™ßãü·ÉääääääääääääääÚü·ÐääääääääääääääÞüüÛqÒ”ÝaÍüfAIÀ,”ãüÀîÀcaÀaÈÙÀÃì“ÁÀƒÚÁÀƒÀÌÀÌÚü
ÀÝÐµÎì”ÁÞÂÀ…åÁÀhüUƒ2—ù
ôüWi–ÛÀötü*JæØ–ßáùxü‡À–ËÆ–ÊÂÈùÀèÌü,ÐµÎ•Î	ÀEåÁÀhÐääääääääääääääÞüJÀ3ÃÛÎÀfÙÀÛÍ•ËÌÀóÀÃÍÚÉääääääääääääääÚü,›Ïü(âšâÞülâ™ÁäÚüü»ÀÆÀûü»ÆÞüÛÉÕÒ”ÉÕqØ—ÀyÀw×ØaØüfàIÀ,”ÐÚZ–ÍÀ´ÀîÀ­ÀZZüÀîÀcaÀexÀÃì”ËÛÈ¦—ÏÁÏü
ÀÝÑÏÀµÎì•ÖÏ˜ÌÔYÀlÁÏÌüU‡å1±À°õü‰Í—äÀ°˜ÄJÀhRü*R<–ÁäÕ™Àº-ÀZZüGÊËÆ—Í¦–ÀÆÀwÀ™ÀžØÊÀØü,ÕåÀµÎ•ÉÀZüJÀ3ÃÛÀcÀÆÙÀÛÍ–ÎàØü,›Êü(âšÉäÏülâšÖäÈüü±ääü±ääüÛÉÏÒ•ÛQ“ÉääääääääääääääÚüfùåIÀ,•ßÈÊ“ÐääääääääääääääÞüÀîÀcaÎÎÙÀÃì•ÎáÊÀyÀ·ÀÀ1ÈØü
ÀÝÐµÎì–à´ÀKÀVÈZüUÏ1šÀ2ÏÀ*ÈÎüåÍ—ÐÀýÈÍÀMÀ†8ü*<—Öä<ÂÀGÀ•XüGÊËÆ—ÁÈËÀÁÈü,ÕåÀµÎ–Ì´ÀÀVç]üJÀ3ÃÛÀcÀÆÙÀÛÍ–ÉyÀ‡ÀÂ;ü,œÍ%ü(â›ÛãÂßÈülâ›âáÃcßÈü–ÖäÚ˜ääüœâäääääääääääääääääääãü–ÖäÚ˜ääüÛÐÕÒ˜ÌI×Ì”àKüfÐÈIÀ,–Þ-Î”×üÀîÀcaÎåÙÀÃì•ÁÃ$ÀñÀäÈÎ•ÀóÀwÀqÀäÈü
ÀÝÐµÎì‹ÒŠÉÕÀ%ÀjÀÔÈ‰ÁÏˆÁáÁÀhÀŽÀêÀÔÀääääääääääãüUÇ1›À°•áÒqÉääääääääääáü‰Í˜ßÕcÎ–ÒAÁÏü*<ÀcŠâÞxæŠÊÍÂÏü‚À†ËÆŒï‹ÄÂÀÇÇ‰ÃÅÇü,ÐµÎŒòŠÏÀjÀÒÀí‰ÂÆŠÁÀhÀêÏüJÀ3ÃÛÀcÊÙÀÛÍ‹ô‹ÅËÀñÀáÀžÌˆÁÇŠÎÀóÀÀ™ÀÙÈü,’Ä‰ÁÈÈü(âœäÕülâü–ÖäÚ˜ääüäääääääääääääääääääÕ§ÐÏüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏŠÖÕü¾ÌÍÐÏü¾ÍÌÀåü¾ÎËYÀmÀÀ6ØÀÆÙü€ÎÉÀVÀÀZ´ü€QÀÊÀ¢!ÀÀªÀ,ü€	ÆlØü€YÀ…ÇÀTñü¾ÎË$ÀhÐü¾ÍÌÀÀ¢ÀÀZÆÀ´ü¾ÌÍÐÏÀŒÀÏÊØÄÙü¾ÖÕ4üjÏÌÖÀößÏ±ÐÏPü{IÚ,À9Ï´ÊjqüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎ®ÐÏüÀÀ–µÀhÀ-"ÀÀZ¯ÖÕü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎ®ÌÍÖÀ‡Õü‹ßÀÈ±ÍÌÉïÀÐü‹ßÀÔ±ÎË üŒÌÍü	ÀÐü	ÀÐüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚ¥ÎË ü¾ÍÌÉïÀÐü¾ÌÍÖÀ‡Õü¾ÖÕü¾ÐÏü
ÀùÚÀÏÏÀblÀvüxÀhÉÏÀ­ÈYÀµ‹Óü"êÀãÀÆüîÂÀÕêòÈüxIÈùBŒÀÆüxIÈzé¦ÐÏü‰Úí¦ÖÕÀ*ÀªÀªÀªÈücÍÈŒð¦ÌÍÀeÀeÀ,ÀÔÈüxÀhÀÕÈŒÅ¦À3À˜ÀCÀÃÇ×Èü
ÀùÚÀÌÁÇÀÀãÀlÀÂÈŠã¦ÀdÀLÇ Aü—ã¦ÄÆÇCü ´ÀCÏÈüwS´ÀCÏÈü¾ÄÆÇCü?ääääääääääääääääääÏÖäÚ¥ÀdÀLÇ AüääääääääääääääääääÕÛäÞ¥À3À˜ÀCÀÃÇAü¾ÌÍÀOÀÏÀ†ÎÈü¾ÖÕÇCü¾ÐÏÀjÀªÀªÀªÈü€*ÀªÀªÀªÈüüüüüüü¾ÐÏü¾ÖÕü¾ÌÍÐÀÆËáü¾ÍÌÀå:ü¾ÎËü€Îü€QÏ:ü€	Æ:ü€YÈü¾ÎËü¾ÍÌÀÀ¡ÕÀ:ü¾ÌÍÐÀÇÀìáü¾ÖÕü¾ÐÏüüüüüüüüüü¼äääääääääääääääääáü»ÁäääääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ›iüÄ›)üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüâÏ™?Õÿ¡É ¡,²&Figure 4³9³ReadµSymbolµLibraryµDialogµBox¡-v²¥	öäÒÓÐ/U”WãEäF˜ûÈÅ™9ü1š)üüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÏ˜	ßüÐÀçääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüü¬ÌYÎü¨ÁÚ[üÔ¨Àh\­ÕüÀ˜©ÚÚÕYËÀlÀñÀ¶Í¨Èü©øÀiÀiÎÁÀhü©ÔÁÈ+ÀÈÔÅü©ëÎÕ,ÕÀEÇüªÀyÎÎ1ü©ðÄ1Èü©ùÀyÀuÎÉÏÀÁÀt9ü¨ÁÀœÚÀìÀØÖÀÌÝÎÀíéÈüü²Éüüü›üÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚü‰äääääääääääääãüü?ÀØ1È•ÜÍrqüÏ!–ÀÍtüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ—ÖÈÐÀ†ÍüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ—ÀÈÁÈÀÇëükZ”ÏÊ	ÈùÀ˜—À)À[À%ÀžÀlÙôååüyÊÒI”ÁËÉÀ™ÊÀ¤À-ÀÀ´ŽÁÇüð,IÏ”ÖKÀÄÈ˜Ã*À,ülÂÌ’ÂÈÉÊÄÚÌœÀØŽÁÇüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈœñåüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—À)íÂÐôåëüÏ•âÏžÀÀ†À–À-´ÀÇðüÏ•âÏžÖÉÀÀžÀfÙÐÀ†Ìüüü½ÌüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüœÌSÏÙÚÀ°QØÍÎü¢À´Í‰ÀZÏüœÀÀËÀ¸ÁÀLÀsÀÍÀ¼ÀyÀŒÁÕÀÉÀãÀÉyÆ™ÛäääääääääääääãüœÀ%À§Àt!	ùÀ¢ÀZÀ´ÀÒÀJÀÕÀ©BOääääääääääääääÚüCÁÀ¶–ÊÀ–ÁÀTÉ
ÎŠÐääääääääääääääÞääääääääääääääÈüJÎi–ÀÈéÀlÍ	ÀÁÆÏ:üÆÙÍÏ•ùÈÕõØÀ¨ÂÏñÆüCÀ´Áå•ÇÌÀÐÁÀNqÀhËÃÀ6ÈÈÁü
ÇÀ,Á–ùÀÐ<À´ùåÀZÀ´ÇÂÀèÀ.ÀÕÀ¥ÀÚüØ—ÀcÀ¼ÀÌÀÌÀØáÀ{ÉÀÌØÙÅÁÀÞÀÀãÀÃØÀ1Èü$¢ÇüSÀÐÁë¡áü´ÁåœÎÁáüSÀyÀ¶Ïü·ÐääääääääääääääÞääääääääääääääÈü·ÉääääääääääääääÚ?ääääääääääääääüüü?äääääääääääääääääääääÚüäääääääääääääääääääääÞü¹ÛÈÉÎzÎq‹×[ü¹ÐÇq‘À-üºÖÌÀmÀ¼ÀyÆÀ“ÏñÀ°‰ÀSÀyÀ±ÀãÏüºÀÀ¬ÂÀZÀµÆÀ•åÁÀjÏŠÀ´ÀjÀÕåü¹ÐÇÃÁÈË=ŠÏÇÍüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏUÊÌ‘Ô	ÈüäääääääääääääääääääÕäääääääääääääääääääãˆÁÀGÈ‘À°	Õü–ÖäÚ˜ääèQËÅÄ;‰ÀSjÎü~ÉÛÁÈÁÀ¶Ü›ÀÀ¬ZÀ´À°À]åÛÀjÏ‰À-ÀºÂÀÕåü‰ÌÊjâšÌÀÏÀÀlØÙÎÀ3ÏàÀñÈ‰×ÀwÀ™ÀãÀÌü
ÀæÀ5ÀÜÌÚaÀfxÍÏÀÁÞÀÀ¸ÀóÀcÀÇÀÉüÀÐÉÀºÀ5ÀhÐ´ÁåˆÄüÐÀuÀhÀÕÀ«ÀVÈ‹ÈÂÀÐüµë1C,Á‰ô‹À†y‹ÁÇÁÕüJÎˆÀØŠòÀûrÉÈÊ‹ÂÆü’å$ŠïãxùÈÐÈŠÃÅüJÇ2CÊÀÐÁ‰ÀcObÁÈŠÊÍüÀÑ5ÀhÐ´ÁåÍ
ÀhùÀÛÀVÈü
ÕÀFÀfÀØÀóÛÀaÀ†ÀyÀ¶ÏÊËÀÌÀóÀ3À·Àü“Òv’ÁÏLääääääääääääääÚ?ääääääääääääääüÈ•ßá—ÐääääääääääääääÞääääääääääääääÈüK•äÞü–ÖäÚ˜ääüü–ÖäÚ˜ääü~ÉÛÉÏÁÀ¶ÁÚ}ü‰ÌùåiÉÞü
ÀæÀ5ÀÜÌÚaÀfxÍÏÊÖÏÀmÀåÀÜÀyÀ'ÈüÀÐÉÀºÀ5ÀhÐåÀ´ÁåÐÕõÀÓÀºÀµÀ+Çüµë1ÇÀ,Á“ËüJÎÈÀØ’âÀØÅÏJü’å$’äÚðJÏüJÇ2CÊÀÐÁ’Ìi*ÏüÀÑ5ÀhÑÕÀ´ÁåÁÈÀÐ´À»Çü
ÕÀFÀfÀØÀóÛÀgÀæÀyÀ¶Ï‘ÍÀaÀæÀfÙÀgÈüšÉüÈ•ÁäÕüK•ÐäÏü–ÖäÚü–ÖäÚüü~ÉÛÉÏÁÀ¶‘ÖÈ3<ÍÚü‰Ìùåi‘ÛÏZÀÁÀhü
ÀæÀ5ÀÜÌÚaÀfxÍÏÍàÁèÀ›ÎÏüÀÐÉÀºÀ5ÀhÑåÀ´Áå‘ßÂÀÄÀ¬÷ÁÀhüµë1åÀ,Á”ÇÃôÁÀhüJÎˆÀØ’ÉãÏ(ü’å$’ÐäÈPüJÇ2†ÊÀÐÁ“ÏÇíüÀÑ5ÀhÕåÀ´ÁåËÀÂÀì×ÁÀhü
ÕÀFÀfÀØÀóÛÀcÀÆÀyÀ¶Ï‘ÁêÀ±À˜àÍÚü›ÌküÈ–Öä-üK–ßãüüüü~ÉÛqÁÀ¶’ÝaÍü‰ÌAi’ãü
ÀæÀ5ÀÜÌÚaÀaÈÙÍÏÁÀƒÚÁÀƒÀÌÀÌÚüÀÐÉÀºÀ5ÀhÐ´Áå‘ÁÞÂÀ…åÁÀhüµë1ƒ,Á”ù
ôüJÎVØ“ÛÀötü’åMæñ“ßáùxüJÇ2‡À–ÀÐÁ“ÊÂÈùÀèÌüÀÑ5ÀhÐ´Áå‘Î	ÀEåÁÀhü
ÕÀFÀfÀØÀóÛÎÀfÀyÀ¶Ï’ËÌÀóÀÃÍÚüœÏüÈ—âÞüK–ÁäÚüüüü~ÉÛÉÕÁÀ¶’ÉÕqØü‰Ìài’ÐÚZü
ÀæÀ5ÀÜÌÚaÀexÍÏ‘ËÛÈ¦üÀÐÉÀºÀ5ÀhÑÏÀ´Áå’ÖÏüµë1‡åÀ,ÁüJÎˆÀØ”äÀ°ü’åU$“ÁäÕüJÇ2CÊÀÐÁ”Í¦üÀÑ5ÀhÕåÀ´Áå‘ÉÀZü
ÕÀFÀfÀØÀóÛÀcÀÆÀyÀ¶Ï“ÎàØüœÊüÈ—ÉäÏüK—ÖäÈüü±ääü±ääü~ÉÛÉÏÁÀ¶“ÛQü‰Ìùåi“ßÈÊü
ÀæÀ5ÀÜÌÚaÎÎÙÍÏ’ÎáÊÀyÀ·ÀÀ1ÈØüÀÐÉÀºÀ5ÀhÐ´Áå“à´ÀKÀVÈZüµë1ÏÀ,Á—À2ÏÀ*ÈÎüJÎåÀØ”ÐÀýÈÍÀMÀ†8ü’å$”Öä<ÂÀGÀ•XüJÇ2CÊÀÐÁ”ÁÈËÀÁÈüÀÑ5ÀhÕåÀ´Áå’Ì´ÀÀVç]ü
ÕÀFÀfÀØÀóÛÀcÀÆÀyÀ¶Ï“ÉyÀ‡ÀÂ;üÍ%üÈ˜ÛãÂßÈüK˜âáÃcßÈü–ÖäÚ˜ääüœâäääääääääääääääääääãü–ÖäÚ˜ääü~ÉÛÐÕÁÀ¶–ÌI×Ì”àKü‰ÌÐÈi”Þ-Î”×ü
ÀæÀ5ÀÜÌÚaÎåÙÍÏ’ÁÃ$ÀñÀäÈÎ•ÀóÀwÀqÀäÈüÀÐÉÀºÀ5ÀhÐ´ÁåˆÒŠÉÕÀ%ÀjÀÔÈ‰ÁÏˆÁáÁÀhÀŽÀêÀÔÀääääääääääãüµë1ÇÀ,Á˜À°•áÒqÉääääääääääáüJÎˆÀØ•ßÕcÎ–ÒAÁÏü’å$ŠÀcŠâÞxæŠÊÍÂÏüJÇ2‚À†ÀÐÁ‰ï‹ÄÂÀÇÇ‰ÃÅÇüÀÑ5ÀhÐ´ÁåˆòŠÏÀjÀÒÀí‰ÂÆŠÁÀhÀêÏü
ÕÀFÀfÀØÀóÛÀcÊÀyÀ¶Ïˆô‹ÅËÀñÀáÀžÌˆÁÇŠÎÀóÀÀ™ÀÙÈü“Ä‰ÁÈÈüÈ™äÕüKü–ÖäÚ˜ääüäääääääääääääääääääÕ§ÐÏüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏŠÖÕü¾ÌÍÐÏü¾ÍÌÀåü¾ÎËYÀmÀÀ6ØÀÆÙü€ÎÉÀVÀÀZ´ü€QÀÊÀ¢!ÀÀªÀ,ü€	ÆlØü€YÀ…ÇÀTñü¾ÎË$ÀhÐü¾ÍÌÀÀ¢ÀÀZÆÀ´ü¾ÌÍÐÏÀŒÀÏÊØÄÙü¾ÖÕ4üjÏÌÖÀößÏ±ÐÏPü{IÚ,À9Ï´ÊjqüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎ®ÐÏüÀÀ–µÀhÀ-"ÀÀZ¯ÖÕü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎ®ÌÍÖÀ‡Õü‹ßÀÈ±ÍÌÉïÀÐü‹ßÀÔ±ÎË üŒÌÍü	ÀÐü	ÀÐüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚ¥ÎË ü¾ÍÌÉïÀÐü¾ÌÍÖÀ‡Õü¾ÖÕü¾ÐÏüøùÀ¶aÈÁÀ¶Êü
ÀtÀtÍ+Îiù8üÀÀ±ÀæÀÇÀ˜ÀÏjÏÂÆÙÍÏü
ÀljÀÑÀ«ÇÀêÀlÁåëÈÀ´ÁÀ¢ÈüÙÀTÇÁÂÀÕÀEÈÀØÁ	ÇÀ,ÁÆü$ÈÀ$Ø‚¦ÐÏü
æÀ¨ÀJèêæ$D¦ÖÕüÀ
RÀÐÁ(¦ÌÍÖÀÏÀ†àü
ÀtÇÂÀÑÀ«íÀêÀtÁå´Áå,¦ÍÌÉÀÃÇ×üøöÀ™ÕÀÇêÖùÀ¶ÏëÊÀyÀ¶ÀÂÈþ¦ÎË ü<Žãü 
(­ÉÏü|QYeS­ÉÏüü?ääääääääääääääääääÏÖäÚ¥ÎË üääääääääääääääääääÕÛäÞ¥ÍÌÉÀÃÇü¾ÌÍÖÀÏÀ†Îü¾ÖÕü¾ÐÏüüüüüüüü¾ÐÏü¾ÖÕÀ*ÀªÀªÀªÈü¾ÌÍÀmÀlÀ¦ÀVÏü¾À3À˜ÀKå:Çü¾ÀdÀLÇ;ü¾ÄÆÀKÎ:ü€FÏ:Çü€AÆ:Çü¾ÄÆÀLÈ:ü¾ÀdÀLÇ;ü¾À3À˜ÀKÀ¡ÕÀ:Çü¾ÌÍÀGÀÇÀìáÇü¾ÖÕÇ;ü¾ÐÏÀjÀªÀªÀªÏü€*ÀªÀªÀªÈüüüüüüüüü¼äääääääääääääääääáü»ÁäääääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÕ›püÄ›)üüüüüüÄÆüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüâÏ™?Õÿ¡Év’&l2D“I501ileaf_page_string1:4-12¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³12¡,É²&Figure 4³10³Select´µNamesµFileµDialogµBox¡- ²¥	öäÒÓÐ/ÿ”×W/X0WûÈÅ‡ü1ˆ	üüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüÖÏ‡Úú÷øþÿüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüü Ï‰ÁÀŒüžÚ#ÐÅüüÔœÁÀh+=ÈžÑüÀ˜ÌÚÐÀ‡À¦ÂêÀáÀ³ÖÖÈÁÈÙÄüžïÀhÀÀKÀfÀÐÀnÀ–À—È´üÁÍ{CD8üžÀÈÎÉ
ÁÏQÀ8iüžÆÙÉÏ¢ÏÀŒÈ<üÁÈÄ9Ç‚üÁÀiÙÀÀËÀÖBÀèÀžÈ¼üžÚÚÀÇÀ‡ÀŽÃÀ1ÀÙÀ™ÀÛÁÀŒÙüüüüüŠ1üÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüüüüüüüüüüüüüüü·âääääääääääääääÞüüLÀýÈÉÌ•ÉÀãRQ’ÛääääääääääääääÕüüB–ÀÓTü]×	ÀåÀÜÙÏ’À+ÀmÀãÀÉØÀÞÙÀñÈü-ÂÀÓÀºÀ´”õÀÕÀ©ÀZÆÀµÀhüàJ{“ËqaYÈ•ÁÀáÀŒüàËaÏi”ÅÏ2À1À°–ÂÀÐôüÏ<•Ú<ì–ùððüN1ZÏ’ðiÎÈÀ¡È—ëü-Àè´“ÀÐÂÀÕÀ¥ÀÚµÀhüLÀÀžÉÀÀÞÀfÙÏ‘ÉÀãÀaÀãÀÃØÀÆÙÀñÈ—ëüá•ÐáŸðüá•Ðáùðôü½ÂÀÐ÷ü½ÁÀáÀ†üääääääääääääääääääääääÈüLääääääääääääääääääääääüžÁÈlÐÀcÀÃÊü¤ÀÀC‰ùÀ¬ü?ääääääÈ’À¼À»È1ôÀÇØÀÛÀÇÀ˜Ï×ËÀžØæËÂüžÂÀZÀwÇA)ÀZÀ%À«Ç-ñÀ­ÀZæ!ü%™ÎÎÀÇÍü6˜ÁÓ;!ÌÀ&ÀÃÅËÀlääääääääääääääÕü"ÀÀÀ.ÀãÀÇÈ“ÀXÁÀ#ÀÊÈÀ,õü%ÉÀVÀÀÕÀ«Ç’ÃZÀÍÕÊÊÈÏ:ÀCÀhÄ)ääääääääääääääÞüÂÌÏ“À]KÀËÇÀZùÀ«í.éÀíÀZÀ]åü	ÀÈ’ÊÀ;ÀÌÀÌÀÍÀÀÇÀ°ØÀÃÀÇêÀáÀžØÀ3ÀÃÌü	ÀâÇÃüvmšù
ÛÏüÇùÀ«Ç™Ê[ÛÏ‹âääääääääääääääÞülÀÎÀóÀ3ÀÇÈ«ßääääääääääääääÚüüü?ääääääÈüüLääääääääääääääääääääää¡ÐÈJüääääääääääääääääääääääÈ ÀÇü¼ôÀÞÀlÙÚü½À-ÀÀµÀhü½ÍÅËü½Òrü½À,xüääääääääääääääääääääääÏääääääääääääääääääääääáÏYÌüäääääääääääääääääääãääääääääääääääääääääÕˆÀÀnÈÀµÀhü™ää˜ÖäÚÀÀæÙÀóüˆËQ•ÉÕüŠÌ•ÐÚü1ÀžÀlÎÀóÙÉÀcÀËÀ¸ÀñÕËÛÈÀ»ÀÀ6ØÙÚü-ÀÀ±ÀhÈÕÀ§ÀuÀjÀÐ‰ÈÏÀwÀVÀÀZÀµÀh‹Äü*ÈÅÅq†°ˆÁÇŠÄÎËŒôü^CIÈcÎˆÂÆÿÀ°Q8q‹òüÖÈxæˆÃÅäÕÈÀXx‹ïüN)bÇˆÊÍo	ÈYÌ‹Àcü
À-±ÀhÀÐÁÀjÀÐÉÈÀ]ÀµÀhŽßääääääääääääääÚü×ÀfÀlÀóÊÀÀ3À¼ÀÌÀñÕ‘ÎÀÌÀÏÀ3À;ÙÚŽâääääääääääääääÞü™ÁÏU“Òü ÉäÏü ÖäÈü™ää˜ÖäÚüü™ää˜ÖäÚüˆË–Û]üŠÀÈ•ßÈü1ÀžÀlÎÀóÙÉÀcÀËÀ¸ÀñÕÎáÊÀÞÀ]ÀÇÀ’Ùü-ÀÀ±ÀhéÈÀÕÀ§ÀuÀjÀÐ‘àÁÀ-À;À«ÀRÀ´ü*ÈÅÅe†°“Ïü^ŠIÈcÎÐÀýêËküÖÈxæÖä<üN)bÇ‘ÁÈÉ
Ëü
À-±ÀhÐÈùÀÐÁÀjÀÐÌ-ÀKÀ´ü×ÀfÀlÀóÛÀ›À3À¼ÀÌÀñÕ‘ÉÊ×ÀfÀgÀ†Ùü¡Íü¡Ûãü¡âáü™ääü™ääüüˆË—ÞIÍÉÀÃÖüŠÀÈ•ÁáÀ¬ÀÈü1ÀžÀlÎÀóÙÉÀcÀËÀ¸ÀñÕÉÐÕÌÀIÀ¶Ëü-ÀÀ±ÀhÀ†ÈÀÕÀ§ÀuÀjÀÐ‘ÉÚÀ,ÀJÏåÀÈü*ÈÅÅfÈÀ†°“ÃAÇÀÈü^CIÈcÎ‘ßÀìÈüÖÈxæ‘âÞüN)aÌÇ’ËÃÃÇü
À-±ÀhÀÈùÀÐÁÀjÀÐ‘Ï,À.ÀÁÕÀÈü×ÀfÀlÀóÖÀÀ3À¼ÀÌÀñÕ’ÌÀÀÀ‡ÀãÖü¡ÁÈJü¢äÚÀÐü¡ÉäÕ	ÕüüüüˆË	È–ÐÏÁÀƒüŠÂ—ÖÕü1ÀžÀlÎÀóÀfÉÀcÀËÀ¸ÀñÕ‘ÌßaØÀÌÀÏü-ÀÀ±ÀhÈÕÀ§ÀuÀjÀÐ’ÛÈðÀZÈü*ÈÅÅl†°”ë¡Çü^˜IÈcÎ‘ÁäÎSüÖÇùÈxæ‘ÉäÏëÈüN)ÀXÇ“Îð^êÈü
À-±ÀhÀÐÁÀjÀÐ‘ÊÀZÈü×ÀfÀlÀóÁÀ›À3À¼ÀÌÀñÕ“ÀÁÀØÀ3Öü¢Ëü¢ÐäÈü¢ÛäüüüüˆËÈ—ÜQÉÏüŠÉÈ—âåü1ÀžÀlÎÀóÀtÉÀcÀËÀ¸ÀñÕ’ÀÁÞ
Îü-ÀÀ±ÀhÀ‡ÕÀ§ÀuÀjÀÐ“áü*ÈÅÅ~ÈÀ†°ü^CIÈcÎ’ÖÀûüÖcÈxæ’ÛãüN)bÇ“É
Îü
À-±ÀhÀÈùÀÐÁÀjÀÐ’Í	Àååü×ÀfÀlÀóÖÀÀ3À¼ÀÌÀñÕ“ÊÐÀãÏü£Îü£ßáü£äÞüü³ÖäÚü³ÖäÚüˆË˜ÁÚqüŠÀÈ—ÉÞqü1ÀžÀlÎÀóÀaÀƒÀcÀËÀ¸ÀñÕ’ÊÖÏÀgÀ›ÙÀóÌÉÏü-ÀÀ±ÀhÈÕÀ§ÀuÀjÀÐ“ÐÕÀíÀµÀhåü*ÈÅÅg†°–ÉÀ,ÂÀ¨Êü^†ÈÉÈcÎ“âÀØÉÃÀØÎIÈüÖÈxæ“äÚÉÏñÀyëùÈüN)bÇ”ÌyÀÐÌü
À-±ÀhÀÈùÀÐÁÀjÀÐ’ÁÈÇÀµÀhÈùÀÐü×ÀfÀlÀóÖÀÀ3À¼ÀÌÀñÕ”ÍÐÀ˜ÙÚÆÉÀ°ü£ÉFü£ÁäÕÆ
ÀCÞü£ÐäÏÇ
ÀƒÞü™ää˜ÖäÚüžÐääääääääääääääääääääÕü™ää˜ÖäÚüˆËÈšÁÈ1ÀáÈüŠ×™ÖÈÀÖü1ÀžÀlÎÀóÀbÀƒÀcÀËÀ¸ÀñÕ“ÅÇÂÀO×ìÊü-ÀÀ±ÀhÈÕÀ§ÀuÀjÀÐˆÁÏŠÜÂÀVÀ­ìŠÒü*ÈÅÅe†°—Àü^CIÈcÎ“ÉãQÀ6üÖÈxæˆÊÍ‰ÐäÈÐÀ‰‹ÀcüN)
ÌÇˆÃÅ‹ÈóÀ´ÃŠïü
À-±ÀhÀÐÁÀjÀÐˆÂÆ‰Ë	ÀvÀ­À.ÀÐ‰òü×ÀfÀlÀóËÀÀ3À¼ÀÌÀñÕˆÁÇŠÁÏ×ÀÀáÈˆôüšÈ‰ÌÄü¤Öãüü™ää˜ÖäÚüäääääääääääääääääääãüääääääääääääääääääääääÏääääääääääääääääääääääáüüüüüüüüüüüüüLËÁÈäÎ
ÀÃáü]?ÀÃÀœü]ÀòÇÉÐÀÁÀäÈÉÀÀcÀÆüÀjÇÀVéÀÔÈÕåüX8ÈÀ¨ÈÊüÀ°8ÉÀÈüHJÀÄÈ
ëÁÕüåÆÚEÀfüñÀiÎÀVéÀÐBÀÕåüLáÚÏÀÃÀgÀÁÀãqÆÀcÀÆüÉáÈüÉÀýÇüŽÁÀƒüüääääääääääääääääääãÁääÈüLääääääääääääääääääáÿäüüüüüeÏÀ°1ÈüÈVÏÇKÈüÀ.ÀãÏÁÀƒÀÇÈÃïÀ±ÀåÀÜÙÚüUÀÀÀÕåÀ«ÇÀ¡jÀÓÀºÀµÀhåüfÏÂÈÀCX\ÎüMÑ	ÈÒÁÀÈ
Ï1À°$Æü	Õ	ÀâÇÏ<ìÇüsmZåÈüÇùåÀ«ÇÀèµÀhüeÀÎÀóÀ3ÏÀaÀ³ÀÇÈåÀÀ™ÀÞÀfÙÚåÕü™ÖÕüŽëÇüŽÍÈüüLääääääääääääääääääáÿäüääääääääääääääääääãÁääÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÕ‰üÄ‰	üüüüüüÄÆüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüâÏ‡Iãÿ¡É ¡þÑ²Write¡þq²Writeµletsµyouµselectµandµwriteµoutµaµlibraryµthatµresidesµinµmemory¡þ¹toµaµselectedµfile.µFromµtheµWriteµLibraryµdialogµbox,µyouµcanµselect¡þaµlibraryµinµmemory,µaµfileµformat,µandµaµfileµtoµwriteµto.’2ŸD“I501ileaf_page_string1:4-13¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³13¡,É²&Figure 4³11³Write´µLibraryµDialogµBox¡-²¥	öäÒÓÐ/ý”Æ=/>0áûÈÅ¤)ü1¥üääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕü¦9úð0;ú÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüüü­ÊcÏeyü«ÍÍ1a|üÔªÉQÇbÌ®ÓüÀ¸«ÉÀfÀ™ÕaÌÀÙÀãÀlÎùÌÚÐÀ‡ÏªÍü«ðëšÀÐ4ÂÀÐÀhÀÀKü­Õ4À;àÆ	Èü«ÃÈÈy!ÏÀŠÈàü«ÀÆðÏ9	Î	ü¯Åü®ÀZÚÐÈÀ4ÂÀèAÀÁÀtÀÀFü«ËÀÃÊÀ9ÕÛÀ˜ÞÀÁÀÛù|ÌÀìÀÇÀŒü»ÀÇüµÊÈüüü§AüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüü·Ðäääääääääääääääãüü·ÁäääääääääääääääÞÃÎrüIsü?ÀØ1È•ÜÍrqªÉËÀÛÀÍÀçÀÌüÏ!–ÀÍt«ÀÀ%À¢ÀÀVÈüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ™ÉÀÃÌÅ×ÁÈùÀ˜üÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ™ùåðŽÀ#éÉÀükZ”ÏÊ	ÈùÀ˜™÷ëëŽùÈÉÀÄÈüyÊÒI”ÁËÉÀœåÅÚÌüð,IÏ”ÖKÀÄÈ¨ØÀùÀÐÀÀVÈülÂÌ’ÂÈÉÊÄÚÌ›åŒäÀlÀÃÀ¼ÀgÀÌüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈ›ëüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ™÷ëðüÏ•âÏ ùåôüÏ•âÏ ÉÀÃËüŒ“ÐÚüüŒ	’ÇÐÏüäääääääääääääääääääääÞ³ÁbÈü?äääääääääääääääääääääÚ³Á’ÈüŒ	ØÀØÏÉÀÍÈŒÈüŒ	ÀZÀ5ÎùÀ¢Èü·ÁäääääääääääääääÞÎÆÆ	ÈŒÈüŒ	ÓÈüCÀÈ˜ÁÈaÈ=À°jQ
ÈäääääääääääääääãÀX‘ÈüJÎ¤ÁÈjŸÁ2ÈüÆÎÍ™À¼À»È,À3À3ÀÍÀ¼öÀ†ÀmÀæÀóÀÇéÀóÀÎÈ™ÁÀ]ÁÎùåÈüCÀ°Àh˜ÂÀZÀwÇ–À¢ÀZÇÀõÀÑùÀ«ÀIÀhÒšÁÀ;ÀÌÀØÉÀÌÈü
ÇÅÇ™ÎðÀVÁÈ!ÖyÂÏÀZÀ¨ÈšÁ’ÈüžÁÓ;IéÌÆÀÁÁÀÀ…À°	šÁÀUÀUÀVÀ­ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÈüŸÀXÈ×ÏÁÀâÇÀIë›ÁÀUÀUÀVÀ­ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUüSÅÇ˜ÃZÀÍÂÀåQÈÄmöå­ßäÏü°Àh™À]ÀÐÀZÂÀèùÀ«ïÀhÈÏßäÏüSÀmÀ°˜ÊÀ;ÀÌÀÌÀÍÀÀŒÀÃÀ¼ØÀÍÀ¶ÀaÀÞÀ3ÀÇÀ˜ÚÀ#À6ü°ÈœØÖ×Øü¯ÁÇœÀZÀÀ­ÀZü¯ÁÈœÊÌÀÀüŽÀ6Àlü?äääääääääääääääääääääÚµÀøõüäääääääääääääääääääääÞ´Ê4ÀhüZÀÀmÀZü<ÀÎÀÞØüü·Ðäääääääääääääääãü·ÉäääääääääääääääáüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏüäääääääääääääääääääÕäääääääääääääääääääãü–ÖäÚ˜ääü}JÎ–ÉÕü ÐÚ›ÖSü
ÀæÀÆÀlÌË–ËÛÈÀyÀÀ°—ÀÈüÀÑÀ«-ÅÀ,ÀÄ‰ÖÏÀ´hŒÈŠÀ)À¼ÀØÀñÕüJÁÁZÃÅô‹À-ÀTÇ‹ÁÇ‹ÀZÀ5ÀjÀÐü
Ï+ò‰äÀ°ÀØÂÆ‹ÎÆÌüÏ“ïˆÁäÕñÀ¨ŒÃÅ‹Ózü
èÅÀcŠÍÀÐÊÍ‹ÀXðüÀèÀ-,À–É´Ç˜À)ÈaÍü
ÀÞÀfÏ×ÀaÀ›Àl˜ÎÙöÀ˜—ÀÀÝÁÀjÀÐü—ÒˆÊ;ŒÁÏŠÖÀ;ÀÌÀñÀæüÏ™ÉäÏ üÏ™ÖäÈyü–ÖäÚ˜ääüü–ÖäÚ˜ääüSÉÖÍxÁÀ°•ÛQü\ÀÈ´—ßÈÊü
ÕÀÌÌÉÆÏËÊ•ÎáÊÀyÀ°üÀÑåÂÀ…ÀÀ–à´Ç‘Éäääääääääääääääáü1÷ªðÂÄ™Í‘Ðäääääääääääääääãü
P—ÐÀýÈÍÇü÷Tå—Öä<ü1ÂÄ–ÁÈËüÀÑåÐéÈðØÀÀ•Ì´ü
ÀæÀÃÛÀ±ÈÅáÀÍÀ¶–ÉyÈü¡Íü™ÛãÂü™âáÃü–ÖäÚü–ÖäÚüüSSÏ™ÞIü¡Áá¼ßäÏü
ÕÙÀñÕÍÌ˜ÉÐÕÌØÀÆüÀÐÀµÀjÀÐÀXÀ4™ÉÚÀ,ÀZ¹ßäÏükÏÀXÀ°ÄÆ›ÃªüqÀ³Î›ßÀìaü°ìæ›âÞÀTükÁÀ£ÀCÄÆšËÃÊüÀÐÀ»ÀjÀÐÀXÀ4™Ï,ÀZðÐäääääääääääääääãü
ÀæÀvÀñÀãÀ6ÀØšÌÀØÅÉäääääääääääääääáü¡ÁÈü¢äÚü¡ÉäÕüü¹ÐÕ[ËÀ6ÊÍü¹ÁÕmÁüSKÈJÎ•ÐÏÌÀÞÙàâÈŽËÀÛ×ÀlÎiÏÉÀËÀ¸ÚüÈ™ÖÕtÀ´ÀÀsÈÊÀ­ÀÀ°	À¡À…À§ÀuÀh™ßäÏü
ÕÙÀñÕøÀlÀlÚÌË•ÌßÆÁÀJÁÀëíÍÅÅ	Q‰ÁääääääääääääääääääÈüÀÐÀµÀjÀÐøÀÀ±ÀhÀ,À–ÛÈ”ÁÀäÈÒÃÈqÿäâääääääääääääãääßäÏükÏÀXÀ°)öÈÃÅ˜ÁÇÀtÃÈÀ,ÈxüqÀ³Îà—ÁäÎÂÆÙaÀí*	9bü°ìæ
Î—ÉäÏAÁÕÊÀ®ÈÀ°ÉÀÁåùÀÐÁÀhükÁÀ£Ç)ÅÁèÅ—ÎÁÇÁÀJÐÀìÀÃÀÀæÀlÖÀöÀÆÀ3À¼ÀÌÚüÀÐÀ»ÀjÀÐÀ±ÀtÀ,À•Ê´ü
ÀæÀvÀñÕÊËÎÀíÀ›Àl—ÏÀÌÀ™ÈÙÀcËü‰Ï˜Ë˜ÌüÚ´˜ÐäÈüÚÎÙ˜ÛäüüüüKzÁÀ°šÜzÉäääääääääääääääáü£â“ÐäääääääääääääääãÿäâääääääääääääãääßäÏü
À´ÀžØÌËÊšÀÁÞÊÀÀ™ÀæÀÞüÀÄÀ­ÀZÀ4ÀÀ›áÀÀÑÀ-¢ÉääääääääääääääääääääÚü;QÆÂÄœÁôÀ+yü\žÖÀû
ÀÁËÿäüžÛãÏÖÿäü;ÀCÊÂÄ›ÉÁÀÀÐIüÀÂÀíÀZÀšÍÀèÀ-ü
êÀžØÀÌÀÍÀ¶›ÊÊÀÆÀaÀÞ×üJ ÎüÀÐŸßáü
ÕŸäÞüüüüJÍÈ›ÁÚmÈ	ÈüJ ÉÞY
ÈüJÀIÀãÎÎÍ›ÊÖÏËÀ3ÀoÀ7ÀžØ‹ÐäääääääääääääääãüJÀÕÈÀ°ÀhœÐÕhÀ–çÀ-ÀZ‹ÉäääääääääääääääáüKAÅÇŸÇÙÊÿäüÏŸâÀØŽÄËÀlÿäüÏŸäÚõü†ÅÇÌ9JÀh¢àKü.ÀíÈÀ°Àh›ÁÈhÀÇÀ-ÀZŽáRÉI‹×üÀÛÊÀmÀ°ÍÀmÀ³ÑÀñÀžØŽÀ:I’ÀóÀwÀqÀäÈüTžÉ—ÙÀÃÀmÀãÀÉÃÀžÀÈáÁÀhÀŽÀêÀÔÀäääääääääääääÕü
åÁäÕ•ÀµÎõÀÕÀ©ÃÀ­ÀVˆáÒqÉäääääääääääääÏüIÏÐäÏ”À:1Ëq‰ÒAÁÏü–ÖäÚ˜ääoÍ)Ï’ÂÏüœâäääääääääääääääääääã‰÷Øð”Çü–ÖäÚ˜ääˆËÆiÎÈÇ‰ÁÀhÀêÏüJyËØÏÁÀ°±ÀµÎÂÀÕÀ¥éÀíûÀV‰ÎÀóÀÀ™ÀÙÈü|ÍÀZÖÈ”ÀÆÙÀÛÀaÀãÀÃÁÀžÉÀ÷ÀŒü<ÏÍYËÊšÅÇÁÀæÀ6ÏšÌüZÀÀÒÜÂÀÐÁåÏ‘ÀÈü(ÂÄÀµÀQ›Öül ÉãÉÎü(ÀcŒÐäÈÀ’åˆÊÍühÀÂÄïŽÀƒÇ‰ÃÅüZZ÷ÀÀòŒËÀÑ‰ÂÆüJØÏËØÀÆÀÍÀ¶ôÁÁÕÀFÎÇü—ÄŒÌ
ŠÈLäääääääääääääääáüÏžÖãÈŽÐäääääääääääääääãüÏ¡Éü–ÖäÚ˜ääüäääääääääääääääääääÕ¸ÁÚüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏ›ÉÞüQËlüYÀæüÀÉÁÈüÄùÀƒÇü’‚üüÄüÀ‚üYÀæùÀƒÇüQËÉÀmÈüIÞüjÏÌÖÀößÏ‚	Úü{IÚ,À9ÏüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZ¨ÐäääääääääääääääãüÈÉÈX*çq§ÉäääääääääääääääáüIÈÀ1À°eüÈ<ìüÂå$ÊÎ¿ÁÚüÀÀ–µÀhÀ-"ÀÀZ€IÞü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎ­ÙÌÊËÊÀÀÚÏü‹ßÀÈ°À´YËÊhü‹ßÀÔ¯ÁÀJÀÙÀ,ÀóÀcÏŒÌÉùðüŒÌÍ°À5óÀhÀÕåü¾ÆÎÕüQÏŽÂÅÕüääääääääääääääääääÕÛäÞ¨ÁÆÏü?ääääääääääääääääääÏÖäÚ£ÁÀJÆÅQÈŒÌÉÁÆü½À´À4À±ÀhùåŒËÊhØü½ÙÌÀlÀóÀ3ÏŒÊËÃÀÚáüIÞü	Úü6aÈÀêÈ´Ïü+Î	ÇÓü
ÈÏÂÆÎÍüÀÁåëÈÀ°ÀhåüA	ÇÅÇŽÀÆü—éü—íŸÉäääääääääääääääáüARÅÇŽðŸÐäääääääääääääääãüÀÁå°ÀhŽÅü
À¶ÏëÊÀmÀ°åãü—ãü(
Çüe
Èüü?ääääääääääääääääääÏÖäÚ´ääääääääääääääääääääÏüääääääääääääääääääÕÛäÞ³ÁääääääääääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ¦YüÄ¦üüüüüüÄÆüüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüâÏ¤Þÿ¡É¡þw²TheµWriteµLibraryµdialogµboxµshownµinµFigure 4³11µcontainsµthe¡þ¿followingµelements:¡þBFileµName¡XŠAnµeditableµtextµfieldµthatµshowsµtheµnameµofµtheµlibraryµtoµbe¡XÓwrittenµout.¡þ9Fileµlist¡XAµscrollableµlistµboxµofµallµlibraryµfilesµofµtheµspecifiedµtypeµinµthe¡XÊcurrentµdirectory¡þ0ListµFilesµofµType¡XxAµdrop³downµmenuµofµavailableµfileµtypesµtoµlistµinµtheµfileµlist.¡þÞDirectories¡X	&Aµscrollableµlistµboxµthatµdisplaysµallµancestorµandµchild¡X	odirectoriesµofµtheµcurrentµdirectory.µItµletsµyouµviewµandµmove¡X	¸throughµtheµhierarchy.¡þ
OKµbutton¡X
fAµbuttonµtoµwriteµoutµtheµspecifiedµfile.¡þ
ÌCancelµbutton¡XAµbuttonµtoµcloseµtheµdialogµboxµwithoutµwriting.’Ÿ5D“I501ileaf_page_string1:4-14¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³14¡þÉ²Expand´µLibNameµbutton¡XAµbuttonµtoµdisplayµtheµabsoluteµpathµofµaµlibraryµandµtoggleµthe¡XZbuttonµlabelµto²&µ²UnExpandµLibName.µExpansionµand¡X£unexpansionµstayµonµthroughµvariousµinvocationsµofµtheµWrite¡XìLibraryµdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡þURedirectµtoµLogµbutton¡XžAµbuttonµtoµbringµupµaµfileµselectionµdialogµ(Figure 4³7).µYouµcan¡Xæredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þPOptionsµbutton¡X˜AµbuttonµtoµbringµupµanµOptionsµDialogµboxµasµshownµin¡XáFigure 4³12.µItµletsµyouµcheckµandµmodifyµtheµoptionsµvariables¡X*associatedµwithµaµwriteµcommand.µPressingµtheµOptionsµbutton¡Xrletsµyouµcontrolµtheµfollowing:¡XÛ³¡”Ûvhdllib_architecture:µUDSM,µFTSM,µFTGS,µVITALµ(choose¡”"zeroµorµmore).µTheµdefaultµisµallµarchitectures.¡Xš³¡”švhdllib_logic_system:µIEEE³1164µ(default)¡X³¡”vhdllib_logical_name:µ(aµstring)¡X‰³¡”‰vhdllib_glitch_handle:µtrueµ(default),µfalse¡X³¡”vhdllib_negative_constraint:µtrue,µfalseµ(default)¡Xx³¡”xvhdllib_pulse_handle:µuse_vhdllib_glitch_handleµ(default),¡”¾inertial,µtransport,µglitch,µspikeµ(chooseµone)¡X	6³¡”	6vhdllib_tb_compare:µ0µ(default),µ1,µ2,µ3,µ4,µ5µ(chooseµone)¡X	®³¡”	®vhdllib_tb_x_eq_dontcare:µtrue,µfalseµ(default)¡X
%³¡”
%vhdllib_timing_checks:µtrueµ(default),µfalse¡X
³¡”
vhdllib_timing_mesq:µtrueµ(default),µfalse¡X³¡”vhdllib_timing_xgen:µµtrue,µfalseµ(default)’5ß	D“I501ileaf_page_string1:4-15¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³15¡þÉ²Libraries¡XA´µscrollableµlistµboxµofµallµlibraryµnamesµloadedµinµLibrary¡XZCompilerµthatµyouµcanµwriteµout.¡þÁFormat¡X
AµformatµmenuµwithµtheµentriesµDBµ(default),µandµVHDL¡,²&Figure 4³12³OptionsµDialogµBox¡þô²´µ¥	öäÒÔÑ©ïyðz)	ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¾ô¡þZ²Encrypt¡þù²Encrypt´µletsµyouµsecureµaµVHDLµsourceµlibraryµfile.µFromµthe¡þ	AEncryptµLibraryµdialogµbox,µyouµcanµprotectµtheµsecurityµofµVHDL¡þ	Šmodelsµthatµcontainµproprietaryµinformation.’ß	D“I501ileaf_page_string1:4-16¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³16¡,É²&Figure 4³13³Encrypt´µLibraryµDialogµBox¡þJ²¥	öäÒÓÐ)œ@i/j0ßûÈÅ‰	ü1‹9üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãü‹üÖÀÇäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞáüÐÀçäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääááüüü¥ÀcvÉüàEÎÚüÔœ×rhÎŸÉÈüÀ¸ÀlØÀÛÀÀ²ÎqÀcÀgÀÀ±ÈôÀcÏ×ÛœÉüžÀÀZjÎÐÀÇåÀ-À,üÒÅÊÓÄÇCÀìÉÈÈQüÒ"å‡ÂÀ*JÈü¡Å	ÈüŸÂÁÇ,ü×^1ÀiÎ×ÐÀåÂhùÀÐÀ-ÌüàÀfØÀÁÇÔÕàÀcÀãÐÀlôÁÚÀcÀ³×Íü¯À-ü ÁêÈfüüüŒ!üÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüüüüüüüüüüü´ÐäääääääääääääääääÈüü?ÀØ1È•ÜÍrq‘ÁääääääääääääääääãüÏ!–ÀÍtüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈükZ”ÏÊ	ÈùÀ˜—×ÌÏüyÊÒI”ÁËÉÀ˜À-ÁÇüð,IÏ”ÖKÀÄÈ—ÀRéÈülÂÌ’ÂÈÉÊÄÚÌ˜ùüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ˜ùüÏ•âÏŸÂÈüÏ•âÏžÀRêÇü¼À- ü¼×ÌÎüüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüœÌSÏÙÚÀ°QØÍÎü¢À´Í‰ÀZÏüœÀÀËÀ¸ÁÀLÀsÀÍÀ¼ÀyÀŒÁÕÀÉÀãÀÉyÆüœÀ%À§Àt!	ùÀ¢ÀZÀ´ÀÒÀJÀÕÀ©Bü#YÁÈ”ÊÀ–ÁÀTÉ
Îääääääääääääääääãü6˜ÀÈéÀlÍ	ÀÁÆÏ:ü"ËÀaÀŒ•ùÈÕõØÀ¨ÂÏñÆäääääääääääääääääÈü#IÀV•ÇÌÀÐÁÀNqÀhËÃÀ6ÈÈÁü÷À¢Â•ùÀÐ<À´ùåÀZÀ´ÇÂÀèÀ.ÀÕÀ¥ÀÚüœÀcÀ¼ÀÌÀÌÀØáÀ{ÉÀÌØÙÅÁÀÞÀÀãÀÃØÀ1ÈüÇ¡Çütœë¡áüÈÀœÎÁá‹ÐäääääääääääääääääÈüaËÀÍÈ¬Éäääääääääääääääääüüüüü?äääääääääääääääääääääÚ¢ÙküäääääääääääääääääääääÞ¢À´üºÁÀMÀæÀÇÀü»ÂÀÑÀ«ÀVÈü»ÉÁyü»ÁÏQü»ÂÏÈüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏÀLÁÈüäääääääääääääääääääÕäääääääääääääääääääãŠÀ¶ÀèÀÀVÈü–ÖäÚ˜ääˆÀyÀÞÀgÀÍü~qiÊ’ÜüÈ•âüJÀÀæÀÆÖÀ7ÈÀ1À†Í’ÀÁÞÀÀ¸ÀóÀcÀÇÀüÀÑÀ«ÀçÀX‹ÄüÐÀuÀhÀÕÀ«ÀVÈ‹ÈüÀ¨ÁÁQ*çÄ‹ô‹À†y‹ÁÇü|"òÀûrÉÈÊ‹ÂÆü
ëÚïãxùÈÐÈŠÃÅülÁ
È!‹ÀcObÁÈŠÊÍü¢ÀÐÀÀÈ
X’Í
ÀhùÀÛÀVÈÉäääääääääääääääääüAÀæÀfÀÏÍÀaèÀ3À6“ÊËÀÌÀóÀ3À·ÀŽÐäääääääääääääääääÈü—Òv’ÁÏüžßáüžäÞü–ÖäÚ˜ääüü–ÖäÚ˜ääü~ðiÊ’ÁÚ}üÀh•ÉÞüJÀÀæÀÆÖÀ7ÈÀ1À†Í’ÊÖÏÀmÀåÀÜÀyÀ'ÈüÀÑÀ«ÀçðÀX“ÐÕõÀÓÀºÀµÀ+ÇüÀ¨ÁÁQëÀ*çÄ•Ëü|"å–âÀØÅÏJü
ëÚ
ÇÀ•äÚðJÏülÁ
È!”Ìi*Ïü¢ÀÐÀÀÈÙ÷X’ÁÈÀÐ´À»ÇüAÀæÀfÀÏÀ1ÀùèÀ3À6”ÍÀaÀæÀfÙÀgÈüžÉüžÁäÕüžÐäÏü–ÖäÚü–ÖäÚüü~ðiÊ“ÖÈ3<ÍÚüÀh–ÛÏZÀÁÀhüJÀÀæÀÆÖÀ7ÈÀ1À†Í“ÍàÁèÀ›ÎÏüÀÑÀ«ÀçÀhÀX”ßÂÀÄÀ¬÷ÁÀhüÀ¨ÁÁQÀhÀ*çÄ–ÇÃôÁÀhü|"—ÉãÏ(ü
ëÚ•ÐäÈPülÁ	êÈ!•ÏÇíü¢ÀÐÀÀêÀh÷X“ËÀÂÀì×ÁÀhüAÀæÀfÀÏÍÀñèÀ3À6”ÁêÀ±À˜àÍÚüŸÌküŸÖä-üŸßãüüüü~aiÊ”ÝaÍüˆÆ—ãüJÀÀæÀÆÖÀ6ÎÀ1À†Í“ÁÀƒÚÁÀƒÀÌÀÌÚüÀÑÀ«ÀçÀX”ÁÞÂÀ…åÁÀhüÀ¨ÁÁQÏÀ*çÄ–ù
ôü|	È—ÛÀötü
ëÚäÀ–ßáùxülÁ	ÀåÈ!•ÊÂÈùÀèÌü¢ÀÐÀÀÈ
X”Î	ÀEåÁÀhüAÀæÀfÀÏÍÀèÀ3À6•ËÌÀóÀÃÍÚü Ïü âÞüŸÁäÚüüüü~øiÊ”ÉÕqØüˆÓ—ÐÚZüJÀÀæÀÆÖÀ7ÇÀ1À†Í”ËÛÈ¦üÀÑÀ«ÀçÔÀX•ÖÏüÀ¨ÁÁÀèÀ*çÄü|"™äÀ°ü
ëÚ
ÈÀ–ÁäÕülÁ
È!–Í¦ü¢ÀÐÀÀêÀh÷X”ÉÀZüAÀæÀfÀÏÍÀñèÀ3À6–ÎàØü Êü ÉäÏü ÖäÈüü±ääü±ääü~ðiÊ•ÛQüÀh˜ßÈÊüJÀÀæÀÆÖÀ6ÌÀ1À†Í•ÎáÊÀyÀ·ÀÀ1ÈØüÀÑÀ«ÀçÀX–à´ÀKÀVÈZüÀ¨ÁÁQÔÀ*çÄ™À2ÏÀ*ÈÎü|"Àh˜ÐÀýÈÍÀMÀ†8ü
ëÚ—Öä<ÂÀGÀ•XülÁ
È!–ÁÈËÀÁÈü¢ÀÐÀÀêÀh÷X•Ì´ÀÀVç]üAÀæÀfÀÏÍÀñèÀ3À6–ÉyÀ‡ÀÂ;ü¡Í%ü¡ÛãÂßÈü¡âáÃcßÈü–ÖäÚ˜ääüœâäääääääääääääääääääãü–ÖäÚ˜ääü~ÁÞiÊ˜ÌI×ÌüÕ™Þ-ÎüJÀÀæÀÆÖÀ6ðÀ1À†Í•ÁÃ$ÀñÀäÈÎüÀÑÀ«ÀçÀX‹ÒŠÉÕÀ%ÀjÀÔÈ‰ÁÏüÀ¨ÁÁQëÀ*çÄšÀ°ü|"šßÕcÎü
ëÚÀcŠâÞxæŠÊÍülÁ¡È!‹ï‹ÄÂÀÇÇ‰ÃÅü¢ÀÐÀÀÈ
X‹òŠÏÀjÀÒÀí‰ÂÆüAÀæÀfÀÏÍÀÁèÀ3À6‹ô‹ÅËÀñÀáÀžÌˆÁÇü—Ä‰ÁÈÈü¢äÕüü–ÖäÚ˜ääüäääääääääääääääääääÕüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏüüüüüüüüüüüüjÏÌÖÀößÏß\ÊÀûü{IÚ,À9ÏÖÞüÏñiÙÚ×ì1À¶ØÎÀlÀyÀ¼ÀmÀ’øØaØÎüÀ¤µÀhÀ-ìÀZŽÀÀ´ÇÉÀRøÀZZüÈÉÈX*çqŒÖÅËÀ:À¢ÏqüIÈÀ1À°eÖ:ÏÌüÈ<ìùÇüÂå$ÊÎŽËÁARÎüÀÀ–µÀhÀ-"ÀÀZÖ´ÂÉÀKùÀÚZü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎŒßÀfÀyÈêÀ†ÉØÊÀØÎü‹ßÀÈ’Âü‹ßÀÔ’ùüŒÌÍ‘ÊËüüüääääääääääääääääääÕÛäÞääääääääääääääääääääääÈÐäääääääääääääääääÈü?ääääääääääääääääääÏÖäÚ?ääääääääääääääääääääääIäääääääääääääääääüüüüüJÀÀŒÞÎÉÅaÉÍ¨á?\ÐÀûü4Àl(ŠÓÀ:ÞüÀ”
DÌÀÃÌªÀÛÀÌÀÌÀñÕlÀyÀ¼ÀmÀ’aØü
ÅQÀ¬ô©À%åÁÀjÀÐÀ´ÇÉÀRZüp(ÀíÃ‹ÀÆÀ:Ì÷ôÀXÅËÀ:À¢	Ïü
ÄÔ’éÀ:Æ	À°ÏÖ:
ÏÌüs
ÈŒí¡ìÚÇü
{‹ðŸùÀéåÍZÁRÀfÎü4×,‹ÅÀ:ùåÁÀjÀÐÖ´ÂÉÀKZüaÀŒÞà÷ÂÀÀ›ôŠãáÀÃÀÃÍÀñÕßÀfÀyÈêÀ†ÊÀØÀfÎü—ã¦Âü(±ùüOl±ÊËüü?ääääääääääääääääääÏÖäÚüääääääääääääääääääÕÛäÞüüüœßääääääääääääääääääääääIäääääääääääääääääüœâääääääääääääääääääääääÈÐäääääääääääääääääÈüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏŒyüÄŒ9üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüâÏŠÿÈÿ¡¢J¡þ}²TheµEncryptµLibraryµdialogµboxµshownµinµFigure 4³13µcontainsµthe¡þÅfollowingµelements:¡þkFileµName¡X³Anµeditableµtextµfieldµthatµshowsµtheµnameµofµtheµlibraryµfileµto¡Xüencrypt.¡þsFileµlist¡X»Aµscrollableµlistµboxµofµallµlibraryµfilesµofµtheµspecifiedµtypeµinµthe¡X	currentµdirectory.¡þ	{ListµFilesµofµType¡X	ÃAµdrop³downµmenuµofµavailableµfileµtypesµtoµlistµinµtheµfileµlist.¡þ
:Directories¡X
ƒAµscrollableµlistµboxµthatµdisplaysµallµancestorµandµchild¡X
Ìdirectoriesµofµtheµcurrentµdirectory.µItµletsµyouµviewµandµmove¡Xthroughµtheµhierarchy.’ÂD“I501ileaf_page_string1:4-17¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³17¡þÉ²Encrypt´µtoµFile¡XAnµeditableµtextµfieldµthatµletsµyouµspecifyµtheµnameµforµthe¡XZencryptedµfile.µYouµcanµspecifyµaµnameµforµtheµencryptedµoutput¡X£fileµthatµisµdifferentµfromµtheµdefault,µwhichµisµtheµnameµofµyour¡XìVHDLµsourceµfileµwithµanµ.Eµextensionµinµyourµcurrentµworking¡X4directory.¡þ¨BrowseµEncryptµFileµbutton¡XñAµbuttonµtoµbringµupµtheµdialogµshownµinµFigure 4³7.µUseµthe¡X9dialogµtoµspecifyµtheµnameµandµlocationµofµtheµencryptedµfile.¡X‚ThisµisµanµalternativeµtoµenteringµtheµnameµinµtheµEncryptµtoµFile¡XËfield.¡þ>OKµbutton¡X‡Aµbuttonµtoµwriteµtheµencryptedµfileµtoµtheµspecifiedµoutputµfile.¡þûCancelµbutton¡XDAµbuttonµtoµcloseµtheµdialogµboxµwithoutµgeneratingµanµencrypted¡XŒfile.¡þ‡²Update¡þN²Updateµletsµyouµaddµcells,µoperatingµconditions,µtiming³range,¡þ–scalingµfactor,µbusµtypeµdefinition,µinterconnectµwire³load,µandµother¡þßgroupµstatementsµtoµanµexistingµlibrary.µLibraryµCompilerµaddsµthe¡þ	(groupsµasµifµtheyµwereµtypedµatµtheµendµofµtheµoriginalµtextµofµthe¡þ	plibraryµfile.µYouµcanµchangeµgroupsµthatµyouµaddµtoµaµlibraryµwith¡þ	¹updateµbyµoverwritingµthemµwithµaµsubsequentµupdate.¡þ
ƒFromµtheµUpdateµLibraryµdialogµbox,µyouµcanµselectµaµlibraryµthat¡þ
Ìcurrentlyµresidesµinµmemory,µaµfileµtoµread,µaµfileµformat,µandµaµfileµto¡þwriteµto.µ’ÂKD“I501ileaf_page_string1:4-18¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³18¡,É²&Figure 4³14³Update´µLibraryµDialogµBox¡-²¥	öäÒÓÐ/ø”þ78•ûÈÅŸ)ü1 üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕü¡9úð0;ÿú÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿüüü­ÁÈSÍü«Àc#QüÔ®ÅR¯ÓüÀ¸«ÀÑÖÀ&ÙQÊÀ6ÙÀÛÌªÍü¬ÊÀ–ÀÀ¦À´´ü¬Ãa$ÑÏÓÄü®Ñi#Ôòåü®À<°)ü«ÀUÇü«À*ÊÀ–ÀÀVÀ¼ÁÕÀº1ü«ÒÐÀÀŽÀÎÙÐÀæÜÍÀvÀÁÇüü¬Ì‰ÁÈüüü¢AüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüµâääääääääääääääÈlÀØbüŠybü?ÀØ1È•ÜÍrq’ÛäääääääääääääãÃÀ6ÀóÀyÀãÀÆüÏ!–ÀÍt§ÊÀ‰ÀhéÀÕåüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ¥ÃÐÈÎÁÀfüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ¦ÄÕÈÀÆÏükZ”ÏÊ	ÈùÀ˜–ÐÀ†ÍÁÎñÆüyÊÒI”ÁËÉÀ—ÀÇëŒÃ6À†üð,IÏ”ÖKÀÄÈ–ôåå‹ÖÊêÀtÂÀÕåülÂÌ’ÂÈÉÊÄÚÌ—ÁÇ‹ßÀÛÍÀïÀÀãÀÆüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—ÁÇüÏ•âÏŸåüÏ•âÏôåëü»ÀÇðü»ÐÀ†ÌüüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüüüüüCÀÛ™ÁÈaÈ=À°jQ
ÈäääääääääääääãÿäääääääääääääääääääáüJÎÌ£ÁÈjœÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÇüÆÌÎ™À¼À»È,À3À3ÀÍÀ¼öÀ†ÀmÀæÀóÀÇéÀóÀÎÈääääääääääääääÈjÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¯äÚüCÐ˜ÂÀZÀwÇ–À¢ÀZÇÀõÀÑùÀ«ÀIÀhÒ—ÇQÆü
ÇA™ÎðÀVÁÈ!ÖyÂÏÀZÀ¨È—Ç‘ÆüžÁÓ;IéÌÆÀÁÁÀÀ…À°	—ÀOÀ6ÍóÎŒÆüŸÀXÈ×ÏÁÀâÇÀIë˜ÀVÀÀXÁÀhÈŒÆÄüSA˜ÃZÀÍÂÀåQÈÄmöå—ÀXÄÄrŒÆôüÐ™À]ÀÐÀZÂÀèùÀ«ïÀhÈ˜ÀNDŒÆòüSÀÛÎ˜ÊÀ;ÀÌÀÌÀÍÀÀŒÀÃÀ¼ØÀÍÀ¶ÀaÀÞÀ3ÀÇÀ˜ÚÀ#À6—ÀV‘Æïü°È˜Ç!ÆÀcü¯ÁÇ˜ÀWÇÀXÁÀhÆü¯ÁÈ˜ÀNÀóÀ6óÆüµâääääääääääääääÈ<‘ÆÒü?äääääääääääääääääääääÚœßääääääääääääääUÀUÀUÀ«ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÎüäääääääääääääääääääääÞ°ÀUÀUÀUÀ«ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÇü›äÚüŠiü›äÚüº×[ŠÖÉÀÇÀüºÀ-ŽÀÀ…À«ÀVÈüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏSÀyÀ±ÀãÏŠÁÀ†ÂÀÅÈüäääääääääääääääääääÕäääääääääääääääääääãŠÀ´ÀjÀÕå‹ÉÀÀ›ü–ÖäÚ˜ääˆÏÇÍŒùéíÈü}6Ï–ÉÕ™Ô	ÈŠÁÈÀÀüˆÊ—ÐÚ™À°	ÕŠÀÀ…ÀÛÀVÈü
ÀæÀÆÀlÊÌ–ËÛÈÀyÀÀ°”ÀSjÎŠÖÀ3À·ÀüÀÑÀ«-Å4Ä‰ÖÏÀ´hŒÈ-ÀºÂÀÕåüJÁÁZ1ô‹À-ÀTÇ‹ÁÇÀwÀ™ÀãÀÌü
Ï+ò‰äÀ°ÀØÂÆüÏ“ïˆÁäÕñÀ¨ŒÃÅü
ÈÆÀcŠÍÀÐÊÍ—ÍüÀèÀ-4–É´Ç©À,ŒÖäÚü
ÀÞÀfÏ×ÀaÀ¶ÀØ˜ÎÙöÀ˜£ÖÉÀÇÀKÀcÀgÈ‰ÖäÚü—ÒˆÊ;ŒÁÏ–ÀÀ…À«ÀVÈìÀÕÀ‹ÇüÏ™ÉäÏ ¤ÁÀ†ÂÀÅÈAÀŒüÏ™ÖäÈy¥ÉÀÀ›ü–ÖäÚ˜ää?ääääääääääääääéíÈüµâääääääääääääääÈÈÀÀBÈü–ÖäÚ˜ää–ÀÀ…ÀÛÀVÈÕÀ‹åüSmÈ˜ÛQ¥ÖÀ3À·ÀiÀcÐÎü_™ßÈÊ«Êü
ÕÙÀñÕËÍ˜ÎáÊÀyÀ°§ßÈùåüÀÐÀµÀjÀÐh™à´Ç§ßÀƒÉÏükÏÀXÀ°9œÍüqÀ³ÎšÐÀýÈÍÇ£ÁÈü°ìæšÖä<ükÁÀ£ÀC9™ÁÈË¤Ë×À]ÀÇÈüÀÐÀ»ÀjÀÐh˜Ì´¤ÀÀ-À;À«Çü
ÀæÀvÀñÀãÀmÀ°™ÉyÈ£Âü¡Í¨Ëü¡ÛãÂ¦Öü¡âáÃ¥ÂÉü–ÖäÚ°ÀÀ-Çü–ÖäÚ°ÀÀžÀfÀgÈüüSKÈ6Ï•ÞIüÈR•Ááü
ÕÙÀñÕøÀlÀlÚÊÌ”ÉÐÕÌØÀÆüÀÐÀµÀjÀÐøÀÀ±Àh4•ÉÚÀ,ÀZ¦ÀØükÏÀXÀ°)öÈ1—Ãª¥ÌüqÀ³Îà—ßÀìa£À×ÀlÀÀcÀÇÀ›ü°ìæ
Î—âÞÀT¢ÊÀ­ÀÕÀ«íükÁÀ£Ç)ÅÁÈÆ–ËÃÊ£Ã)AËÉüÀÐÀ»ÀjÀÐÀ±Àt4•Ï,ÀZð¦ÁÀ‡Ãü
ÀæÀvÀñÕÊËÎÀíÀ¶ÀØ–ÌÀØÅ¦ÁÀëü‰Ï—ÁÈ«ÎüÚ´˜äÚ¦À-À«åüÚÎÙ—ÉäÕ¥ÀÀžÀfÀÛÀ3ÀÇÙüüüük6Ï™ÐÏÌÀÞÙàâÈüWšÖÕtÀ´ÀÀsÈ¦ÁÈü
ÀƒÀËÀ¸ÚÊÌ™ÌßÆÁÀJüÀÅÀ§ÀuÀh4šÛÈ¤À×ÀfÀgÀ›ñÀåÀÜÀØ×ü;4œÁÇÀtŸÊÀ­íÁÀjÀÓÀºÀ4À-üÈÁäÎÂÆÙaŸÃPåÉ[2üÕÉäÏA¢ÉÃÁÀ±ÏZü;Î	ÈÆ›ÎÁÇÁÀJ£ÉÏJÏüÀÅåÁÀh4™Ê´ Ã/ÇÏÁå2ÉäÚü
À³ÀÌÀÌÀñÀ¶ÀØ›ÏÀÌÀ™ÈÙÀcËžÊÀ­ÇÁÀjÀè4À-ü¢Ë¦É×ÀÀ‡À˜ñÀÞÀfÀÀžäÚü¢ÐäÈâäääääääääääääääÕü¢Ûä‘ßäääääääääääääääÏˆãü‰aþ{üœüŒQüKzÀÎšÜzüO›â“à|ÀÃÎÀc‰ÌÀÏÀ6ÍÀyÀ°Àcü
À´ÀžØÌÉËšÀÁÞÊÀÀ™ÀæÀÞ×M)ŠÀÀÀXÀ´ÇïüÀÄÀ­ÀZÀ4›áÀÀÑÀ-ŽÀÍÀ±ÀæÀÆIË<À»ÀÇÄÄiòü;QÆ)œÁôÀ+yÀjÀÑÀ«ÌÀZÀwÀVÈV;ôü\žÖÀû
ÀÁËÿäÀ´ÀCÁÁ*qˆ÷À‡ÈÄüžÛãÏÖÿäìÁÏ\ÓQÈÄü;ÀCÊyÅ›ÉÁÀÀÐIŽìÂÏXÈÀÈÀXÀ´üÀÂÀíÀZšÍÀèÀ-ŽÀ´Ç	*Ã
ÈÖÀ3À6ÀyÈŒÖäÚü
êÀžØÀÌÀÛÀl›ÊÊÀÆÀaÀÞ××jÀèÀ<À]ÈäääääääääääääääääÕüJ Î“àÀÌÀ1ÀÞÀfÏäÀlÀcÀ;ÀÌÀÏ?äÀßäääääääääääääÀ¿äÀÏäÚüÀÐŸßáü
ÕŸäÞü–ÖäÚŸÁÈüü–ÖäÚüJyËØÏÀÎ™ÁÚmÈ	Èü|ÍÀZIšÉÞY
Èü<ÏÍYÉË™ÊÖÏËÀ3ÀoÀ7ÀžØüZÒŒÐÕhÀ–çÀ-ÀZ‰ßäääääääääääääääÏü()ÇÙÊÿääääääääääääääääÕül âÀØŽÄËÀlÿäü(ÀcŒäÚõühÏÅïÌ9JÀhüZZ÷ò‹ÁÈhÀÇÀ-ÀZßäÀßäääääääääääääÀ¿äÀÏäÚüJØÏËØÀÆÀÛÀlôÍÀmÀ³ÑÀñÀžØü—Ä‹É¥ääääääääääääääääääääáüÏÁäÕüÏÐäÏü–ÖäÚ˜ääüäääääääääääääääääääÕäääääääääääääääääääãü?äÀßäääääääääääääääÀ¿äÀÏäÚ˜ääüµâäääääääääääääääÕü¤ÖÈßäääääääääääääääÏü¤ÅÇÁÀæÀ6Ïü¥ÜÂÀÐÁåÏü§ÀµÀQü¤ÉãÉÎü¤ÐäÈÀ’åˆÊÍÏÁÀ°rÍiü¦ÀƒÇ‰ÃÅLåiü¤ËÀÑ‰ÂÆÀŒÀ6ÀÞØæÀIÕxÀØü¥ÁÁÕÀFÎÇÀVÁÀ-ÀZæÀJÀÐµÎü¤Ì
ŠÈLåÂyÊ5ü¤ÖãÈŽÉÉ	Ëü§ÉÀ£Ïü?äÀßäääääääääääääääÀ¿äÀÏäÚ˜ääÂIÊÄÃ3ü¸ÀÀV-ÀZÀXÀ.ÀÐÖÀµÎüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏ[ÀgÀÀ¶×ØÍÀÕßÙÏü	Èü	Àhü‚ðüüüüüüµßäääääääääääääääÏüµâäääääääääääääääÕüüjÏÌÖÀößÏü{IÚ,À9ÏüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎüÀÀ–µÀhÀ-"ÀÀZü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎü‹ßÀÈ¨âäääääääääääääääÕü‹ßÀÔ¨ßäääääääääääääääÏüŒÌÍüüüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚ¡ÐÈËÏüºÀÇyüºôÀ­À’ÀÏÀ6Øü»ÉÀRÀÀÀZü»Â"ÀüJáYr
À†ÏÉÅÀÎÎ¬ÀlüJÀœˆÊÀlÉP8§õüÀãÀÁÀ›×ÐÀÀ±ÈÊÌDÉË¨ôÀ¢ÁhüÀÕÀ£ÀFÀ­ÀÀV4÷Åð§ÀÀCÀKÀÈÀZübÃÀ*È1()Æ¢ÐêÀ†ÀÏÀ3Øü|’éüðŒíülÎ3zÅ(£ËüÀÕå-ÀÀVÄxÀ4-üaÀãÀÌÀÙÀžÀgÀŒÂÁãÀØ÷ÛÀlðþü‰ÌÄŒãü‰ÀÀ”Pü‰ÖÌKsüµßäääääääääääääääÏü?ääääääääääääääääääÏÖäÚœâäääääääääääääääÕüääääääääääääääääääÕÛäÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ¡YüÄ¡üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüâÏŸÞÿ¡É¡þ—²TheµUpdateµLibraryµdialogµboxµshownµinµFigure 4³14µcontainsµthe¡þàfollowingµelements:¡þYFileµName¡X¢Anµeditableµtextµfieldµthatµshowsµtheµnameµofµtheµlibraryµtoµbe¡Xêupdated.¡þKFileµlist¡X”Aµscrollableµlistµboxµofµallµlibraryµfilesµofµtheµspecifiedµtypeµinµthe¡XÝcurrentµdirectory.¡þ>ListµFilesµofµType¡X†Aµdrop³downµmenuµofµavailableµfileµtypesµtoµlistµinµtheµfileµlist.¡þçDirectories¡X	0Aµscrollableµlistµboxµthatµdisplaysµallµancestorµandµchild¡X	xdirectoriesµofµtheµcurrentµdirectory.µItµletsµyouµviewµandµmove¡X	Áthroughµtheµhierarchy.¡þ
"OKµbutton¡X
kAµbuttonµtoµupdateµtheµspecifiedµfile.¡þ
ÌCancelµbutton¡XAµbuttonµtoµcloseµtheµdialogµboxµwithoutµupdating.’KÙD“I501ileaf_page_string1:4-19¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³19¡þÉ²Expand´µLibNameµbutton¡XAµbuttonµtoµdisplayµtheµabsoluteµpathµofµtheµlibraryµandµchange¡XZtheµbuttonµlabelµUnExpandµLibName.µExpansionµand¡X£unexpansionµstayµonµthroughµvariousµinvocationsµofµtheµUpdate¡XìLibraryµdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡þURedirectµtoµLogµbutton¡XAµbuttonµtoµbringµupµaµfileµselectionµdialogµboxµ(Figure 4³7).µYou¡Xæcanµredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þOOptionsµbutton¡X˜AµbuttonµtoµbringµupµanµOptionsµdialogµbox.µItµletsµyouµcheckµand¡Xàmodifyµtheµoptionsµassociatedµwithµanµupdateµcommand.¡X)PressingµtheµOptionsµbuttonµletsµyouµcontrolµtheµfollowing:¡X’³¡”’Warnings:µtrueµ(default)µorµfalse¡X	³¡”	Overwrite:µtrueµ(default)µorµfalse¡X€³¡”€Permanent:µtrueµ(default)µorµfalse¡þøLibraries¡X@Aµscrollableµlistµboxµdisplayingµnamesµofµallµlibrariesµloadedµin¡X‰LibraryµCompilerµthatµyouµcanµupdate.¡þY²Add´µModule¡þÿ²Add´µModuleµletsµyouµaddµaµmemoryµmoduleµtoµanµexistingµlibrary.¡þ	HTheµAddµModuleµdialogµboxµletsµyouµaddµmemoryµmodulesµwithoutµa¡þ	LibraryµCompilerµlicense.µItµperformsµtheµsameµfunctionµasµUpdate,¡þ	Ùbutµisµlimitedµtoµmemoryµmodulesµonly.¡þ
ƒFromµtheµAddµModuleµdialogµbox,µyouµcanµselectµaµlibraryµthatµis¡þ
Ìcurrentlyµresidingµinµmemory,µaµfileµtoµread,µaµfileµformat,µandµaµfileµto¡þwriteµto.µ’ÙëD“I501ileaf_page_string1:4-20¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³20¡,É²&Figure 4³15³Add´µModuleµDialogµBox¡-3²¥	öäÒÓÐ/”þ78vûÈÅŸ)ü1 üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕü¡9úð0;ÿú÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûÿüüü®ÏÏ{Éü¬ÉqÏüÔ¡8üÀ¸«ÊÀ‡ÐÀ‡ÊÎ×¬Íü­ÀÀ+ÀÀK-ü¬Ëü¬ÊÇ_ü¬Àü­ÁÁAÁü­ÀÀYÀÀKùÈÀ/ü¬ÌÀÆÀÆÏÇÀÇÀ†ÀÃÀc×üüüüü¢AüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüüµâääääääääääääääÈlÀØbüŠybü?ÀØ1È•ÜÍrq’ÛäääääääääääääãÃÀ6ÀóÀyÀãÀÆüÏ!–ÀÍt§ÊÀ‰ÀhéÀÕåüÁÕÀ]ÀÇÀŒ’ÂÀ¶ÀÞØÀ“ÀÍÀçÀÌ¥ÃÐÈÎÁÀfüÀÐËÀ-À;À«Ç“ÁÀ-ÀZÀ•À¢ÀÀVÈ¦ÄÕÈÀÆÏükZ”ÏÊ	ÈùÀ˜–ÐÀ†ÍÁÎñÆüyÊÒI”ÁËÉÀ—ÀÇëŒÃ6À†üð,IÏ”ÖKÀÄÈ–ôåå‹ÖÊêÀtÂÀÕåülÂÌ’ÂÈÉÊÄÚÌ—ÁÇ‹ßÀÛÍÀïÀÀãÀÆüÀÐ.ÈÀÇ’À-ÀZÀ]åÀÀVÈüjÀÙÕÀ1ÀÀæÀgÀŒ’ÜÀ6×ØÀ3ÀÌÀgÀÌ—ÁÇüÏ•âÏŸåüÏ•âÏôåëü»ÀÇðü»ÐÀ†ÌüüäääääääääääääääääääääÞü?äääääääääääääääääääääÚüüüüüCÀÛ™ÁÈaÈ=À°jQ
ÈäääääääääääääãÿäääääääääääääääääääáüJÎÌ£ÁÈjœÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÇüÆÌÎ™À¼À»È,À3À3ÀÍÀ¼öÀ†ÀmÀæÀóÀÇéÀóÀÎÈääääääääääääääÈjÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¯äÚüCÐ˜ÂÀZÀwÇ–À¢ÀZÇÀõÀÑùÀ«ÀIÀhÒ—ÇQÆü
ÇA™ÎðÀVÁÈ!ÖyÂÏÀZÀ¨È—Ç‘ÆüžÁÓ;IéÌÆÀÁÁÀÀ…À°	—ÀOÀ6ÍóÎŒÆüŸÀXÈ×ÏÁÀâÇÀIë˜ÀVÀÀXÁÀhÈŒÆÄüSA˜ÃZÀÍÂÀåQÈÄmöå—ÀXÄÄrŒÆôüÐ™À]ÀÐÀZÂÀèùÀ«ïÀhÈ˜ÀNDŒÆòüSÀÛÎ˜ÊÀ;ÀÌÀÌÀÍÀÀŒÀÃÀ¼ØÀÍÀ¶ÀaÀÞÀ3ÀÇÀ˜ÚÀ#À6—ÀV‘Æïü°È˜Ç!ÆÀcü¯ÁÇ˜ÀWÇÀXÁÀhÆü¯ÁÈ˜ÀNÀóÀ6óÆüµâääääääääääääääÈ<‘ÆÒü?äääääääääääääääääääääÚœßääääääääääääääUÀUÀUÀ«ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÎüäääääääääääääääääääääÞ°ÀUÀUÀUÀ«ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÇü›äÚüŠiü›äÚüº×[ŠÖÉÀÇÀüºÀ-ŽÀÀ…À«ÀVÈüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏSÀyÀ±ÀãÏŠÁÀ†ÂÀÅÈüäääääääääääääääääääÕäääääääääääääääääääãŠÀ´ÀjÀÕå‹ÉÀÀ›ü–ÖäÚ˜ääˆÏÇÍŒùéíÈü}6Ï–ÉÕ™Ô	ÈŠÁÈÀÀüˆÊ—ÐÚ™À°	ÕŠÀÀ…ÀÛÀVÈü
ÀæÀÆÀlÊÌ–ËÛÈÀyÀÀ°”ÀSjÎŠÖÀ3À·ÀüÀÑÀ«-Å4Ä‰ÖÏÀ´hŒÈ-ÀºÂÀÕåüJÁÁZ1ô‹À-ÀTÇ‹ÁÇÀwÀ™ÀãÀÌü
Ï+ò‰äÀ°ÀØÂÆüÏ“ïˆÁäÕñÀ¨ŒÃÅü
ÈÆÀcŠÍÀÐÊÍ—ÍüÀèÀ-4–É´Ç©À,ŒÖäÚü
ÀÞÀfÏ×ÀaÀ¶ÀØ˜ÎÙöÀ˜£ÖÉÀÇÀKÀcÀgÈ‰ÖäÚü—ÒˆÊ;ŒÁÏ–ÀÀ…À«ÀVÈìÀÕÀ‹ÇüÏ™ÉäÏ ¤ÁÀ†ÂÀÅÈAÀŒüÏ™ÖäÈy¥ÉÀÀ›ü–ÖäÚ˜ää?ääääääääääääääéíÈüµâääääääääääääääÈÈÀÀBÈü–ÖäÚ˜ää–ÀÀ…ÀÛÀVÈÕÀ‹åüSmÈ˜ÛQ¥ÖÀ3À·ÀiÀcÐÎü_™ßÈÊ«Êü
ÕÙÀñÕËÍ˜ÎáÊÀyÀ°§ßÈùåüÀÐÀµÀjÀÐh™à´Ç§ßÀƒÉÏükÏÀXÀ°9œÍüqÀ³ÎšÐÀýÈÍÇ£ÁÈü°ìæšÖä<ükÁÀ£ÀC9™ÁÈË¤Ë×À]ÀÇÈüÀÐÀ»ÀjÀÐh˜Ì´¤ÀÀ-À;À«Çü
ÀæÀvÀñÀãÀmÀ°™ÉyÈ£Âü¡Í¨Ëü¡ÛãÂ¦Öü¡âáÃ¥ÂÉü–ÖäÚ°ÀÀ-Çü–ÖäÚ°ÀÀžÀfÀgÈüüSKÈ6Ï•ÞIüÈR•Ááü
ÕÙÀñÕøÀlÀlÚÊÌ”ÉÐÕÌØÀÆüÀÐÀµÀjÀÐøÀÀ±Àh4•ÉÚÀ,ÀZ¦ÀØükÏÀXÀ°)öÈ1—Ãª¥ÌüqÀ³Îà—ßÀìa£À×ÀlÀÀcÀÇÀ›ü°ìæ
Î—âÞÀT¢ÊÀ­ÀÕÀ«íükÁÀ£Ç)ÅÁÈÆ–ËÃÊ£Ã)AËÉüÀÐÀ»ÀjÀÐÀ±Àt4•Ï,ÀZð¦ÁÀ‡Ãü
ÀæÀvÀñÕÊËÎÀíÀ¶ÀØ–ÌÀØÅ¦ÁÀëü‰Ï—ÁÈ«ÎüÚ´˜äÚ¦À-À«åüÚÎÙ—ÉäÕ¥ÀÀžÀfÀÛÀ3ÀÇÙüüüük6Ï™ÐÏÌÀÞÙàâÈüWšÖÕtÀ´ÀÀsÈ¦ÁÈü
ÀƒÀËÀ¸ÚÊÌ™ÌßÆÁÀJüÀÅÀ§ÀuÀh4šÛÈ¤À×ÀfÀgÀ›ñÀåÀÜÀØ×ü;4œÁÇÀtŸÊÀ­íÁÀjÀÓÀºÀ4À-üÈÁäÎÂÆÙaŸÃPåÉ[2üÕÉäÏA¢ÉÃÁÀ±ÏZü;Î	ÈÆ›ÎÁÇÁÀJ£ÉÏJÏüÀÅåÁÀh4™Ê´ Ã/ÇÏÁå2ÉäÚü
À³ÀÌÀÌÀñÀ¶ÀØ›ÏÀÌÀ™ÈÙÀcËžÊÀ­ÇÁÀjÀè4À-ü¢Ë¦É×ÀÀ‡À˜ñÀÞÀfÀÀžäÚü¢ÐäÈâäääääääääääääääÕü¢Ûä‘ßäääääääääääääääÏˆãü‰aþ{üœüŒQüKzÀÎšÜzüO›â“à|ÀÃÎÀc‰ÌÀÏÀ6ÍÀyÀ°Àcü
À´ÀžØÌÉËšÀÁÞÊÀÀ™ÀæÀÞ×M)ŠÀÀÀXÀ´ÇïüÀÄÀ­ÀZÀ4›áÀÀÑÀ-ŽÀÍÀ±ÀæÀÆIË<À»ÀÇÄÄiòü;QÆ)œÁôÀ+yÀjÀÑÀ«ÌÀZÀwÀVÈV;ôü\žÖÀû
ÀÁËÿäÀ´ÀCÁÁ*qˆ÷À‡ÈÄüžÛãÏÖÿäìÁÏ\ÓQÈÄü;ÀCÊyÅ›ÉÁÀÀÐIŽìÂÏXÈÀÈÀXÀ´üÀÂÀíÀZšÍÀèÀ-ŽÀ´Ç	*Ã
ÈÖÀ3À6ÀyÈŒÖäÚü
êÀžØÀÌÀÛÀl›ÊÊÀÆÀaÀÞ××jÀèÀ<À]ÈäääääääääääääääääÕüJ Î“àÀÌÀ1ÀÞÀfÏäÀlÀcÀ;ÀÌÀÏ?äÀßäääääääääääääÀ¿äÀÏäÚüÀÐŸßáü
ÕŸäÞü–ÖäÚŸÁÈüü–ÖäÚüJyËØÏÀÎ™ÁÚmÈ	Èü|ÍÀZIšÉÞY
Èü<ÏÍYÉË™ÊÖÏËÀ3ÀoÀ7ÀžØüZÒŒÐÕhÀ–çÀ-ÀZ‰ßäääääääääääääääÏü()ÇÙÊÿääääääääääääääääÕül âÀØŽÄËÀlÿäü(ÀcŒäÚõühÏÅïÌ9JÀhüZZ÷ò‹ÁÈhÀÇÀ-ÀZßäÀßäääääääääääääÀ¿äÀÏäÚüJØÏËØÀÆÀÛÀlôÍÀmÀ³ÑÀñÀžØü—Ä‹É¥ääääääääääääääääääääáüÏÁäÕüÏÐäÏü–ÖäÚ˜ääüäääääääääääääääääääÕäääääääääääääääääääãü?äÀßäääääääääääääääÀ¿äÀÏäÚ˜ääüµâäääääääääääääääÕü¤ÖÈßäääääääääääääääÏü¤ÅÇÁÀæÀ6Ïü¥ÜÂÀÐÁåÏü§ÀµÀQü¤ÉãÉÎü¤ÐäÈÀ’åˆÊÍÏÁÀ°rÍiü¦ÀƒÇ‰ÃÅLåiü¤ËÀÑ‰ÂÆÀŒÀ6ÀÞØæÀIÕxÀØü¥ÁÁÕÀFÎÇÀVÁÀ-ÀZæÀJÀÐµÎü¤Ì
ŠÈLåÂyÊ5ü¤ÖãÈŽÉÉ	Ëü§ÉÀ£Ïü?äÀßäääääääääääääääÀ¿äÀÏäÚ˜ääÂIÊÄÃ3ü¸ÀÀV-ÀZÀXÀ.ÀÐÖÀµÎüÿäääääääääääääääääääääáÿääääääääääääääääääääääÏ[ÀgÀÀ¶×ØÍÀÕßÙÏü	Èü	Àhü‚ðüüüüüüµßäääääääääääääääÏüµâäääääääääääääääÕüüjÏÌÖÀößÏü{IÚ,À9ÏüÏñiÙÚ×ì1À¶ØÎüÀ¤µÀhÀ-ìÀZüÈÉÈX*çqüIÈÀ1À°eüÈ<ìüÂå$ÊÎüÀÀ–µÀhÀ-"ÀÀZü?ÀÏËËÀ6ÙÚ×ÍÊÂÊØÎü‹ßÀÈ¨âäääääääääääääääÕü‹ßÀÔ¨ßäääääääääääääääÏüŒÌÍüüüääääääääääääääääääÕÛäÞü?ääääääääääääääääääÏÖäÚ¡ÐÈËÏüºÀÇyüºôÀ­À’ÀÏÀ6Øü»ÉÀRÀÀÀZü»Â"ÀüJáYr
À†ÏÉÅÀÎÎ¬ÀlüJÀœˆÊÀlÉP8§õüÀãÀÁÀ›×ÐÀÀ±ÈÊÌDÉË¨ôÀ¢ÁhüÀÕÀ£ÀFÀ­ÀÀV4÷Åð§ÀÀCÀKÀÈÀZübÃÀ*È1()Æ¢ÐêÀ†ÀÏÀ3Øü|’éüðŒíülÎ3zÅ(£ËüÀÕå-ÀÀVÄxÀ4-üaÀãÀÌÀÙÀžÀgÀŒÂÁãÀØ÷ÛÀlðþü‰ÌÄŒãü‰ÀÀ”Pü‰ÖÌKsüµßäääääääääääääääÏü?ääääääääääääääääääÏÖäÚœâäääääääääääääääÕüääääääääääääääääääÕÛäÞüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ¡YüÄ¡üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüâÏŸÞÿ¡É3¡þñ²TheµAddµModuleµdialogµboxµshownµinµFigure 4³15µcontainsµthe¡þ9followingµelements:¡þÍFileµName¡XAnµeditableµtextµfieldµthatµshowsµtheµnameµofµtheµfileµthat¡X_containsµtheµmemoryµmodule.¡þÍFileµlist¡XAµscrollableµlistµboxµofµallµmemoryµmodulesµofµtheµspecifiedµtype¡X^inµtheµcurrentµdirectory.¡þÌListµFilesµofµType¡X	Aµdrop³downµmenuµofµavailableµfileµtypesµtoµlistµinµtheµfileµlist.¡þ	ƒDirectories¡X	ÌAµscrollableµlistµboxµthatµdisplaysµallµancestorµandµchild¡X
directoriesµofµtheµcurrentµdirectory.µItµletsµyouµviewµandµmove¡X
]throughµtheµhierarchy.¡þ
ÌOKµbutton¡XAµbuttonµtoµupdateµtheµspecifiedµfile.’ëD“I501ileaf_page_string1:4-21¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³21¡þÉ²Cancel´µbutton¡XAµbuttonµtoµcloseµtheµdialogµboxµwithoutµupdatingµwithµthe¡XZmemoryµmodule.¡þÁExpandµLibNameµbutton¡X
Aµbuttonµtoµdisplayµtheµabsoluteµpathµofµtheµlibraryµandµchanges¡XRtheµbuttonµlabelµUnExpandµLibName.µExpansionµand¡X›unexpansionµstayµonµthroughµvariousµinvocationsµofµtheµAdd¡XäModuleµdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡þJRedirectµtoµLogµbutton¡X“Aµbuttonµtoµbringµupµaµfileµselectionµdialogµ(Figure 4³7).µYouµcan¡XÜredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þBOptionsµbutton¡X‹AµbuttonµtoµbringµupµanµOptionsµdialogµbox.µItµletsµyouµcheckµand¡XÓmodifyµtheµoptionsµassociatedµwithµanµaddmoduleµcommand.¡XPressingµtheµOptionsµbuttonµletsµyouµcontrolµtheµfollowing:¡Xƒ³¡”ƒWarnings:µtrueµ(default)µorµfalse¡Xö³¡”öOverwrite:µtrueµ(default)µorµfalse¡Xj³¡”jPermanent:µtrueµ(default)µorµfalse¡þÝLibraries¡X&AµscrollableµlistµboxµdisplayingµallµlibraryµnamesµloadedµinµLibrary¡XoCompilerµthatµyouµcanµupdateµwithµtheµmemoryµmodule.¡þ	5²Exit¡þ	Ô²ExitµletsµyouµleaveµtheµLibraryµCompilerµprogram.µInµaµdialogµbox,¡þ
LibraryµCompilerµpromptsµyouµtoµconfirmµtheµexit.’õíD“I501ileaf_page_string1:4-22¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡.4³22¡þÏ²Analyze¡þn²The´µAnalyzeµmenuµ(Figure 4³16)µcontainsµcommandsµforµanalyzing¡þ¶libraries.µWhenµyouµclickµonµaµcommandµinµtheµmenu,µLibrary¡þÿCompilerµprogramµexecutesµitµandµechoesµtheµcommandµinµthe¡þHmessageµarea.µTheµAnalyzeµmenuµhasµtwoµitems:µCompareµand¡þReport.µEachµcommandµbringsµupµaµdialogµboxµforµcomparing¡þÙlibrariesµorµgeneratingµaµvarietyµofµreportsµonµlibraries.¡,‹²&Figure 4³16³AnalyzeµPull³DownµMenu¡,â²¥	öäÒÔ/¿©]ª^«)	£)éƒÿ‘@£)éƒÿ‘@£)éƒÿ@‘@¡Ôâ’õí/D“I501ileaf_page_string1:4-23¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³23¡þÏ²Compare¡þi²Compare´µletsµyouµselectµaµtechnologyµlibraryµandµaµsymbolµlibrary¡þ²fromµaµCompareµdialogµbox.µYouµcanµselectµaµtechnologyµlibraryµin¡þûmemoryµandµaµsymbolµlibraryµinµmemory.µ¡,§²&Figure 4³17³CompareµDialogµBox¡,ý²¥	öäÒÓÐ.Ü”×§þ¨ÿºûÈÅ‘ü1’	üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞü“)úðÿú÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿüüü­ÎÉü¤ÚÚüÔ¢ÁÀhhÎ¦ÑüÀ¸¢ÂÀ™ÀáÀ³ÀÀ‡ÀÀžÀcÏ×Û£Ëü¤ÂÀÐÀnÀƒÀKÇÀ-åÀ-À,ü¦íÂËÉÈRü¨ÐÂËJÈü¨ÀÈü£Âç,ü£ÁÀzÀÐIÀKåÀ/hùÀÐÀ-Ìü¤ÀñÀáÀ™ÀƒÀ‡Àl×ÁÚÀcÀ³×Íü°À-ü§Ëˆ×üüü”1üÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÏüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÕüüüüüüüüü€ääääääääääääääÕüü€ääääääääääääääÈüüüüü†	ÀáÀŒü†ÀÐôüÕqI[À6RÛRaÌÀlZùððüÕˆÍRÀ.ÈuZŸëü×ËÀØÚØÀmÀŒiÀÍÀ¼ÀÞÙÚŒÀ1À®ÕÀÇÈaÀ›ÀyÀ¼ÀñÕüÀ­ÀÀ5ÀhÀZÀ°
À¢ÀZÆÀµÀh‹À-ÈÀÀÑÀ«ÇIíÀ´ïÀjÀÐëüMÅÆÀT	ÁÕÌX‹ÀÀ*ÈÁÉÏÍ°ðüT‰ÂÓÆÀ1À°‹ÃÈÔÇÀcÎ›ùðôüÈ¨X<ì‹À2À°xæ›ÂÀÐ÷üÀƒ,
åŽÁÇ›ÁÀáÀ†üÀ­	ÀhÀZÀ°ÇÉÀÁåÀ]µÀh‹À.ç	À«ÇÐÀƒÇÀºÁÀjÀÐüKÖ×ÀfÀÌÀóØÎÅÖÀöÀÌÀ;ÀÆÙÚ‹ÛÂÀ3À6ÀÇÀ˜ÛÀíÀ˜ÀwÀŒÀñÕüŠÏÇ“ÄüŠÀ´å“ôüŠÙÏ“Ìüüü€ääääääääääääääÈüü€ääääääääääääääÕüüüüüüÿäääääääääääääääääääääá?ääääääääääääääääääääääüäääääääääääääääääääÕ
ÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¨ü–ÖäÚÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ«äáüT˜ÅËÄŽÛääääääääääääääÕüÅ“ÄŽÖääääääääääääääÏüÀ6ÍóÎ•ÀÏÀñÀãÏÙÏÎŒÄüÀÀXÁÀhÈÄÀ¡ÀjÀÕåÀµÎÀÐŒÄübÄÄrô-ÀaÈÀ±ÎÀ,ÆÈŒÄüDò-ãÀfÏÀØŽÄü”ï-ÁÎÀ‘ÆñŽÄü$’Àc-ÎÉÀFÀ†ÀÐÆÈŒÄ“ÐÈJüÇÀXÁÀh–ÀÀ¡ÀvÀÕåÀµÎÀÐŒÄ“ÀÇüÀóÀ6ó–ÀÀÌÀíÀãÀÆÙÀÛÎŒÄ“ôÀÞÀlÙÚü—Ò-“Ä”À-ÀÀµÀhüþ—ÀÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀX”ÍÅËüþ—÷ÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¨”Òrü–ÖäÚ˜Éäá’À,xük™ÁÈÖÛÁÏqŒÉäá‘ôÏYÌü–ÖäÚTÀ‡ÂÏ¢ÀÀnÈÀµÀhüÉÀÇÀ—ÊaðÃÀžÀlæ ÐÀÀæÙÀóüÀ…À«ÀVÈ˜ÂÀŽÃÀ­Àæü
À†ÂÀÅÈ˜ùÀ=*üKÀÀ›™÷üéíÈ˜ôÍü
ÈÀÀ›Í"üÀ…ÀÛÀVÈ˜ÐÀ­-XüÀ3À·À—ÁÈÛÀžÀ3×ÀfÍüüžÖÕ ÖääääääääääääääÏüžÖÕ ÛääääääääääääääÕüü
È™ÉÏÛÀŸÁÏqü–ÖäÚå×ÐÂÏüZ×À]ÀÇÈÖäÚÀ¨ÃÀžÀlæüÀ-À;À«Ç™ÑÃÀ­ÀæüœùÀ=*ü[üœÍüÉ›÷i"›ÛääääääääääääääÕüÀ-Ç–ùå--X›ÖääääääääääääääÏüÀžÀfÀgÈ–ÉÏË×À3×ÀfÍüüžÖÕüžÖÕüüØ›É
À°œàÈIÁÈÁÈüe›É À	Èü×ÀlÀÀcÀÇÀ›”ÉÀgÀ›×ÀoØÐÀŒÊØÀaÀ¶ÀñÀäéÀOIÀÆÏüRÀ­ÀÕÀ«í”ùÀ‹ÀFÀ­ÅÀZÀÀVÀÀZÀ°øÀjÀÔéÀVÈùÀ«ü)AËÉ•ÈÃYÊÂÀÂÄœÀ)ÊiüÀ‡Ã•ÉYÅÈÌÌ!ÎüÀë–ÉÏÖÇù×xüw–ÈÏÉQÀmÂÄÊÅaÍÇÆ
ü-À«å”ùÀ‹ÇÀ-ZÀÀVÀÀZÀ°ÁÀjÀÒÀÁÀvÈÀ}À«üÀžÀfÀÛÀ3ÀÇÙ”ÉÐÀ™ÀžÀcØÀgÀÀ¶œÀcØÀmÀ°ÀñÀáÈÀÏÁÀûÀÆüÊ®Ëüùå­ÀÇüÉÏ­ÐÈüüUšÁÈRÏüübÀÏÀ6ÍÀyÀ°•ÊÀ3ÀÍÀŒ×Àl×ÍÌüÀÀXÀ´Ç–ùÀ£ÀVÀ-ÅÀ-ÀXÀ4üÇÄÄi•ùëÂÂYÀÄÆšÖääääääääääääääÏüS;–ÁÈ*À6œÛääääääääääääääÕü
À‡È˜ÂÀ¡Õ	üÈÄ™ÎÂ	À´ÄÆüÀÈÀXÀ´–ÁÀEåÀÀ--ÀXÀ4üÖÀ3À6ÀyÈ–ÀƒÀÌÀÍÀžÀaÀžÀ6ÀØüüüüü‹ÁÈ³ÛääääääääääääääÕü€ääääääääääääääÏü×ÀfÀgÀ›ñÀåÀÜÀØ×üRÀ­íÁÀjÀÓÀºÀ4À-üPåÉ[2üMÃÁÀ±ÏZüMÏJÏü/ÇÏÁå2É‰ÖäÚ˜ÉäáŽáÀƒáYËÀ6üRÀ­ÇÁÀjÀè4À-µØLÀœküJ×ÀÀ‡À˜ñÀÞÀfÀÀž‰ÖäÚ˜ÉäáŽÁÀ›ÀcÀÍÀŒ	ÀãÀÁÈÍÏü„ÕÀ£ÀVÀÕÀ£ÇÁåüþºÀ=ÀhÀ†ÂÂb	übþ{¶ØæÉÈ{ü—Ò«æùÈðüZ	ÈÍ»ÁÀhÈjÎ	ün»ØÕÀÐÀÀÕåÉÀÁåüÙÀòÀOÀ5ÀÜÀ»À×ÀmÕŠÀcªÀýÀ˜ÀcÀ¼ÀÍÈÀaÀãÀÌÀÏÀöÏüÀµÀjÀVÀƒÀºÀwÀVÀ­õÀÐŠïüXùÈbÉË‹òü1À°À)‹ô«Éü<ìÃÈÄü
ÀåÀ:LüÀµÀiÀvÈÀmÂÀÐüRÙÚÀÏÀ6ÀfÀÌÀÎÀÞÀaÕ‰ÖäÚ˜ÉäáüäääääääääääääääääääÕäääääääääääääääääääÞü?äÀßäääääääääääääääÀ¿äÀÏäÚäÀ÷äääääääääääääääÀïäÀóäáŒÖääääääääääääääÏü€ääääääääääääääÕüüüüüüüüü€ääääääääääääääÕü€ääääääääääääääÏüüü?äÀßäääääääääääääääÀ¿äÀÏäÚäÀ÷äääääääääääääääÀïäÀóäáüüÿäääääääääääääääääääääá?ääääääääääääääääääääääü‚~|ÝZÀ6ü‚ºküƒÍÀ±ÀæÀÆÆÀ»ÈÍÏü„jÀÑÀ«¶wÇÁåü‚À´ÀCÁÁlÀª
ü‚ìÁÏüƒHÂÏÈÀTüƒ´Ç	ü‚jÀèÀºÆIÀÁåü‚~ÀÌÀ1ÀÞÀfÏÝÄÀÌÀÏÀöÏü‰1ü‰Püƒ	Ètüüüüüü€ääääääääääääääÏü€ääääääääääääääÕüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ“IüÄ“	üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÞüâÏ‘Iãÿ¡Èý¡þg²TheµCompareµdialogµboxµshownµinµFigure 4³17µcontainsµthe¡þ¯followingµelements:¡þ1TechnologyµLibraries¡XzAµscrollableµlistµboxµthatµdisplaysµallµtechnologyµlibraryµfilesµin¡XÂmemory.¡þ	'SymbolµLibraries¡X	pAµscrollableµlistµboxµthatµdisplaysµallµsymbolµlibrariesµinµmemory.¡þ	ÕOKµbutton¡X
Aµbuttonµtoµperformµtheµcomparison.¡þ
ƒCancelµbutton¡X
ÌAµbuttonµtoµcloseµtheµdialogµboxµwithoutµperformingµthe¡Xcomparison.’/ýD“I501ileaf_page_string1:4-24¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³24¡þÉ²Redirect´µtoµLogµbutton¡XAµbuttonµtoµbringµupµaµfileµselectionµdialogµ(Figure 4³7).µYouµcan¡XZredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þÁExpandµTechLibµbutton¡X
Aµbuttonµtoµdisplayµtheµabsoluteµpathµofµtheµlibraryµandµchanges¡XRtheµbuttonµlabelµUnExpandµTechLib.µµExpansionµand¡X›unexpansionµstayµonµthroughµvariousµinvocationsµofµthe¡XäCompareµdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡þJExpandµSymLibµbutton¡X“Aµbuttonµtoµdisplayµtheµabsoluteµpathµofµtheµlibraryµandµchanges¡XÜtheµbuttonµlabelµUnExpandµSymLib.µµExpansionµand¡X$unexpansionµstayµonµthroughµvariousµinvocationsµofµthe¡XmCompareµdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡þ3²Report¡þÒ²ReportµletsµyouµselectµaµlibraryµresidingµinµmemoryµfromµaµLibrary¡þReportµdialogµbox.µYouµcanµselectµspecificµcellsµofµtheµselected¡þdlibraryµonµwhichµtoµreport.’ýáD“I501ileaf_page_string1:4-25¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³25¡,É²&Figure 4³18³Library´µReportµDialogµBox¡,?²¥	öäÒÓÐ,q|þŽÿ	yûÈÅ®Åü1¯ÃüääääääääääääääääääääääääääääääääääääääääääääääÕü°Çúð0;ú÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüüüÉÌ‹ÁÈËüÉÈ#ÐÏüÔÉMÇ+ÁÀ¡È’ÓüÀ¸ÉÉÀØÀmÀŒÀ†ÀÃÀÆÀæQÀxÝÍü‘ÊÈÀZKïÀ¥åÀ&ÈÀ´À°ü‘ÃÐÎÒÃÉÈÁ	Ïbü’ÃÓöëÂÀƒ
ü“ÀX!IÏ*ü•åÁÇÇP°üÚÊÈÀ])+ÀÁÀ¥åÀÁåÀÇÀ´ÎüÉÀóÛÌÀ;ÎåËÀçêÀÃÀÆÑÐÀÁÀŽÀÌÙÏü¡À´ü•ÏRˆÙüüü±ÈüÉääääääääääääääääääääääääääääääääääääääääääääääääüÉääääääääääääääääääääääääääääääääääääääääääääääääÈüüüüüüüüüüü Áääääääääääääääãüü¡âäääääääääääääÞüüüü§×ÌÏü§À-ÁÇü§ÀRéÈüZÀ6R¡ùükRükÀÍÀ¼ÀÞÙÚŸùüÀ¢ÀZÆÀµÀhŸÂÈüÁÕÌXžÀRêÇüÓÆÀ1À°žÀ- üX<ìž×ÌÎüåüJÀÁåÀ]µÀhüÀöÀÌÀ;ÀÆÙÚüüüüü¡âäääääääääääääÞüü Áääääääääääääääãüüüü ÁääääääääääääääãüÿäääääääääääääääääääääääääääääÚÿäääääääääääääáüäääääääääääääääääääääääääääÈüßäÏüSüüÀ6ÍóÎŸÙküÀÀXÁÀhÈ—Æ´üaÄÄr—ëÀMÀæÀÇÀüD—çÀÑÀ«ÀVÈü›ÁÃOÁyü#™ÁÀŒÏQüÇÀXÁÀh ÂÏÈüÀóÀ6óŸÁÀLÁÈüžÔ¶ÀèÀÀVÈüþ¡ÀyÀÞÀgÀÍüþüßäÏüjüßäÏüÉÀÇÀüÀ…À«ÀVÈü	À†ÂÀÅÈüJÀÀ›üéíÈ›ääääääääääääääáü	ÈÀÀ›ÁääääääääääääääãüÀ…ÀÛÀVÈüÀ3À·Àüüü Áääääääääääääääãü¡ääääääääääääääáü	ÈüßäÏüY×À]ÀÇÈ—ßäÏüÀ-À;À«Çü£ÉÏÊÎüZ¢ùåqü¢÷ÀVÀÉÀgÀ›×üÉ£ÁÀ©ÀÀFÀ­üÀ-Ç ÁÀüÀžÀfÀgÈ¤À6üªøü¥÷ÀQA4ü¥ùÀ¡À¥À‹ÇÀ-ü¥ÉÏÀÃÀgÀ™ÀžüØüdü×ÀlÀÀcÀÇÀ›žÊüQÀ­ÀÕÀ«íü)AËÉüÀ‡ÃüÀëüvü-À«å™ääääääääääääääáüÀžÀfÀÛÀ3ÀÇÙ˜ÁääääääääääääääãüüüüüT›Áääääääääääääääãü¡ääääääääääääääáüaÀÏÀ6ÍÀyÀ°üÀÀXÀ´ÇüÇÄÄiüR;ü
À‡ÈžÐÕØjÌaü
ÈÄÁÀÐaüÀÈÀXÀ´ÉÀÆÀÀo×ìñÚ<ÀlüÖÀ3À6ÀyÈœùÀ«–À­ìÀ%ÀhZÀ°ü¢ÁÀÐÁqÉ-ü¢ÁêÈ†ü£ÀQÕÈü¤Àa	ÀƒÃÂ+üŠÁÈ—ùÀ«À­À,ÀÀhÐÀÚÀ°ü¢ÊÀ3ÀÆÀÛÖ×ÌËÚÛÀ¼Îü×ÀfÀgÀ›ñÀåÀÜÀØ×¡ÏüQÀ­íÁÀjÀÓÀºÀ4À-¡À´üPåÉ[2¢ÙüLÃÁÀ±ÏZüLÏJÏü/ÇÏÁå2É‘ßäÏüQÀ­ÇÁÀjÀè4À-üI×ÀÀ‡À˜ñÀÞÀfÀÀž‘ßäÏü¡ääääääääääääääáüþ™Áääääääääääääääãüaþ{üžÔüY	ÈÍümüÙÀòÀOÀ5ÀÜÀ»À×ÀmÕ‘ÁÀŒ	ääääääääääääääãüÀµÀjÀVÀƒÀºÀwÀVÀ­õÀÐ‘ÁÃÿäääääääääääääáüXùÈbÉË“çü1À°À)“ëü<ìÃÈ•Æü	ÀåÀ:LüÀµÀiÀvÈÀmÂÀÐ™ÐÈÀlËÍÊüQÙÚÀÏÀ6ÀfÀÌÀÎÀÞÀaÕ‘ßäÏÇjüäääääääääääääääääääääääääääÈÀÞ3ÀÉü?äÀßääääääääääääääääääääääãääßäÏ-À©ü©ÁÎü¦ËRÏü¦Ö
Æü¥ôÀÃRÈÈü¥ÀÀmIÀÅÀ¥Èü¥ÐÀžÀlÖÀóÀÃüüüüüüüü?äÀßääääääääääääääääääääääãääßäÏü¡ääääääääääääääáüÿäääääääääääääääääääääääääääääÚÁääääääääääääääãüüüü Áääääääääääääääãü¡ääääääääääääääáüüüüü¢ßtÀaÀ°À1Èü¢ÖÈÄü£ÀfÀØÀóÀc	À†À]ÀÇÈü¤À5ÀhÀÕÈËÀ-À;À«Çü¢ÖÀZóÈÈÈ!iü¢ÖñàTÒIü£ñÁÎ,IÏü£ÀZÆB!Â{ü¢Ö5ÀtùÈ×À.ÈÀÇü¢ßÀfÌÀïÀ3ÎâÀ¶À1ÀÀæÀgÈüüü¤Ïüüüüüü¡ääääääääääääääáü ÁääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ°ËüÄ°ÃüüüüüüÄÆüüääääääääääääääääääääääääääääääääääääääääääääääÕüâÏ®ÖÞÿ¡¤?¡þ”²TheµLibraryµReportµdialogµboxµshownµinµFigure 4³18µcontainsµthe¡þÝfollowingµelements:¡þyLibraries¡XÁAµscrollableµlistµboxµthatµdisplaysµallµtechnologyµandµsymbol¡X
libraryµfilesµinµmemory.¡þ|OKµbutton¡XÅAµbuttonµtoµperformµtheµreport.¡þ	7Cancelµbutton¡X	€Aµbuttonµtoµcloseµtheµdialogµboxµwithoutµperformingµtheµreport.¡þ	òOptionsµbutton¡X
:AµbuttonµtoµbringµupµanµOptionsµdialogµbox.µItµletsµyouµcheckµand¡X
ƒmodifyµtheµvariablesµassociatedµwithµaµreportµcommand.¡X
ÌPressingµtheµOptionsµbuttonµbringsµupµtheµOptionsµdialogµboxµin¡XFigure 4³19µthatµletsµyouµcontrolµtheµfollowingµvariable.’áºD“I501ileaf_page_string1:4-26¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³26¡XÉ²³¡”ÉTiming:´µtrueµorµfalseµ(default)¡X@³¡”@TimingµArcs:µtrueµorµfalseµ(default)¡X·³¡”·VHDLµNames:µtrueµorµfalseµ(default)¡X.³¡”.Table:µtrueµorµfalseµ(default)¡X¥³¡”¥FullµTable:µtrueµorµfalseµ(default)¡,M²&Figure 4³19³OptionsµDialogµBoxµforµLibraryµReport¡,«²¥	öäÒÓÐ0ˆp3c4d
;ûÈÅƒ9ü1„)üäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈü„	üÖÀÇääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüÐÀçäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääßüüü Ï\qüÙ)>üÔœÀ´1ÏË ÕüÀ¸›ÁÀJÀ6ÀLÀÇÀ†ÀÃÕÂÀŒÙÉÀÃÕœÏüžÀÀLÀïÀ¥Õ´ùÀ¥ÈüžÄ
Á{ü¢ÃÏpü¢ÉÆ°BüœÁÀJEÂÈÈüÀ´ÀÀ,ÀÇÐåÀºùÀ£üÙÑÒÀÇÀ†ÀgÏÜËÀvÀcÀÆü¨ùåüžÍ‰ÉÏüüü…üÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüüäääääääääääääääääääääääääääääääääääääÈâäÕˆÐääääääääääääääãü?äääääääääääääääääääääääääääääääääääää?äÏü³ÁääääääääääääääÞüüüü	Þk³ØÀ1Èüt¦ÕÀZÂÈüóÀcÀÍÀÈ³À¥ùü
ÀhÀÕÀ¢ì´÷ütAÁÈ¡ÉÌürÎ¢ÂÄ‘÷üÙ¤ÁÅ‘ùücÈ¢åÀ¥ÂÈü
ÀhÀÕåÀ,¢ÇÀZÁÇü	ÀŒÚÀcÀÌÌ¡ÉÞØÍÏü¨ÉÞüüKüü?äääääääääääääääääääääääääääääääääääää?äÏüäääääääääääääääääääääääääääääääääääääÈâäÕüü³ÁääääääääääääääÞüü³Ðääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü³Ðääääääääääääääãü³Éääääääääääääääáüüüüü¶ÌÏIÕÁÏÌüºÀÐÂÏü·Ö×)ÀäÀžÀfõÙü·ÀÀ­ÀÔÀ­À´ü·ùÈk,ü·ÀËzÒØü·ÃÀðÀ,$ü¶ÀÀZÉ(Í!ÁÀÐüŠÌÎÁÈÎÏ¦ÂÀÀ­ÒÀÐÀ.ÀØÀÀ´üŒÁÈ¨ÖÀ×ÉÀáÀãÀÀ¶ÀÆÙüŠôÀ¯À7ÀžËÖ×ü‹ÀçÀ-ÀÀÀ­ü‹ÌÊÍÅüŠÄÀNÄÒQÀ6üŠÉÀ,À‰üŠÃÈ*ÁÀ´ü‹ÀÇÀ.ÀšÀÀ­üŠÉÑÀñÀÀìÀÏ×ü³Éääääääääääääääáü³ÐääääääääääääääãüüüüüüüüüüÿäääääääääääääääääääääääääääáüäääääääääääääääääääääääääääÞÈÀØßÏÎÏü¢ÐÈ9ÏüÞqÀfËÖüÞq›â-ÀÀÀääääääääääääääääääääääääãüÀîÀmÀÈ™ßÐkÅääääääääääääääääääääääääáüÀÝÉÀV›ÐQüÂŸÀ,Èü£Ä+ÁÈü£ÀX.ÀšÀÈü›ÌÀ6ÀØÊÀÀìÀÏüüJÀÀ3ÀlÀÌüfüÈüüüÞqrüÞqüÀîÀmÀÈÀcÀo×üÀÝÉÀVÁÄÀ–À­üÂaÀ‹üˆÎÈÀ6üÀô	ü
À´˜ÐÏüÀ­˜ÖÕüJÀÀ3ÀlÀÌÉÖÖ×˜ÌÍÛÕüfœÍÌÒÕüÈ›ÎËÀÌÚüŸÃÁÀhü¦ÉübÀlÀgÀÃcžÃqüå) ÙüåP<À»À×—ÎË*ÌügÀZÀwÀVÀ­—ÍÌ±ÀhüKÈs—ÌÍÉÌÀlÚü"ÀCÈZÓQÀ6—ÖÕüJXÀ‰—ÐÏüÈP
À´üåÚ]À­üJËÀgÀÃÚÀcÀ;ÀÌÀÏ×üüüüüÕÍÎüÕüÊÐÈüÀÀÇücÄžÐÏüIÖÕüIÏœÌÍÖÏÎü$yœÀ3À˜ÉÏüÀMÀÇœÀdÀLÐÀüJÑÀöÀgÈœÄÆ-ÀÀVÈü¥ÉÀ°ÂÏü¥ÉÀœÀÀ†üUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUë$Æ,ÂÀGÈüjÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¨dÀLÁÈüOÏÀlÛÕÍÎ•Ä3À˜.À‹ÀVÈüCÏÕ—ÄdÍËÀÀçÀü:À3ÊÐÈ”ÄÕü:ÀÀÇ”ÄÏüCÈbÄ–ÄüCÈI•Äü:IÏ”Äü:Ã#y”Äü:À,ÀMÀÇ”ÄüLÀÀlÉÑÀöÀgÈ”Äü:›ÄüUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀXü*ÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¨üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¡ßääääääääääääääääääääääääääääääääáüäääääääääääääääääääääääääääÞääääääääääääääääääääääääääääääääãüÿäääääääääääääääääääääääääääáüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÏ…iüÄ…)üüüüüüÄÆüüäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüâÏƒ?Õÿ¡¨«¡þ	@²RedirectµtoµLogµbutton¡X	‰Aµbuttonµtoµbringµupµaµfileµselectionµdialogµ(Figure 4³7).µYouµcan¡X	Ñredirectµerrorµmessagesµandµwarningsµtoµaµselectedµfile.¡þ
:CellµListµbutton¡X
ƒAµbuttonµtoµchangeµtheµreportµdialogµboxµtoµincludeµtheµcellµlist.¡X
ÌByµdefaultµitµdisplaysµallµcells.µIfµyouµhighlightµaµlibrary,µtheµCell¡XListµdisplaysµtheµlistµassociatedµwithµtheµlibraryµ(Figure 4³20).’º.D“I501ileaf_page_string1:4-27¥	öäÃËÁâÊË¡Ä,’,|¡Ä,|	c|¡Ä	c|	c’¡Ä	c’,’ÆÃÁÊËÃ¡Äþ|Ê|ÆÃ¥	öä¥	öä¡Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³27¡þÉ²Expand´µLibNameµbutton¡XAµbuttonµtoµdisplayµtheµabsoluteµpathµofµtheµlibraryµandµchange¡XZtheµbuttonµlabelµtoµUnExpandµLibµName.µExpansionµand¡X£unexpansionµstayµonµthroughµvariousµinvocationsµofµtheµReport¡Xìdialogµboxµuntilµyouµclickµonµtheµbuttonµagain.¡,²&Figure 4³20³LibraryµReportµDialogµwithµCellµLists¡,Ö²¥	öäÒÓÐ.´”kþlÿ5ûÈÅŠ9ü1‹)üüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüÖÏ‰	ßüÐÀçäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãßüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääüüžÊÍ‹ÉaüÊ,ÖÈüÔÊUÈ3ÉÀC¡ÕüÀ˜ÊÊÀ6ÙÀÛÌÀÀ‡ÀÀÌ£×ðÞÈüŸÀ´–ÀƒÀKÇÀL-ÁÀiÎüŸÄÑÏÓÄÐIÈjü ÄÔòåùÊü¡À°)È,2ü¢ÁÇÂÈÈ 
ÎüÁÕÀº1WÀƒÀKÇÀ,ÉÇÀ.êÀhÏüÐÀæÜÍÀvÀÁÇÀÀÏÉÀ‡ÀŒÒÖÀƒÀÀ˜ÀñÈü®ÁÀhü¢ÁÈZˆÚüüüŒüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääáüÉäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääãüüüüüüüüüüü Áääääääääääääääãüü¡âäääääääääääääÞüüüü§×ÌÏü§À-ÁÇü§ÀRéÈüZÀ6R¡ùükRükÀÍÀ¼ÀÞÙÚŸùüÀ¢ÀZÆÀµÀhŸÂÈˆÖØüÁÕÌXžÀRêÇˆÀÈüÓÆÀ1À°žÀ- ˆÀ)À¼ÁÕüX<ìž×ÌÎ‰ÀZÂÀÐüå¬À°üJÀÁåÀ]µÀhªÌÉÎüÀöÀÌÀ;ÀÆÙÚª×ü²À)À†ÉÇü²ÀÀÚÂÀÐü²ÖØÀÙÕüü¡âäääääääääääääÞüü Áääääääääääääääãüüüü ÁääääääääääääääãüÿäääääääääääääääääääääääääääääÚÿäääääääääääääáüäääääääääääääääääääääääääääÈüßäÏüSü²ääääääääääääääääääääääääääÚüÀ6ÍóÎŸÙkäääääääääääääääääääääääÈüÀÀXÁÀhÈ—Æ´£ßäÏüaÄÄr—ëÀMÀæÀÇÀˆÉËÀgÈüD—çÀÑÀ«ÀVÈéÀÇü›ÁÃOÁyˆÉYü#™ÁÀŒÏQˆÄÀCÁÇ•ÆüÇÀXÁÀh ÂÏÈ‰ÂÈ•ëüÀóÀ6óŸÁÀLÁÈOÁÀ…–çüžÔ¶ÀèÀÀVÈå÷•ÁÃüþ¡ÀyÀÞÀgÀÍ‰È•ÁÀŒüUÀUÀUÀ«ÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀU—ÉÏüjÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀ¿äÏ’ÌÀlÀoÏü9ÍšÈ­Ôü9›À¿äÏüOÉÀÇÀ˜ÈüVÀ…À«ÀVÈ—È¬ßäÏüAÀ†ÂÀÅÈ—È”ÉËÀgÀŒü9ÉÀÀ›˜È”ÃéÀÇ”ßäÏü9ùéíÈ—ÈÿäääääääääääääáJYüAÈÀÀ˜È
ääääääääääääääã"ÀCÁÇüVÀ…ÀÛÀVÈ—È–ÂÈüOÀ3À·À˜È”ÉÁÀ…ü9›È”Àå÷üUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÀUÈ–Èü*ÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÀªÈ
ääääääääääääääãLÏü¡ääääääääääääääábÀlÀoÀÌü	ÈüßäÏüY×À]ÀÇÈ—ßäÏüÀ-À;À«Çü£ÉÏÊÎ‰ÉÀÃÀñÕüZ¢ùåq‰ùåÀêÀÐ”ßäÏü¢÷ÀVÀÉÀgÀ›×
ëÉ•ßäÏüÉ£ÁÀ©ÀÀFÀ­ŠëüÀ-Ç ÁÀ‰ÀèåüÀžÀfÀgÈ¤À6‰ÀÁÇüªø‰À*Èü¥÷ÀQA4
ëü¥ùÀ¡À¥À‹ÇÀ-åðü¥ÉÏÀÃÀgÀ™ÀžOÀÃÀÚüØüdü×ÀlÀÀcÀÇÀ›žÊüQÀ­ÀÕÀ«íü)AËÉªÉÀÃÀñÀãüÀ‡ÃªùåÀêÀÐüÀë«÷ëÉüv®ëü-À«å™ääääääääääääääáèåüÀžÀfÀÛÀ3ÀÇÙ˜ÁääääääääääääääãÁÇü´À*Èü²÷ëü²ùåðü²ÉÀÃÀÀóüT›Áääääääääääääääãü¡ääääääääääääääáüaÀÏÀ6ÍÀyÀ°üÀÀXÀ´ÇüÇÄÄi«ÀÀ†üR;ü
À‡ÈžÐÕØjÌaÀJü
ÈÄÁÀÐaüÀÈÀXÀ´ÉÀÆÀÀo×ìñÚ<ÀlüÖÀ3À6ÀyÈœùÀ«–À­ìÀ%ÀhZÀ°„ü¢ÁÀÐÁqÉ-mü¢ÁêÈ†Œìü£ÀQÕÈü¤Àa	ÀƒÃÂ+\ÍüŠÁÈ—ùÀ«À­À,ÀÀhÐÀÚÀ°ü¢ÊÀ3ÀÆÀÛÖ×ÌËÚÛÀ¼Îü×ÀfÀgÀ›ñÀåÀÜÀØ×¡ÏüQÀ­íÁÀjÀÓÀºÀ4À-¡À´üPåÉ[2¢ÙÀ†ÏüLÃÁÀ±ÏZüLÏJÏ¦ÁÀJü/ÇÏÁå2É‘ßäÏüQÀ­ÇÁÀjÀè4À-üI×ÀÀ‡À˜ñÀÞÀfÀÀž‘ßäÏ“èü¡ääääääääääääääáküþ™ÁääääääääääääääãH–ßäÏüaþ{üžÔ“ËÍÏ•ßäÏüY	ÈÍümüÙÀòÀOÀ5ÀÜÀ»À×ÀmÕ‘ÁÀŒ	ääääääääääääääãüÀµÀjÀVÀƒÀºÀwÀVÀ­õÀÐ‘ÁÃÿäääääääääääääá›ÔüXùÈbÉË“ç“ÀÀ†áü1À°À)“ë•À:ü<ìÃÈ•Æ“ÁÀJ–ÁÀŒü	ÀåÀ:L€	ÃüÀµÀiÀvÈÀmÂÀÐ˜Àc	ÕÀÉËÁÈ:–çüQÙÚÀÏÀ6ÀfÀÌÀÎÀÞÀaÕ‘ßäÏ,ÀÐZˆèØ–ëüäääääääääääääääääääääääääääÈ<ùÀ7ÈYÀòÇn—Æü?äÀßääääääääääääääääääääääãääßäÏdÀZÇ	ÀjÇHü«ÀXü¤ËJ
À°^ÍÏ•ßäÏü§ÉÏHäääääääääääääääääääääääÈü¤ÃÍÏ	åÆ?äÀßääääääääääääääääääãääßäÏü¥ÀZÂÀÛÇñÀiÎü¤ÀcØÁÀçÀ›ÉáÚÏüüüüüüüü?äÀßääääääääääääääääääääääãääßäÏü¡ääääääääääääääáüÿäääääääääääääääääääääääääääääÚÁääääääääääääääãüü²ßäÀßääääääääääääääääääãääßäÏüü ÁääääääääääääääãÿäääääääääääääääääääääääääÚü¡ääääääääääääääáüüüüü¢ßtÀaÀ°À1Èü¢ÖÈÄü£ÀfÀØÀóÀc	À†À]ÀÇÈü¤À5ÀhÀÕÈËÀ-À;À«Çü¢ÖÀZóÈÈÈ!iü¢ÖñàTÒIü£ñÁÎ,IÏü£ÀZÆB!Â{ü¢Ö5ÀtùÈ×À.ÈÀÇü¢ßÀfÌÀïÀ3ÎâÀ¶À1ÀÀæÀgÈüüü¤Ïüüüüüü¡ääääääääääääääáü ÁääääääääääääääãüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÕŒpüÄŒ)üüüüüüÄÆüääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈüüâÏŠ?Õÿ¡ÈÖ¡þÌ²Options¡þk²TheµOptionsµmenuµ(Figure 4³21)µcontainsµitemsµthatµcorrespondµto¡þ³theµdifferentµcommandsµinµtheµFileµandµAnalyzeµmenus:µRead,¡þüWrite,µUpdate,µandµReport.µEachµofµtheseµitemsµbringsµupµaµdialog¡þ	Eforµsettingµoptions.µTheµdialogµisµtheµsameµwindowµinµeachµcase.µItµis¡þ	setµtoµtheµappropriateµcommandµandµlistsµthatµcommand'sµoptions.’.÷+D“I501ileaf_page_string1:4-28¥	öä¥	öä¡8Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡.4³28¡,É²&Figure 4³21³Options´µPull³DownµMenu¡,+²¥	öäÒÔ,¦©_©`ª)	£)éƒÿ‘@£)éƒÿ‘@£)éƒÿ@‘@¡Ø+¡þ_²OptionsµDialogµBox¡þÚ²Thisµdialogµboxµletsµyouµselectµaµcommandµwhoseµoptionsµyouµwant¡þ"toµset.µFigure 4³12µshowsµaµsampleµofµtheµdialogµbox.µTheµdialog¡þkboxµcontainsµtheµfollowingµelements:¡þöCommandµbox¡X	?Aµscrollableµboxµatµtheµtopµthatµdisplaysµtheµcurrentµcommand¡X	ˆ(Read,µWrite,µUpdate,µandµsoµon)µwhoseµoptionsµareµbeingµset.¡X	ÐYouµcanµswitchµtoµaµdifferentµcommandµatµanyµtime.¡þ
:Variables¡X
ƒAµlistµboxµofµtheµvariablesµassociatedµwithµtheµcurrentµcommand.¡X
ÌSelectingµoneµofµtheseµvariablesµdeterminesµwhatµappearsµinµthe¡XVariableµValueµArea.’÷+D“I501ileaf_page_string1:4-29¥	öä¥	öä¡Á²âUsing´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³29¡þÉ²Variable´µValueµArea¡XAnµareaµdisplayingµtheµcurrentµsettingµofµtheµselectedµoption.µIt¡XZalsoµallowsµyouµtoµchangeµtheµsettingµinµaµcontext³dependent¡X£manner.µTheµnameµofµthisµareaµchangesµtoµdescribeµtheµvalues¡Xìforµtheµvariable.¡þROKµbutton¡X›Aµbuttonµtoµcloseµtheµdialogµbox.¡þUseµDefaultsµbutton¡XJAµbuttonµtoµselectµtheµdefaultµvaluesµautomatically.’©D“I501ileaf_page_string1:4-30¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡.4³30¡þÏ²View¡þn²The´µViewµmenuµletsµyouµtoggleµtheµvisibilityµofµtheµToolbarµandµthe¡þ¶StatusµBar.µSeeµFigure 4³22.¡,h²&Figure 4³22³ViewµPull³DownµMenu¡,¿²¥	öäÒÔ,œ“©_®`¯)	é£)ƒÿ‘@é£)ƒÿ‘@é£)ƒÿ@‘@¡Ä¿’©
êD“I501ileaf_page_string1:4-31¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡Á²Using´µtheµLibraryµCompilerµGraphicalµInterface¡Ô¤ÿ¤4³31¡þÏ²Help¡þn²The´µHelpµmenuµletsµyouµdisplayµtheµversionµofµtheµLibraryµCompiler¡þ¶programµandµtheµSynopsysµOnlineµDocumentµ(SOLD).µYouµcan¡þÿobtainµdescriptionsµofµLibraryµCompilerµfeaturesµandµdisplayµLibrary¡þHCompilerµcommandµmanualµpages.µSeeµFigure 4³23.¡þêWhenµyouµclickµonµSynopsysµOnlineµDocumentµ(SOLDµ),µit¡þ3automaticallyµopensµtheµ²&SOLDµManual²µforµmoreµinformation.¡,å²&Figure 4³23³HelpµPull³DownµMenu¡,<²¥	öäÒÔ.Ž©`°a±)
é£)ƒÿ‘@dé£)ƒÿ‘@‘é£)ƒÿ@‘@																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																																														¡Ä<’
êÐOPS m:m:D€‚Document:5syntxÿ‚Last saved on:Tue, Dec 9, 1997 17:53:11ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%Båååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå®å€å™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’C›D“I501ileaf_page_string1:5-1¥	öä²-â¡°¡Ï°¡ž°¥	öä¡NÁ²Using´µLibraryµCompilerµSyntax¡Ô¤ÿ¾5³1¡,m²².5â²/¥	öä¡Õm²â¡,d²	Using´µLibraryµCompilerµSyntax¡Ø²¥	öäÁÊËÃ¡Ä,¼Ê¼ÆÃ¡	öØ¡þyThe´µLibraryµCompilerµprogramµcompilesµtwoµtypesµofµlibraries:¡þÂtechnologyµlibraries,µandµsymbolµlibraries.µBothµtypesµofµlibrariesµuse¡þaµsingleµsyntacticµformat.µAppendixesµtoµthisµmanualµinclude¡þScompleteµexamplesµofµbothµtypesµofµlibraries.¡þèGroupµstatements,µattributeµstatements,µdefinitionµstatements,µand¡þ1commentsµdescribeµaµlibrary.µToµbuildµaµlibrary,µyouµmustµknow¡þyaboutµtheµfollowingµconceptsµexplainedµinµthisµchapter:¡þõ²S¡Xõ²Libraryµfileµnames¡þ	b²S¡X	b²Library,µcell,µandµpinµnames¡þ	Î²S¡X	Î²Statements¡þ
;²S¡X
;²Comments¡þ
¨²S¡X
¨²Unitsµofµmeasurement¡þ²S¡X²Libraryµexample’›VD“I501ileaf_page_string1:5-2¥	öäÃËÁâÊË¡Ä,Ú,Ä¡Ä,Ä	cÄ¡Ä	cÄ	cÚ¡Ä	cÚ,ÚÆÃÁÊËÃ¡Ä,ÄÊÄÆÃ¥	öä¥	öä¡8Á²Using´µLibraryµCompilerµSyntax¡.5³2¡þÉ²For´µdetailsµaboutµsyntax,µreferµtoµtheµ²&LibraryµCompilerµReference¡þManualµVolumeµ1².¡,²Library´µFileµNames¡þÙ²Although´µfile³namingµconventionsµareµnotµpredefined,µallµlibraryµfile¡þ"namesµmustµconformµtoµUNIXµconventions.µSynopsysµusesµand¡þkrecommendsµtheµfollowingµsuffixesµforµlibraryµfileµnames:¡þ.lib¡„Technologyµlibraryµsourceµfiles¡þ°.slib¡„°Symbolµlibraryµsourceµfiles¡þS.db¡„SCompiledµtechnologyµlibrariesµinµSynopsysµ¡þ›¡„›databaseµformat¡þ>.sdb¡„>CompiledµsymbolµlibrariesµinµSynopsysµ¡þ‡databaseµformat¡þ).vhd¡„)GeneratedµVHDLµsimulationµlibraries’VvD“I501ileaf_page_string1:5-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,U,?¡Ä,?	c?¡Ä	c?	cU¡Ä	cU,UÆÃÁÊËÃ¡Ä,?Ê?ÆÃ¥	öä¥	öä¡NÁ²Using´µLibraryµCompilerµSyntax¡Ô¤ÿ¾5³3¡,Õ²Library,´µCell,µandµPinµNames¡þ€²These´µareµnamingµconventionsµforµlibraries:¡þú²S¡Xú²Useµtheµsameµnameµforµlibraries,µcells,µandµpinsµasµtheµvendor¡XAusesµinµitsµlibraries.¡þ­²S¡X­²Namesµareµ²&caseµsensitive.µ²Forµexample,µtheµnameµAND2µisµnot¡XótheµsameµasµAnd2.µLibraryµCompilerµacceptsµnamesµofµany¡X:length.¡þ¦²S¡X¦²Encloseµnamesµthatµdoµnotµbeginµwithµanµalphabeticµcharacterµin¡Xídoubleµquotesµ(" ").µForµexample,µexpressµaµcellµnamedµ2NAND¡X3asµ"2NAND".µThisµruleµhasµexceptions;µreferµtoµtheµsectionsµon¡Xztheµfunctionµattributeµandµtheµrelated_pinµattributeµinµtheµ²&Library¡XÀCompilerµReferenceµManualµVolumeµ1²â.¡þ,â²S¡X,²Eachµidentifierµmustµbeµuniqueµwithinµitsµownµcontext.µLibrary¡XsCompilerµflagsµeachµduplicateµcellµnameµinµaµlibraryµasµaµwarning¡X¹andµeachµduplicateµpinµnameµinµaµcellµasµanµerror.¡,•²Statements¡þ@²Statementsµareµtheµbuildingµblocksµofµaµlibrary.µEnterµallµlibrary¡þˆinformationµwithµoneµofµtheµfollowingµtypesµofµstatements:¡þ	²S¡X	²Groupµstatements¡þ	o²S¡X	o²Simpleµattributeµstatements¡þ	Û²S¡X	Û²Complexµattributeµstatements¡þ
G²S¡X
G²Defineµstatements¡þ
ÌYouµcanµenterµaµstatementµonµmultipleµlines.µAµcontinuedµlineµmust¡þendµwithµaµbackslashµ(\).µ’vëD“I501ileaf_page_string1:5-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Using´µLibraryµCompilerµSyntax¡.5³4¡þÏ²Group´µStatements¡þn²A´µgroupµisµaµnamedµcollectionµofµstatementsµthatµdefinesµaµlibrary,µa¡þ¶cell,µaµpin,µaµtimingµarc,µandµsoµforth.µBracesµ({}),µwhichµareµusedµin¡þÿpairs,µencloseµtheµcontentsµofµtheµgroup.¡þÞ²Syntax¡þJ²Thisµisµtheµgeneralµsyntaxµofµaµgroupµstatement:¡þÌ²(group_name´µ²(²(name²)²(µ²{¡þ	µµ...µ²(statementsµ²...¡þE}¡þÂ²name¡XA´µstringµthatµidentifiesµtheµgroup.µCheckµtheµindividualµgroup¡XTstatementµsyntaxµdefinitionµtoµverifyµifµnameµisµrequired,µoptional,¡Xœorµnull.µYouµmustµtypeµtheµgroupµnameµandµtheµ{µsymbolµonµthe¡Xåsameµline.¡þjExample 5³1µdefinesµpinµgroupµA.¡,²&Example 5³1³GroupµStatementµSpecification¡þ¯²pin(A)´µ{¡þìµµ...µ²(pinµgroupµstatementsµ²...¡þ	)}’ëD“I501ileaf_page_string1:5-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡NÁ²Using´µLibraryµCompilerµSyntax¡Ô¤ÿ¾5³5¡þÏ²Attribute´µStatements¡þ`²An´µattributeµstatementµdefinesµcharacteristicsµofµspecificµobjectsµin¡þ¨theµlibrary.µAttributesµapplyingµtoµspecificµobjectsµareµassigned¡þñwithinµaµgroupµstatementµdefiningµtheµobject,µsuchµasµaµcellµgroupµor¡þ:aµpinµgroup.¡þÎInµthisµmanual,µtheµwordµ²&attribute²µrefersµtoµallµattributesµunlessµthe¡þmanualµspecificallyµstatesµotherwise.µForµclarity,µthisµmanual¡þ`distinguishesµdifferentµtypesµofµattributeµstatementsµaccordingµto¡þ¨syntax.µAllµsimpleµattributesµuseµtheµsameµgeneralµsyntax;µ²&c²omplex¡þñattributesµhaveµdifferentµsyntacticµrequirements.¡þ…Unlessµtheµmanualµindicatesµotherwise,µuseµaµparticularµattribute¡þÎonlyµonceµinµaµgroupµstatement.µIfµanµattributeµisµusedµmoreµthan¡þonce,µLibraryµCompilerµrecognizesµonlyµtheµlastµattribute.¡þ«Note:²¡Xô²LibraryµCompilerµdoesµnotµcheckµforµmultipleµoccurrencesµofµan¡X<attribute.¡þ	²Simple´µAttributes¡þš²This´µisµtheµsyntaxµofµµtheµsimpleµattribute:¡þ	²(attribute_name²´µ:µ²(attribute_value²µ;¡þ	¦²You´µmustµseparateµtheµattributeµnameµfromµtheµattributeµvalueµwithµa¡þ	îspace,µfollowedµbyµaµcolonµandµanotherµspace.µPlaceµattribute¡þ
7statementsµonµaµsingleµline.¡þ
ÌExample 5³2µaddsµaµdirectionµattributeµtoµtheµpinµgroupµin¡þExample 5³1.’D“I501ileaf_page_string1:5-6¥	öä¥	öä¡8Á²âUsing´µLibraryµCompilerµSyntax¡.5³6¡,É²&Example 5³2³Simple´µAttributeµSpecification¡þ²pin(A)´µ{¡þYµµdirectionµ:µoutputµ;¡þ•}¡þ*²Some´µsimpleµattributesµrequireµaµslightµvariationµonµtheµsyntax,µas¡þsshownµhere:¡þí²(attribute_name²´µ:µ"²(attribute_value²"µ;¡þ‚²You´µmustµencloseµtheµattribute_valueµinµquotes.µExample 5³3µadds¡þËtheµfunctionµXµ+µYµtoµtheµpinµexample.¡,p²&Example 5³3³DefiningµtheµFunctionµofµaµPin¡þÄ²pin´µ(A)µ{¡þµµdirectionµ:µoutputµ;¡þ;µµfunctionµ:µ"Xµ+µY"µ;¡þw}¡þG²Complex´µAttributes¡þÛ²A´µcomplexµattributeµstatementµrequiresµnoµcolon.µIncludeµoneµor¡þ$moreµparametersµinµparentheses.¡þð²Syntax¡þ	:²(attribute´µ(parameter1µ²[²(,µparameter2,µparameter3²µ...]²(µ);¡þ	Ï²The´µfollowingµexampleµusesµtheµcomplexµattributeµlineµtoµdefineµa¡þ
lineµonµaµschematicµsymbol.µThisµlineµisµdrawnµfromµcoordinates¡þ
a(1,2)µtoµ(6,8):¡þ
Û²line´µ(1,µ2,µ6,µ8);’ÅD“I501ileaf_page_string1:5-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡NÁ²Using´µLibraryµCompilerµSyntax¡Ô¤ÿ¾5³7¡þÏ²Define´µStatements¡þn²You´µcanµcreateµnewµsimpleµattributesµwithµtheµdefineµstatement.¡þL²Syntax¡þ˜²define(²(attribute_name²,´µ²(group_name²,µ²(attribute_type²);¡þ²attribute_name¡X]The´µnameµofµtheµnewµattributeµyouµareµcreating.¡þÄgroup_nameµ¡XTheµnameµofµtheµgroupµstatementµinµwhichµthisµattributeµis¡XUspecified.¡þ¼attribute_type¡XTheµtypeµofµvaluesµyouµwantµtoµallowµforµtheµnewµattribute,µstring,¡XMinteger,µorµfloat.¡þÒForµexample,µtoµdefineµaµnewµstringµattributeµcalledµbork,µwhichµis¡þvalidµinµaµpinµgroup,µuse¡þœ²define´µ("bork","pin","string")µ;¡þ7²You´µgiveµtheµnewµattributeµaµvalueµusingµtheµsimpleµattributeµsyntax:¡þ¸²bork´µ:µ"nimo"µ;’Å*D“I501ileaf_page_string1:5-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,i¡Ä,i	ci¡Ä	ci	c¡Ä	c,ÆÃÁÊËÃ¡Ä,iÊiÆÃ¥	öä¥	öä¡8Á²Using´µLibraryµCompilerµSyntax¡.5³8¡,Õ²Comments¡þn²Comments´µexplainµlibraryµentries.µAlthoughµneverµrequired,µliberal¡þ·useµofµcommentsµgivesµotherµusersµtheµinformationµtheyµneedµto¡þÿunderstandµyourµentries.µEncloseµcommentsµbetweenµtheµdelimiters¡þH/*µandµ*/.¡þµ²/*´µThisµisµaµone³lineµcomment.µ*/¡þ)/*µThisµisµa¡þcµµµmultilineµcomment.µ*/¡þð²Library´µCompilerµignoresµallµcharactersµbetweenµtheµdelimiters.¡,¿²Units´µofµMeasurement¡þX²The´µDesignµCompilerµprogramµrequiresµtheµsameµunitsµof¡þ¡measurementµforµaµdesignµasµthoseµusedµinµtheµASICµvendor's¡þélibrary.µForµexample,µifµtheµunitµofµtimeµusedµinµtheµlibraryµis¡þ2nanoseconds,µyouµmustµenterµallµtimingµvaluesµinµnanoseconds.µIf¡þ{picofaradsµareµtheµunitµofµcapacitance,µenterµallµcapacitanceµvalues¡þÃinµpicofarads.µAllµunitsµandµentriesµinµanµASICµvendor'sµlibraryµmust¡þbeµconsistentµtoµensureµaccurateµtimingµcalculation.¡þ’Youµmustµassignµtheµappropriateµphysicalµtimeµunitsµwhenµyouµuse¡þÚLibraryµCompilerµtoµgenerateµVHDLµsimulationµlibraries.µLibrary¡þ	#Compilerµsupportsµfourµdiscreteµtimeµunits:µ1µns,µ100µps,µ10µps,µand¡þ	l1µps.µReferµtoµtheµsectionµonµtheµlibraryµgroupµinµChapterµ7,µBuilding¡þ	´aµTechnologyµLibrary,"µforµmoreµtimeµunitµinformation.¡þ
:Youµcanµoptionallyµsupplyµaµvoltageµunit,µcurrentµunit,µresistanceµunit¡þ
ƒforµpullupsµandµpulldowns,µcapacitiveµloadµunit,µandµpowerµunit.¡þ
ÌReferµtoµChapterµ7,µBuildingµaµTechnologyµLibrary,"µforµadditional¡þinformation.’*ôD“I501ileaf_page_string1:5-9¥	öäÃËÁâÊË¡Ä,ÿ,é¡Ä,é	cé¡Ä	cé	cÿ¡Ä	cÿ,ÿÆÃÁÊËÃ¡Ä,éÊéÆÃ¥	öä¥	öä¡NÁ²Using´µLibraryµCompilerµSyntax¡Ô¤ÿ¾5³9¡þÉ²The´µASICµvendorµdeterminesµtheµmeasureµofµareaµused.µExpress¡þareaµinµequivalentµgatesµorµinµsomeµotherµinternalµmetric.µTakeµcare¡þZtoµuseµtheµsameµunitµofµmeasureµthroughoutµtheµlibrary.µThisµarea¡þ£consistencyµrequirementµalsoµappliesµtoµtheµestimationµofµwireµarea.¡þìTable 5³1µshowsµcommonlyµusedµunitsµofµmeasurement.¡,²&Table 5³1³CommonlyµUsedµUnitsµofµMeasurement¡þ²¥	öä¡6²"ComponentÁã¡ÃÄþêÿêÿ`þ`þêÇ¡ÃÄþê#ê#òþòþêÇ²¡$¥	öä¡A6²Unit´µofµMeasurement¡ÃÄKêLêL`K`KêÇ¡ÃÄ$êLêLò$ò$êÇ²¡K¡þ†¥	öä¡¦²Area¶¶¶¶¡ÃÄþbÿbÿ4þ4þbÇ¡ÃÄþb#b#cþcþbÇ²¡$†¥	öä¡A¦²Equivalent¶gates¡AÜSquare¶microns¶for¶standard¶cells¡ACell³based¶custom¶designs¡ÃÄKbLbL4K4KbÇ¡ÃÄ$bLbLc$c$bÇ²¡K†¡þZ¥	öä¡z²Capacitance¶¶¶¡ÃÄþ6ÿ6ÿÐþÐþ6Ç²¡$Z¥	öä¡Az²Picofarads¡A°Standardized¶loads¡ÃÄK6L6LÐKÐK6Ç²¡KZ¡þö¥	öä¡²Delay¶¶¶¶¡ÃÄþÒÿÒÿ8þ8þÒÇ²¡$ö¥	öä¡A²Nanoseconds¡ÃÄKÒLÒL8K8KÒÇ²¡Kö¡þ^¥	öä¡~²Resistance¶¶¶¶¶¶¡ÃÄþ:ÿ:ÿ þ þ:Ç²¡$^¥	öä¡A~²Kilohms¡ÃÄK:L:L K K:Ç²¡K^¡þÆ¥	öä¡æ²T¤ÿûemperature¶¶¶¶¶¡ÃÄþ¢ÿ¢ÿþþ¢Ç²¡$Æ¥	öä¡Aæ²Degrees¶Celsius¡ÃÄK¢L¢LKK¢Ç²¡KÆ¡þ.¥	öä¡N²V¤ÿýoltage¶¶¶¶¶¡ÃÄþ
ÿ
ÿqþqþ
Ç¡ÃÄþj#j#rþrþjÇ²¡$.¥	öä¡AN²V¤ÿýolts¡ÃÄK
L
LqKqK
Ç¡ÃÄ$jLjLr$r$jÇ²¡K.¡,?²Library´µExample¡þÿ²Example 5³4´µshowsµaµCMOSµtechnologyµlibraryµdescribingµthree¡þ	Gcells:µAN2,µOR2,µandµIV1.µ’ô
4D“I501ileaf_page_string1:5-10¥ÿþø	ö	b¡cR²âCell´µGroupÁÊËÃ¡Äÿ÷ÿÆÃËÃ¡Ä&ÆÃËÃ¡ÄtrÆÃËÃ¡ÄýrýrÆÃ¡¥PinµGroupËÃ¡Ä¥3ý3ÆÃËÃ¡Äý3ýÙÆÃËÃ¡Äý7ýÆÃËÃ¡ÄýÝÆÃ¡±‹Function¡±ËAttributeÊËÃ¡ÄY””ÆÃ¡¥.Complex¡¥nAttribute¡ÖLibraryµGroupµ(toµend)Ã¡ÄZ=È=ÆÃÊËÃ¡Ä¶îÆÃÁâÊËÃ¡Ä5””ÆÃÃÁâÊË¡Ä””ÁâÊË¡Ä”ˆ¡Äˆ5”¡Ä5”¡¡Ä¡”âãÇÆÃÁÊËÃ¡Ä5”5”ÆÃÁÃ¡Ä5””ÆÃÃÁÊË¡Ä””Á¡Ä”ˆ¡Äˆ5”¡Ä5”¡¡Ä¡”ÇÆÃÁÊËÃ¡Ä5”5”ÆÃÁÃ¡Äã<½<ÆÃÃÁÊË¡Ä»<»<Á¡Ä»<´/¡Ä´/ã<¡Äã<´H¡Ä´H»<ÇÆÃÁÊËÃ¡Äã<ã<ÆÃ¡¾‘Simple¡¾ÑAttributeÁâÊËÃ¡ÄO˜ñ˜ÆÃÃÁâÊË¡Ä(˜(˜ÁâÊË¡Ä(˜!Œ¡Ä!ŒO˜¡ÄO˜!¥¡Ä!¥(˜âÇÆÃÁÊËÃ¡ÄO˜O˜ÆÃÁÃ¡ÄO˜ñ˜ÆÃÃÁÊË¡Ä(˜(˜Á¡Ä(˜!Œ¡Ä!ŒO˜¡ÄO˜!¥¡Ä!¥(˜ÇÆÃÁÊËÃ¡ÄO˜O˜ÆÃÁÃ¡Ä=˜ñ˜ÆÃ¡”	CT¤ÿþimingµGroupÊËÃ¡Ä0²²ÆÃËÃ¡Ä²	ÆÃËÃ¡Ä	d	êÆÃËÃ¡Ä	ê|	êÆÃ¡ä	mAttributesËÃ¡ÄÔ××ÆÃËÃ¡Äâ	DÆÃËÃ¡Ä	y	¡ÆÃËÃ¡Ä	µ‚	µÆÃ¥	öä¥	öä¥	öä¡8Á²Using¶Library¶Compiler¶Syntax¡.5³10¡†É²&Example 5³4³CMOS´µTechnologyµLibraryµExampleµ¡X8²library´µ(example)µ{¡Xltechnologyµ(cmos);¡Xç/*µtwo³inputµANDµgateµ*/¡Xcellµ(AN2)µ{¡XOµµµareaµ:µ2;¡Xƒµµµpinµ(A,µB)µ{¡X·µµµµµµdirectionµ:µinput;¡Xëµµµµµµcapacitanceµ:µ1;¡Xµµµ}¡XRµµµpinµ(Z)µ{¡X†µµµµµµdirectionµ:µoutput;¡Xºµµµµµµfunctionµ:µ"Aµ*µB";¡Xîµµµµµµtimingµ()µ{¡X"µµµµµµµµµintrinsic_riseµ:µ0.48;¡XVµµµµµµµµµintrinsic_fallµ:µ0.77;¡XŠµµµµµµµµµrise_resistanceµ:µ0.1443;¡X¾µµµµµµµµµfall_resistanceµ:µ0.0523;¡Xòµµµµµµµµµrelated_pinµ:µ"AµB";¡X%µµµµµµ}¡XYµµµ}¡X}¡XË/*µtwo³inputµORµgateµ*/¡Xÿcellµ(OR2)µ{¡X3µµµareaµ:µ2;¡Xgµµµpinµ(AµB)µ{¡Xšµµµµµµdirectionµ:µinput;¡XÎµµµµµµcapacitanceµ:µ1;¡Xµµµ}¡X6µµµpinµ(Z)µ{¡Xjµµµµµµdirectionµ:µoutput;¡Xžµµµµµµfunctionµ:µ"Aµ+µB";¡XÒµµµµµµtimingµ()µ{¡X	µµµµµµµµµintrinsic_riseµ:µ0.38;¡X	:µµµµµµµµµintrinsic_fallµ:µ0.85;¡X	mµµµµµµµµµrise_resistanceµ:µ0.1443;¡X	¡µµµµµµµµµfall_resistanceµ:µ0.0589;¡X	Õµµµµµµµµµrelated_pinµ:µ"AµB";¡X
	µµµµµµ}¡X
=µµµ}¡X
q}¡X
¯/*µINVERTERµ*/¡X
âcellµ(IV1)µ{¡Xµµµareaµ:µ1;’
4D“I501ileaf_page_string1:5-11¥	öä¥	öä¡NÁ²âUsing´µLibraryµCompilerµSyntax¡Ô¤ÿ¤5³11¡XÃ²´µµµpinµ(A)µ{¡X÷µµµµµµdirectionµ:µinput;¡X+µµµµµµcapacitanceµ:µ1;¡X_µµµ}¡X’µµµpinµ(Y)µ{¡XÆµµµµµµdirectionµ:µoutput;¡Xúµµµµµµfunctionµ:µ"A'";¡X.µµµµµµtimingµ()µ{¡Xbµµµµµµµµµintrinsic_riseµ:µ0.55;¡X–µµµµµµµµµintrinsic_fallµ:µ0.32;¡XÊµµµµµµµµµrise_resistanceµ:µ0.1411;¡Xþµµµµµµµµµfall_resistanceµ:µ0.0557;¡X2µµµµµµµµµrelated_pinµ:µ"A";¡Xeµµµµµµ}¡X™µµµ}¡XÍ}¡X}µµ/*µendµofµlibraryµ*/’ÐOPS m:m:D€‚Document:6symÿ‚Last saved on:Tue, Dec 9, 1997 17:53:13ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G° wst:helvps20b± :44444444444444444444444444444444*..J< 0...........0003Q<<<<73A<.<3E<A7A<73<7N7730..3.3.33.J3333 .3.A..*  0*444444444444444444444444444444444....4.4.444444444.44.4443<<<<<<S<77774<AAAAA4A<<<<443......J.....433333343333344.4.*S.44S444444444..*444444S444444444444444.4444S444N°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°0wst:courps10i±0:*°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Gwst:courps9.5±G:(°Nwst:courps12bi±N:                                                                                          2                                       °}wst:helvps16bi±}:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°„wst:helvps14bi±„:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå¿ÿå®å€åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’W~üD“I501ileaf_page_string1:6-1¥	öä² â¡º¡Ïº¡žº¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¾6³1¡,m²².6â²/¥	öä¡Õm²â¡,~²	Building´µaµSymbolµLibrary¡û²¥	öäÁÊËÃ¡Ä,ßÊßÆÃ¡	öû¡þ´Design´µAnalyzerµusesµinformationµfoundµinµsymbolµlibrariesµto¡þýgenerateµandµdisplayµtheµgraphicµrepresentationµofµaµdesign.µThe¡þFconstructionµofµsymbolµlibrariesµisµtechnology³independent.¡þïToµbuildµaµsymbolµlibrary,µyouµmustµknowµaboutµtheµfollowing¡þ8conceptsµdescribedµinµthisµchapter:¡þÁ²S¡XÁ²Symbolµlibraries¡þ	8²S¡X	8²Symbolµlibraryµgroup¡þ	¯²S¡X	¯²Layerµgroup¡þ
&²S¡X
&²Symbolµgroup¡þ
²S¡X
²Specialµsymbols¡þ²S¡X²LibraryµCompilerµchecks’ü0D“I501ileaf_page_string1:6-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,ñ¡Ä,ñ	cñ¡Ä	cñ	c¡Ä	c,ÆÃÁÊËÃ¡ÄþñÊñÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³2¡,Õ²Symbol´µLibraries¡þ¥²Symbol´µlibrariesµshareµtheµsameµfundamentalµstructureµandµsyntax¡þíasµtechnologyµlibraries.µTypically,µaµsymbolµlibraryµisµbuiltµforµuse¡þ6withµaµparticularµtechnologyµlibrary,µalthoughµtheµactualµconstruction¡þofµtheµlibraryµisµtechnology³independent.¡þ.Eachµcellµinµtheµtechnologyµlibraryµmustµhaveµaµcellµwithµtheµsame¡þvnameµinµtheµsymbolµlibrary.µItµisµnotµnecessaryµforµallµsymbolµlibrary¡þ¿cellsµtoµhaveµaµcorrespondingµcellµinµtheµtechnologyµlibrary.¡þnAµsymbolµlibraryµalsoµcontainsµspecialµsymbolsµthatµhaveµno¡þ·correspondingµcellµinµtheµtechnologyµlibrary.µTheseµspecialµsymbols¡þÿareµusedµtoµdrawµtheµpartsµofµtheµschematicµthatµareµnotµcells,µsuch¡þHasµconnectors,µtemplateµborders,µandµtext.¡þA²Creating´µSymbolµLibraries¡þí²You´µcanµcreateµaµnewµsymbolµlibraryµinµoneµofµtheseµways:¡þz²S¡Xz²UsingµtheµMentorµGraphicsµCAEµinterface¡þó²S¡Xó²UsingµtheµEDIFµinterface¡þ	m²S¡X	m²UsingµtheµSynopsysµIntegratorµforµtheµMentorµFalconµFramework¡þ	ç²S¡X	ç²Writingµaµtextµdescription¡þ
ƒUsingµoneµofµtheµautomatedµinterfaces,µsuchµasµaµCAE³specificµor¡þ
ÌEDIFµinterface,µisµfasterµandµmoreµaccurateµthanµwritingµaµtext¡þdescription.’0lD“I501ileaf_page_string1:6-3¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¾6³3¡þÏ²Mentor´µGraphicsµCAEµInterface¡þW²The´µMentorµGraphicsµCAEµinterfaceµletsµyouµextractµsymbolµlibrary¡þŸinformationµfromµtheµMentorµGraphicsµsystem.µThisµinterface¡þèappearsµatµtheµschematicµlevel.µTheµschematicµincludesµthe¡þ1boundingµboxµandµpinµlocationsµofµeachµsymbol,µsoµschematics¡þytransmittedµtoµtheµMentorµsystemµareµcompatibleµwithµtheµsymbols¡þÂusedµtoµdisplayµtheµschematicµonµthatµsystem.¡þMSchematicsµgeneratedµwithµsymbolsµextractedµfromµtheµMentor¡þ–systemµcontainµonlyµrectanglesµforµsymbolsµwhenµDesignµAnalyzer¡þßdisplaysµthem.µHowever,µifµyouµuseµMentorµEDIF,µtheµsymbolsµare¡þ'fullyµdisplayed.µForµmoreµinformation,µreferµtoµtheµ²&MentorµInterface¡þpApplicationµNote²µandµthe²&µEDIFµInterfaceµUserµGuide².¡þ-²EDIF´µInterface¡þµ²The´µDesignµCompilerµprogramµsupportsµtheµEDIFµ2µ0µ0µdesign¡þþinterfaceµtoµandµfromµSynopsysµsynthesisµtools.µThisµinterface¡þGprovidesµaµwayµtoµtransferµsymbolµinformationµbetweenµDesign¡þCompilerµandµmanyµCAEµsystems.µYouµcanµcreateµanµalmost¡þØcompleteµsymbolµlibraryµfromµtheµdataµinµanµEDIFµschematicµview¡þ!file.¡þÞ²Text´µFileµSymbolµLibraries¡þ	f²If´µyouµcannotµuseµaµCAEµinterfaceµorµtheµEDIFµinterfaceµtoµgenerate¡þ	¯aµsymbolµlibrary,µcreateµaµtextµfileµdescriptionµofµtheµsymbol¡þ	øgraphics,µreadµitµintoµlc_shell,µandµuseµLibraryµCompilerµtoµgenerate¡þ
@aµcompiledµsymbolµlibrary.¡þ
ÌYouµcanµhaveµonlyµoneµlibraryµinµaµfile.µPlaceµtechnologyµand¡þschematicµdescriptionsµinµseparateµfiles.’lYD“I501ileaf_page_string1:6-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ò,Ü¡Ä,Ü	cÜ¡Ä	cÜ	cò¡Ä	cò,òÆÃÁÊËÃ¡ÄþÜÊÜÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³4¡þÏ²Symbol´µLibraryµFileµNames¡þQ²Although´µthereµareµnoµpredefinedµfileµnamingµconventions,µall¡þ™symbolµlibraryµfilenamesµmustµconformµtoµUNIXµconventions.¡þâSynopsysµusesµandµrecommendsµtheµfollowingµsuffixesµforµsymbol¡þ+libraryµfilenames:¡þœ.slib¡XäSymbolµlibraryµfiles¡þA.sdb¡XŠCompiledµsymbolµlibrariesµinµSynopsysµinternalµdatabaseµformat¡þç.edif¡X/SymbolµlibrariesµderivedµfromµEDIFµsystems¡þ,²Synopsys´µGenericµSymbolµLibrary¡þ®²The´µDesignµCompilerµprogramµcomesµwithµaµsymbolµlibrary¡þöcontainingµmoreµthanµ170µofµtheµmostµcommonµcellµfunctionsµinµaµfile¡þ?calledµgeneric.sdb.µTheµsymbolsµdefinedµinµthisµgenericµsymbol¡þˆlibraryµincludeµmostµBooleanµlogicµsymbols.¡þTheµDesignµAnalyzerµprogramµautomaticallyµsearchesµgeneric.sdb¡þVforµsymbolsµunlessµyouµuseµanotherµfileµnameµforµthe¡þžgeneric_symbol_libraryµvariable,µasµdescribedµinµtheµnextµsection.¡þ	$TheµDesignµAnalyzerµprogramµdrawsµaµrectangleµforµanyµelement,¡þ	lsuchµasµaµflip³flop,µlatch,µorµMUXµwhenµitµdoesµnotµfindµaµsymbolµfor¡þ	µitµinµgeneric.sdbµduringµschematicµgeneration.¡þ
:Note:²¡X
ƒ²Findµtheµtextµversionµofµgeneric.sdbµinµtheµ$SYNOPSYS/libraries¡X
Ìdirectoryµinµaµfileµcalledµgeneric.slib.µYouµcanµbrowseµthisµfileµfor¡Xexamples.’Y¡D“I501ileaf_page_string1:6-5¥	öäÃËÁâÊË¡Ä,|,f¡Ä,f	cf¡Ä	cf	c|¡Ä	c|,|ÆÃÁÊËÃ¡ÄþfÊfÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¾6³5¡þÉ²Schematics´µgeneratedµwithµtheµgenericµsymbolµlibraryµcannotµbe¡þwrittenµtoµanµexternalµCAEµsystem.µToµallowµtransferµbackµtoµthe¡þZexternalµsystem,µtheµsymbolsµmustµcomeµfromµaµsymbolµlibrary¡þ£generatedµfromµtheµinformationµinµtheµexternalµsystem'sµlibraries.¡þ¶²Transferring´µaµSymbolµLibraryµfromµaµCAEµSystem¡þq²Figure 6³1´µshowsµtheµdataµandµcontrolµflowµofµreadingµsymbolsµinto¡þºDesignµCompiler.µThisµisµtheµflowµwhenµreadingµCAEµsymbolsµinto¡þDesignµCompiler:¡þš1.¡XšTheµexternalµCAEµsystemµcreatesµtheµEDIFµlibraryµfileµcontaining¡Xàtheµsystemµsymbols.¡þb2.¡XbTheµLibraryµCompilerµread_libµ³fµedif²´µ²command´µcreatesµaµsymbol¡X©libraryµfromµtheµEDIFµlibraryµfileµcontainingµtheµCAEµsystem¡Xïsymbols.¡,¬²&Figure 6³1³ReadingµSymbols¡,	ß²¥	öäÃÁÊË¡Ä	ÛK¡ÄKdK¡ÄdKd	Û¡Äd	Û	ÛâãÇÆÃÃâ¡Ä,	×,G¡Ä,GrG¡ÄrGr	×¡Är	×,	×âÇÆÃ²â¡ÏÊ¤ÿŽExternal¡Ï	¤ÿÃCAE¡Àø¤ÿwSynopsys¡À	T¤ÿ–lc_shellÃ¡Å	O	‰ÿ	O	l	lâÇÆÃÃâ¡Ä	hÉ¡ÄÉÿÉ¡ÄÿÉÿ	h¡Äÿ	h	hâÇÆÃÁÊËÃ¡Ä	hû	hÆÃÃÁâÊË¡Å¨âÿ¨ÅÅâÇÆÃ²â¡‘	¤ÿÇEDIF¡‹	S¤ÿ˜Symbols²¡8ß¤ÿ–Write EDIFÊËÃ¡Är	#	#ÆÃÃÊË¡Ä		#¡Ä	#	+ÆÃÊËÃ¡Äý	#	#ÆÃÃÊË¡Ä		#¡Ä	#	,ÆÃ²¡Ï	Y¤ÿ™System²¡8	¤ÿ«symbolsÃÁÊË¡Å/II/™WIWIÆÃ¡M²1Ã¡ÅäI4Iä™IIÆÃ¡ƒ2¡ªÝ²read_lib´µ³fµedit²¡Ê	ß¡þ
Ì²Refer´µtoµyourµtargetµCAEµsystemµapplicationµnoteµforµdetailed¡þinstructionsµaboutµcapturingµandµtransferringµsymbols.’¡7D“I501ileaf_page_string1:6-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³6¡þÏ²Defining´µaµSymbolµLibraryµforµDesignµAnalyzer¡þ²These´µtwoµvariablesµdefinedµinµlc_shellµnameµtheµsymbolµlibrariesµto¡þØuseµwhenµcreatingµschematics:¡þsgeneric_symbol_library¡X¼Namesµtheµdefaultµsymbolµlibrary.µItµisµrequired.µTheµvalueµis¡Xusuallyµgeneric.sdb,µtheµSynopsysµgenericµsymbolµlibrary.¡þwsymbol_libraryµ¡X¿Namesµaµuser³definedµsymbolµlibrary.µUsuallyµtheµlibraryµnamed¡Xbyµsymbol_libraryµcontainsµtheµsymbolµdescriptionsµforµa¡XQthird³partyµtechnologyµlibrary.¡þìToµuseµaµcustomµlibrary,µsetµtheµsymbol_libraryµvariableµtoµtheµname¡þ4ofµtheµlibraryµyouµwantµtoµuse.¡þÍ²lc_shell>²)´µsymbol_libraryµ=µ²Nlibname¡þy²Design´µAnalyzerµsearchesµforµtheµsymbolsµrequiredµtoµdrawµyour¡þÂschematicµinµtheµlibraryµnamedµbyµtheµsymbol_libraryµvariable.µIf¡þDesignµAnalyzerµcannotµfindµtheµlibrary,µitµsearchesµtheµlibrary¡þSnamedµinµgeneric_symbol_libraryµthatµsuppliesµmostµofµyour¡þœsymbols.µ¡þ	`Note:²¡X	©²YouµcanµuseµonlyµoneµsymbolµlibraryµwithµEDIFµdescriptions.µA¡X	òcustomµsymbolµlibraryµmustµincludeµallµtheµsymbolsµinµyour¡X
:technologyµlibrary,µplusµtheµspecialµsymbolsµlistedµinµSpecial¡X
ƒSymbolµAttributes.µIfµyouµuseµaµsymbolµfromµtheµSynopsys¡X
Ìgenericµlibrary,µyouµcannotµexportµitµbackµtoµtheµoriginating¡Xsystem.µGenericµsymbolsµdoµnotµtransferµbackµtoµEDIFµsystems.’7D“I501ileaf_page_string1:6-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,¯,™¡Ä,™	c™¡Ä	c™	c¯¡Ä	c¯,¯ÆÃÁÊËÃ¡Ä,™Ê™ÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¾6³7¡þÏ²Fonts´µinµSymbolµLibraries¡þd²The´µfontsµusedµwithµDesignµAnalyzerµareµstoredµinµtheµ/libraries¡þ­subdirectoryµwhereµtheµSynopsysµsoftwareµisµinstalled.µFilesµthat¡þõendµwithµ.flibµcontainµtheµinformationµyouµneedµtoµcreateµandµuse¡þ>fonts.¡þ×Toµuseµspecificµfonts,µprepareµthemµforµDesignµAnalyzerµfollowing¡þ theseµsteps:¡þž1.¡XžPreprocessµthe²µ².flibµfileµwithµtheµCµpreprocessorµinµyour¡Xåenvironment.µOnµaµUNIXµsystem,µtypeµaµlineµthatµusesµthe¡X+followingµsyntaxµatµyourµsystemµprompt.¡X–²´µusr/lib/cppµ<²(font_name².flibµ|µgrepµ³vµ"^#"µ>font.cpp¡þ²2.¡XRead´µtheµpreprocessedµfileµintoµlc_shell.¡X}²´µlc_shell>²)µread_libµfont.cpp¡þø²3.¡XøWrite´µitµoutµtoµaµfile.¡Xd²´µlc_shell>²)µwrite_libµ"²Nfont_name²).font"¡þú²You´µcanµnowµuseµthisµfileµasµaµfontµinµyourµsymbolµlibraries.¡,ï²Symbol´µLibraryµGroup¡þ	¡²The´µsymbolµlibraryµtextµfileµsyntaxµincludesµtheµsymbolµlibraryµgroup,¡þ	êlibraryµvariables,µsymbolµdimensioning,µandµtheµset_route_grid¡þ
3attribute.¡þ
ÌTheµlibraryµgroupµstatementµnamesµtheµlibraryµbeingµdescribed.µItµis¡þrequiredµasµtheµfirstµexecutableµlineµinµyourµlibrary.’·D“I501ileaf_page_string1:6-8¥	öäÃËÁâÊË¡Ä,£,¡Ä,	c¡Ä	c	c£¡Ä	c£,£ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³8¡þÃ²library´µ(²)µ²(library_name²µ)µ{¡þ²)µµµ²...µ²(libraryµgroupµdescription²µ...¡þ=}¡þØ²Use´µaµlibrary_nameµthatµmatchesµtheµsymbolµlibraryµfileµname¡þ withoutµtheµsuffix.µForµexample,µtoµnameµaµlibraryµexample.slib:¡þ¢²library´µ(µexampleµ)µ{¡þßµµ...µ²(symbolµdescriptionsµ...¡þ²}¡þ¶²The´µlibraryµgroupµofµaµsymbolµlibraryµcontains¡þ;²S¡X;²Variables¡þ¯²S¡X¯²set_route_gridµandµset_meter_scaleµattributes¡þ"²S¡X"²Specialµsymbolµattributes¡þ–²S¡X–²Layerµgroups¡þ	²S¡X	²Symbolµgroups¡þÜ²Library´µVariables¡þ|²Define´µvariablesµatµtheµbeginningµofµsymbolµlibraries.¡þ	Z²Syntax¡þ	¦²(variable_name²´µ=µ²(variable_value²;’·aD“I501ileaf_page_string1:6-9¥	öäÃËÁâÊË¡Ä,r,\¡Ä,\	c\¡Ä	c\	cr¡Ä	cr,rÆÃÁÊËÃ¡Äþ\Ê\ÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¾6³9¡þÉ²For´µexample,µtoµdefineµtrueµandµfalseµvariables,µplaceµtheseµlinesµat¡þtheµbeginningµofµtheµlibrary:¡þ“²true´µ=µ1;¡þÐfalseµ=µ0;¡þ«²Symbol´µDimensioningµUsingµVariablesµ¡þJ²You´µcanµuseµsizingµvariablesµonceµtoµdefineµaµsymbolµandµthenµhave¡þ“LibraryµCompilerµgenerateµtheµsymbolµinµaµsizeµappropriateµtoµyour¡þÛsheetµsize.µ¡þ~Theµsampleµsymbolµlibraryµinµgeneric.slibµdefinesµtwoµsetsµofµsizing¡þÆvariables:µoneµbasedµonµtheµANSIµstandardsµandµoneµbasedµon¡þMIL³STD³8086.µUseµtheseµvariablesµasµmodelsµforµotherµsizing¡þWstandardsµyouµwantµtoµuse.¡þúExample 6³1µshowsµtheµdefinitionµofµaµsetµofµsizingµvariablesµfor¡þBANDµgates.µTheµvariablesµareµdefinedµaccordingµtoµANSIµstandards.¡,ó²&Example 6³1³DefiningµSizingµVariables¡þJ²/*´µREQUIREDµSIZES:µ*/¡þ‡AND_HEIGHTµ=µ4µ;¡þ	/*µANSIµDimensions:µ*/¡þ	>ANSI_AND_HEIGHTµ=µ26.0µ;¡þ	zSCALEµ=µAND_HEIGHTµ/µANSI_AND_HEIGHTµ;¡þ	·µ¡þ	ôAND_WIDTHµ=µ32µ*µSCALEµ;¡þ
1BUBBLE_DIAMETERµ=µ4µ*µSCALEµ;¡þ
Ì²Only´µtheµfirstµtwoµsizesµareµdefinedµbyµaµnumber.µAllµotherµsizesµare¡þdefinedµbyµtheµscaleµdeterminedµbyµtheµtwoµvariables.’a£D“I501ileaf_page_string1:6-10¥	öäÃËÁâÊË¡Ä,×,Á¡Ä,Á	cÁ¡Ä	cÁ	c×¡Ä	c×,×ÆÃÁÊËÃ¡ÄþÁÊÁÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³10¡þÉ²Figure 6³2´µshowsµanµANDµgateµdefinedµbyµtheseµsizingµvariables.¡þTheµdimensionsµofµtheµsymbolsµareµlabeled.¡,Ö²&Figure 6³2³SymbolµHeightµandµWidth¡,í²¥	öäÃÁÊË¡ÅiiÌ´i§i§âãÇÆÃ²â¡«BUBBLE_DIAMETERÊËÃ¡ÄŠßÆÃËÃ¡ÄŠÐâÐÆÃÁÊËÃ¡ÄûžûÔÆÃÃÊË¡ÄÅûÔ¡ÄûÔóÅÆÃÊËÃ¡Äû®û€ÆÃÃÊË¡Äóû€¡Äû€ÆÃÃÁÊË¡Äå¡Ä.¡Ä.å.ÆÃÊËÃ¡Äš^þ^ÆÃÃ¡Ä™ÝýÝÆÃÊËÃ¡Äü /ÆÃËÃ¡Äk£k$ÆÃ¡;âAND_WIDTHÁÊËÃ¡Ä}¶c¶ÆÃÃÊË¡ÄU­c¶¡Äc¶U¾ÆÃÊËÃ¡ÄÄ¶¶ÆÃÃÊË¡Ä¾¶¡Ä¶­ÆÃÃÁÊË¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾GECƒÛ<Ad£dûd£ÆÃÃ¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾ÿÿÿÿÿ··‹dKd£<Û.ƒ.Û.ÆÃÊËÃ¡Ä‰ÆÃËÃ¡Ä÷)€)ÆÃÁÊËÃ¡Ä}~}ÆÃÃÊË¡Ä†}¡Ä}uÆÃÊËÃ¡Ä}°}(ÆÃÃÊË¡Äu7}(¡Ä}(†7ÆÃÃÁâÊË¡ÄÇx¡Äxõx¡ÄõxõÇ¡ÄõÇÇÇÆÃâ¡¤AND_HEIGHT²¡Êí¡þ²set_route_grid´µAttributeµ²}µ¡þÀ²Schematic´µsymbolsµareµdefinedµwithµfloating³pointµnumbers,µbutµare¡þ	storedµasµanµintegerµrepresentation.²µ²Theµset_route_gridµcomplex¡þQattributeµcontrolsµfloating³pointµnumberµconversionµtoµintegers.¡þJ²Syntax¡þ˜²set_route_grid´µ(µ²(route_grid²µ)µ;¡þ	²route_grid¡X	`An´µintegerµthatµdeterminesµtheµresolutionµofµtheµgridµbyµdefining¡X	©theµnumberµofµvaluesµbetweenµeachµsetµofµtwoµwhole¡X	òfloating³pointµvalues.µDesignµAnalyzerµroutesµwiresµonlyµonµthe¡X
:grid,µsoµtheµpinµrepresentingµtheµstartingµpointµofµaµwireµmustµlie¡X
ƒonµtheµgrid.µTheµroute_gridµvalueµmustµbeµaµpowerµofµ2;µthe¡X
Ìsuggestedµvalueµisµ1024.µTheµfontµlibrariesµandµtheµgeneric¡Xsymbolµlibraryµuseµ1024µasµtheµroute_grid.’£ºD“I501ileaf_page_string1:6-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¤6³11¡þÏ²set_meter_scale´µAttribute¡þa²The´µEDIFµinterfaceµcreatesµtheµset_meter_scaleµcomplexµattribute¡þ©wheneverµyouµuseµtheµEDIFµinterfaceµtoµreadµinµanµEDIFµdesign.¡þòTheµEDIFµinterfaceµusesµtheµattributeµtoµcorrectµtheµschematicµwhen¡þ;itµisµwrittenµbackµtoµtheµoriginatingµsystem.µDoµnotµaddµthisµattribute¡þƒtoµyourµlibrary.²&¡þQ²Special´µSymbolµAttributes¡þã²The´µspecialµsymbolµattributesµdefineµtheµsymbolsµforµmanyµofµthe¡þ,schematicµelements.µTheseµspecialµsymbolsµdoµnotµrepresentµcells¡þuorµhaveµcorrespondingµcellsµinµaµtechnologyµlibrary.µDefineµspecial¡þ½symbolsµbyµassigningµtheµfollowingµattributesµinµtheµlibraryµgroup:¡þ9logic_1_symbolµ:µ"symbol_name"µ;¡X‚Namesµtheµsymbolµforµlogicµ1µinµschematics.¡þälogic_0_symbolµ:µ"symbol_name"µ;¡X-Namesµtheµsymbolµforµlogicµ0µinµschematics.¡þin_port_symbolµ:µ"symbol_name"µ;¡X×Namesµtheµsymbolµforµinputµportsµinµschematics.¡þ:out_port_symbolµ:µ"symbol_name"µ;¡X‚Namesµtheµsymbolµforµoutputµportsµinµschematics.¡þåinout_port_symbolµ:µ"symbol_name"µ;¡X	-Namesµtheµsymbolµforµbidirectionalµportsµinµschematics.¡þ	in_osc_symbolµ:µ"symbol_name"µ;¡X	ØNamesµtheµsymbolµforµinputµoff³sheetµconnectorsµin¡X
!multiple³pageµschematics.¡þ
ƒout_osc_symbolµ:µ"symbol_name"µ;¡X
ÌNamesµtheµsymbolµforµoutputµoff³sheetµconnectorsµin¡Xmultiple³pageµschematics.’ºnD“I501ileaf_page_string1:6-12¥	öäÃËÁâÊË¡Ä,G,1¡Ä,1	c1¡Ä	c1	cG¡Ä	cG,GÆÃÁÊËÃ¡Ä,1Ê1ÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³12¡þÉ²inout_osc_symbol´µ:µ"symbol_name"µ;¡XNamesµtheµsymbolµforµbidirectionalµoff³sheetµconnectorsµin¡XZmultiple³pageµschematics.¡þÍTheµfollowingµexampleµassignsµsymbolsµdefinedµinµtheµgeneric¡þsymbolµlibraryµtoµtheµspecialµsymbols.µRemember,µifµyouµuse¡þ_genericµsymbols,µyouµcannotµmoveµtheµresultingµschematicsµtoµan¡þ§outsideµsystem.¡þ²logic_1_symbol:´µ"logic_1"µ;¡þPlogic_0_symbol:µ"logic_0"µ;¡þ‹in_port_symbolµ:µ"in_port"µ;¡þÅout_port_symbolµ:µ"out_port"µ;¡þÿinout_port_symbolµ:µ"out_port"µ;¡þ9in_osc_symbolµ:µ"in_osc"µ;¡þtout_osc_symbolµ:µ"out_osc"µ;¡þ®inout_osc_symbolµ:µ"out_osc"µ;¡,‡²Layer´µGroup¡þ#²Design´µAnalyzerµlayersµdefineµtheµappearanceµofµobjectsµinµa¡þlschematic.µTheseµcharacteristicsµincludeµcolor,µvisibility,µfont,µand¡þ´lineµwidth.µYouµcanµthinkµofµlayersµasµtransparentµsheets,µeachµwith¡þýdifferentµinformationµdrawnµonµit,µplacedµoneµonµtopµofµanother.¡þ°²Syntax¡þ	²Thisµisµtheµsyntaxµofµtheµlayerµgroupµstatement.¡þ	²library´µ(²(µlib_name²µ)µ{¡þ	¹...¡þ	óµ²)µ²layerµ(µ²(name²G´µ²´µ)µ{¡þ
-µµ...µ²(layerµdescriptionµ²...¡þ
hµµ}¡þ
¢...¡þ
Ü}’nD“I501ileaf_page_string1:6-13¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³13¡þÉ²name´µ¡XNameµofµoneµofµtheµpredefinedµtextµlayersµdescribedµin¡XZTable 6³1.µTheseµareµtheµonlyµvalidµlayers.µEachµlayerµcontainsµa¡X£specificµtypeµofµinformationµthatµgivesµyouµcontrolµoverµwhatµis¡Xìshownµinµyourµschematics.¡,^²&Table 6³1³LayersµinµSymbolµLibraries¡,¶²¥	öä¡IÖ²"LayerÁã¡ÃÄ,’-’-,,’Ç¡ÃÄ,’Ä’Äš,š,’Ç²¡Å¶¥	öä¡âÖ²"Contents¡ÃÄÊ’Ë’ËÊÊ’Ç¡ÃÄÅ’Ë’ËšÅšÅ’Ç²¡Ê¶¡,&¥	öä¡I>²bus_net_layer¡ÃÄ,--a,a,Ç¡ÃÄ,ÄÄ,,Ç²¡Å&¥	öä¡â>²Bused´µnets¡ÃÄÊËËaÊaÊÇ¡ÃÄÅËËÅÅÇ²¡Ê&¡,†¥	öä¡Iž²bus_net_name_layer¡ÃÄ,b-b-Á,Á,bÇ²¡Å†¥	öä¡âž²Busedµnetµnames¡ÃÄÊbËbËÁÊÁÊbÇ²¡Ê†¡,æ¥	öä¡Iþ²bus_net_type_layer¡ÃÄ,Â-Â-!,!,ÂÇ²¡Åæ¥	öä¡âþ²Busµtypes¡ÃÄÊÂËÂË!Ê!ÊÂÇ²¡Êæ¡,F¥	öä¡I^²bus_osc_layer¡ÃÄ,"-"-,,"Ç²¡ÅF¥	öä¡â^²Busµof¤ÿÿf³sheetµconnectors¡ÃÄÊ"Ë"ËÊÊ"Ç²¡ÊF¡,¦¥	öä¡I¾²bus_osc_name_layer¡ÃÄ,‚-‚-á,á,‚Ç²¡Å¦¥	öä¡â¾²Busµof¤ÿÿf³sheetµconnectorµname¡ÃÄÊ‚Ë‚ËáÊáÊ‚Ç²¡Ê¦¡,¥	öä¡I²bus_port_layer¡ÃÄ,â-â-A,A,âÇ²¡Å¥	öä¡â²Busµports¡ÃÄÊâËâËAÊAÊâÇ²¡Ê¡,f¥	öä¡I~²bus_port_name_layer¡ÃÄ,B-B-¡,¡,BÇ²¡Åf¥	öä¡â~²Busµportµnames¡ÃÄÊBËBË¡Ê¡ÊBÇ²¡Êf¡,Æ¥	öä¡IÞ²bus_port_width_layer¡ÃÄ,¢-¢-,,¢Ç²¡ÅÆ¥	öä¡âÞ²Widthsµofµbusµports¡ÃÄÊ¢Ë¢ËÊÊ¢Ç²¡ÊÆ¡,&¥	öä¡I>²bus_ripper_layer¡ÃÄ,--a,a,Ç²¡Å&¥	öä¡â>²Busµripperµsymbols¡ÃÄÊËËaÊaÊÇ²¡Ê&¡,†¥	öä¡Iž²bus_ripper_name_layer¡ÃÄ,b-b-Á,Á,bÇ²¡Å†¥	öä¡âž²Busµripperµsymbolµnames¡ÃÄÊbËbËÁÊÁÊbÇ²¡Ê†¡,æ¥	öä¡Iþ²bus_ripper_type_layer¡ÃÄ,Â-Â-!,!,ÂÇ²¡Åæ¥	öä¡âþ²Busµripperµtypes¡ÃÄÊÂËÂË!Ê!ÊÂÇ²¡Êæ¡,F¥	öä¡I^²cell_layer¡ÃÄ,"-"-,,"Ç²¡ÅF¥	öä¡â^²Cellµsymbols¡ÃÄÊ"Ë"ËÊÊ"Ç²¡ÊF¡,¦¥	öä¡I¾²cell_name_layer¡ÃÄ,‚-‚-á,á,‚Ç²¡Å¦¥	öä¡â¾²Cellµnames¡ÃÄÊ‚Ë‚ËáÊáÊ‚Ç²¡Ê¦¡,	¥	öä¡I	²cell_ref_name_layer¡ÃÄ,â-â-	A,	A,âÇ²¡Å	¥	öä¡â	²Correspondingµtechnologyµcellµnames¡ÃÄÊâËâË	AÊ	AÊâÇ²¡Ê	¡,	f¥	öä¡I	~²clock_layer¡ÃÄ,	B-	B-	¡,	¡,	BÇ²¡Å	f¥	öä¡â	~²Clockµicons¡ÃÄÊ	BË	BË	¡Ê	¡Ê	BÇ²¡Ê	f¡,	Æ¥	öä¡I	Þ²hierarchy_layer¡ÃÄ,	¢-	¢-
,
,	¢Ç²¡Å	Æ¥	öä¡â	Þ²Constraintµflags¡ÃÄÊ	¢Ë	¢Ë
Ê
Ê	¢Ç²¡Ê	Æ¡,
&¥	öä¡I
>²hierarchy_layer¡ÃÄ,
-
-
a,
a,
Ç²¡Å
&¥	öä¡â
>²Hierarchyµboxesµandµsymbols¡ÃÄÊ
Ë
Ë
aÊ
aÊ
Ç²¡Ê
&¡,
†¥	öä¡I
ž²hierarchy_name_layer¡ÃÄ,
b-
b-
Á,
Á,
bÇ²¡Å
†¥	öä¡â
ž²Hierarchyµboxesµandµsymbolµnames¡ÃÄÊ
bË
bË
ÁÊ
ÁÊ
bÇ²¡Ê
†¡,
æ¥	öä¡I
þ²highlight_layer¡ÃÄ,
Â-
Â-!,!,
ÂÇ¡ÃÄ,ÄÄ",",Ç²¡Å
æ¥	öä¡â
þ²Highlightedµobjects¡ÃÄÊ
ÂË
ÂË!Ê!Ê
ÂÇ¡ÃÄÅËË"Å"ÅÇ²¡Ê
æ’ D“I501ileaf_page_string1:6-14¥	öäÃËÁâÊË¡Ä,,,¡Ä,	c¡Ä	c	c,¡Ä	c,,,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³14¥	öä¡Iá²"Layer¡ááContentsÁã¡ÃÄ,--,,Ç¡ÃÄ,ÄÄ¥,¥,Ç¡ÃÄÊËËÊÊÇ¡ÃÄÅËË¥Å¥ÅÇ¡,1²¥	öä¡II²net_layer¡ÃÄ,--l,l,Ç¡ÃÄ,ÄÄ,,Ç²¡Å1¥	öä¡âI²Netµlines¡ÃÄÊËËlÊlÊÇ¡ÃÄÅËËÅÅÇ²¡Ê1¡,‘¥	öä¡I©²net_name_layer¡ÃÄ,m-m-Ì,Ì,mÇ²¡Å‘¥	öä¡â©²Netµnames¡ÃÄÊmËmËÌÊÌÊmÇ²¡Ê‘¡,ñ¥	öä¡I	²osc_layer¡ÃÄ,Í-Í-,,,,ÍÇ²¡Åñ¥	öä¡â	²Of¤ÿÿf³sheetµconnectorµsymbols¡ÃÄÊÍËÍË,Ê,ÊÍÇ²¡Êñ¡,Q¥	öä¡Ii²osc_name_layer¡ÃÄ,----Œ,Œ,-Ç²¡ÅQ¥	öä¡âi²Of¤ÿÿf³sheetµconnectorµnames¡ÃÄÊ-Ë-ËŒÊŒÊ-Ç²¡ÊQ¡,±¥	öä¡IÉ²pin_layer¡ÃÄ,--ì,ì,Ç²¡Å±¥	öä¡âÉ²Pinµsymbols¡ÃÄÊËËìÊìÊÇ²¡Ê±¡,¥	öä¡I)²pin_name_layer¡ÃÄ,í-í-L,L,íÇ²¡Å¥	öä¡â)²Pinµnames¡ÃÄÊíËíËLÊLÊíÇ²¡Ê¡,q¥	öä¡I‰²port_name_layer¡ÃÄ,M-M-¬,¬,MÇ²¡Åq¥	öä¡â‰²Portµsymbols¡ÃÄÊMËMË¬Ê¬ÊMÇ²¡Êq¡,Ñ¥	öä¡Ié²port_layer¡ÃÄ,­-­-,,­Ç²¡ÅÑ¥	öä¡âé²Portµnames¡ÃÄÊ­Ë­ËÊÊ­Ç²¡ÊÑ¡,1¥	öä¡II²template_layer¡ÃÄ,--l,l,Ç²¡Å1¥	öä¡âI²T¤ÿûemplate¡ÃÄÊËËlÊlÊÇ²¡Ê1¡,‘¥	öä¡I©²template_text_layer¡ÃÄ,m-m-Ì,Ì,mÇ²¡Å‘¥	öä¡â©²T¤ÿûextµassociatedµwithµtheµtemplate¡ÃÄÊmËmËÌÊÌÊmÇ²¡Ê‘¡,ñ¥	öä¡I	²text_layer¡ÃÄ,Í-Í-,,,,ÍÇ²¡Åñ¥	öä¡â	²T¤ÿûextµnotµassignedµtoµotherµlayers¡ÃÄÊÍËÍË,Ê,ÊÍÇ²¡Êñ¡,Q¥	öä¡Ii²variable_layer¡ÃÄ,----Œ,Œ,-Ç¡ÃÄ,…Ä…Ä,,…Ç²¡ÅQ¥	öä¡âi²T¤ÿûextµonµaµtemplate,µdefinedµasµaµvariable¡ÃÄÊ-Ë-ËŒÊŒÊ-Ç¡ÃÄÅ…Ë…ËÅÅ…Ç²¡ÊQ¡þf²Layer´µGroupµAttributes¡þê²To´µdefineµtheµvisualµcharacteristicsµofµaµlayer,µuseµtheµfollowing¡þ3attributesµinµaµlayerµgroup:¡þ¥set_fontµ("font_file")µ;¡XîNamesµtheµfontµtoµbeµusedµonµtheµlayer.µEachµlayerµhasµa¡X	7definedµfont,µevenµifµtheµlayerµdoesµnotµnormallyµhaveµtextµonµit.¡þ	”visibleµ:µtrueµ|µfalseµ;¡X	ÝDeterminesµwhetherµDesignµAnalyzerµshowsµtheµlayerµby¡X
%default.¡þ
ƒline_widthµ:µwidthµ;¡X
ÌDeterminesµtheµwidthµofµtheµlinesµusedµtoµdrawµtheµobjectsµon¡Xtheµlayer.µTheµwidthµisµdefinedµbyµanµinteger.’ äD“I501ileaf_page_string1:6-15¥	öäÃËÁâÊË¡Ä,:,$¡Ä,$	c$¡Ä	c$	c:¡Ä	c:,:ÆÃÁÊËÃ¡Äþ$Ê$ÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¤6³15¡þÉ²scalable_lines´µ:µtrueµ|µfalseµ;¡XDeterminesµwhetherµlinesµareµscaledµinµaµzoomedµview.µWhen¡XZtrue,µlineµwidthµisµdirectlyµproportionalµtoµtheµzoomµfactor.µWhen¡X£false,µtheµlineµwidthµdoesµnotµscaleµatµall.µInµaµdrawingµwhere¡Xìscalingµisµallowed,µlinesµinµaµzoomedµviewµareµmuchµthickerµthan¡X4theyµareµinµanµunzoomedµview.µForµexample,µscalable_linesµon¡X}theµnet_layerµhasµaµdefaultµofµfalse,µsoµnetsµareµshownµasµ1µatµall¡XÆzoomµlevels.¡þ,redµ:µvalueµ;¡XuSetsµtheµredµsaturationµofµobjectsµonµtheµlayerµforµtheµXµWindow¡X¾system.µTheµvalueµisµanµintegerµfromµ0µtoµ65536.¡þ$blueµ:µvalueµ;¡XmSetsµtheµblueµsaturationµofµobjectsµonµtheµlayerµforµtheµXµWindow¡Xµsystem.µTheµvalueµisµanµintegerµfromµ0µtoµ65536.¡þgreenµ:µvalueµ;¡XeSetsµtheµgreenµsaturationµofµobjectsµonµtheµlayerµforµtheµX¡X­Windowµsystem.µTheµvalueµisµanµintegerµfromµ0µtoµ65536.¡þt²Layer´µGroupµExample¡þ²Example 6³2´µshowsµtwoµlayerµdefinitionsµfromµtheµSynopsysµgeneric¡þ[symbolµlibrary.’äfD“I501ileaf_page_string1:6-16¥	öä¥	öä¡8Á²âBuilding´µaµSymbolµLibrary¡.6³16¡,É²&Example 6³2³Layer´µDefinitionsµinµaµSymbolµLibrary¡þ]²layer(cell_layer)´µ{¡þšµµset_fontµ("1_25.font")µ;¡þ×µµvisibleµ:µtrueµ;¡þµµline_widthµ:µ256µ;¡þQµµscalable_linesµ:µtrueµ;¡þŽµµredµ:µ65000µ;¡þÊµµgreenµ:µ65000µ;¡þµµblueµ:µ0µ;¡þD}¡þ¾layer(cell_name_layer)µ{¡þûµµset_fontµ("1_25.font")µ;¡þ8µµvisibleµ:µtrueµ;¡þuµµline_widthµ:µ1µ;¡þ²µµredµ:µ65000µ;¡þîµµgreenµ:µ33000µ;¡þ+µµblueµ:µ0µ;¡þh}¡þ²Both´µlayersµareµvisibleµandµbothµuseµtheµ1_25µfont,µalthoughµnoµtext¡þLappearsµonµcell_layerµinµthisµexample.µTheµlinesµinµcell_layerµhave¡þ•theµsameµwidthµatµanyµmagnification.µTheµtextµinµcell_name_layer¡þÝdoesµnotµscaleµbyµdefault.µTheµcell_layerµisµlightµgreen,µandµthe¡þ&cell_name_layerµisµorange.’f3D“I501ileaf_page_string1:6-17¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¤6³17¡,Õ²Symbol´µGroup¡þ·²The´µsymbolµgroupsµdefineµeverythingµthatµisµdrawn.µTheµgroups¡þÿdefineµtheµcellµsymbols,µwhichµrepresentµtheµcomponentsµinµyour¡þHtechnologyµlibrary,µandµtheµspecialµsymbols,µwhichµrepresentµall¡þotherµgraphicsµusedµinµaµschematic,µsuchµasµtemplateµbordersµand¡þÙoff³sheetµconnectors.µTheµsymbolµgroupµisµdescribedµinµtheµlibrary¡þ"groupµasµfollows:¡þµ²library´µ(²(µlib_name²µ)µ{¡þõ...¡þ4µ²)µ²symbolµ(µ²(name²G´µ²)´µ{¡þtµµ...µ²(symbolµdescriptionµ²...¡þ³µµ}¡þó...¡þ2}¡þ³²name´µ¡XüNameµofµtheµcorrespondingµcomponentµinµtheµtechnologyµlibrary,¡XEorµtheµnameµofµaµspecialµsymbol.¡þÚTheµsymbolµgroupµcontainsµtheµattributesµthatµdefineµtheµcellµsymbol.¡þ#Theseµincludeµgraphicµattributesµdefiningµtheµshape,µpins,µandµtext¡þlassociatedµwithµtheµsymbolµandµthoseµdefiningµotherµcell¡þ´characteristics.µTheµsymbolµgroupµincludesµtheµfollowingµtypesµof¡þýattributes:¡þ	“²S¡X	“²Graphicµattributes¡þ
²S¡X
²Cellµattributes¡þ
”²S¡X
”²Generalµattributes¡þ²S¡X²Templateµattributes’3D“I501ileaf_page_string1:6-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³18¡þÏ²Graphic´µAttributesµµµ¡þt²Graphic´µattributesµareµcomplexµattributesµusedµtoµdrawµcellµsymbols.¡þ½Theyµareµdefinedµinµaµsymbolµgroup.¡þFlineµ(µx1,µy1,µx2,µy2µ)µ;µ¡XCreatesµaµlineµfromµ(x1,µy1)µtoµ(x2,µy2).µTheµx1,µx2,µy1,µandµy2¡X×valuesµareµfloating³pointµnumbers.¡þ@arcµ(µx1,µy1,µx2,µy2,µx3,µy3µ)µ;¡X‰Createsµaµclockwiseµarcµstartingµatµ(x1,µy1),µendingµatµ¡XÑ(x2,µy2),µandµcenteredµonµ(x3,µy3).µTheµx1,µy1,µx2,µy2,µx3,µandµy3¡Xvaluesµareµfloating³pointµnumbers.¡þƒcircleµ(µx,µy,µRµ)µ;¡XÌCreatesµaµcircleµcenteredµatµ(x,µy)µwithµradiusµR.µTheµx,µy,µandµR¡Xvaluesµareµfloating³pointµnumbers.¡þ}pinµ(µname,µx,µy,µdirectionµ)µ;¡XÆCreatesµaµpinµnamedµnameµwithµtheµconnectionµpointsµ(xµandµy)¡Xonµaµsymbolµwithµtheµapproachµnamedµdirection.µTheµdirectionµis¡XWLEFT,µRIGHT,µUP,µDOWNµorµANY_ROTATION.µTheµxµandµy¡X valuesµareµtheµfollowingµtypesµwhenµdirectionµhasµtheseµvalues:¡X³¡”LEFTµorµRIGHT,µ²&x²µisµfloating³pointµandµ²&y²µisµinteger.¡X³¡”UPµorµDOWN,µ²&x²µisµintegerµandµ²&y²µisµfloating³point.¡Xö³¡”öANY_ROTATION,µbothµ²&x²µandµ²&y²µareµfloating³point.µWithµthis¡”	=value,µLibraryµCompilerµdeterminesµtheµrotationµofµtheµpin¡”	ƒusingµappropriateµalgorithms.µSeeµtheµfollowingµPinµApproach¡”	ÊDirections"µsection.¡X
ATheµnumberµofµpinsµdefinedµforµaµsymbolµinµtheµsymbolµlibrary¡X
‡mustµmatchµthoseµdefinedµinµtheµtechnologyµlibrary.µYouµcan¡X
Îcheckµthisµcorrespondenceµwhileµverifyingµyourµlibraries.µSee¡XChapterµ18,µVerifyingµCMOSµLibraries,"µinµthisµmanual.’	ÊD“I501ileaf_page_string1:6-19¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³19¡þÉ²Note:²¡X²Include´µonlyµtheµbaseµnameµofµaµbusedµpinµasµtheµnameµofµthe¡XZsymbolµlibraryµpin,µsoµthatµoneµsymbolµrepresentsµcellsµofµthe¡X£sameµtypeµbutµwithµvariable³widthµinput.¡þ5ReferµtoµTable 6³2µforµaµbusedµandµsingle³pinµcomparison.¡,Ó²&Table 6³2³ComparisonµofµBusedµandµSingle³PinµFormats¡þ9²¥	öä¡a²"Pin´µTypeÁã¡ÃÄþÿÿŒþŒþÇ¡ÃÄþþþÇ²¡9¥	öä¡$a²"TechnologyµLibrary¡ÃÄ

ŒŒÇ¡ÃÄÇ²¡9¥	öä¡-a²"SymbolµLibrary¡ÃÄŒŒÇ¡ÃÄŒŒÇ¡ÃÄÇ²¡9¡þ±¥	öä¡Ñ²Busedµpin¡ÃÄþÿÿôþôþÇ¡ÃÄþŽþŽþÇ²¡±¥	öä¡$Ñ²-pin²µ²0x[3:0]¡ÃÄ

ôôÇ¡ÃÄŽŽÇ²¡±¥	öä¡-Ñ²-pin²µ²0x¡ÃÄôôÇ¡ÃÄôôÇ¡ÃÄŽŽÇ²¡±¡þ¥	öä¡9²Singleµpin¡ÃÄþõÿõÿ\þ\þõÇ¡ÃÄþõõøþøþõÇ¡ÃÄþUU]þ]þUÇ²¡¥	öä¡$9²-pin²µ²0x¡ÃÄõ
õ
\\õÇ¡ÃÄõõøøõÇ¡ÃÄUU]]UÇ²¡¥	öä¡-9²-pin²µ²0x¡ÃÄõõ\\õÇ¡ÃÄõõ\\õÇ¡ÃÄõõøøõÇ¡ÃÄUU]]UÇ²¡¡þ¡²Pin´µApproachµDirections¡þ²TheµfourµapproachµdirectionsµforµdefiningµpinsµareµLEFT,µRIGHT,¡þWUP,µandµDOWN,µasµillustratedµinµFigure 6³3.µTheµschematic¡þ generatorµusesµtheseµapproachµdirectionsµtoµdetermineµhowµtoµbring¡þéwiresµintoµtheµpin.¡,†²&Figure 6³3³PinµApproachµDirections¡,
%²¥	öäÃËÁÊË¡Ä	‚A¡ÄAEA¡ÄEAE	‚¡ÄE	‚	‚ÆÃÁâÊËÃ¡Ä…ßáßÆÃÃÊË¡ÄÈÐáß¡ÄáßÈî¡ÄÈîÈß¡ÄÈßÈÐÇÆÃÊËÃ¡ÄßßzßÆÃÃÊË¡Ä“îzß¡Äzß“Ð¡Ä“Ð“ß¡Ä“ß“îÇÆÃ²â¡¼LEFT¡k	GRIGHT¡é÷UP¡±
DOWNâÊËÃ¡Ä¦¦¼ÆÃÃÊË¡Ä´û¦¡Ä¦˜û¡Ä˜û¦û¡Ä¦û´ûÇÆÃÊËÃ¡Ä¦
¦	³ÆÃÃÊË¡Ä˜	Í¦	³¡Ä¦	³´	Í¡Ä´	Í¦	Í¡Ä¦	Í˜	ÍÇÆÃ²â¡Ê
%¡þ
Ì²LEFTµandµRIGHTµmustµhaveµintegerµyµcoordinates,µandµUPµand¡þDOWNµmustµhaveµintegerµxµcoordinates.’	Ê˜D“I501ileaf_page_string1:6-20¥	öäÃËÁâÊË¡Ä,¼,¦¡Ä,¦	c¦¡Ä	c¦	c¼¡Ä	c¼,¼ÆÃÁÊËÃ¡Äþ¦Ê¦ÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³20¡þÉ²The´µfollowingµpinµdeclarationsµareµvalid:¡þ=²pin(´µa,µ2,µ3,µLEFTµ)µ;¡þxpin(µb,µ2.25,µ4.0,µRIGHTµ)µ;¡þ³pin(µenable,µ³1,µ1.234,µUPµ)µ;¡þîpin(µcount,µ5,µ5.5,µDOWNµ)µ;¡þ€²The´µfollowingµpinµdeclarationsµareµ²&not²µvalid:¡þô²pin(´µa,µ3.1,µ3.4,LEFTµ)µ;µµ²(µ/*µfractionalµyµ*/¡þ/²pin(µb,µ1.5,µ1,µUPµ)µ;µµµµµµ²(/*µfractionalµxµ*/¡þö²Cell´µAttributes¡þ‚²The´µfollowingµcellµattributesµareµdefinedµinµaµsymbolµgroup:¡þúset_minimum_boundaryµ(µmin_x,µmin_y,µmax_x,µmax_yµ)µ;¡XCDefinesµaµminimumµsymbolµsize.µTheµsymbol'sµboundingµboxµis¡X‹guaranteedµtoµbeµatµleastµthisµlarge,µevenµifµtheµsymbolµdesign¡XÔitselfµisµnot.µAµminimumµboundaryµisµcreatedµforµtheµundefined¡Xsymbols.²&µ²Theµmin_x,µmin_y,µmax_xµandµmax_yµvaluesµare¡Xeintegers.¡þÆripped_pinµ:µpin_name²´µ²´µ;¡XIdentifiesµa²&µ²symbolµasµaµbusµripperµandµdenotesµwhichµportµisµthe¡XWbusµthatµisµbrokenµup.µAµripperµsymbol²&µ²hasµtwoµports,µbothµof¡X undefinedµwidth:µoneµbusµportµandµoneµoutputµport.µReferµtoµBus¡XèRipper,"µdescribedµlaterµinµthisµchapter.¡X	ITheµ²&pin_name²µisµtheµnameµofµtheµbusµport.µItµmustµhaveµa¡X	‘correspondingµpinµattributeµinµtheµsymbolµdefinition.µReferµto¡X	ÚGraphicµAttributes,"µearlierµinµthisµchapter.µSeeµtheµcomplete¡X
#ripperµsymbolµdescriptionµbelow.¡þ
ƒripped_bits_propertyµ:µproperty_name;¡X
ÌUsesµoptionalµattributesµtoµattachµanµEDIFµpropertyµnameµtoµa¡Xripper.’˜~D“I501ileaf_page_string1:6-21¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³21¡þÉ²Bus´µRipper¡þF²Thisµisµanµexampleµofµaµripperµsymbolµdefinition.¡þ²symbol´µ(ripper1x2)µ{¡þNµµripped_pinµ:µ"bused_port"µ;¡þµµripped_bits_propertyµ:µ"port"µ;¡þËµµpinµ(bused_port,1,1,LEFT);¡þ	µµpinµ(wire1,2,1,RIGHT)µ;¡þHµµlineµ(1,1,3,1)µ;¡þ†}¡þ(²A´µbusµripperµisµaµsymbolµthatµextractsµoneµwireµfromµaµgroupµofµwires¡þqinµaµbus.µOneµendµofµtheµripperµisµattachedµtoµtheµbusµandµhasµthe¡þºwidthµofµtheµbus;µtheµotherµendµisµaµsingleµbit.µForµexample,µinµthe¡þfollowingµillustration,µbus_endµisµconnectedµtoµA[3:0],µandµw¡þKrepresentsµA[0]:¡þ”²¥	öäÃËÁÊË¡Äîèî×¡Äî×®×¡Ä®×®è¡Ä®èîèâãÇÆÃâÊËÃ¡Ä²à/ÆÃ²¡þÔbus_end¡Lw¡&A[3:0]¡ˆA[0]²¡^”¡þ²Unlikeµoff³sheetµconnectorsµandµpowerµorµgroundµsymbols,µtheµbus¡þhripperµsymbolµhasµnoµspecialµsymbolµkeyword.µTheµschematic¡þ°generatorµidentifiesµaµcellµwithµaµripped_pinµattributeµasµaµbusµripper.¡þùAµripperµhasµoneµbusedµpinµandµoneµsingle³bitµpin.µAnµexampleµis¡þ	b²symbol´µ(ripper)µ{¡þ	 ¡…	 ripped_pinµ:µ"bus_end"µ;¡þ	ß¡…	ßripped_bits_propertyµ:µ"port"µ;¡þ
¡…
pinµ(bus_end,³.25µ*µOFF_SHEET_HEIGHT,0,LEFT);¡þ
[¡…
[pinµ(w,³.5µ*µOFF_SHEET_HEIGHT,0,RIGHT)¡þ
š¡…
šlineµ(1,1,3,1)µ;¡þ
Ø}’~BD“I501ileaf_page_string1:6-22¥	öäÃËÁâÊË¡Ä,Ñ,»¡Ä,»	c»¡Ä	c»	cÑ¡Ä	cÑ,ÑÆÃÁÊËÃ¡Äþ»Ê»ÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³22¡þÉ²The´µschematicµgeneratorµlooksµforµaµbusµripperµinµtheµsymbolµlibrary¡þnamedµbyµtheµDesignµCompilerµsymbol_libraryµvariable.µIfµitµdoes¡þZnotµfindµone,µitµusesµtheµripperµprovidedµbyµSynopsysµinµtheµgeneric¡þ£symbolµlibraryµgeneric.slib.¡þXYouµcanµuseµsymbolsµfromµyourµownµsymbolµlibraryµandµtheµbus¡þ ripperµfromµtheµgenericµsymbolµlibrary.µHowever,µifµtheµscalingµor¡þéroute_gridµinµtheµgenericµsymbolµlibraryµisµdifferentµfromµthatµofµyour¡þ2ownµsymbolµlibrary,µyouµcannotµgenerateµanµEDIFµschematic¡þznetlists.µSynopsysµdoesµnotµallowµyouµtoµwriteµaµschematicµnetlist¡þÃthatµcontainsµcellsµofµdifferentµscalingµfactors.¡þxIfµyouµdoµnotµwantµbusesµorµifµyourµtargetµCAEµsystemµdoesµnot¡þÀsupportµbuses,µuseµtheµ³no_busµoptionµwithµtheµcreate_schematic¡þ	command.¡þ²Example´µofµSymbolµDefinition¡þ¼²Figure 6³4´µshowsµtheµgraphicµcellµsymbolµforµaµcellµcalledµAN2.¡,ƒ²&Figure 6³4³CellµSymbolµAN2¡,	ò²¥	öäÁÊËÃ¡ÄÑ	Z5	ZÆÃÃÊË¡ÄJÔfÔ¡ÄfÔf	é¡Äf	éJ	éÆÃÃÊË¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾GECéÔAÔ¡üÉ	^É¶É	^ÆÃÃ¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾ÿÿÿÿÿ··ÉÉÉ	^¡	ÀA	éé	éA	éÆÃÃ¡Ä	f	ÆÃÃ¡Ä	´d	´ÆÃ²¡×	lAN2¡æA¡#	›B¡	9Z²¡Ê	ò¡þ
Ì²Example 6³3µisµtheµcompleteµdefinitionµofµtheµcellµsymbolµin¡þFigure 6³4.’BD“I501ileaf_page_string1:6-23¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³23¡,É²&Example 6³3³Cell´µSymbolµDefinition¡þ ²symbol(AN2)´µ{¡þ]µ¡þšµAND_LEFT_Xµ=µ³µAND_X_ORIGINµ;¡þ×µAND_BOTTOM_Yµ=µ³µAND_Y_ORIGINµ;¡þµAND_TOP_Yµ=µAND_BOTTOM_Yµ+µAND_HEIGHTµ;¡þQµX_START_OF_ARCµ=µAND_LEFT_Xµ+µAND_WIDTHµ³µAND_HEIGHTµ/¡þ…2.0µ;¡þÁµAND_MIDDLE_Yµ=µAND_BOTTOM_Yµ+µAND_HEIGHTµ/µ2.0µ;¡þþµAND_RIGHT_Xµ=µAND_LEFT_Xµ+µAND_WIDTHµ;¡þxµline(AND_LEFT_X,µAND_TOP_Y,µX_START_OF_ARC,µAND_TOP_Y)µ;¡þµµline(AND_LEFT_X,AND_BOTTOM_Y,X_START_OF_ARC,AND_BOTTOM_Y)¡þé;¡þ&µline(AND_LEFT_X,µAND_BOTTOM_Y,µAND_LEFT_X,µAND_TOP_Y)µ;¡þ µarc(X_START_OF_ARC,µAND_TOP_Y,µX_START_OF_ARC,¡þÓ\¡þµµµµµAND_BOTTOM_Y,µX_START_OF_ARC,µAND_MIDDLE_Y)µ;¡þŠµpin(A,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ3,µLEFT)µ;¡þÇµpin(B,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ1,µLEFT)µ;¡þµpin(Z,µAND_RIGHT_X,µAND_MIDDLE_Y,µRIGHT)µ;¡þA}¡þÓ²The´µvariablesµatµtheµbeginningµofµthisµexampleµdefineµtheµoriginµand¡þsizeµofµtheµsymbolµinµtermsµofµvariablesµdefinedµforµtheµlibraryµasµa¡þdwhole.µYouµcanµfindµexamplesµofµtheseµvariablesµinµtheµsample¡þ­symbolµlibraryµinµ/libraries/generic.slib.µTheµlineµandµarcµgraphic¡þõattributeµstatementsµfollowµtheµvariables.µTheµlastµthreeµlines¡þ	>describeµtheµthreeµpinsµonµtheµcell.µTheµpinµattributeµstatements¡þ	‡defineµplacementµandµdirection.’aD“I501ileaf_page_string1:6-24¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³24¡þÏ²General´µAttributes¡þ‹²You´µcanµbuildµsymbolsµfromµotherµsymbols.µToµsaveµspaceµandµtime¡þÓwhenµconstructingµaµsymbolµlibrary,µdescribeµgeneral³purpose¡þsymbolsµandµuseµthemµtoµbuildµotherµsymbols.¡þÛUseµtheµsub_symbolµcomplexµattributeµtoµincludeµthese¡þ$general³purposeµsymbolsµinµtheµdefinitionµofµanotherµsymbol.²„¡þ¼²sub_symbolµ(µsymbol_name,µµx,µy,µrµ)µ;¡XIncludesµanotherµsymbolµinµtheµdefinitionµofµtheµcurrentµsymbol.¡XMTheµoriginµofµtheµsubsymbolµisµplacedµatµ(x,µy)µwithµrotationµr.¡X–Theµsymbol_nameµisµtheµnameµofµtheµsymbolµyouµwantµto¡XÞinclude.µTheµrµvalueµisµtheµangleµofµrotationµfromµ0µtoµ360¡X'degrees.µTheµxµandµyµvaluesµareµintegers.¡þ¿Note:²¡X²Youµmustµdefineµaµsymbolµinµtheµsymbolµlibraryµbeforeµyouµcan¡XPuseµitµasµaµsubsymbol.¡þAµsubsymbolµisµusefulµforµdescribingµseveralµsimilarµcomponents.¡þXForµexample,µyouµmightµuseµitµtoµdescribeµtwoµANDµgates:µAN2,¡þ¡definedµinµExample 6³3,µandµAN3,µwhichµisµsimilarµtoµAN2,µbutµhas¡þêthreeµinputsµinsteadµofµtwo.¡þ	©Theµsymbolsµforµtheseµcomponentsµhaveµsomeµpartsµinµcommon.¡þ	òSpecifically,µtheyµhaveµtheµsameµtopµandµbottomµlineµandµtheµsame¡þ
:arcµatµtheµfrontµasµshownµinµFigure 6³5.µYouµcanµcreateµaµsymbolµof¡þ
ƒthisµshapeµandµlaterµuseµitµtoµcreateµcompleteµcellµsymbols.¡þ
ÌExample 6³4µshowsµtheµsymbolµdefinitionµforµtheµsubsymbolµof¡þFigure 6³5.’aÈD“I501ileaf_page_string1:6-25¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³25¡,É²&Figure 6³5³Subsymbol´µGraphic¡,²¥	öäÃ¡ÁÊËÍÍÆÃ¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾GEC«c)‹‹‹ã‹‹ÆÃÃ¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾ÿÿÿÿÿ··‹‹3‹‹cí«ÆÃÃ¡ÄÆÃ¡Ê¡þÛ²First,µdefineµtheµsubsymbolµand_outlineµatµtheµlibraryµgroupµlevel,µas¡þ#shownµinâµExample 6³4â.¡,Õ²&Example 6³4³DefiningµaµSubsymbol¡þi²symbol(and_outline)´µ{¡þ¦AND_LEFT_Xµ=µ³µAND_X_ORIGINµ;¡þãAND_BOTTOM_Yµ=µ³µAND_Y_ORIGINµ;¡þ\AND_TOP_Yµ=µAND_BOTTOM_Yµ+µAND_HEIGHTµ;¡þ™X_START_ARCµ=µAND_LEFT_Xµ+µAND_WIDTHµ³µAND_HEIGHTµ/µ2.0µ;¡þÖAND_MIDDLE_Yµ=µAND_BOTTOM_Yµ+µAND_HEIGHTµ/µ2.0µ;¡þAND_RIGHT_Xµ=µAND_LEFT_Xµ+µAND_WIDTHµ;¡þline(AND_LEFT_X,µAND_TOP_Y,µX_START_ARC,µAND_TOP_Y)µ;¡þÊline(AND_LEFT_X,µAND_BOTTOM_Y,µX_START_ARC,µAND_BOTTOM_Y)¡þþ;¡þ:arc(X_START_ARC,µAND_TOP_Y,µX_START_ARC,µAND_BOTTOM_Y,µ\¡þwµµµµX_START_ARC,µAND_MIDDLE_Y)µ;¡þ´}¡þ	O²Only´µtheµtopµandµbottomµlinesµandµtheµarcµalongµtheµrightµsideµofµthe¡þ	˜symbolµareµdefined;µtheµleftµsideµisµnotµyetµdefined.µTheµcellµsymbol¡þ	àdefinitionµcanµidentifyµtheµleftµside.µUseµtheµsubsymbolµinµaµvarietyµof¡þ
)cellµsymbolµdefinitions.¡þ
ÌAfterµtheµand_outlineµsubsymbolµisµdefined,µyouµcanµuseµitµinµthe¡þdescriptionµofµtheµAN2µcellµpicturedµinµFigure 6³6.’ÈD“I501ileaf_page_string1:6-26¥	öä¥	öä¡8Á²âBuilding´µaµSymbolµLibrary¡.6³26¡,É²&Figure 6³6³Subsymbol´µinµaµSymbolµGraphicµ(AN2)¡,!²¥	öäÃ¡ÁÊËÍE\\\Í\\\EÆÃ¡Ìÿÿÿÿÿÿ»«ÿÿÿÿÿÿº@Kææ>¢*ËŒËäËŒÆÃÃ¡Ìÿÿÿÿÿÿ»«ÿÿÿÿÿÿº@ÿÿÿÿÿ´à¡Ë4ËŒ¢ï>æ>ÆÃÃ¡Ä>\ÆÃÃ¡Ä\\ÆÃÃ¡ÄÌÆÃÃ¡ÄX[XÆÃÃ¡ÄÍ]ÍÆÃ²¡ä€Z¡(EA¡(°B²¡Ð‘AN2²¡Ê!¡þß²Example 6³5µdescribesµtheµAN2µcell.¡,²&Example 6³5³UsingµaµSubsymbolµinµaµCellµSymbolµDescriptionµ(AN2)¡þ$²symbol(AN2)´µ{¡þaµ¡þžµµsub_symbol(and_outline,µ0,0,0)µ;¡þµµline(AND_LEFT_X,µAND_BOTTOM_Y,µAND_LEFT_X,µAND_TOP_Y)µ;¡þ’µµpin(A,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ3,µLEFT)µ;¡þÏµµpin(B,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ1,µLEFT)µ;¡þµµpin(Z,µAND_RIGHT_X,µAND_MIDDLE_Y,µRIGHT)µ;¡þH}¡þ§²To´µdefineµanµANDµgateµwithµthreeµinputsµ(AN3),µuseµtheµsame¡þïsubsymbolµandµdefineµaµleftµsideµwithµthreeµinputµpins,µasµshownµin¡þ8Figure 6³7.µExample 6³6µshowsµaµsubsymbolµinµaµsymbolµgraphic¡þ€(AN3).¡,	2²&Figure 6³7³SubsymbolµinµSymbolµGraphicµ(AN3)¡,
Š²¥	öäÃ¡ÄÝ	öH	öÆÃÃÊË¡Ä]	lz	l¡Äz	lz
€¡Äz
€]
€ÆÃÃÊË¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾GECü	lT	lµ	”Ý	öÝNÝ	öÆÃÃ¡Ìÿÿÿÿÿÿ¼;ÿÿÿÿÿÿ¾ÿÿÿÿÿ··ÉÝžÝ	öµ
XT
€ü
€T
€ÆÃÃ¡Ä	¨z	¨ÆÃÃ¡Ä	ùz	ùÆÃÃ¡Ä
Ky
KÆÃ²¡6	‘A¡6	çB¡6
4C¡ú	çZ¡ø
AN3²¡Ê
Š’D“I501ileaf_page_string1:6-27¥	öäÃËÁâÊË¡Ä,Ê,´¡Ä,´	c´¡Ä	c´	cÊ¡Ä	cÊ,ÊÆÃÁÊËÃ¡Äþ´Ê´ÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¤6³27¡,É²&Example 6³6³Using´µaµSubsymbolµinµaµCellµSymbolµDescriptionµ(AN3)¡þS²symbol(AN3)´µ{¡þÈµµsub_symbol(and_outline,µ0,0,0)µ;¡þ<µµline(AND_LEFT_X,µAND_BOTTOM_Y,µAND_LEFT_X,µAND_TOP_Y)µ;¡þ±µµpin(A,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ3,µLEFT)µ;¡þëµµpin(B,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ2,µLEFT)µ;¡þ&µµpin(C,µAND_LEFT_X,µAND_BOTTOM_Yµ+µ1,µLEFT)µ;¡þ`µµpin(Z,µAND_RIGHT_X,µAND_MIDDLE_Y,µRIGHT)µ;¡þš}¡þ(²Note:²¡Xq²The´µcompare_libµcommandµinµlc_shellµflagsµsub_symbol¡Xºdeclarationsµasµextraµsymbols.µTypically,µaµsubsymbolµappears¡Xonlyµinµaµgenericµsymbolµlibraryµthatµhasµnoµcorresponding¡XKtechnologyµlibraryµforµcomparison.¡þ²Template´µAttributes¡þŠ²Use´µaµsheetµtemplateµwhenµyouµdisplayµyourµschematics.µTemplates¡þÓdefineµtheµborderµboxesµandµtheµidentificationµblockµforµeachµsheet.¡þBuildµtemplatesµforµeachµsheetµsizeµyouµuse.µIncludeµtheµAmerican¡þdA³Eµsheets,µtheµEuropeanµA0³A4µsheets,µaµMentor³specificµsheet,¡þ­andµanµinfiniteµsheet.µEachµsheetµhasµtwoµversions:µoneµfor¡þõlandscapeµorientationµandµoneµforµportraitµorientation.µAµlandscape¡þ	>sheetµisµwiderµthanµitµisµtall;µaµportraitµsheetµisµtallerµthanµitµisµwide.¡þ	ÇTemplatesµareµbuiltµinµsymbolµgroupsµwithµtheµfollowingµattributesµat¡þ
theµsymbolµgroupµlevel:¡þ
ƒtemplateµ:µ"template_name²´µ²"´µ;¡X
ÌDefinesµaµsymbolµasµaµtemplate.µTheµtemplate_nameµisµthe¡Xnameµofµtheµtemplate.’¥D“I501ileaf_page_string1:6-28¥	öä¥	öä¡8Á²âBuilding´µaµSymbolµLibrary¡.6³28¡þÉ²landscape´µ:µtrueµ|µfalseµ;¡XIdentifiesµtheµorientationµofµtheµtemplate:µtrueµgivesµaµlandscape¡XZtemplateµandµfalseµgivesµaµportraitµorientation.¡þºvariableµ(µ"variable_name",µx,µy,µ"layer"µ)µ;¡XStoresµtheµtextµassociatedµwithµtheµtemplate.²&µ²Theµvariable_name¡XKisµanyµvariableµavailableµinµtheµDesignµCompilerµprogram.µSome¡X“commonµvaluesµareµcurrent_design,µcompany,µandµsheet.¡XóTheµxµandµyµcoordinatesµareµintegersµindicatingµtheµpositionµof¡X;theµtextµonµtheµtemplate.µTheµvalueµofµlayerµdeterminesµwhich¡X„layerµDesignµAnalyzerµusesµtoµdisplayµtheµtext;µitµisµoneµofµthe¡XÍlayerµnamesµdescribedµpreviouslyµinµthisµchapter.¡þ,set_usable_areaµ(µx1,µy1,µx2,µy2µ)¡XtIndicatesµtheµportionµofµtheµsheetµthatµcanµoccupyµtheµschematic¡X½drawing.²&µ²Theµ(x1µandµy1)µcoordinatesµareµintegersµdefiningµthe¡Xlocationµofµtheµlower³leftµcornerµinµroute_grids;²&µ²(x2µandµy2)µare¡XNintegersµidentifyingµtheµupper³rightµcorner.¡þ®set_infinite_template_locationµ(µx,µyµ)µ;¡XöDeterminesµtheµplacementµofµtheµtemplateµonµaµsheetµofµpaper.¡X?Anµinfiniteµtemplateµproducesµtheµentireµschematicµonµoneµsheet.¡XžTheµ²&x²µandµ²&y²µvaluesµinµtheµattributeµareµfloating³pointµnumbers¡Xçbetweenµzeroµandµone.µUsingµ(0,0)µputsµtheµlower³leftµcornerµof¡X/theµschematicµinµtheµlower³leftµcornerµofµtheµsheet.µUsingµ(0.5¡Xxandµ0.5)µputsµtheµlower³leftµcornerµofµtheµschematicµinµtheµcenter¡XÁofµtheµsheet.µUseµtheµattributeµinsteadµofµset_usable_areaµwhen¡X		youµdescribeµanµinfiniteµtemplate.µExample 6³8µisµanµexampleµof¡X	Ranµinfiniteµtemplate.¡þ	ú²Building´µtheµBorders¡þ
ƒ²The´µbordersµofµaµtemplateµareµdefinedµinµaµsymbolµgroupµbyµusing¡þ
Ìtheµattributesµpreviouslyµdescribed.µExample 6³7µisµanµexampleµofµa¡þtemplateµdesignedµtoµfitµonµanµA³sizeµsheet.’¥¥D“I501ileaf_page_string1:6-29¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³29¡,É²&Example 6³7³A³Size´µSheetµTemplate¡þ]²symbol(template_A)´µ{¡þšµµtemplateµ:µ"A"µ;¡þ×µµlandscapeµ:µtrueµ;¡þµµsub_symbol(key_box,µA_SHEET_WIDTHµ³µKEY_BOX_WIDTHµ³¡þHµµµµFONT_SIZE/2,µFONT_SIZEµ/2,0)µ;¡þ…µµset_usable_area(FONT_SIZEµ/µ2,µKEY_BOX_HEIGHTµ+µ¡þ¸FONT_SIZE,\¡þõµµµµA_SHEET_WIDTH³FONT_SIZEµ/µ2,µ¡þ)A_SHEET_HEIGHT³FONT_SIZEµ/µ2);¡þfµµ/*µboxµaroundµallµ*/¡þ£µµline(0,µ0,µA_SHEET_WIDTH,µ0)µ;¡þàµµline(A_SHEET_WIDTH,µ0,µA_SHEET_WIDTH,µ¡þA_SHEET_HEIGHT)µ;¡þQµµline(A_SHEET_WIDTH,µA_SHEET_HEIGHT,µ0,µ¡þ…A_SHEET_HEIGHT)µ;¡þÁµµline(0,µA_SHEET_HEIGHT,µ0,0)µ;¡þþ}¡þ™²The´µtemplateµsymbolµisµcalledµtemplate.µTheµtemplateµname,µA,µisµin¡þâtheµDesignµAnalyzer'sµmenu.µTheµsubsymbolµisµkey_box.¡þ+Example 6³9µshowsµtheµconstructionµofµaµkeyboxµsubsymbol.µThe¡þsusableµareaµofµtheµsheetµisµdefinedµasµtheµareaµinsideµtheµborders,¡þ¼butµoutsideµtheµkeyµbox.¡þ_Toµdescribeµanµinfiniteµtemplate,µuseµthe¡þ§set_infinite_template_locationµattributeµinsteadµofµset_usable_area¡þðasµshownµinµExample 6³8.’¥CD“I501ileaf_page_string1:6-30¥	öä¥	öä¡8Á²âBuilding´µaµSymbolµLibrary¡.6³30¡,É²&Example 6³8³Describing´µanµInfiniteµTemplate¡þ\²symbol(template_infinite)´µ{¡þ™µµµµtemplateµ:µ"infinite"µ;¡þÕµµµµlandscapeµ:µtrueµ;¡þµµµµsub_symbol(key_box,µ³µKEY_BOX_WIDTH,µ\¡þNµµµµµµµµµµµµµµµ³µKEY_BOX_HEIGHTµ³µFONT_SIZEµ*µ2,µ0)µ;¡þ‹µµµµset_infinite_template_location(0,0)µ;¡þÇ/*µStartsµtheµinfiniteµtemplateµatµtheµlowerµleftµcorner¡þû*/¡þ8}¡þ²Building´µtheµKeyµBox¡þ­²A´µkeyµboxµisµaµsubsymbolµusedµwithµtheµtemplateµsymbols.µTheµkey¡þöbox,µusuallyµplacedµinµtheµlowerµrightµcorner,µgivesµinformationµabout¡þ>theµdesignµandµitsµcreator.µTheµkeyµboxµinµExample 6³9µisµshownµin¡þ‡Figure 6³8.¡,5²&Figure 6³8³KeyµBoxµGraphicµSymbol¡,P²¥	öäÃËÁÊË¡ÄKi¡ÄiUi¡ÄUiUK¡ÄUKKÆÃÊËÃ¡ÄÎUÎÆÃÃ¡ÄÌiÌKÆÃÃ¡ÄiKÆÃ²&¡$µDesign¡­µDate¡$2Technology¡è2Company¡­2Sheet¡´Designer²¡ÊP¡,	²&Example 6³9³KeyµBoxµSubsymbolµDefinition¡þ	«²KEY_BOX_WIDTH´µ=µA_SHEET_HEIGHTµ³µFONT_SIZEµ;¡þ	çKEY_BOX_HEIGHTµ=µ4µ*µFONT_SIZEµ;¡þ
asymbol(key_box)µ{¡þ
µµ/*µboxµaroundµallµ*/¡þ
Úµµline(0,µ0,µKEY_BOX_WIDTH,µ0)µ;¡þµµline(KEY_BOX_WIDTH,µ0,µKEY_BOX_WIDTH,µKEY_BOX_HEIGHT)µ;’C°D“I501ileaf_page_string1:6-31¥	öä¥	öä¡±Á²âBuilding´µaµSymbolµLibrary¡Ô¤ÿ¤6³31¡þÃ²´µµline(KEY_BOX_WIDTH,µKEY_BOX_HEIGHT,µ0,µKEY_BOX_HEIGHT)µ;¡þµµline(0,µKEY_BOX_HEIGHT,µ0,0)µ;¡þzµµ/*µinnerµlinesµ*/¡þ¶µµline(0,KEY_BOX_HEIGHTµ/µ2,µKEY_BOX_WIDTH,¡þêKEY_BOX_HEIGHT/µ2);¡þ'µµline((1.0/3.0)µ*µKEY_BOX_WIDTH,0,(1.0/3.0)µ*¡þ[KEY_BOX_WIDTH,µ\¡þ˜µµµµµµµµKEY_BOX_HEIGHT)µ;¡þÕµµline((2.0/3.0)µ*µKEY_BOX_WIDTH,µ0,µ\¡þµµµµµµ(2.0/3.0)µ*µKEY_BOX_WIDTH,KEY_BOX_HEIGHT)µ;¡þOµµ/*µvariablesµ*/¡þÈµµLOW_Yµ=µFONT_SIZEµ/µ2µ;¡þµµHIGH_Yµ=µLOW_Yµ+µKEY_BOX_HEIGHTµ/µ2µ;¡þµµLEFT_Xµ=µFONT_SIZEµ/µ2µ;¡þ¼µµMIDDLE_Xµ=µFONT_SIZEµ/µ2µ+µ(1.0µ/µ3.0)µ*µKEY_BOX_WIDTHµ;¡þùµµRIGHT_Xµ=µFONT_SIZEµ/µ2µ+µ(2.0µ/µ3.0)µ*µKEY_BOX_WIDTHµ;¡þsµµvariable("design",µLEFT_X,µHIGH_Y,¡þ§"template_text_layer")µ;¡þãµµvariable("technology",µLEFT_X,¡þLOW_Y,"template_text_layer")µ;¡þTµµvariable("designer",MIDDLE_X,¡þˆHIGH_Y,"template_text_layer")µ;¡þÅµµvariable("company",µMIDDLE_X,µLOW_Y,¡þù"template_text_layer")µ;¡þ6µµvariable("date",µRIGHT_X,µHIGH_Y,µ"template_text_layer")¡þj;¡þ§µµvariable("sheet",µRIGHT_X,µLOW_Y,µ"template_text_layer")¡þÚ;¡þ	µµ}’°D“I501ileaf_page_string1:6-32¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Building´µaµSymbolµLibrary¡.6³32¡,Õ²Special´µSymbols¡þ”²In´µadditionµtoµtheµcomponentµsymbols,µaµsymbolµlibraryµcontainsµa¡þÝnumberµofµspecialµsymbols.µSpecialµsymbolsµincludeµpageµborders,¡þ%off³sheetµconnectors,µaµbusµripper,µandµtheµprimitivesµthatµmakeµup¡þnpinµsymbols.µMakeµspecialµsymbolsµasµelaborateµorµasµsimpleµas¡þ·youµlike.µµ²&µ¡þY²Describeµspecialµsymbolsµtheµsameµwayµasµcellµsymbols.¡þ¢Example 6³10,µtakenµfromµtheµsampleµsymbolµlibraryµinµgeneric.slib,¡þëdescribesµtheµlogic_0µandµin_oscµsymbols.¡,œ²&Example 6³10³DefiningµSpecialµSymbols¡þ0²´µsymbol(logic_0)µ{¡þmµµµline(0,0,0,³µ1.25)µ;¡þªµµµline(µ³.75,³µ1.25,.75,³µ1.25)µ;¡þçµµµline(µ³.75,³µ1.27,0,³µ2)µ;¡þ$µµµline(.75,³µ1.27,0,³µ2)µ;¡þaµµµpin(a,0,0,RIGHT)µ;¡þžµ}¡þµsymbol(in_osc)µ{¡þTµµµsub_symbol(osc,µ0,µ0,µ0)µ;¡þ‘µµµpin(a,.5µ*µOFF_SHEET_HEIGHT,µ0,µRIGHT)µ;¡þÎµ}¡þ	i²The´µvalueµforµOFF_SHEET_HEIGHTµisµassignedµinµtheµvariable¡þ	²definitionsµatµtheµbeginningµofµtheµlibrary.µYouµcanµscaleµthisµsymbol¡þ	útoµfitµanyµtemplateµdefinedµinµaµlibrary.’€D“I501ileaf_page_string1:6-33¥	öäÃËÁâÊË¡Ä,¯,™¡Ä,™	c™¡Ä	c™	c¯¡Ä	c¯,¯ÆÃÁÊËÃ¡Ä,™Ê™ÆÃ¥	öä¥	öä¡±Á²Building´µaµSymbolµLibrary¡Ô¤ÿ¤6³33¡þÉ²The´µcompletedµlibraryµhasµaµsymbolµforµeachµofµtheµfollowingµspecial¡þsymbols:¡þŸlogic_1¡þèlogic_0¡þ0in_port¡þyout_port¡þÂripper¡þ
inout_port¡þSin_osc¡þœout_osc¡þäinout_osc¡,ï²Library´µCompilerµChecks¡þ¿²When´µyouµuseµthe²µ²DesignµCompilerµread_libµcommandµtoµloadµa¡þsymbolµlibrary,µitµperformsµaµnumberµofµconsistencyµchecksµforµthe¡þQfollowing:¡þÞ²S¡XÞ²Duplicateµsymbolsµandµduplicateµpinsµonµaµsymbol.¡þX²S¡XX²Existenceµofµspecialµsymbolsµinµtheµlibrary.µSpecialµsymbols¡XŸincludeµpowerµandµgroundµsymbols,µandµin,µout,µandµinoutµports.¡þ	²S¡X	²Invalidµpinµdefinitions.µForµexample,µtwoµpinsµcannotµhaveµthe¡X	_sameµapproachµdirectionµ(LEFT)µandµtheµsameµcoordinate¡X	¦valuesµ(x,µy).¡þ
 ²S¡X
 ²Pinµdefinitionsµthatµdoµnotµfallµexactlyµonµtheµgrid.¡þ
š²S¡X
š²Duplicateµlayerµdefinitions.¡þ²S¡X²Symbolsµwithµnoµname.’€ÐOPS m:m:D€‚Document:7techÿ‚Last saved on:Tue, Dec 9, 1997 17:53:13ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°}wst:helvps16bi±}:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå®å€å™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’J´¤D“I501ileaf_page_string1:7-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¾7³1¡,m²².7â²/¥	öä¡Õm²â¡,M²	Building´µaµTechnologyµLibrary¡º²¥	öäÁÊËÃ¡Ä,žÊžÆÃ¡	öº¡þGThe´µlibraryµdescriptionµidentifiesµtheµcharacteristicsµofµaµtechnology¡þlibraryµandµtheµcellsµitµcontains.µCreatingµaµlibraryµdescriptionµforµa¡þÙCMOSµtechnologyµlibraryµinvolvesµtheµfollowingµconceptsµandµtasks¡þ!explainedµinµthisµchapter:¡þ‘²S¡X‘²Creatingµlibraryµgroups¡þõ²S¡Xõ²Usingµgeneralµlibraryµattributes¡þY²S¡XY²Documentingµlibraries¡þ½²S¡X½²Definingµunits¡þ	!²S¡X	!²Usingµpiecewiseµlinearµattributes¡þ	…²S¡X	…²Describingµpads¡þ	é²S¡X	é²Describingµpower¡þ
L²S¡X
L²Usingµprocessingµattributes¡þ
°²S¡X
°²Settingµminimumµcellµrequirements¡þ²S¡X²UsingµCMOSµdefaultµattributes’¤'D“I501ileaf_page_string1:7-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‰,s¡Ä,s	cs¡Ä	cs	c‰¡Ä	c‰,‰ÆÃÁÊËÃ¡ÄþsÊsÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³2¡,Õ²Creating´µLibraryµGroups¡þ¡²The´µlibraryµgroupµcontainsµtheµentireµlibraryµdescription.µEachµlibrary¡þésourceµfileµmustµhaveµonlyµoneµlibraryµgroup.µAttributesµthatµapplyµto¡þ2theµentireµlibraryµareµdefinedµatµtheµlibrary³groupµlevel.µThisµchapter¡þ{describesµtheseµlibraryµgroupµlevelµattributes.µSeeµChapterµ17,¡þÃBuildingµEnvironments,"µforµinformationµaboutµtheµdefaultµattributes¡þandµscalingµfactors,µwhichµareµotherµlibraryµlevelµattributes.µRefer¡þUalsoµtoµthe²&µLibraryµCompilerµReferenceµManualµVolumeµ1µ²for¡þspecificµinformationµaboutµtheµattributes.¡þIDefineµtheµlibrary³levelµattributesµatµtheµbeginningµofµtheµlibrary¡þ’description.¡þ>Theµlibraryµdescriptionµalsoµcontainsµseveralµgroupµstatementsµthat¡þ‡areµdefinedµatµtheµlibraryµgroupµlevel.µChapterµ8,µDefiningµCore¡þÏCells,"µexplainsµhowµtoµdefineµtheseµgroups.¡þÃ²Syntax¡þl²Example 7³1µshowsµtheµgeneralµsyntaxµofµtheµlibrary.µTheµfirst¡þ´statementµnamesµtheµlibrary.µTheµfollowingµstatementsµare¡þýlibrary³levelµattributesµthatµapplyµtoµtheµlibraryµasµaµwhole.µThese¡þ	Fstatementsµdefineµlibraryµfeaturesµsuchµasµtechnologyµtype,µdate,¡þ	Žandµrevision,µandµdefinitionsµandµdefaultsµthatµapplyµtoµtheµlibraryµin¡þ	×general.µEveryµcellµinµtheµlibraryµhasµaµseparateµcellµdescription.¡þ
ƒForµaµcompleteµlistµandµtheµsyntaxµofµallµtheµgroupsµandµattributesµin¡þ
Ìaµtechnologyµlibrary,µreferµtoµtheµ²&LibraryµCompilerµReferenceµManual¡þVolumeµ1.’'‰D“I501ileaf_page_string1:7-3¥	öä¥	öä¡[Á²âBuilding´µaµTechnologyµLibrary¡Ô¤ÿ¾7³3¡,É²&Example 7³1³General´µSyntaxµofµtheµLibraryµDescription¡þ]²library´µ(²(name²)µ{¡þš¡…štechnologyµ(²(name)²µ;/*µlibrary³levelµattributesµ*/¡þ×¡…×delay_modelµ:µgeneric_cmosµ|µtable_lookupµ|¡þ¡…¡¡“µµµµµcmos2µ|µpiecewise_cmosµ;¡þG¡…Gbus_naming_styleµ:µ²(string²µ;¡þ„¡…„routing_layers(²(string²);¡þÁ¡…Ádateµ:µ²(string²µ;¡þþ¡…þrevisionµ:µ²(float_or_string²µ;¡þ;¡…;commentµ:µ"²(string²"µ;¡þx¡…xtime_unitµµ:µ²(unit²µ;¡þ´¡…´voltage_unitµ:µ²(unit²µ;¡þñ¡…ñcurrent_unitµ:µ²(unit²µ;¡þ.¡….pulling_resistance_unitµ:µ²(unit²µ;¡þk¡…kcapacitive_load_unit(²(value²,²(unit²);¡þ¨¡…¨leakage_power_unitµ:µ²(unit²µ;¡þå¡…åpiece_typeµ:µ²(type²µ;¡þ"¡…"piece_defineµ("²(list²")µ;¡þ^¡…^define_cell_area(²(area_name²,²(resource_type²);¡þ›¡…›in_place_swap_modeµ:µmatch_footprintµ|¡þÏ¡…Ïµµµµµµµno_swappingµ;¡þ¡…library_featuresµ(²(value²);¡þI¡…Isimulationµ:µtrueµ|µfalseµ;¡þ†¡…†²(defaultµvalues¡¡†²/*µenvironmentµdefinitionsµ*/¡þÃ¡…Ãoperating_conditionsµ(²(name²){¡þÿ¡…ÿ¡ÿ²(operatingµconditions¡þ<²¡…<}¡þy¡…ytiming_rangeµ(²(name²)µ{¡þ¶¡…¶¡¶µµ²(timingµinformation¡þó²¡…ó}¡þ	0¡…	0wire_loadµ(²(name²)µµ{¡þ	l¡…	l¡	lµµ²(wireµloadµinformation¡þ	©²¡…	©}¡þ	æ¡…	æwire_load_selection()µ{¡þ
#¡…
#¡
#µµ²(area/groupµselections¡þ
`²¡…
`}¡þ
¡…
power_lut_templateµ(²(name²)µµ{¡þ
Ú¡…
Ú¡
Úµµ²(powerµlookupµtableµtemplateµinformation¡þ²¡…}’‰!D“I501ileaf_page_string1:7-4¥	öäÃËÁâÊË¡Ä,­,—¡Ä,—	c—¡Ä	c—	c­¡Ä	c­,­ÆÃÁÊËÃ¡Äþ—Ê—ÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³4¡þÃ²¡…Ãcell´µ(²(name1²)µ{¡¡Ã/*µcellµdefinitionsµ*/¡þ²(¡…¡µµcellµinformation¡þ=²¡…=}¡þz¡…zcellµ(²(name2²)µ{¡þ¶¡…¶¡¶µµ²(cellµinformation¡þó²¡…ó}¡þ0¡…0scaled_cellµ(²(name1²)µ{¡þm¡…m¡mµµ²(alternateµscaledµcellµinformation¡þª²¡…ª}¡þç¡…ç...¡þ$¡…$typeµ(²(name²)µ{¡þa¡…a¡aµµ²(busµtypeµname¡þž²¡…ž}¡þÚ¡…Úinput_voltageµ(²(name²)µ{¡þ¡…¡µµ²(inputµvoltageµinformation¡þT²¡…T}¡þ‘¡…‘output_voltageµ(²(name²)µ{¡þÎ¡…Î¡Îµµ²(outputµvoltageµinformation¡þ²¡…}¡þç²library´µGroup¡þ‡²The´µlibraryµgroupµstatementµdefinesµtheµnameµofµtheµlibraryµyou¡þÏwantµtoµdescribe.µItµisµrequiredµasµtheµfirstµexecutableµlineµinµyour¡þlibrary.¡þ÷²Example¡þ	B²library´µ(my_library)µ{¡þ	...¡þ	¼}’!‹D“I501ileaf_page_string1:7-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,÷¡Ä,÷	c÷¡Ä	c÷	c¡Ä	c,ÆÃÁÊËÃ¡Äþ÷Ê÷ÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¾7³5¡,Õ²Using´µGeneralµLibraryµAttributes¡þ”²These´µareµattributesµthatµapplyµgenerallyµtoµtheµtechnologyµlibrary:¡þ²S¡X²technology¡þŒ²S¡XŒ²delay_model¡þ²S¡X²bus_naming_style¡þs²S¡Xs²routing_layers¡þG²technology´µAttribute¡þæ²This´µattributeµidentifiesµtheµfollowingµtechnologyµtoolsµusedµinµthe¡þ.library:¡þ³²S¡X³²CMOSµ(default)¡þ'²S¡X'²FPGA¡þ¸Thisµmustµbeµtheµfirstµattributeµdefined,µandµitµmustµbeµplacedµatµthe¡þtopµofµtheµlisting.¡þà²Example¡þ	+²technology´µ(cmos);’‹õD“I501ileaf_page_string1:7-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Q,;¡Ä,;	c;¡Ä	c;	cQ¡Ä	cQ,QÆÃÁÊËÃ¡Äþ;Ê;ÆÃ¥	öäÃÁÊË¡Ä,	ƒ,	m¡Ä,	m	c	m¡Ä	c	m	c	ƒ¡Ä	c	ƒ,	ƒÆÃÁÊËÃ¡Äþ	mÊ	mÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³6¡þÏ²delay_model´µAttribute¡þL²This´µattributeµindicatesµtheµdelayµmodelµtoµuseµinµtheµdelay¡þ•calculations.µModelsµareµµ¡þ²S¡X²generic_cmosµ(default)¡þf²S¡Xf²table_lookup¡þÉ²S¡XÉ²cmos2¡þ+²S¡X+²piecewise_cmosµ(optional)¡þ¡Thisµattributeµmustµfollowµtheµtechnologyµattributeµorµbeµtheµfirst¡þêattributeµinµtheµlibraryµifµaµtechnologyµattributeµisµnotµpresent.¡þ²Example¡þÖ²delay_model´µ:µtable_lookup;¡þ‹²bus_naming_style´µAttribute¡þ	²This´µattributeµdefinesµtheµnamingµconventionµforµbusesµinµtheµlibrary.¡þ¯²Example¡þõ²bus_naming_style´µ:µ"Bus%sPin%d";¡þ²Note:²¡XÈ²You´µcannotµredefineµtheµbus_naming_styleµofµaµtechnology¡X	libraryµfromµtheµlc_shellµorµdc_shellµprompt.¡þ	½²routing_layers´µAttribute¡þ
:²This´µattributeµdeclaresµtheµroutingµlayersµavailableµforµplaceµand¡þ
ƒrouteµforµtheµlibrary.µThisµattributeµisµaµstringµthatµrepresentsµthe¡þ
Ìsymbolicµnameµusedµlaterµinµaµlibraryµtoµdescribeµroutability¡þinformationµassociatedµwithµeachµlayer.’õ‘D“I501ileaf_page_string1:7-7¥	öäÃËÁâÊË¡Ä,k,U¡Ä,U	cU¡Ä	cU	ck¡Ä	ck,kÆÃÁÊËÃ¡Ä,UÊUÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¾7³7¡þÉ²This´µattributeµmustµbeµdefinedµinµtheµlibraryµbeforeµotherµroutability¡þinformationµinµaµcell.µOtherwise,µcellµroutabilityµinformationµinµthe¡þZlibraryµisµconsideredµanµerror.µEachµdifferentµlibraryµcanµhaveµonly¡þ£oneµrouting_layersµcomplexµattribute.¡þ¤²Example¡þó²routing_layers´µ("routing_layer_one,µrouting_layer_two");¡þ˜²You´µcanµdisplayµrouting_layersµinformationµinµaµlibraryµwithµthe¡þáreport_libµcommand.µTheµreportsµlookµsimilarµtoµtheµfollowingµreport:µ¡þq²Porosity´µinformation:¡þ¥Routing_layers:¡þÙµµµµ"metal2"µ"metal3"¡þdefault_min_porosity:µ15.0¡þ²²If´µthereµisµnoµporosityµinformationµinµtheµlibrary,µreport_libµdisplays¡þûtheµfollowingµline:¡þ‹²No´µporosityµinformationµspecified.¡,«²Documenting´µLibraries¡þ	†²Use´µtheseµlibrary³levelµattributesµtoµdocumentµtheµlibrary:¡þ
²S¡X
²date¡þ
–²S¡X
–²revision¡þ²S¡X²comment’‘.D“I501ileaf_page_string1:7-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Þ,È¡Ä,È	cÈ¡Ä	cÈ	cÞ¡Ä	cÞ,ÞÆÃÁÊËÃ¡ÄþÈÊÈÆÃ¥	öäÃÁÊË¡Ä,J,4¡Ä,4	c4¡Ä	c4	cJ¡Ä	cJ,JÆÃÁÊËÃ¡Äþ4Ê4ÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³8¡þÏ²date´µAttributeµ¡þ_²This´µattributeµidentifiesµtheµdateµyourµlibraryµwasµcreated.¡þ&²Example¡þo²date´µ:µ"Januaryµ1,µ1996";¡þ²The´µlibraryµreportµproducedµbyµtheµreport_libµcommandµshowsµthe¡þKdate.¡þ²revision´µAttribute¡þ¨²This´µattributeµdefinesµaµrevisionµnumberµforµyourµlibrary.¡þo²Example¡þ¸²revision´µ:µ1997.08;¡þ„²comment´µAttribute¡þ²Use´µthisµattributeµtoµincludeµinformationµyouµwantµprintedµinµthe¡þ]report_libµreport.µYouµcanµincludeµonlyµoneµcommentµlineµinµaµlibrary.¡þ¦Youµcanµuseµanµunlimitedµnumberµofµcharactersµinµtheµstring,µbut¡þïmustµencloseµallµcharactersµinµquotes.¡þ	µ²Example¡þ
²Useµtheµcommentµattributeµtoµprintµcopyrightµorµotherµproduct¡þ
dinformationµinµtheµlibraryµreportµasµinµthisµexample.¡þ
Û²comment´µ:µ"Copyrightµ1994,µGeneralµSilicon,µInc."’.-D“I501ileaf_page_string1:7-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Ð,º¡Ä,º	cº¡Ä	cº	cÐ¡Ä	cÐ,ÐÆÃÁÊËÃ¡ÄþºÊºÆÃ¥	öäÃÁÊË¡Ä,	:,	$¡Ä,	$	c	$¡Ä	c	$	c	:¡Ä	c	:,	:ÆÃÁÊËÃ¡Äþ	$Ê	$ÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¾7³9¡,Õ²Defining´µUnits¡þh²The´µDesignµCompilerµprogramµisµunitless.µHowever,µunitsµare¡þ°requiredµtoµcreateµVHDLµlibrariesµandµreports.µUseµthese¡þùlibrary³levelµattributesµtoµdefineµunits:¡þh²S¡Xh²time_unit¡þË²S¡XË²voltage_unit¡þ.²S¡X.²current_unit¡þ²S¡X²pulling_resistance_unit¡þó²S¡Xó²capacitive_load_unit¡þV²S¡XV²leakage_power_unit¡þÌTheµunitµattributesµidentifyµtheµunitsµsuchµasµnanosecondsµor¡þpicofaradsµusedµinµtheµlibraryµdefinitions.µTheµLibraryµCompiler¡þ^programµdoesµnotµdoµanyµconversions.¡þ
²time_unit´µAttributeµ¡þˆ²The´µVHDLµlibraryµgeneratorµusesµthisµattributeµtoµidentifyµthe¡þÑphysicalµtimeµunitµusedµinµtheµgeneratedµlibrary.¡þx²Example¡þ¾²time_unit´µ:µ"10ps";¡þ	t²voltage_unit´µAttribute¡þ	ò²Library´µCompilerµusesµthisµattributeµtoµscaleµtheµcontentsµofµthe¡þ
:input_voltageµandµoutput_voltageµgroups.µAdditionally,µtheµvoltage¡þ
ƒattributeµinµtheµoperating_conditionsµgroupµrepresentsµvaluesµinµthe¡þ
Ìvoltageµunits.µSeeµChapterµ17,µBuildingµEnvironments,"µforµmore¡þinformation.’-<D“I501ileaf_page_string1:7-10¥	öäÃËÁâÊË¡Ä,§,‘¡Ä,‘	c‘¡Ä	c‘	c§¡Ä	c§,§ÆÃÁÊËÃ¡Äþ‘Ê‘ÆÃ¥	öäÃÁÊË¡Ä,¬,–¡Ä,–	c–¡Ä	c–	c¬¡Ä	c¬,¬ÆÃÁÊËÃ¡Äþ–Ê–ÆÃ¥	öäÃÁÊË¡Ä,i,S¡Ä,S	cS¡Ä	cS	ci¡Ä	ci,iÆÃÁÊËÃ¡ÄþSÊSÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³10¡þÉ²Example¡þ²voltage_unit´µ:µ"100mV";¡þà²current_unit´µAttribute¡þs²This´µattributeµspecifiesµtheµunitµforµtheµdrive_currentµthatµis¡þ¼generatedµbyµoutputµpads.µTheµpulling_currentµattributeµforµaµpull³up¡þorµpull³downµtransistorµalsoµrepresentsµitsµvaluesµinµtheµunit.µµ¡þÏ²Example¡þ²current_unit´µ:µ"1mA";¡þæ²pulling_resistance_unit´µAttribute¡þy²Library´µCompilerµusesµthisµattributeµtoµdefineµpulling_resistance¡þÂvaluesµforµpull³upµandµpull³downµdevices.¡þŒ²Example¡þÕ²pulling_resistance_unit´µ:µ"10ohm";¡þ£²capacitive_load_unit´µAttribute¡þ	6²This´µattributeµspecifiesµtheµunitµforµallµcapacitanceµvaluesµwithinµthe¡þ	technologyµlibrary,µincludingµdefaultµcapacitances,µmax_fanout¡þ	Çcapacitances,µpinµcapacitances,µandµwireµcapacitances.¡þ
’²Example¡þ
Û²capacitive_load_unit(1,pf);’<òD“I501ileaf_page_string1:7-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,²,œ¡Ä,œ	cœ¡Ä	cœ	c²¡Ä	c²,²ÆÃÁÊËÃ¡Ä,œÊœÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¤7³11¡þÏ²leakage_power_unit´µAttribute¡þR²This´µattributeµindicatesµtheµunitsµofµtheµpowerµvaluesµinµtheµlibrary.¡þ²Example¡þJ²leakage_power_unit´µ:µ100uW;¡þ×²If´µthisµattributeµisµmissing,µtheµleakage³powerµvaluesµareµexpressed¡þ withoutµunits.¡,ò²Using´µPiecewiseµLinearµAttributes¡þ²Use´µtheseµlibrary³levelµattributesµforµlibrariesµwithµpiecewiseµlinear¡þÕdelayµmodels:¡þH²S¡XH²piece_type¡þ®²S¡X®²piece_define¡þX²piece_type´µAttributeµ¡þÛ²This´µattributeµletsµyouµuseµcapacitanceµtoµdefineµtheµpiecewise¡þ$linearµmodel.¡þÕ²Example¡þ	²piece_type´µ:µpiece_length;¡þ	©²The´µpiece_wire_cap,µpiece_pin_cap,µandµpiece_total_capµvalues¡þ	òrepresentµtheµpiecewiseµlinearµmodelµextensionsµthatµcause¡þ
:modelingµtoµuseµcapacitanceµinsteadµofµlength.µTheseµvaluesµare¡þ
ƒusedµtoµindicateµwireµcapacitanceµalone,µtotalµpinµcapacitance,µor¡þ
Ìtheµtotalµwireµandµpinµcapacitance.µIfµtheµpiece_typeµattributeµisµnot¡þdefined,µmodelingµdefaultsµtoµtheµpiece_lengthµmodel.’òD“I501ileaf_page_string1:7-12¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,‡¡Ä,‡	c‡¡Ä	c‡	c¡Ä	c,ÆÃÁÊËÃ¡Ä,‡Ê‡ÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³12¡þÏ²piece_define´µAttribute¡þ…²This´µattributeµdefinesµtheµpiecesµusedµinµtheµpiecewiseµlinearµdelay¡þÎmodel.µWithµthisµattribute,µyouµcanµdefineµtheµrangesµofµlengthµor¡þcapacitanceµforµindexedµvariables,µsuchµasµrise_pin_resistance,¡þ_usedµinµtheµdelayµequations.¡þYouµmustµincludeµinµthisµstatementµallµrangesµofµwireµlengthµor¡þbcapacitanceµforµwhichµyouµwantµtoµenterµaµuniqueµattributeµvalue.¡þh²Example¡þ·²piece_define´µ("0µ10µ20");¡þ]²Refer´µtoµtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µforµmore¡þ¦informationµonµtheµpiece_defineµattribute.¡,Ý²Describing´µPads¡þ¼²Use´µtheseµlibrary³levelµattributesµandµgroupsµforµpadµdescriptions:¡þ	P²S¡X	P²input_voltageµgroup¡þ	Ï²S¡X	Ï²output_voltageµgroup¡þ
N²S¡X
N²preferred_output_pad_slew_rate_controlµattribute¡þ
Î²S¡X
Î²preferred_output_pad_voltageµandµpreferred_input_pad_voltage¡Xattributes’ÓD“I501ileaf_page_string1:7-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¤7³13¡þÏ²input_voltage´µGroup¡þ‰²This´µgroupµcapturesµaµsetµofµvoltageµlevelsµatµwhichµanµinputµpadµis¡þÒdriven.¡þÞ²Example¡þ.²library´µ(my_library)µ{¡þn...¡þ­µµµinput_voltage(CMOS)µ{¡þíµµµµµvilµ:µ0.3µ*µVDD;¡þ-µµµµµvihµ:µ0.7µ*µVDD;¡þlµµµµµviminµ:µ³0.5;¡þ¬µµµµµvimaxµ:µVDDµ+µ0.5;¡þëµµµ}¡þ+}¡þÔ²You´µcanµuseµtheµinput_voltageµandµoutput_voltageµgroupsµtoµdefine¡þaµsetµofµinputµorµoutputµvoltageµrangesµforµyourµpads.µYouµcanµthen¡þeassignµthisµsetµofµvoltageµrangesµtoµtheµinputµorµoutputµpinµofµaµpad¡þ®cell.¡þlForµexample,µyouµcanµdefineµanµinput_voltageµgroupµcalledµTTLµwith¡þ´aµsetµofµhighµandµlowµthresholdsµandµminimumµandµmaximum¡þývoltageµlevels.µUseµtheµfollowingµcommandµinµtheµpinµgroupµto¡þ	Fassignµthoseµrangesµtoµtheµpadµcellµpin.¡þ	Ú²input_voltage´µ:µTTLµ;¡þ
ƒ²The´µdefaultµvaluesµrepresentµnominalµoperatingµconditions.µThese¡þ
Ìvaluesµfluctuateµwithµtheµvoltageµrangeµdefinedµinµthe¡þoperating_conditionsµgroups.’ÓñD“I501ileaf_page_string1:7-14¥	öäÃËÁâÊË¡Ä,‘,{¡Ä,{	c{¡Ä	c{	c‘¡Ä	c‘,‘ÆÃÁÊËÃ¡Äþ{Ê{ÆÃ¥	öäÃÁÊË¡Ä,Ù,Ã¡Ä,Ã	cÃ¡Ä	cÃ	cÙ¡Ä	cÙ,ÙÆÃÁÊËÃ¡ÄþÃÊÃÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³14¡þÉ²All´µvoltageµvaluesµareµinµtheµunitsµyouµdefineµwithµtheµlibraryµgroup¡þvoltage_unitµattribute.¡þË²output_voltage´µGroup¡þQ²This´µgroupµcapturesµaµsetµofµvoltageµlevelsµatµwhichµanµoutputµpadµis¡þšdriven.¡þ#Theµdefaultµvaluesµrepresentµnominalµoperatingµconditions.µThese¡þlvaluesµfluctuateµwithµtheµvoltageµrangeµdefinedµinµthe¡þ´operating_conditionsµgroups.¡þ=Allµvoltageµvaluesµareµinµtheµunitsµyouµdefineµwithµtheµlibraryµgroup¡þ†voltage_unitµattribute.¡þ:²Example¡þ²library´µ(my_library)µ{¡þ»...¡þöµµoutput_voltage(GENERAL)µ{¡þ0µµµµµvolµ:µ0.4;¡þjµµµµµvohµ:µ2.4;¡þ¥µµµµµvominµ:µ³0.e;¡þßµµµµµvomaxµ:µVDDµ+µ0.3;¡þµµµ}¡þT}¡þ	²preferred_output_pad_slew_rate_control´µAttribute¡þ	˜²This´µattributeµdirectlyµembedsµtheµdesiredµslewµrateµcontrolµvalueµin¡þ	átheµlibrary.¡þ
•²Example¡þ
Ü²preferred_output_pad_slew_rate_control´µ:µ"high";’ñD“I501ileaf_page_string1:7-15¥	öäÃËÁâÊË¡Ä,Ô,¾¡Ä,¾	c¾¡Ä	c¾	cÔ¡Ä	cÔ,ÔÆÃÁÊËÃ¡Äþ¾Ê¾ÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¤7³15¡þÉ²If´µdefined,µtheµvalueµofµtheµpreferred_output_pad_slew_rate_control¡þattributeµinµtheµlibraryµisµusedµwhenµaµvalueµforµa¡þZpreferred_slew_rate_controlµattributeµhasµnotµbeenµspecified.µThe¡þ£pad³mappingµoptimizationµwithinµinsert_padsµandµcompileµusesµthis¡þìinformationµwhenµselectingµtheµcandidateµsetµofµpadsµforµmapping.¡þ¡Note:²¡Xê²Ifµtheµpreferred_output_slew_rate_controlµvalueµisµsetµwithinµa¡X2library,µtheµlibraryµshouldµsupplyµatµleastµoneµoutputµpad,µone¡X{three³stateµpad,µandµoneµbidirectionalµpadµthatµhaveµthe¡XÄslew_rate_controlµattributeµwithinµtheµcellµgroupµsetµtoµaµvalue¡Xequivalentµtoµtheµpreferredµvalue.¡þÂForµmoreµinformationµaboutµslewµrateµcontrol,µseeµChapterµ11,¡þ
DefiningµInput/OutputµPads."¡þ²preferred_output_pad_voltage´µandµ¡þYpreferred_input_pad_voltageµAttributes¡þ²These´µattributesµembedµtheµdesiredµvoltageµvaluesµinµtheµlibrary.¡þSTheµpreferredµvoltageµvaluesµareµtheµnamesµofµoutputµandµinput¡þœvoltageµgroupsµdefinedµinµtheµlibrary.¡þ	š²Example¡þ	è²´µµµpreferred_output_pad_voltageµ:µ"out_volt_group_one";¡þ
'µµµpreferred_input_pad_voltageµ:µ"in_volt_group_six";¡þ
Ì²For´µmoreµinformationµaboutµoutputµandµinputµvoltageµgroups,µsee¡þChapterµ11,µDefiningµInput/OutputµPads."’vD“I501ileaf_page_string1:7-16¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,ü,æ¡Ä,æ	cæ¡Ä	cæ	cü¡Ä	cü,üÆÃÁÊËÃ¡ÄþæÊæÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³16¡,Õ²Describing´µPower¡þž²You´µcanµdescribeµpowerµdissipationµinµlibrariesµusingµtheµCMOS¡þçnonlinearµdelayµmodel¡þ‘Toµdescribeµpower,¡þ1.¡XUseµtheµlibrary³levelµpower_lut_templateµgroupµtoµdefine¡Xatemplatesµofµcommonµinformationµtoµuseµwithµlookupµtables.¡þØ2.¡XØUseµtheµtemplateµandµtheµcell³levelµinternal_powerµgroupµinµthe¡Xpinµgroupµtoµcreateµlookupµtablesµofµpowerµinformationµ(see¡XeChapterµ13,µModelingµPower)."¡þýLookupµtablesµandµtheirµcorrespondingµtemplatesµcanµbeµone³,µtwo³,¡þEorµthree³dimensional.¡þ6²power_lut_template´µGroupµµ¡þÜ²Use´µthisµlibrary³levelµgroupµtoµcreateµtemplatesµofµcommon¡þ%informationµthatµmultipleµlookupµtablesµcanµuse.µAµtableµtemplate¡þnspecifiesµtheµtableµparametersµandµtheµbreakpointsµforµeachµaxis.¡þ¶Assignµeachµtemplateµaµname.µSoµthatµpowerµlookupµtablesµcan¡þÿreferµtoµtheµtemplate,µplaceµitsµnameµasµtheµgroupµnameµofµa¡þ	Hfall_powerµgroup,µpowerµgroup,µorµrise_powerµgroupµinµthe¡þ	internal_powerµgroupµ(seeµChapterµ13,µModelingµPower)."¡þ
:Thereµexistsµaµpredefinedµtemplateµwhoseµnameµisµscalarµand¡þ
ƒwhoseµsizeµisµ1.µYouµcanµreferµtoµitµbyµplacingµtheµstring,µscalar,µas¡þ
Ìtheµgroupµnameµofµaµfall_powerµgroup,µpowerµgroup,µorµrise_power¡þgroupµinµtheµinternal_powerµgroup.’v¿D“I501ileaf_page_string1:7-17¥	öä¥	öä¡[Á²âBuilding´µaµTechnologyµLibrary¡Ô¤ÿ¤7³17¡þÉ²This´µisµtheµsyntaxµofµtheµpower_lut_templateµgroup.¡þ@²power_lut_template(²(name²)´µ{¡þ|¡…|variable_1µ:µ²(stringµ²;¡þ·¡…·variable_2µ:µ²(stringµ²;¡þó¡…óvariable_3µ:µ²(stringµ²;¡þ.¡….index_1("²(float²,µ...µ,µ²(float²")µ;¡þj¡…jindex_2("²(float²,µ...µ,µ²(float²")µ;¡þ¥¡…¥index_3("²(float²,µ...µ,µ²(float²")µ;¡þà}¡þ¬²Template´µVariablesµ¡þ=²The´µtemplateµforµspecifyingµpowerµusesµthreeµassociatedµvariables¡þ…toµcharacterizeµcellsµinµtheµlibraryµforµinternalµpower:¡þ²S¡X²variable_1,µwhichµspecifiesµtheµfirstµdimensionalµvariable.¡þm²S¡Xm²variable_2,µwhichµspecifiesµtheµsecondµdimensionalµvariable.¡þÙ²S¡XÙ²variable_3,µwhichµspecifiesµtheµthirdµdimensionalµvariable.¡þ^Theseµvariablesµindicateµtheµparametersµusedµtoµindexµintoµthe¡þ§lookupµtableµalongµtheµfirst,µsecond,µandµthirdµtableµaxes.¡þ;Followingµareµvalidµvaluesµforµvariable_1,µvariable_2,µand¡þ„variable_3:¡þÿtotal_output_net_capacitanceµµ¡X	GThisµisµtheµloadingµofµtheµoutputµnetµcapacitanceµofµtheµpin¡X	specifiedµinµtheµpinµgroupµthatµcontainsµtheµinternal_power¡X	Ùgroup.¡þ
:total_output2_net_capacitanceµµ¡X
ƒThisµisµtheµloadingµofµtheµoutputµnetµcapacitanceµofµtheµpin¡X
Ìspecifiedµinµtheµequal_or_opposite_outputµattributeµinµthe¡Xinternal_powerµgroup.’¿âD“I501ileaf_page_string1:7-18¥	öä¥	öä¡8Á²âBuilding´µaµTechnologyµLibrary¡.7³18¡þÉ²input_transition_time´µµ¡XThisµisµtheµinputµtransitionµtimeµofµtheµpinµspecifiedµinµthe¡XZrelated_pinµattributeµinµtheµinternal_powerµgroup.¡þàForµinformationµaboutµtheµrelated_pinµattribute,µseeµChapterµ13,¡þ)ModelingµPower."¡þ
²TemplateµBreakpointsµ¡þw²Theµindexµstatementsµdefineµtheµbreakpointsµforµanµaxis.µThe¡þÀbreakpointsµdefinedµbyµindex_1µcorrespondµtoµtheµparameterµvalues¡þ	indicatedµbyµvariable_1.µTheµbreakpointsµdefinedµbyµindex_2¡þQcorrespondµtoµtheµparameterµvaluesµindicatedµbyµvariable_2.µThe¡þšbreakpointsµdefinedµbyµindex_3µcorrespondµtoµtheµparameterµvalues¡þâindicatedµbyµvariable_3.¡þ‡Youµcanµoverwriteµtheµindex_1,µindex_2,µandµindex_3µattribute¡þÏvaluesµbyµprovidingµtheµsameµindex_xµattributesµinµtheµfall_power¡þgroup,µpowerµgroup,µorµrise_powerµgroupµinµtheµinternal_power¡þagroup.²µµµ¡þ²Theµindexµvaluesµareµlistsµofµfloating³pointµnumbersµgreaterµthanµor¡þNequalµtoµ0.0.µTheµvaluesµinµtheµlistµmustµbeµinµincreasingµorder.¡þòTheµnumberµofµfloating³pointµnumbersµinµtheµindexesµdeterminesµthe¡þ	:sizeµofµeachµdimension,µasµExample 7³2µillustrates.¡þ	ßYouµmustµdefineµatµleastµoneµindex_1µinµtheµpower_lut_template¡þ
'group.µForµaµone³dimensionalµtable,µuseµonlyµvariable_1.¡þ
ÌExample 7³2µshowsµfourµpower_lut_templateµgroupsµthatµhaveµone³,¡þtwo³,µandµthree³dimensionalµtemplates.’âcD“I501ileaf_page_string1:7-19¥	öä¥	öä¡[Á²âBuilding´µaµTechnologyµLibrary¡Ô¤ÿ¤7³19¡,É²&Example 7³2³Four´µpower_lut_templateµGroupsµ¡þ ²¡… power_lut_template´µ(output_by_cap)µ{¡þ]¡…]¡]variable_1µ:µtotal_output_net_capacitanceµ;¡þš¡…š¡šindex_1µ("0.0,µ5.0,µ20.0")µ;¡þ×¡…×}¡þQ¡…Qpower_lut_templateµ(output_by_cap_and_trans)µ{¡þŽ¡…Ž¡Žvariable_1µ:µtotal_output_net_capacitanceµ;¡þÊ¡…Ê¡Êvariable_2µ:µinput_transition_timeµ;¡þ¡…¡index_1µ("0.0,µ5.0,µ20.0")µ;¡þD¡…D¡Dindex_2µ("0.1,µ1.0,µ5.0")µ;¡þ¡…¡¡þ¾¡…¾}¡þ8¡…8power_lut_templateµ(input_by_trans)µ{¡þu¡…u¡uvariable_1µ:µinput_transition_timeµ;¡þ²¡…²¡²index_1µ("0.0,µ1.0,µ5.0")µ;¡þî¡…î}¡þ¥¡…¥power_lut_templateµ(output_by_cap2_and_trans)µ{¡þâ¡…â¡âvariable_1µ:µtotal_output_net_capacitanceµ;¡þ¡…¡variable_2µ:µinput_transition_timeµ;¡þ\¡…\¡\variable_3µ:µoutput2_net_capµ;¡þ™¡…™¡™index_1µ("0.0,µ5.0,µ20.0")µ;¡þÖ¡…Ö¡Öindex_2µ("0.1,µ1.0,µ5.0")µ;¡þ¡…¡index_3µ("0.1,µ0.5,µ1.0")µ;¡þO¡…O}¡þê²Use´µtheµreport_libµ³timingµcommandµtoµreportµpower_lut_template²-¡þ	3²informationµinµtheµlibrary.µYouµcanµdoµthisµonlyµwhileµreadingµinµthe¡þ	|libraryµsourceµfileµinµtheµsameµsection.µTheµreportµwillµresembleµthe¡þ	ÄoneµshownµinµExample 7³3.’c\D“I501ileaf_page_string1:7-20¥	öäÃËÁâÊË¡Ä,,z¡Ä,z	cz¡Ä	cz	c¡Ä	c,ÆÃÁÊËÃ¡Ä,zÊzÆÃ¥	öäÃÁÊË¡Ä,9,#¡Ä,#	c#¡Ä	c#	c9¡Ä	c9,9ÆÃÁÊËÃ¡Äþ#Ê#ÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³20¡,É²&Example 7³3³power_lut_template´µReportµ¡,²-Internal´µPowerµLookupµTemplate:¡,}Template_name¡…}¡}variable_1¡}variable_2¡,²------------------------------------------------------------------------------¡,æoutput_by_cap¡…æ¡ætotal_output_net_capacitance¡,¡þindex_1µ:µ0.0000µ5.0000µ20.0000¡,Poutput_by_cap_and_transµtotal_output_net_capacitanceµinput_transition_time¡,„¡þ„index_1µ:µ0.0000µ5.0000µ20.0000¡,¹¡þ¹index_2µ:µ0.1000µ1.0000µ5.0000¡,îinput_by_trans¡îinput_transition_time¡,"¡þ"index_1µ:µ0.0000µ1.0000µ5.0000¡,Woutput_by_cap2_and_trans¡“W¡Wtotal_output2_net_capacitance¡,‹¡þ‹index_1µ:µ0.0000µ5.0000µ20.0000¡,À¡þÀindex_2µ:µ0.1000µ1.0000µ5.0000¡,õ¡þõindex_3µ:µ0.1000µ0.5000µ1.0000¡,Ð²Using´µProcessingµAttributesµ¡þu²Use´µtheseµattributesµtoµdefineµprocessingµoptions:¡þì²S¡Xì²in_place_swap_mode¡þU²S¡XU²library_features¡þ¾²S¡X¾²simulation¡þr²in_place_swap_mode´µAttribute¡þý²In³place´µoptimizationµoccursµafterµplacementµandµroutingµwhen¡þ	FDesignµCompilerµoptimizesµaµcriticalµpathµbyµreplacingµindividual¡þ	cellsµwithµsimilarµonesµthatµimproveµtheµspeedµorµpowerµofµthe¡þ	×circuit.¡þ
”²Example¡þ
Ü²in_place_swap_mode´µ:µmatch_footprint;’\ûD“I501ileaf_page_string1:7-21¥	öäÃËÁâÊË¡Ä,î,Ø¡Ä,Ø	cØ¡Ä	cØ	cî¡Ä	cî,îÆÃÁÊËÃ¡ÄþØÊØÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¤7³21¡þÉ²Values´µforµin_place_swap_modeµcanµbeµmatch_footprint,µor¡þno_swapping.¡þ¬Theµin_place_swap_modeµattributeµspecifiesµtheµcriteriaµusedµby¡þôDesignµCompilerµinµcellµswappingµduringµin³placeµoptimization.µThe¡þ=basicµcriteriaµforµcellµswappingµareµasµfollows:¡þ¼²S¡X¼²Theµcellsµmustµhaveµtheµsameµfunction.¡þ+²S¡X+²Theµcellsµmustµhaveµtheµsameµnumberµofµpinsµwithµtheµsameµpin¡Xqnames.¡þüYouµcanµdefineµaµsetµofµinterchangeableµcellsµusingµthe¡þDcell_footprintµcellµattributeµdescribedµinµChapterµ8,µDefiningµCore¡þCells."¡þ'Youµcanµthenµuseµtheµin_place_swap_modeµattributeµtoµindicate¡þohowµtheµfootprintsµareµusedµasµcriteriaµduringµin³placeµoptimization.¡þ	Useµtheµreport_libµcommandµinµlc_shellµtoµprintµthe¡þRin_place_swap_modeµyourµtechnologyµlibraryµisµusing.¡þ'²library_features´µAttribute²}¡þ¾²This´µattributeµletsµvendorsµcontrolµwhetherµorµnotµaµtechnology¡þ	libraryµcanµbeµprocessedµbyµotherµSynopsysµtools.¡þ	 Whenµyouµidentifyµaµfeatureµwithµthisµattribute,µyouµgiveµtheµlibrary¡þ	éuserµpermissionµtoµperformµtheµlibraryµprocessingµtargetedµbyµthat¡þ
2particularµfeature.µTheµdefaultµisµthatµanyµtargetedµprocessingµisµnot¡þ
zallowed.¡þTheµonlyµvalidµvalueµforµthisµattributeµisµreport_delay_calculation.’ûÒD“I501ileaf_page_string1:7-22¥	öäÃËÁâÊË¡Ä,£,¡Ä,	c¡Ä	c	c£¡Ä	c£,£ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,ê¡Ä,ê	cê¡Ä	cê	c¡Ä	c,ÆÃÁÊËÃ¡Ä,êÊêÆÃ¥	öä¥	öä¡8Á²Building´µaµTechnologyµLibrary¡.7³22¡þÉ²Example¡þ²library_features´µ(report_delay_calculation);¡þÝ²simulation´µAttribute¡þm²When´µyouµsetµtheµsimulationµattributeµtoµtrue,µyouµpermitµsimulation¡þ¶libraryµfilesµforµtheµSynopsysµVHDLµSystemµSimulatorµ(VSS)µtoµbe¡þÿgeneratedµusingµlibanµfromµtheµtechnologyµlibrary'sµ.dbµfile.µSeeµthe¡þGVSSµmanualsµforµmoreµinformationµaboutµliban.¡þ²Example¡þV²simulation´µ:µtrue;¡,@²Setting´µMinimumµCellµRequirements¡þì²For´µtheµDesignµCompilerµprogramµtoµperformµtechnologyµmapping¡þ5andµoptimizationµonµdesignµdescriptions,µtheµtechnologyµlibrary¡þ}shouldµcontainµaµminimumµsetµofµcells.µDesignµCompilerµwritesµoutµa¡þÆwarningµmessageµifµtheµdesignµcontainsµaµcellµthatµisµnotµincludedµin¡þtheµlibraryµorµlibrariesµassociatedµwithµtheµdesign.¡þ¢ThisµisµaµminimumµsetµofµcellsµforµaµCMOSµtechnologyµlibrary:¡þ	²S¡X	²Anµinverter¡þ	‰²S¡X	‰²Aµtwo³inputµNORµgate¡þ	õ²S¡X	õ²Anµthree³stateµbuffer¡þ
b²S¡X
b²AnµDµflip³flopµwithµpreset,µclear,µandµcomplementaryµoutput¡X
¨values¡þ²S¡X²AnµDµlatchµwithµpreset,µclear,µandµcomplementaryµoutputµvalues’Ò—D“I501ileaf_page_string1:7-23¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,k¡Ä,k	ck¡Ä	ck	c¡Ä	c,ÆÃÁÊËÃ¡Ä,kÊkÆÃ¥	öä¥	öä¡[Á²Building´µaµTechnologyµLibrary¡Ô¤ÿ¤7³23¡,Õ²CMOS´µLibraryµGroupµExample¡þ”²Example 7³4´µshowsµlibraryµgroupµattributesµforµaµCMOSµlibraryµthat¡þÝcontainsµbusesµandµusesµaµpiecewiseµlinearµdelayµmodel.¡,Ž²&Example 7³4³CMOSµLibraryµGroupµExample¡þ#²library(example1)´µ{¡þ_µµtechnologyµ(cmos)µ;¡þœµµdelay_modelµ:µpiecewise_cmosµ;¡þÙµµdateµ:µ"Januaryµ14,µ1997"µ;¡þµµrevisionµ:µ1997.01µ;¡þSµµcommentµ:µ"Copyrightµ1988³1997µGeneralµSilicon,µInc."µ;¡þÍµµbus_naming_styleµ:µ"Bus%sPin%d"µ;¡þ
µµpiece_typeµ:µpiece_lengthµ;¡þGµµpiece_defineµ(µ"µ0µ10µ20µ"µ)µ;¡þƒµµ...¡þÀ}¡,Á²Using´µCMOSµDefaultµAttributes¡þ€²You´µcanµsetµdefaultµpinµandµtimingµattributesµforµaµCMOSµtechnology¡þÉlibraryµinµtheµlibraryµgroupµdefinition.µYouµcanµoverrideµtheseµdefault¡þ	valuesµwithµattributesµatµtheµindividualµpinµorµtimingµgroupµlevel.¡þ	´Table 7³1µlistsµtheµdefaultµpinµandµtimingµattributesµthatµapplyµtoµa¡þ	ýCMOSµtechnologyµlibraryµandµtheµattributesµthatµoverrideµthem.¡þ
FReferµtoµChapterµ17,µBuildingµEnvironments,"µforµaµdescriptionµof¡þ
Žtheseµdefaultµattributes.’—½D“I501ileaf_page_string1:7-24¥	öä¥	öä¡8Á²âBuilding´µaµTechnologyµLibrary¡.7³24¡,É²&Table 7³1³CMOS´µDefaultµAttributes¡,R²¥	öä¡Ir²AttributeÁã¡ÃÄ,.-.-,,.Ç¡ÃÄ,.d.d6,6,.Ç²¡eR¥	öä¡‚r²Description¡ÃÄe..6e6e.Ç²¡R¥	öä¡%r²Override´
µWith¡ÃÄ	`.	a.	a	`	`.Ç¡ÃÄ.	a.	a66.Ç²¡	`R¡,ÂÃ¡Ä,žežeþ,þ,žâÇ¥	öä¡IÚ²âdefault_cell_leakage_power´µ²-¡ÃÄ,ž-ž-ý,ý,žÇ¡ÃÄ,ždždŸ,Ÿ,žÇ²¡eÂ¥	öä¡‚Ú²Defaultµleakageµpower¡ÃÄežžŸeŸežÇ²¡Â¥	öä¡%Ú²cell_leakage_powerµ²-¡ÃÄ	`ž	až	aý	`ý	`žÇ¡ÃÄž	až	aŸŸžÇ²¡	`Â¡,"Ã¡Ä,þeþe^,^,þâÇ¥	öä¡I:²âdefault_connection_class¡ÃÄ,þ-þ-],],þÇ²¡e"¥	öä¡‚:²Defaultµconnectionµclass²¡"¥	öä¡%:²connection_class¡ÃÄ	`þ	aþ	a]	`]	`þÇ²¡	`"¡,‚Ã¡Ä,^e^e¾,¾,^âÇ¥	öä¡Iš²âdefault_edge_rate_breakpoint_f0***¡ÃÄ,^-^-½,½,^Ç²¡e‚¥	öä¡‚š²Defaultµedge_rates²¡‚¥	öä¡%š²edge_rate_breakpoint_f0¡ÃÄ	`^	a^	a½	`½	`^Ç²¡	`‚¡,â¥	öä¡Iú²default_edge_rate_breakpoint_f1***¡ÃÄ,¾-¾-,,¾Ç²¡eâ¥	öä¡‚ú²Defaultµedge_rates²¡â¥	öä¡%ú²edge_rate_breakpoint_f1¡ÃÄ	`¾	a¾	a	`	`¾Ç²¡	`â¡,B¥	öä¡IZ²default_edge_rate_breakpoint_r0***¡ÃÄ,--},},Ç²¡eB¥	öä¡‚Z²Defaultµedge_rates²¡B¥	öä¡%Z²edge_rate_breakpoint_r0¡ÃÄ	`	a	a}	`}	`Ç²¡	`B¡,¢¥	öä¡Iº²default_edge_rate_breakpoint_r1***¡ÃÄ,~-~-Ý,Ý,~Ç²¡e¢¥	öä¡‚º²Defaultµedge_rates²¡¢¥	öä¡%º²edge_rate_breakpoint_r1¡ÃÄ	`~	a~	aÝ	`Ý	`~Ç²¡	`¢¡,¥	öä¡I²default_fall_delay_intercept**µ²-¡ÃÄ,Þ-Þ-q,q,ÞÇ²¡e¥	öä¡‚²Falling³edgeµinterceptµof¡‚Ptimingµarc²¡¥	öä¡%²fall_delay_interceptµ²-¡ÃÄ	`Þ	aÞ	aq	`q	`ÞÇ²¡	`¡,–¥	öä¡I®²default_fall_pin_resistance**µ²-¡ÃÄ,r-r-Ñ,Ñ,rÇ²¡e–¥	öä¡‚®²Fallµresistanceµofµoutputµpins²¡–¥	öä¡%®²fall_pin_resistanceµ²-¡ÃÄ	`r	ar	aÑ	`Ñ	`rÇ²¡	`–¡,ö¥	öä¡I²default_fanout_loadµ²-¡ÃÄ,Ò-Ò-1,1,ÒÇ²¡eö¥	öä¡‚²Fanoutµloadµofµinputµpins²¡ö¥	öä¡%²fanout_loadµ²-¡ÃÄ	`Ò	aÒ	a1	`1	`ÒÇ²¡	`ö¡,V¥	öä¡In²default_inout_pin_capµ²-¡ÃÄ,2-2-‘,‘,2Ç²¡eV¥	öä¡‚n²Capacitanceµofµinoutµpins²¡V¥	öä¡%n²capacitanceµ²-¡ÃÄ	`2	a2	a‘	`‘	`2Ç²¡	`V¡,¶¥	öä¡IÎ²default_inout_pin_fall_res*µ²-¡ÃÄ,’-’-ñ,ñ,’Ç²¡e¶¥	öä¡‚Î²Fallµresistanceµofµinoutµpins²¡¶¥	öä¡%Î²fall_resistanceµ²-¡ÃÄ	`’	a’	añ	`ñ	`’Ç²¡	`¶¡,¥	öä¡I.²default_inout_pin_rise_res*µ²-¡ÃÄ,ò-ò-Q,Q,òÇ²¡e¥	öä¡‚.²Riseµresistanceµofµinoutµpins²¡¥	öä¡%.²rise_resistanceµ²-¡ÃÄ	`ò	aò	aQ	`Q	`òÇ²¡	`¡,v¥	öä¡IŽ²default_input_pin_capµµ¡ÃÄ,R-R-±,±,RÇ²¡ev¥	öä¡‚Ž²Capacitanceµofµinputµpins²¡v¥	öä¡%Ž²capacitance¡ÃÄ	`R	aR	a±	`±	`RÇ²¡	`v¡,Ö¥	öä¡Iî²default_intrinsic_fallµ²-¡ÃÄ,²-²-E,E,²Ç²¡eÖ¥	öä¡‚î²Intrinsicµfallµdelayµofµaµtiming¡‚$arc²¡Ö¥	öä¡%î²intrinsic_fallµ²-¡ÃÄ	`²	a²	aE	`E	`²Ç²¡	`Ö¡,j¥	öä¡I‚²default_intrinsic_riseµ²-¡ÃÄ,F-F-Ù,Ù,FÇ²¡ej¥	öä¡‚‚²Intrinsicµriseµdelayµofµaµtiming¡‚¸arc²¡j¥	öä¡%‚²intrinsic_riseµ²-¡ÃÄ	`F	aF	aÙ	`Ù	`FÇ²¡	`j¡,þ¥	öä¡I	²default_max_capacitanceµ²-¡ÃÄ,Ú-Ú-	m,	m,ÚÇ²¡eþ¥	öä¡‚	²Maximumµcapacitanceµof¡‚	Loutputµpins²¡þ¥	öä¡%	²max_capacitance¡ÃÄ	`Ú	aÚ	a	m	`	m	`ÚÇ²¡	`þ¡,	’¥	öä¡I	ª²default_max_fanoutµ²-¡ÃÄ,	n-	n-	Í,	Í,	nÇ²¡e	’¥	öä¡‚	ª²Maxµfanoutµofµallµoutputµpins²¡	’¥	öä¡%	ª²max_fanoutµ²-¡ÃÄ	`	n	a	n	a	Í	`	Í	`	nÇ²¡	`	’¡,	ò¥	öä¡I

²default_max_transitionµ²-¡ÃÄ,	Î-	Î-
-,
-,	ÎÇ²¡e	ò¥	öä¡‚

²Maxµtransitionµofµoutputµpins²¡	ò¥	öä¡%

²max_transitionµ²-¡ÃÄ	`	Î	a	Î	a
-	`
-	`	ÎÇ²¡	`	ò¡,
R¥	öä¡I
j²default_max_utilizationµ²-¡ÃÄ,
.-
.-
,
,
.Ç²¡e
R¥	öä¡‚
j²Maximumµlimitµofµutilization²¡
R¥	öä¡%
j²Noµoverrideµavailable¡ÃÄ	`
.	a
.	a
	`
	`
.Ç²¡	`
R¡,
²¥	öä¡I
Ê²default_min_porosityµ²-¡ÃÄ,
Ž-
Ž-!,!,
ŽÇ¡ÃÄ,dd",",Ç²¡e
²¥	öä¡‚
Ê²Minimumµporosityµconstraint¡ÃÄe"e"eÇ²¡
²¥	öä¡%
Ê²Theµset_min_porosity¡%commandµinµdc_shell¡ÃÄ	`
Ž	a
Ž	a!	`!	`
ŽÇ¡ÃÄ	a	a""Ç²¡	`
²’½ÅD“I501ileaf_page_string1:7-25¥	öä¥	öä¡[Á²âBuilding´µaµTechnologyµLibrary¡Ô¤ÿ¤7³25¥	öä¡Iá²Attribute¡%áOverride´
µWith¡áDescriptionÁã¡ÃÄ,--,,Ç¡ÃÄ,dd¥,¥,Ç¡ÃÄe¥e¥eÇ¡ÃÄ	`	a	a	`	`Ç¡ÃÄ	a	a¥¥Ç¡,1²¥	öä¡II²default_operating_conditions´µ¡ÃÄ,-- , ,Ç¡ÃÄ,dd,,Ç²¡e1¥	öä¡‚I²Defaultµoperatingµconditions¡‚forµtheµlibrary¡ÃÄeeeÇ²¡1¥	öä¡%I²operating_conditions¡ÃÄ	`	a	a 	` 	`Ç¡ÃÄ	a	aÇ²¡	`1¡,Å¥	öä¡IÝ²default_output_pin_capµ²-¡ÃÄ,¡-¡-,,¡Ç²¡eÅ¥	öä¡‚Ý²Capacitanceµofµoutputµpins²¡Å¥	öä¡%Ý²capacitance¡ÃÄ	`¡	a¡	a	`	`¡Ç²¡	`Å¡,%¥	öä¡I=²default_output_pin_fall_res*µ²-¡ÃÄ,--`,`,Ç²¡e%¥	öä¡‚=²Fallµresistanceµofµoutputµpins²¡%¥	öä¡%=²fall_resistanceµ²-¡ÃÄ	`	a	a`	``	`Ç²¡	`%¡,…¥	öä¡I²default_output_pin_rise_res*µ²-´µ¡ÃÄ,a-a-À,À,aÇ²¡e…¥	öä¡‚²Rise´µresistanceµofµoutputµpins²¡…¥	öä¡%²rise_resistance¡ÃÄ	`a	aa	aÀ	`À	`aÇ²¡	`…¡,å¥	öä¡Iý²default_output_pin_rise_res*µ²-´µ¡ÃÄ,Á-Á- , ,ÁÇ²¡eå¥	öä¡‚ý²Rise´µresistanceµofµoutputµpins²¡å¥	öä¡%ý²rise_resistance¡ÃÄ	`Á	aÁ	a 	` 	`ÁÇ²¡	`å¡,E¥	öä¡I]²default_rc_fall_coef¤ÿÿficient***µ²-¡ÃÄ,!-!-€,€,!Ç²¡eE¥	öä¡‚]²CMOS2µmodelµonly²¡E¥	öä¡%]²Noµoverrideµavailable¡ÃÄ	`!	a!	a€	`€	`!Ç²¡	`E¡,¥¥	öä¡I½²default_rc_rise_coef¤ÿÿficient***µ²-¡ÃÄ,--à,à,Ç²¡e¥¥	öä¡‚½²CMOS2µmodelµonly²¡¥¥	öä¡%½²Noµoverrideµavailable¡ÃÄ	`	a	aà	`à	`Ç²¡	`¥¡,¥	öä¡I²default_reference_capacitance***²-¡ÃÄ,á-á-@,@,áÇ²¡e¥	öä¡‚²CMOS2µmodelµonly²¡¥	öä¡%²reference_capacitance¡ÃÄ	`á	aá	a@	`@	`áÇ²¡	`¡,e¥	öä¡I}²default_rise_delay_intercept**µ²-¡ÃÄ,A-A-Ô,Ô,AÇ²¡ee¥	öä¡‚}²Rising³edgeµinterceptµof¡‚³timingµarc²¡e¥	öä¡%}²rise_delay_interceptµ²-¡ÃÄ	`A	aA	aÔ	`Ô	`AÇ²¡	`e¡,ù¥	öä¡I²default_rise_pin_resistance**µ²-¡ÃÄ,Õ-Õ-4,4,ÕÇ²¡eù¥	öä¡‚²Riseµresistanceµofµoutputµpins²¡ù¥	öä¡%²rise_pin_resistanceµ²-¡ÃÄ	`Õ	aÕ	a4	`4	`ÕÇ²¡	`ù¡,Y¥	öä¡Iq²default_slope_fallµ²-¡ÃÄ,5-5-È,È,5Ç²¡eY¥	öä¡‚q²Fallµsensitivityµfactorµofµa¡‚§timingµarc²¡Y¥	öä¡%q²slope_fallµ²-¡ÃÄ	`5	a5	aÈ	`È	`5Ç²¡	`Y¡,í¥	öä¡I²default_slope_riseµ¡ÃÄ,É-É-\,\,ÉÇ²¡eí¥	öä¡‚²Riseµsensitivityµfactorµofµa¡‚;timingµarc²¡í¥	öä¡%²slope_riseµ²-¡ÃÄ	`É	aÉ	a\	`\	`ÉÇ²¡	`í¡,¥	öä¡I™²default_wire_loadµ²-¡ÃÄ,]-]-¼,¼,]Ç²¡e¥	öä¡‚™²Wireµload²¡¥	öä¡%™²Noµoverrideµavailable¡ÃÄ	`]	a]	a¼	`¼	`]Ç²¡	`¡,á¥	öä¡Iù²default_wire_load_areaµ²-´µ¡ÃÄ,½-½-,,½Ç²¡eá¥	öä¡‚ù²Wire³load´µarea²¡á¥	öä¡%ù²Noµoverrideµavailable¡ÃÄ	`½	a½	a	`	`½Ç²¡	`á¡,A¥	öä¡IY²default_wire_load_capacitanceµ²-¡ÃÄ,--|,|,Ç²¡eA¥	öä¡‚Y²Wire³loadµcapacitance²¡A¥	öä¡%Y²Noµoverrideµavailable¡ÃÄ	`	a	a|	`|	`Ç²¡	`A¡,¡¥	öä¡I¹²default_wire_load_modeµ²-¡ÃÄ,}-}-	,	,}Ç²¡e¡¥	öä¡‚¹²Wireµloadµmode²¡¡¥	öä¡%¹²set_wire_loadµ³modeµin¡%ïdc_shell¡ÃÄ	`}	a}	a		`		`}Ç²¡	`¡¡,	5¥	öä¡I	M²default_wire_load_resistanceµ²-¡ÃÄ,	-	-	p,	p,	Ç²¡e	5¥	öä¡‚	M²Wireµloadµresistance²¡	5¥	öä¡%	M²Noµoverrideµavailable¡ÃÄ	`		a		a	p	`	p	`	Ç²¡	`	5¡,	•¥	öä¡I	­²default_wire_load_selectionµ²-¡ÃÄ,	q-	q-	Ð,	Ð,	qÇ¡ÃÄ,	Éd	Éd	Ñ,	Ñ,	ÉÇ²¡e	•¥	öä¡‚	­²Wireµloadµselection¡ÃÄe	É	É	Ñe	Ñe	ÉÇ²¡	•¥	öä¡%	­²Noµoverrideµavailable¡ÃÄ	`	q	a	q	a	Ð	`	Ð	`	qÇ¡ÃÄ	É	a	É	a	Ñ	Ñ	ÉÇ²¡	`	•¡,
²*´µCMOSµlinearµdelayµmodelµonly¡,
I**µPiecewiseµlinearµdelayµmodelµonly¡,
w***µcmos2µdelayµmodelµonly’ÅÐOPS m:m:D€‚Document:8cellÿ‚Last saved on:Tue, Dec 9, 1997 17:53:15ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°0wst:courps10i±0:*°6spsb:symbb12±6                                1112(&2"&$$)4"$'($$(""(&-$$$$4&&)($$!$&&11&(&)°7wst:timsps14b±7:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:0!!!!6*'**'#---'7*-#-* '**:**'"    0    *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%******:*''''%*-----%-****%% *% %    %%%:%%:%%%%%%%%%%%%%%%:
%%%%%%%%%%%%%%%%%%%:%%%*°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Lwst:courps11±L:.°Mwst:courps11i±M:.°Xwst:dutch10±X¿ '"#####) """( "" " )  *"*##!!!      ," """""#"""""  #**9 %.%   """"""""    """   """""")  °Ywst:dutch10i±Y¿ '#####) "!%  %*"*##!!!(      # #**

9',!  """"!!   %°Zwst:dutch6i±Z¿

	
	






				

"					

				



°[wst:dutch6±[¿




	




"












°\eqm:bsmth10±\5******************************	********************************************************************************  *******************************  ************     ******1        ***************#*	***********************    ****************		





*********	**  *******************°_wst:timsps9±_:			


"!#





	!



	%%%!°`wst:timsps9i±`:			
"







	!



	%!%#°awst:timsps12i±a:                                *'"""".!$$$!*!$$$*$!                                                 ,! !$$$$$ $$$$$  !     2  ,               2                   /   !°beqm:bsmth12±b5                                2 222222 2222   2 2 22  22222 22222222 222222 22 2222 22 2  22222222222222222222222222222222222222222          22222222  222222    22  222   2  222222&&      2 22 22   222222      222  22222222          22222222  2  &&222 22222 2222'''''2  22222:    &&&&&&&&22222222222 ! 2222*2        	22222222      22222222 2222222& &&& 22222222    22222222           222222   22   22           2   &&$!$222222222222 2222222°}wst:helvps16bi±}:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°‹wst:helvps7.2±‹:













°wst:courps16b±:********************************((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((*********************************(((((*((*((***(******((**((***(((((((((((((((((*((((((*(((((**(((((((((((((((((*((((((*(((((**(*(("C((**(*********(((((******((***************(****(***(°‘wst:timsps16±‘:********************************""84"&"""""""""""&&&>0--0)%000)<00%0-%)00?00)""""""4""""""0""  $*********************************""""*"*"***********"***000000<-))))*000000*00000**"-*""""""*"""""**"*""C"**C*********""******C***************"****<***0°’eqm:bsmth16±’5********************************C*CCCCCC*CCCC***C*C*CC**CCCCC*CC&CCCCCC*CC"CC"CC*C"C*CCCC*CC*C**CCCCCCCCCCC""CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC**********CCCCCCCC**CCCCCC****CC**""CCC"***C**CCCCCC22******C*CC*CC***CCCCCC******C"""CC**CCCCCCCC****++"****CCCCCCCC**C"""**22CCC""%*CCCCC*CCCC44444C**CCCCCN****22222222CCCCC"CCCC""CC*,*CCCC""8C%%********CCCCCCCC******CCCCCCCC*CCCCCCC2*222*""CCCCC""CCC****CCCCCCCC*"""**********CCCCCC""&***C#C***C"C *******%****C"*"+*3 30 ,0("CCCCCCC
CC$CCC""*########CCCCCCC#####°“wst:newcsps12b±“:                                *+%&''*&$*, )$1**&*)!$*&1$$! !"!0"! ",                                 $           %     &&&&&&1'&&&& ****** *****  , " """"   2  2               2                   2   -ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿå®åšååÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’‹suD“I501ileaf_page_string1:8-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¾8³1¡,m²².8â²/¥	öä¡Õm²â¡,X²	Defining´µCoreµCells¡É²¥	öäÁÊËÃ¡Ä,­Ê­ÆÃ¡	öÉ¡þ`Cell´µdescriptionsµareµaµmajorµpartµofµaµtechnologyµlibrary.µThey¡þ¨provideµinformationµonµtheµarea,µfunction,µandµtimingµofµeach¡þñcomponentµinµanµASICµtechnology.¡þ}DefiningµcoreµcellsµforµCMOSµtechnologyµlibrariesµinvolvesµthe¡þÆfollowingµconceptsµandµtasksµdescribedµinµthisµchapter:¡þ;²S¡X;²Definingµcellµgroups¡þ£²S¡X£²Definingµcellµroutability¡þ	²S¡X	²Definingµpinµgroups¡þ	t²S¡X	t²Definingµbusedµpins¡þ	Ü²S¡X	Ü²Definingµsignalµbundles¡þ
D²S¡X
D²Definingµlayout³relatedµmultibitµattributes¡þ
¬²S¡X
¬²Definingµscaledµcellµgroups¡þ²S¡X²Netlistingµconsiderations’u¼D“I501ileaf_page_string1:8-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,®,˜¡Ä,˜	c˜¡Ä	c˜	c®¡Ä	c®,®ÆÃÁÊËÃ¡Äþ˜Ê˜ÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³2¡,Õ²Defining´µCellµGroups¡þ£²A´µcellµgroupµdefinesµaµsingleµcellµinµtheµtechnologyµlibrary.¡þQThisµchapterµdiscussesµtheµattributesµinµaµcell.µForµinformationµabout¡þ™groupsµinµaµcellµgroup,µreferµtoµtheµfollowingµsectionsµinµthisµchapter:¡þ%²S¡X%²DefiningµBusedµPins"µforµbusµgroups¡þŸ²S¡XŸ²DefiningµSignalµBundles"µforµbundleµgroups¡þ²S¡X²DefiningµPinµGroups"µforµµpinµgroups¡þ²SeeµChapterµ12,µDefiningµTestµCells"µforµaµtestµcellµwithµaµtest_cell¡þûgroup.¡þ©SeeµExample 8³1µatµtheµendµofµthisµsectionµforµaµsampleµcell¡þòdescription.¡þè²cell´µGroup¡þ“²The´µcellµgroupµstatementµgivesµtheµnameµofµtheµcellµbeing¡þÛdescribed.µItµappearsµatµtheµlibraryµgroupµlevelµasµshownµhere:¡þ	d²library´µ(²(lib_name²)µ{¡þ	¢...¡þ	àµcell(µ²(name²µ)µ{¡þ
µµ...µ²(cellµdescriptionµ²...¡þ
\µµ}¡þ
š...¡þ
Ø}’¼­D“I501ileaf_page_string1:8-3¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¾8³3¡þÉ²Use´µaµ²&name²µthatµcorrespondsµtoµtheµnameµtheµASICµvendorµusesµfor¡þtheµcell.¡þ¼Whenµnamingµcells,µrememberµthatµtheµLibraryµCompilerµprogramµis¡þcaseµsensitive;µcellµnamesµAND2,µand2,µandµAnd2µareµallµdifferent.¡þMCellµnamesµbeginningµwithµaµnumberµmustµbeµenclosedµinµquotes.¡þ–Theseµrulesµapplyµtoµallµuser³definedµnamesµinµLibraryµCompiler.¡þ@ToµcreateµtheµcellµgroupµforµtheµAND2µcell,µuseµthisµsyntax:¡þÇ²cell(´µAND2µ)µ{¡þ...µ²(descriptionµofµAND2²µ...¡þB}¡þá²To´µcreateµaµCMOSµcellµgroup,µuseµtheseµattributes:¡Xk³¡”karea¡Xâ³¡”âbundle¡XY³¡”Ybus¡XÑ³¡”Ñcell_footprint¡XH³¡”Hcontention_condition¡X¿³¡”¿dont_fault¡X	7³¡”	7dont_touch¡X	®³¡”	®dont_use¡X
&³¡”
&ff¡X
³¡”
handle_negative_constraint¡X³¡”is_clock_gating_cell’­rD“I501ileaf_page_string1:8-4¥	öäÃËÁâÊË¡Ä,ÿ,é¡Ä,é	cé¡Ä	cé	cÿ¡Ä	cÿ,ÿÆÃÁÊËÃ¡ÄþéÊéÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³4¡XÉ²³¡”Émap_only¡X=³¡”=pad_cell¡X°³¡”°pad_type¡X$³¡”$pin_equal¡X—³¡”—pin_opposite¡X³¡”preferred¡X³¡”scaling_factors¡Xò³¡”òscan_group¡Xf³¡”fvhdl_name¡þ9²area²´(µ²Attribute¡þØ²This´µattributeµspecifiesµtheµcellµarea.¡þ·²Example¡þ²area´µ:µ2.0;¡þ²For´µunknownµorµundefinedµ(blackµbox)µcells,µtheµareaµattributeµis¡þåoptional.µUnlessµaµcellµisµaµpadµcell,µitµshouldµhaveµanµareaµattribute.¡þ	.Padµcellsµshouldµbeµgivenµanµareaµofµzeroµbecauseµtheyµareµnot¡þ	wusedµasµinternalµgates.µLibraryµCompilerµissuesµaµwarningµforµeach¡þ	¿cellµthatµdoesµnotµhaveµanµareaµattribute.’rD“I501ileaf_page_string1:8-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Ä,®¡Ä,®	c®¡Ä	c®	cÄ¡Ä	cÄ,ÄÆÃÁÊËÃ¡Äþ®Ê®ÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¾8³5¡þÏ²cell_footprint´µAttribute¡þP²This´µattributeµassignsµaµfootprintµclassµtoµaµcell.¡þü²Example¡þC²cell_footprint´µ:µ5MIL;¡þÏ²Characters´µinµtheµstringµareµcaseµsensitive.¡þSUseµthisµattributeµtoµassignµtheµsameµfootprintµclassµtoµallµcellsµthat¡þœhaveµtheµsameµgeometricµlayoutµcharacteristics.¡þ Cellsµwithµtheµsameµfootprintµclassµareµconsideredµinterchangeable,¡þiandµcanµbeµswappedµduringµin³placeµoptimization.¡þîReferµtoµtheµsectionµonµtheµin_place_swap_modeµlibraryµattributeµin¡þ6Chapterµ7,µBuildingµaµTechnologyµLibrary,"µforµmoreµinformation.¡þ»Ifµtheµin_place_swap_modeµattributeµisµsetµtoµmatch_footprint,µaµcell¡þcanµhaveµonlyµoneµfootprint.µCellsµwithoutµcell_footprintµattributes¡þLareµnotµswappedµduringµin³placeµoptimization.¡þþ²contention_condition´µAttribute¡þ€²This´µattributeµspecifiesµtheµconditionsµthatµwillµcauseµcontentionsµin¡þÈaµcell.¡þ	u²Example¡þ	»²contention_condition´µ:µ!apµ*µan"µ;¡þ
G²Use´µthisµattributeµtoµspecifyµtheµcontentionµconditionsµforµaµcell.¡þ
ÌContentionµisµaµclashµofµ0µandµ1µsignals.µInµcertainµcells,µitµcanµbeµa¡þforbiddenµconditionµandµcauseµcircuitsµtoµshort.’6D“I501ileaf_page_string1:8-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,@,*¡Ä,*	c*¡Ä	c*	c@¡Ä	c@,@ÆÃÁÊËÃ¡Äþ*Ê*ÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³6¡þÏ²dont_fault´µAttribute²}²¡þt²This´µattributeµisµusedµbyµTestµCompiler.µItµisµaµstringµattributeµthat¡þ¼youµcanµsetµonµaµlibraryµcellµorµpin.¡þ¥²Example¡þñ²dont_fault´µ:µsa0;¡þ²If´µyouµsetµthisµattributeµonµaµlibraryµcellµtoµsa0,µinstancesµofµtheµcell¡þØinµtheµdesignµareµnotµmodeledµwithµstuck³at³0µfaultsµduringµfault¡þ modeling.µSimilarly,µifµyouµsetµthisµattributeµonµaµlibraryµcellµtoµsa1,¡þiinstancesµofµtheµcellµinµtheµdesignµareµnotµmodeledµwithµstuck³at³1¡þ²faults.µSettingµthisµattributeµonµaµcellµtoµsa01µmeansµthatµtheµcellµis¡þúnotµmodeledµwithµeitherµstuck³at³0µorµstuck³at³1µfaults.µTheµsame¡þCvaluesµareµallowedµonµpinsµandµmeanµthatµtheµpinµisµnotµmodeled¡þŒwithµtheµspecifiedµstuck³atµfault.¡þz²dont_touch´µAttribute²}¡þ²If´µyouµdoµnotµwantµthisµcellµremovedµduringµoptimization,µuseµthe¡þhdont_touchµattribute.µWhenµyouµgiveµthisµattributeµaµtrueµvalue,µall¡þ°instancesµofµtheµcellµmustµremainµinµtheµnetwork.¡þ	™²Example¡þ	å²dont_touch´µ:µtrue;¡þ
ƒ²When´µitµencountersµtheµcellµduringµoptimization,µDesignµCompiler¡þ
Ìworksµaroundµtheµcellµandµdoesµnotµreplaceµit.µTheµattributeµcanµbe¡þappliedµtoµaµspecialµclock³distributionµcell.’6QD“I501ileaf_page_string1:8-7¥	öäÃËÁâÊË¡Ä,M,7¡Ä,7	c7¡Ä	c7	cM¡Ä	cM,MÆÃÁÊËÃ¡Äþ7Ê7ÆÃ¥	öäÃÁÊË¡Ä,,ë¡Ä,ë	cë¡Ä	cë	c¡Ä	c,ÆÃÁÊËÃ¡ÄþëÊëÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¾8³7¡þÉ²In´µadditionµtoµdefiningµdont_touchµinµyourµtechnologyµlibrary,µyouµcan¡þalsoµapplyµtheµdont_touchµattributeµtoµaµcellµwithµtheµset_dont_touch¡þZcommandµfromµdc_shell.µYouµcannotµremoveµaµcellµwithµthe¡þ£dont_touchµattributeµfromµdc_shell.µ¡þ‡²dont_use´µAttribute²}²¡þ&²If´µyouµdoµnotµwantµthisµcellµaddedµtoµaµdesignµduringµoptimization,¡þogiveµthisµattributeµaµtrueµvalue.µForµexample,µyouµcouldµspecify¡þ¸dont_useµforµanµI/OµcellµthatµyouµdoµnotµwantµDesignµCompilerµtoµput¡þintoµtheµcoreµofµyourµdesign.¡þß²Example¡þ*²dont_use´µ:µtrue;¡þÅ²In´µadditionµtoµdefiningµdont_useµinµyourµtechnologyµlibrary,µyouµcan¡þalsoµapplyµtheµdont_useµattributeµtoµaµcellµwithµtheµset_dont_use¡þWcommandµfromµdc_shell.¡þ;²handle_negative_constraint´µAttribute¡þÚ²Use´µthisµattributeµduringµgenerationµofµVITALµmodelsµtoµindicate¡þ	#whetherµtheµcellµneedsµnegativeµconstraintµhandling.µItµisµanµoptional¡þ	kBooleanµattributeµforµtimingµconstraintsµinµaµcellµgroup.’Q5D“I501ileaf_page_string1:8-8¥	öäÃËÁâÊË¡Ä,¢,Œ¡Ä,Œ	cŒ¡Ä	cŒ	c¢¡Ä	c¢,¢ÆÃÁÊËÃ¡ÄþŒÊŒÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³8¡þÉ²Example¡þ²handle_negative_constraint´µ:µtrueµ;¡þ¯²If´µyouµomitµthisµattribute,µtheµVITALµgeneratorµdoesµnotµwriteµoutµthe¡þønegativeµconstraintµhandlingµstructure.¡þÜ²is_clock_gating_cell´µAttribute¡þ{²This´µattributeµidentifiesµcellsµthatµareµusedµforµclockµgating.µThis¡þÄattributeµisµusedµbyµDesignµCompilerµwhenµitµcompilesµaµdesign¡þcontainingµgatedµclocksµthatµwereµintroducedµbyµPowerµCompiler.¡þ¯Youµcanµsetµthisµattributeµonµtwo³inputµAND,µNAND,µOR,µandµNOR¡þøgates;µinverters;µbuffers;µandµtwo³inputµDµlatches.µValidµvaluesµfor¡þAthisµattributeµareµtrueµandµfalse.¡þ²Example¡þj²is_clock_gating_cell´µ:µtrue;¡þ²To´µuseµaµcellµexclusivelyµduringµtheµmappingµofµclockµgatingµcircuits,¡þNgiveµitµanµis_clock_gating_cellµattributeµsetµtoµtrueµandµaµdont_touch¡þ—attributeµsetµtoµtrue.¡þ	9Seeµtheµclock_gate_enable_pinµattributeµsectionµlaterµµinµthis¡þ	‚chapterµforµinformationµaboutµdesignatingµclockµandµenableµportsµon¡þ	Ëclockµgates.µForµadditionalµinformationµaboutµclockµgating,µseeµthe¡þ
²&PowerµProductsµReferenceµManual².’5ÉD“I501ileaf_page_string1:8-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,·,¡¡Ä,¡	c¡¡Ä	c¡	c·¡Ä	c·,·ÆÃÁÊËÃ¡Äþ¡Ê¡ÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¾8³9¡þÏ²map_only´µAttribute²}²µ¡þn²If´µthisµattributeµhasµaµtrueµvalue,µtheµcellµisµexcludedµfromµlogic³level¡þ¶optimizationµduringµcompilation.¡þ•²Example¡þà²map_only´µ:µtrue;¡þ{²In´µadditionµtoµdefiningµmap_onlyµinµaµcellµgroup,µyouµcanµalsoµapply¡þÄtheµmap_onlyµattributeµtoµaµcellµwithµtheµset_map_onlyµcommand¡þfromµdc_shell.¡þñ²pad_cell´µAttribute¡þ²The´µpad_cellµattributeµinµaµcellµorµcell_enumµgroupµidentifiesµtheµcell¡þÙasµaµpad.µDesignµCompilerµfiltersµoutµpadsµduringµcoreµoptimization¡þ!andµtreatsµthemµdifferentlyµduringµtechnologyµtranslation.µ¡þ²Example¡þK²pad_cell´µ:µtrueµ;¡þæ²If´µtheµattributeµisµincludedµinµaµcellµdefinition,µatµleastµoneµpinµinµthe¡þ	/cellµmustµhaveµanµis_padµattribute.µReferµtoµtheµis_padµattribute¡þ	wdescriptionµinµtheµDescribingµPadµPins"µsectionµlaterµinµthisµchapter.’ÉD“I501ileaf_page_string1:8-10¥	öäÃËÁâÊË¡Ä,j,T¡Ä,T	cT¡Ä	cT	cj¡Ä	cj,jÆÃÁÊËÃ¡ÄþTÊTÆÃ¥	öäÃÁÊË¡Ä,µ,Ÿ¡Ä,Ÿ	cŸ¡Ä	cŸ	cµ¡Ä	cµ,µÆÃÁÊËÃ¡ÄþŸÊŸÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³10¡þÉ²If´µmoreµthanµoneµpadµcellµisµusedµtoµbuildµaµlogicalµpad,µputµthis¡þattributeµinµtheµcellµdefinitionsµofµallµtheµcomponentµpadµcells.µ¡þŠ²auxiliary_pad_cell´µ:µtrueµ;¡þ²If´µyouµomitµtheµpad_cellµorµauxiliary_pad_cellµattribute,µtheµcellµis¡þgtreatedµasµanµinternalµcoreµcell.µ¡þüNote:²¡XE²Aµcellµwithµanµauxiliary_pad_cellµattributeµcanµalsoµbeµused¡XŽwithinµtheµcore;µaµpull³upµorµpull³downµcellµisµanµexampleµofµsuch¡XÖaµcell.¡þ¤²pad_type´µAttributeµ¡þ6²This´µattributeµidentifiesµaµspecialµtypeµofµpad_cellµor¡þauxiliary_pad_cellµthatµrequiresµspecialµtreatment.µTheµonlyµtype¡þÇSynopsysµsoftwareµsupportsµisµclock,µwhichµidentifiesµaµpadµcellµasµa¡þclockµdriver.¡þÙ²Example¡þ"²pad_type´µ:µclockµ;¡þï²pin_equal´µAttribute¡þ	²This´µattributeµdescribesµaµgroupµofµlogicallyµequivalentµinputµor¡þ	Éoutputµpinsµinµtheµcell.µ¡þ
’²Example¡þ
Û²pin_equal´µ:µ("YµZ")µ;’šD“I501ileaf_page_string1:8-11¥	öäÃËÁâÊË¡Ä,ð,Ú¡Ä,Ú	cÚ¡Ä	cÚ	cð¡Ä	cð,ðÆÃÁÊËÃ¡ÄþÚÊÚÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³11¡þÉ²Design´µCompilerµautomaticallyµdeterminesµtheµequalµpinsµforµcells¡þthatµhaveµfunctionµattributes.¡þ´Note:²¡Xý²Useµtheµpin_equalµattributeµonlyµinµcellsµwithoutµfunction¡XFinformationµorµwhenµyouµwantµtoµdefineµrequiredµinputµvalues.¡þ*²pin_opposite´µAttribute¡þÉ²This´µattributeµdescribesµfunctionallyµoppositeµ(logicalµinverse)¡þgroupsµofµpinsµinµaµcell.µTheµpin_oppositeµattributeµalsoµincorporates¡þZtheµfunctionalityµofµpin_equal.¡þ9²Example¡þ¥²Inµthisµexample,µQ1,µQ2,µandµQ3µareµequal;µQB1µandµQB2µare¡þîequal;µandµtheµpinsµofµtheµfirstµgroupµareµoppositeµtoµtheµpinsµofµthe¡þ7secondµgroup.¡þ¸²pin_opposite("Q1´µQ2µQ3",µ"QB1µQB2")µ;¡þS²Design´µCompilerµautomaticallyµdeterminesµtheµoppositeµpinsµfor¡þœcellsµthatµhaveµfunctionµattributes.¡þ	>Note:²¡X	‡²Useµtheµpin_oppositeµattributeµonlyµinµcellsµwithoutµfunction¡X	Ðinformationµorµwhenµyouµwantµtoµdefineµrequiredµinputs.’šD“I501ileaf_page_string1:8-12¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ë,Õ¡Ä,Õ	cÕ¡Ä	cÕ	cë¡Ä	cë,ëÆÃÁÊËÃ¡ÄþÕÊÕÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³12¡þÏ²preferred´µAttribute¡þb²G¤ÿÿi¤ÿÿv¤ÿÿi¤ÿÿn¤ÿÿg´µt¤ÿÿh¤ÿÿi¤ÿÿsµa¤ÿÿt¤ÿÿt¤ÿÿr¤ÿÿi¤ÿÿb¤ÿÿu¤ÿÿt¤ÿÿeµaµt¤ÿÿr¤ÿÿu¤ÿÿeµv¤ÿÿa¤ÿÿl¤ÿÿu¤ÿÿeµi¤ÿÿn¤ÿÿd¤ÿÿi¤ÿÿc¤ÿÿa¤ÿÿt¤ÿÿe¤ÿÿsµt¤ÿÿh¤ÿÿa¤ÿÿtµt¤ÿÿh¤ÿÿeµc¤ÿÿe¤ÿÿl¤ÿÿlµi¤ÿÿsµt¤ÿÿh¤ÿÿeµp¤ÿÿr¤ÿÿe¤ÿÿf¤ÿÿe¤ÿÿr¤ÿÿr¤ÿÿe¤ÿÿd¡þªr¤ÿÿe¤ÿÿp¤ÿÿl¤ÿÿa¤ÿÿc¤ÿÿe¤ÿÿm¤ÿÿe¤ÿÿn¤ÿÿtµd¤ÿÿu¤ÿÿr¤ÿÿi¤ÿÿn¤ÿÿgµt¤ÿÿh¤ÿÿeµg¤ÿÿa¤ÿÿt¤ÿÿe¤ÿÿ³¤ÿÿm¤ÿÿa¤ÿÿp¤ÿÿp¤ÿÿi¤ÿÿn¤ÿÿgµp¤ÿÿh¤ÿÿa¤ÿÿs¤ÿÿeµo¤ÿÿfµo¤ÿÿp¤ÿÿt¤ÿÿi¤ÿÿm¤ÿÿi¤ÿÿz¤ÿÿa¤ÿÿt¤ÿÿi¤ÿÿo¤ÿÿn¤ÿÿ.²-¡þu²Example¡þ¾²preferred´µ:µtrueµ;¡þS²Design´µCompilerµchoosesµcellsµwithµtheµpreferredµattributeµover¡þœotherµcellsµwithµtheµsameµfunctionµifµtheµstandardµcellµoffersµno¡þäoptimizationµadvantage.¡þ{Thisµattributeµcanµbeµappliedµtoµaµcellµwithµpreferredµtimingµorµarea¡þÃattributes.µForµexample,µinµaµsetµofµtwo³inputµNANDµgates,µyouµmay¡þwantµtoµuseµgatesµwithµhigherµdriveµstrengthsµwhereverµpossible.¡þUThisµpracticeµisµusefulµprimarilyµinµdesignµtranslation.¡þ%²scaling_factors´µAttribute¡þ¸²This´µattributeµappliesµtheµscalingµfactorsµdefinedµinµthe¡þscaling_factorsµgroup.¡þË²Example¡þ	²scaling_factors´µ:µIO_PAD_SCALINGµ;¡þ	©²You´µcanµdefineµaµspecialµsetµofµscalingµfactorsµinµaµlibrary³level¡þ	ògroupµcalledµscaling_factors,µandµapplyµtheseµscalingµfactorsµto¡þ
:selectedµcellsµusingµtheµscaling_factorsµcellµattribute.µYouµcanµapply¡þ
ƒlibrary³levelµscalingµfactorsµtoµtheµmajorityµofµcellsµinµyourµlibrary,¡þ
Ìwhileµusingµtheseµconstructsµtoµprovideµmoreµaccurateµscaling¡þfactorsµforµspecialµcells.’D“I501ileaf_page_string1:8-13¥	öäÃËÁâÊË¡Ä,Ó,½¡Ä,½	c½¡Ä	c½	cÓ¡Ä	cÓ,ÓÆÃÁÊËÃ¡Äþ½Ê½ÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³13¡þÉ²Refer´µtoµtheµScalingµFactorsµforµIndividualµCells"µsectionµinµChapter¡þ17,µBuildingµEnvironments,"µforµadditionalµinformationµonµthe¡þZscaling_factorsµgroup.¡þByµdefault,µallµcellsµwithoutµaµscaling_factorsµattributeµcontinueµto¡þNuseµtheµlibrary³levelµscalingµfactors.¡þøScalingµfactorsµnotµdefinedµwithinµaµscaling_factorsµgroupµareµsetµto¡þA0.0µforµthatµgroup.µCellsµthatµdoµnotµscaleµatµallµcanµbeµmodeledµwith¡þŠanµemptyµscaling_factorsµgroup.µInµthisµcase,µallµscalingµfactorsµin¡þÒtheµscaling_factorsµgroupµareµsetµtoµtheµdefault,µ0.0,µsoµnoµscalingµis¡þdone.¡þ²scan_group´µAttribute¡þ´²Use´µthisµattributeµforµscanµcellµreplacementµselectionµinµtesting.µItµis¡þýusedµforµsequentialµcellsµwithµtest_cellµequivalence.¡þ§Toµselectµaµscanµcellµthatµmatchesµtheµdriveµstrengthµofµtheµcellµit¡þðreplaces,µTestµCompilerµusesµscan_groupµtoµselectµscanµcells.¡þÜ²Example¡þ	f²cell´µ(LATCH1)µ{¡þ	¤¡…	¤scan_groupµ:µ"low";¡þ	â¡…	â...¡þ
 }¡þ
]cellµ(LATCH2)µ{¡þ
›¡…
›scan_groupµ:µ"medium";¡þ
Ù¡…
Ù...¡þ}’ÕD“I501ileaf_page_string1:8-14¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³14¡þÃ²cell´µ(SLATCH1)µ{¡þ¡…scan_groupµ:µ"low";¡þ=¡…=...¡þz}¡þ¶cellµ(SLATCH2)µ{¡þó¡…óscan_groupµ:µ"medium";¡þ0¡…0...¡þm}¡þ²Use´µtheµscan_groupµattributeµthroughoutµtheµlibraryµwhereµ²&families²¡þQofµfunctionallyµequivalentµnonscanµandµscanµelementsµareµof¡þ™differentµdriveµstrengths.µForµexample,¡þ²LATCH1´µ(low)µ³>µSLATCH1µ(low)¡þXLATCH1µ(medium)µ³>µSLATCH2µ(medium)¡þó²The´µscan_groupµattributeµhasµtheµfollowingµcharacteristics:¡þw²S¡Xw²Itµaffectsµresultsµonlyµwhereµsequentialµmapping³basedµscan¡X¾insertionµisµnotµcalled.¡þ1²S¡X1²Itµdoesµnotµforceµanµequivalenceµif,µforµinstance,µfunctionsµdoµnot¡Xxmatch.¡þì²S¡Xì²Itµchoosesµtheµmostµappropriateµscanµcellµonlyµifµthereµareµtwoµor¡X2moreµscanµcellsµtoµchooseµbetween.¡þ¦²S¡X¦²Itµdoesµnotµunderstandµtheµmeaningµofµhigh,µmedium,µandµlow.µµIf¡Xìyouµhaveµaµhighµnonscanµelementµandµtheµcandidateµscanµcells¡X	3areµmediumµandµlow,µTestµCompilerµdoesµnotµautomatically¡X	ychooseµtheµmediumµcell.µµItµdoesµnotµrealizeµthatµmediumµis¡X	Àprobablyµaµbetterµmatchµtoµhighµthanµlow.’ÕöD“I501ileaf_page_string1:8-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ð,Ú¡Ä,Ú	cÚ¡Ä	cÚ	cð¡Ä	cð,ðÆÃÁÊËÃ¡ÄþÚÊÚÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³15¡þÏ²type´µGroupµAttributeµ¡þn²The´µtypeµgroup,µwhenµdefinedµwithinµaµcell,µisµaµtypeµdefinitionµlocal¡þ¶toµtheµcell.µItµcannotµbeµusedµoutsideµofµtheµcell.¡þ•²Example¡þà²type´µ(bus4)µ{¡þµµµbase_typeµ:µarray;¡þZµµµdata_typeµ:µbit;¡þ—µµµbit_widthµ:µ4;¡þÔµµµbit_fromµµ:µ0;¡þµµµbit_toµµµµ:µ3;¡þN}¡þ*²vhdl_name´µAttribute¡þÉ²This´µattributeµdefinesµvalidµVHDLµobjectµnames.¡þ¨²Example¡þó²vhdl_name´µ:µ"INb"µ;¡þŽ²The´µvhdl_nameµattributeµcanµbeµaddedµtoµtechnologyµlibraryµcellµand¡þ×pinµgroups.µThisµattributeµletsµlibraryµdevelopersµdefineµlegalµVHDL¡þ	 objectµnamesµexplicitlyµwhenµtheyµtranslateµfromµdatabaseµformat.¡þ	hSomeµdbµobjectµnamesµcanµviolateµtheµmoreµrestrictiveµVHDLµrules¡þ	±forµidentifiers.µTheµvhdl_nameµattributeµresolvesµconflictsµofµinvalid¡þ	úobjectµnamesµwhenµtranslatingµfromµdbµtoµVHDL.µNamesµinµthe¡þ
BlibraryµshouldµbeµVHDLµcompliant.’ö®D“I501ileaf_page_string1:8-16¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³16¡þÏ²Cell´µGroupµExample¡þt²Example 8³1´µshowsµcellµdefinitionsµthatµincludeµallµtheµCMOSµcell¡þ½attributesµdescribedµinµthisµsection.¡,v²&Example 8³1³CellµGroupµExample¡,É²-library´µ(cell_example){¡,dateµ:µ"Januaryµ14,µ1997";¡,8revisionµ:µ1997.01;¡,oscaling_factors(IO_PAD_SCALING)µ{¡,¦¡þ¦k_volt_intrinsic_riseµ:µ0.846;¡,Þ}¡,cellµ(inout){¡,L¡þLpad_cellµ:µtrue;¡,„¡þ„dont_useµ:µtrue;¡,»¡þ»dont_faultµ:µsa0;¡,ò¡þòdont_touchµ:µtrue;¡,*¡þ*vhdl_nameµ:µ"inpad";¡*¡,a¡þaareaµ:µ0;¡a¡“a/*µpadsµdoµnotµnormallyµconsumeµinternal¡,¡þ¡…¡¡“¡¡¡coreµareaµ*/¡,Æ¡þÆcell_footprintµ:µ5MIL;¡,ý¡þýscaling_factorsµ:µIO_PAD_SCALING;¡,5¡þ5pinµ(A)µ{¡,l¡þl¡…ldirectionµ:µinput;¡,£¡þ£¡…£capacitanceµ:µ0;¡,Û¡þÛ}¡,¡þpinµ(Z)µ{¡,I¡þI¡…Idirectionµ:µoutput;¡,¡þ¡…functionµ:µ"A";¡,¸¡þ¸¡…¸timingµ()µ{¡,ï¡þï¡…ï...¡,	'¡þ	'¡…	'}¡,	^¡þ	^}¡,	•}¡,	Ìcell(inverter_med){¡,
¡þ
areaµ:µ3;¡,
;¡þ
;preferredµ:µtrue;µ/*µtellsµDesignµCompilerµprogramµtoµuse¡,
rµµµµµµµµµµµµµµµµµµµµµµµthisµinverterµfirstµduringµoptimizationµ*/¡,
ª¡þ
ªpinµ(A)µ{¡,
á¡þ
á¡…
ádirectionµ:µinput;¡,¡þ¡…capacitanceµ:µ1.0;’®*D“I501ileaf_page_string1:8-17¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³17¡,½²-¡þ½}¡,ò¡þòpin´µ(Z)µ{¡,'¡þ'¡…'directionµ:µoutput;¡,\¡þ\¡…\functionµ:µ"A'µ";¡,’¡þ’¡…’timingµ()µ{¡,Ç¡þÇ¡…Ç...¡,ü¡þü¡…ü}¡,1¡þ1}¡,g}¡,œcell(nand){¡,Ñ¡þÑareaµ:µ4;¡,¡þpin(A)µ{¡,<¡þ<¡…<directionµ:µinput;¡,q¡þq¡…qcapacitanceµ:µ1;¡,¦¡þ¦¡…¦fanout_loadµ:µ1.0;¡,Û¡þÛ}¡,¡þpin(B)µ{¡,F¡þF¡…Fdirectionµ:µinput;¡,{¡þ{¡…{capacitanceµ:µ1;¡,°¡þ°¡…°fanout_loadµ:µ1.0;¡,å¡þå}¡,P¡þPpinµ(Y)µ{¡,…¡þ…¡……directionµ:µoutput;¡,º¡þº¡…ºfunctionµ:µ"(Aµ*µB)'µ";¡,ð¡þð¡…ðtiming()µ{¡,%¡þ%¡…%...¡,Z¡þZ¡…Z}¡,¡þ}¡,Å}¡,úcell(buff1){¡,/¡þ/areaµ:µ3;¡,d¡þdpinµ(A)µ{¡,š¡þš¡…šdirectionµ:µinput;¡,Ï¡þÏ¡…Ïcapacitanceµ:µ1.0;¡,	¡þ	}¡,	9¡þ	9pinµ(Y)µ{¡,	o¡þ	o¡…	odirectionµ:µoutput;¡,	¤¡þ	¤¡…	¤functionµ:µ"Aµ";¡,	Ù¡þ	Ù¡…	Ùtimingµ()µ{¡,
¡þ
¡…
...¡,
C¡þ
C¡…
C}¡,
y¡þ
y}¡,
®µ}¡,
ã}µ/*µEndµofµLibraryµ*²0/’*"D“I501ileaf_page_string1:8-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,‡,q¡Ä,q	cq¡Ä	cq	c‡¡Ä	c‡,‡ÆÃÁÊËÃ¡ÄþqÊqÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³18¡,Õ²Defining´µCellµRoutability¡þ”²To´µaddµroutabilityµinformationµforµtheµcell,µdefineµaµrouting_track¡þÝgroupµatµtheµcellµgroupµlevel.µµ¡þÁ²routing_track´µGroup¡þ`²A´µrouting_trackµgroupµcontainsµtheµfollowingµattributes:¡þå²S¡Xå²tracks¡þX²S¡XX²total_track_area¡þêNamesµmustµbeµuniqueµforµeachµrouting_trackµgroupµandµmustµbe¡þ3declaredµinµtheµrouting_layersµattributeµofµtheµlibrary_group.¡þ²tracks´µAttribute¡þ¶²This´µattributeµindicatesµtheµnumberµofµtracksµavailableµforµroutingµon¡þÿanyµparticularµlayer.µUseµanµintegerµlargerµthanµorµequalµtoµzero.¡þGThisµattributeµisµnotµcurrentlyµusedµforµoptimizationµreporting.¡þ	&²Example¡þ	q²tracks´µ:µ2µ;’"¤D“I501ileaf_page_string1:8-19¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³19¡þÏ²total_track_area´µAttribute¡þr²This´µattributeµspecifiesµtheµtotalµroutingµareaµofµtheµroutingµtracks.¡þV²Example¡þ¢²total_track_area´µ:µ0.2;¡þ?²Each´µroutingµlayerµdeclaredµinµtheµrouting_layersµattributeµmust¡þˆhaveµaµcorrespondingµrouting_trackµgroupµinµaµcell.µIfµitµdoesµnot,µa¡þÐwarningµisµissuedµwhenµtheµlibraryµisµcompiled.µDoµnotµuseµtwo¡þrouting_trackµgroupsµforµtheµsameµroutingµlayerµinµtheµsameµcell.¡þ¿Whenµaµlibraryµcontainsµrouting_layersµbutµnoµrouting_trackµgroups¡þinµaµcell,µaµwarningµisµissuedµwhenµtheµlibraryµisµcompiled.¡þ®Example 8³2µshowsµaµlibraryµthatµcontainsµroutabilityµinformation.¡,d²&Example 8³2³AµLibraryµwithµRoutability¡þ½²library(lib_with_routability)´µ{¡þúµµdefault_min_porosityµ:µ15.0;¡þ7µµrouting_layers(metal2",µmetal3");¡þtµµcell("ND2")µ{¡þ²µµµµareaµ:1;¡þïµµµµ...¡þ	,µµ}¡þ	jµµcell("ND2P")µ{¡þ	§µµµµareaµ:µ2;¡þ	äµµµµrouting_track(metal2)µ{¡þ
!µµµµµµtracksµ:µ2;¡þ
_µµµµµµtotal_track_areaµ:µ0.2;¡þ
œµµµµ}¡þ
Ùµµµµrouting_track(metal3)µ{¡þµµµµµµtracksµ:µ4;’¤…D“I501ileaf_page_string1:8-20¥	öäÃËÁâÊË¡Ä,è,Ò¡Ä,Ò	cÒ¡Ä	cÒ	cè¡Ä	cè,èÆÃÁÊËÃ¡Ä,ÒÊÒÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³20¡þÃ²´µµµµµµtotal_track_areaµ:µ0.4;¡þµµµµ}¡þ=µµµµ...¡þzµµ}¡þ¶µµ...¡þó}¡þŽ²Note:²¡X×²For´µaµscaled_cellµorµtest_cell,µroutabilityµinformationµisµnot¡X allowed.µForµpadµcells,µroutabilityµinformationµisµoptional.¡,(²Defining´µPinµGroups¡þç²A´µpinµgroupµdefinesµtheµcharacteristicsµofµaµpinµorµpinsµwithinµaµcell.¡þ0Aµcellµgroupµmustµcontainµdescriptionsµofµallµpinsµinµtheµcell.¡þÓAµpinµgroupµoftenµcontains¡þW²S¡XW²Aµtimingµgroup¡XËReferµtoµChapterµ14,µTimingµArcs."¡þM²S¡XM²Anµinternal_powerµgroup¡XÁReferµtoµChapterµ13,µModelingµPower."¡þ	bExample 8³11,µlaterµinµthisµchapter,µshowsµaµpinµgroupµspecification.’…(D“I501ileaf_page_string1:8-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³21¡þÏ²pin´µGroup²"¡þn²A´µpinµgroupµisµdefinedµwithinµaµcellµgroupµorµaµbusµgroup.¡þï²library´µ(²(lib_name²)µ{¡þ,...¡þiµµcellµ(²(cell_name²)µ{¡þ¦µµ...¡þãµµµpinµ(µ²(name²µ|²(µname_list²µ)µ{¡þ µµµ...µ²(pinµgroupµdescriptionµ...¡þ]²µµµ}¡þ™µµ}¡þÖµµcellµ(²(cell_name²)µ{¡þµµ...¡þPµµµµµbusµ(²(bus_name²)µ{¡þµµµµµ...²(µbus²µ²(groupµdescription²µ...¡þÊµµµµµ}¡þµµµµµbundleµ(²(bundle_name²)µ{¡þDµµµµµ...²(µbundle²µ²(groupµdescription²µ...¡þµµµµµ}¡þ½µµµµµpinµ(²(µname²µ|µ²(name_list²µ)µ{¡þúµµµµµ...µ²(pin²µ²(groupµdescription²µ...¡þ7µµµµµ}¡þtµµµ}¡þ±µ}¡þL²See´µDefiningµBusedµPins"µlaterµinµthisµchapterµforµdescriptionsµof¡þ•busµgroups.µSeeµDefiningµSignalµBundles"µlaterµinµthisµchapterµfor¡þÝdescriptionsµofµbundleµgroups.¡þ	€Theµpinµgroupsµareµalsoµvalidµwithinµtest_cellµgroups.µTheyµhave¡þ	Édifferentµrequirementsµfromµpinµgroupsµinµcell,µbus,µorµbundle¡þ
groups.µReferµtoµChapterµ12,µDefiningµTestµCells"µforµspecific¡þ
Zinformationµandµrestrictionsµonµdescribingµtestµpins.’(=D“I501ileaf_page_string1:8-22¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³22¡þÉ²All´µpinµnamesµwithinµaµsingleµcell,µbus,µorµbundleµgroupµmustµbe¡þunique.µAsµwithµallµnamesµinµtheµLibraryµCompilerµsoftware,µpin¡þZnamesµareµcaseµsensitive:µpinsµnamedµAµandµaµareµdifferentµpins.¡þýPinµnamesµbeginningµwithµaµnumberµmustµbeµenclosedµinµquotes;µfor¡þFtheµexceptionsµtoµthisµrule,µreferµtoµtheµfunctionµattribute,µlaterµinµthis¡þŽchapter,µandµtheµrelated_pinµattributeµinµChapterµ13,µTimingµArcs."¡þ1Youµcanµdescribeµpinsµwithµcommonµattributesµinµaµsingleµpinµgroup.¡þzIfµaµcellµcontainsµtwoµpinsµwithµdifferentµattributes,µtwoµseparateµpin¡þÂgroupsµareµrequired.µGroupingµpinsµwithµcommonµtechnology¡þattributesµcanµsignificantlyµreduceµtheµsizeµofµaµcellµdescriptionµwith¡þTaµlargeµnumberµofµpins.µDoµnotµconfuseµdefiningµmultipleµpinsµinµa¡þœsingleµpinµgroupµwithµdefiningµaµbusµorµbundle.µReferµtoµDefining¡þåBusedµPins"µandµDefiningµSignalµBundles"µlaterµinµthisµchapter.¡þ‡Inµtheµfollowingµexample,µtheµANDµcellµhasµtwoµpins:µAµandµB.¡þ	²cell´µ(AND)µ{¡þFµµµareaµ:µ3µ;¡þƒµµµvhdl_nameµ:µ"AND2"µ;¡þÀµµµpinµ(A)µ{¡þüµµµµdirectionµµµ:µinputµ;¡þ9µµµµcapacitanceµ:µ1µ;¡þvµµµ}¡þ³µµµpinµ(B)µ{¡þðµµµµdirectionµµµ:µinputµ;¡þ	-µµµµcapacitanceµ:µ1µ;¡þ	jµµµ}¡þ	§}’=ØD“I501ileaf_page_string1:8-23¥	öäÃËÁâÊË¡Ä,ê,Ô¡Ä,Ô	cÔ¡Ä	cÔ	cê¡Ä	cê,êÆÃÁÊËÃ¡ÄþÔÊÔÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³23¡þÉ²Because´µpinsµAµandµBµhaveµtheµsameµattributes,µtheµcellµcanµalso¡þbeµdescribedµas¡þ™²cell´µ(AND)µ{¡þ×µµareaµ:µ3µ;¡þµµvhdl_nameµ:µ"AND2"µ;¡þRµµpinµ(A,B)µ{¡þµµµµdirectionµµµ:µinputµ;¡þÎµµµµcapacitanceµ:µ1µ;¡þµµ}¡þI}¡þé²See´µtheµNetlistingµConsiderations"µsectionµlaterµinµthisµchapterµfor¡þ1informationµaboutµpinµorderingµwithinµcellµgroups.¡þ$²General´µAttributes¡þË²To´µdefineµtheµpin,µuseµtheseµgeneralµpinµgroupµattributes:µ¡þV²S¡XV²clock_gate_enable_pin¡þÍ²S¡XÍ²direction¡þE²S¡XE²inverted_output¡þ½²S¡X½²test_output_only¡þ	5²S¡X	5²dont_fault¡þ	­²S¡X	­²capacitance¡þ
%²S¡X
%²connection_class¡þ
œ²S¡X
œ²driver_type¡þ²S¡X²pin_func_type’ØÙD“I501ileaf_page_string1:8-24¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³24¡þÏ²clock_gate_enable_pin´µAttribute¡þq²This´µattributeµidentifiesµanµinputµportµconnectedµtoµanµenableµsignal.¡þºThisµattributeµisµusedµbyµDesignµCompilerµwhenµitµcompilesµaµdesign¡þcontainingµgatedµclocksµthatµwereµintroducedµbyµPowerµCompiler.¡þ©Youµcanµsetµthisµattributeµtoµtrueµonµonlyµoneµinputµportµofµa¡þñtwo³inputµAND,µNAND,µOR,µorµNORµgate.Theµotherµinputµportµisµthe¡þ:clock.µValidµvaluesµforµthisµattributeµareµtrueµandµfalse.¡þ²Example¡þj²clock_gate_enable_pin´µ:µtrue;¡þ²See´µtheµis_clock_gating_cellµattributeµinµthisµchapterµforµmore¡þPinformationµaboutµidentifyingµclockµgatingµcells.µForµadditional¡þ˜informationµaboutµclockµgating,µseeµtheµ²&PowerµProductsµReference¡þáManual².¡þË²direction´µAttribute¡þm²Use´µthisµattributeµtoµtellµDesignµCompilerµwhetherµtheµpinµbeing¡þ¶describedµisµanµinput,µoutput,µinternal,µorµbidirectionalµpin.µ¡þ	š²Example¡þ	æ²direction´µ:µoutput;¡þ
ƒ²For´µaµdescriptionµofµtheµeffectµofµpinµdirectionµonµpathµtracingµand¡þ
Ìtimingµanalysis,µreferµtoµtheµSynopsys²&µDesignµCompilerµReference¡þManualµ²set.’ÙÀD“I501ileaf_page_string1:8-25¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³25¡þÏ²inverted_output´µAttribute²}¡þn²The´µinverted_outputµattributeµisµanµoptional,µBooleanµattributeµthat¡þ¶youµcanµsetµforµanyµoutputµport.µµItµisµaµrequiredµattributeµonlyµfor¡þÿsequentialµcells.¡þ¢Setµthisµattributeµtoµfalseµforµnoninvertingµoutput,µwhichµisµvariable1¡þêorµIQµforµflip³flopµorµlatchµgroups.µSetµthisµattributeµtoµtrueµfor¡þ3invertingµoutput,µwhichµisµvariable2µorµIQNµforµflip³flopµorµlatch¡þ|groups.¡þZ²Example¡þ¦²pin(Q)´µ{¡þâµµµfunctionµ:µ"IQ";¡þµµµinternal_nodeµ:µ"IQ";¡þ\µµµinverted_outputµ:µfalse;¡þ™}¡þ4²This´µattributeµaffectsµtheµinternalµinterpretationµofµtheµstateµtable¡þ}formatµusedµtoµdescribeµaµsequentialµcell.µµYouµcanµuseµthisµattribute¡þÅtoµcontrolµtheµoutcomeµofµaµstateµtableµtoµSEQGENµmodel¡þtransformation.µReferµtoµ²&LibraryµCompilerµReferenceµManuaµVolume¡þW2²µforµmoreµinformationµaboutµSEQGEN,µaµtableµlookupµprimitiveµfor¡þŸFTGSµmodels.¡þ	ƒ²test_output_only´µAttribute¡þ
#²This´µattributeµisµanµoptional,µuser³specified,µBooleanµattributeµthat¡þ
kyouµcanµsetµforµanyµoutputµport.’ÀD“I501ileaf_page_string1:8-26¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³26¡þÉ²Example¡þ²test_output_only´µ:µfalse;¡þ¯²In´µff/latchµformat,µaµportµisµfunctionallyµdescribedµifµitµisµusedµfor¡þøfunctionµandµtest.µµIfµusedµforµtestµonly,µitµhasµnoµfunctionµattribute.¡þAButµinµstateµtableµformat,µaµportµthatµisµusedµforµtestµhasµaµfunctional¡þ‰description.µµIfµaµportµisµforµtestµonly,µsetµtheµtest_output_only¡þÒattributeµtoµtrue.¡þ¶²dont_fault´µAttribute¡þU²This´µattributeµisµusedµbyµtheµTestµCompilerµsoftware.µItµisµaµstring¡þžattributeµthatµyouµcanµsetµonµaµlibraryµcellµorµpin.¡þ}²Example¡þÈ²dont_fault´µ:µsa0;¡þc²If´µyouµsetµthisµattributeµonµaµlibraryµcellµtoµsa0,µinstancesµofµtheµcell¡þ«inµtheµdesignµwillµnotµbeµmodeledµwithµstuck³at³0µfaultsµduringµfault¡þômodeling.µSimilarly,µifµyouµsetµthisµattributeµonµaµlibraryµcellµtoµsa1,¡þ=instancesµofµtheµcellµinµtheµdesignµwillµnotµbeµmodeledµwith¡þ…stuck³at³1µfaults.µSettingµthisµattributeµonµaµcellµtoµsa01µmeansµthat¡þÎtheµcellµwillµnotµbeµmodeledµwithµeitherµstuck³at³0µorµstuck³at³1¡þ	faults.µTheµsameµvaluesµareµallowedµonµpinsµandµmeanµthatµtheµpin¡þ	_willµnotµbeµmodeledµwithµtheµspecifiedµstuck³atµfault.’.D“I501ileaf_page_string1:8-27¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³27¡þÏ²capacitance´µAttributeµµ¡þn²This´µattributeµdefinesµtheµloadµofµanµinputµorµoutputµpin.¡þL²Example¡þ˜²capacitance´µ:µ2;¡þ3²If´µtheµtimingµgroupsµinµaµcellµincludeµtheµoutput³pinµcapacitance¡þ{effectµinµtheµintrinsic³delayµspecification,µdoµnotµspecifyµcapacitance¡þÄvaluesµforµtheµcell'sµoutputµpins.¡þ¨²connection_class´µAttribute²}µ²¡þG²This´µattributeµletsµyouµspecifyµdesignµrulesµforµconnectionsµbetween¡þcells.¡þo²Example¡þº²connection_class´µ:µ"internal";¡þU²Only´µpinsµwithµtheµsameµconnectionµclassµcanµbeµlegallyµ¡þžconnected.µForµexample,µyouµcanµspecifyµthatµclockµinputµmustµbe¡þædrivenµbyµclockµbufferµcells,µorµthatµoutputµpadsµcanµbeµdrivenµ¡þ	/onlyµbyµhigh³driveµpadµdriverµcellsµbetweenµtheµinternalµlogicµandµ¡þ	wtheµpad.µToµdoµthis,µyouµassignµtheµsameµconnectionµclassµtoµthe¡þ	Àpinsµthatµmustµbeµconnected.µForµtheµpadµexample,µyouµattachµa¡þ
	givenµconnectionµclassµtoµtheµpadµdriverµoutputµandµtheµpadµinput.¡þ
QThisµattachmentµmakesµitµinvalidµtoµconnectµanotherµtypeµofµcellµto¡þ
štheµpad.’.D“I501ileaf_page_string1:8-28¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³28¡þÉ²Design´µCompilerµrecognizesµtwoµspecialµconnectionµclasses:¡þuniversalµandµdefault.¡þ–²S¡X–²Theµuniversalµconnectionµclassµmatchesµallµotherµconnection¡XÝclasses,µsoµaµpinµwithµthisµclassµcanµbeµconnectedµtoµanother¡X$pin.µ¡þ—²S¡X—²DesignµCompilerµassignsµtheµdefaultµconnectionµclassµtoµallµpins¡XÞthatµdoµnotµhaveµaµconnectionµclassµassignedµtoµthem.µAµdefault¡X$pinµcanµbeµconnectedµonlyµtoµanotherµdefaultµpin.¡þ¶Youµcanµdefineµaµdefaultµconnectionµclassµwithµthe¡þþdefault_connection_classµattributeµinµtheµlibraryµgroup,µasµdescribed¡þGinµLibrary³LevelµDefaultµAttributes"µinµChapterµ17.µIfµyouµdoµnot¡þdefineµaµdefaultµconnectionµclassµforµyourµlibrary,µDesignµCompiler¡þØassignsµtheµvalueµtoµtheµdefault_connection_classµattribute.¡þ{Netsµwithµmultipleµdrivers,µsuchµasµbusesµorµwiredµlogic,µfollowµthe¡þÄsameµconnectionµrulesµasµsingle³driverµnets.µAllµpinsµmustµhaveµthe¡þsameµconnectionµclass.¡þ¯Example 8³3µusesµconnectionµclasses.µTheµoutput_padµcellµcanµbe¡þødrivenµonlyµbyµtheµpad_driverµcell.µTheµpadµdriver'sµinputµcanµbe¡þ@connectedµtoµinternalµcoreµlogicµbecauseµitµhasµtheµinternal¡þ‰connectionµclass.’[D“I501ileaf_page_string1:8-29¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³29¡,É²&Example 8³3³Connection´µClassµExample¡þ!²default_connection_class´µ:µ"internal"µ;¡þ^cellµ(output_pad)µ{¡þ›¡…›pinµ(IN)µ{¡þØ¡…Ø¡Øconnection_classµ:µ"external_output"µ;¡þ¡…...¡þS¡…S}¡þ}¡þÍcellµ(pad_driver)µ{¡þ
¡…
pinµ(OUT)µ{¡þG¡…G¡Gconnection_classµ:µ"external_output"µ;¡þ„¡…„...¡þÂ¡…Â}¡þÿ¡…ÿpinµ(IN)µ{¡þ<¡…<¡<connection_classµ:µ"internal"µ;¡þy¡…y...¡þ¶¡…¶}¡þó}¡þ²Example 8³4´µshowsµtheµuseµofµmultipleµconnectionµclassesµforµa¡þØsingleµpin.µTheµhigh_drive_bufferµcellµcanµdriveµinternalµcoreµcells¡þ!andµpadµcells,µwhileµtheµlow_drive_bufferµcellµcanµdriveµonlyµinternal¡þicells.¡,²&Example 8³4³MultipleµConnectionµClassesµforµaµPin¡þv²cell´µ(high_drive_buffer)µ{¡þ³¡…³pinµ(OUT)µ{¡þð¡…ð¡ðconnection_classµ:µ"internalµpad"µ;¡þ	-¡…	-...¡þ	j¡…	j}¡þ	¨}¡þ	åcellµ(low_drive_buffer)µ{¡þ
"¡…
"pinµ(OUT)µ{¡þ
_¡…
_¡
_connection_classµ:µ"internal"µ;¡þ
œ¡…
œ...¡þ
Ù¡…
Ù}¡þ}’[D“I501ileaf_page_string1:8-30¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³30¡þÃ²cell´µ(pad_cell)µ{¡þ¡…pinµ(IN)µ{¡þ=¡…=¡=connection_classµ:µ"pad"µ;¡þz¡…z...¡þ¶¡…¶}¡þó}¡þ0cellµ(internal_cell)µ{¡þm¡…mpinµ(IN)µ{¡þª¡…ª¡ªconnection_classµ:µ"internal"µ;¡þç¡…ç...¡þ$¡…$}¡þa}¡þ²driver_type´µAttribute¡þ ²Use´µtheµoptionalµdriver_typeµattributeµtoµmodifyµtheµsignalµonµaµpin.¡þèThisµattributeµspecifiesµaµsignalµmappingµmechanismµthatµsupports¡þ1theµsignalµtransitionsµperformedµbyµtheµcircuit.¡þÓTheµdriver_typeµattributeµtellsµtheµTestµCompilerµprogramµandµthe¡þVHDLµlibraryµgeneratorµtoµuseµaµspecialµpin³drivingµconfigurationµfor¡þetheµpinµduringµsimulation.µAµpinµwithoutµthisµattributeµhasµnormal¡þ­drivingµcapabilityµbyµdefault.¡þPAµdriverµtypeµcanµbeµoneµorµmoreµofµtheµfollowing:¡þÕpull_up¡X	TheµpinµisµconnectedµtoµDCµpowerµthroughµaµresistor.µIfµitµisµa¡X	fthree³stateµoutputµpinµandµitµisµinµtheµZµstate,µitsµfunctionµis¡X	¯evaluatedµasµaµresistiveµ1µ(H).µIfµitµisµanµinputµorµinoutµpinµandµthe¡X	÷nodeµtoµwhichµitµisµconnectedµisµinµtheµZµstate,µitµisµconsideredµan¡X
@inputµpinµatµlogicµ1µ(H).µForµaµpull³upµcell,µtheµpinµstays¡X
‰constantlyµatµlogicµ1µ(H).’ÐD“I501ileaf_page_string1:8-31¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³31¡þÉ²pull_down¡XThe´µpinµisµconnectedµtoµDCµgroundµthroughµaµresistor.µIfµitµisµa¡XZthree³stateµoutputµpinµandµitµisµinµtheµZµstate,µitsµfunctionµis¡X£evaluatedµasµaµresistiveµ0µ(L).µIfµitµisµanµinputµorµinoutµpinµandµthe¡XìnodeµtoµwhichµitµisµconnectedµisµinµtheµZµstate,µitµisµconsideredµan¡X4inputµpinµatµlogicµ0µ(L).µForµaµpull³downµcell,µtheµpinµstays¡X}constantlyµatµlogicµ0µ(L).¡þNote:²¡XJ²Toµalertµyouµthatµtheµoutputµdrivingµtheµinputµcouldµbeµaffectedµby¡X“theµpullµupµorµpullµdown,µLibraryµCompilerµprintsµaµwarning¡XÜwheneverµanµinputµpinµhasµaµpullµupµorµpullµdown.¡þ`bus_hold¡X©Theµpinµisµaµbidirectionalµpinµonµaµbusµholderµcell.µTheµpinµholds¡Xñtheµlastµlogicµvalueµpresentµatµthatµpin,µwhenµnoµotherµactive¡X:driversµareµonµtheµassociatedµnet.µPinsµwithµthisµdriverµtype¡Xƒcannotµhaveµfunctionµorµthree_stateµstatements.¡þéopen_drain¡X2Theµpinµisµanµoutputµpinµwithoutµaµpull³upµtransistor.µUseµthis¡X{driverµtypeµonlyµforµoff³chipµoutputµorµinoutµpinsµrepresenting¡XÃpads.µTheµpinµgoesµtoµhighµimpedanceµ(Z)µwhenµitsµfunctionµis¡Xevaluatedµasµlogicµ1.¡þsopen_source¡X»Theµpinµisµanµoutputµpinµwithoutµaµpull³downµtransistor.µUseµthis¡X	driverµtypeµonlyµforµoff³chipµoutputµorµinoutµpinsµrepresenting¡X	Mpads.µTheµpinµgoesµtoµhighµimpedanceµ(Z)µwhenµitsµfunctionµis¡X	•evaluatedµasµlogicµ0.’ÐùD“I501ileaf_page_string1:8-32¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³32¡þÉ²resistive¡XThe´µpinµisµanµoutputµpinµconnectedµtoµaµcontrolledµpullµupµorµpull¡XZdownµwithµaµcontrolµportµ(input).µWhenµtheµcontrolµportµis¡X£disabled,µtheµpullµupµorµpullµdownµisµturnedµoffµandµhasµnoµeffect¡Xìonµtheµpin.µWhenµtheµcontrolµportµisµenabled,µaµfunctionalµvalue¡X4ofµ0µevaluatedµatµtheµpinµisµturnedµintoµaµweakµ0µ(L),µaµfunctional¡X}valueµofµ1µisµturnedµintoµaµweakµ1µ(H),µbutµaµfunctionalµvalueµofµZ¡XÆisµnotµaffected.¡þ,resistive_0¡XuTheµpinµisµanµoutputµpinµconnectedµtoµDesignµCompilerµpower¡X¾throughµaµpullµupµthatµhasµaµcontrolµportµ(input).µWhenµtheµcontrol¡Xportµisµdisabled,µtheµpullµupµisµturnedµoffµandµhasµnoµeffectµonµthe¡XOpin.µWhenµtheµcontrolµportµisµenabled,µaµfunctionalµvalueµofµ1¡X—evaluatedµatµtheµpinµisµturnedµintoµaµweakµ1µ(H),µbutµfunctional¡Xàvaluesµofµ0µandµZµareµnotµaffected.¡þGresistive_1¡XTheµpinµisµanµoutputµpinµconnectedµtoµDesignµCompilerµground¡XØthroughµaµpullµdownµthatµhasµaµcontrolµportµ(input).µWhenµthe¡X!controlµportµisµdisabled,µtheµpullµdownµisµturnedµoffµandµhasµno¡Xieffectµonµtheµpin.µWhenµtheµcontrolµportµisµenabled,µaµfunctional¡X²valueµofµ0µevaluatedµatµtheµpinµisµturnedµintoµaµweakµ0µ(L),µbut¡Xûfunctionalµvaluesµofµ1µandµZµareµnotµaffected.¡þExceptµforµinoutµpins,µeachµpinµcanµhaveµonlyµoneµdriver_type¡þÈattribute.µLibraryµCompilerµignoresµmultipleµstatementsµandµusesµthe¡þ	lastµstatement.’ù¦D“I501ileaf_page_string1:8-33¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³33¡þÉ²Inout´µpinsµcanµhaveµtwoµdriverµtypes,µoneµforµinputµandµoneµfor¡þoutput.µTheµonlyµvalidµcombinationsµareµpull_up/pull_downµforµinput¡þZandµopen_drainµforµoutput.µIfµyouµspecifyµonlyµoneµdriverµtypeµandµit¡þ£isµbus_hold,µitµisµusedµforµbothµinputµandµoutput.µIfµtheµsingleµdriver¡þìtypeµisµnotµbus_hold,µitµisµusedµforµoutput.µSpecifyµmultipleµdriver¡þ4typesµinµoneµentryµinµthisµformat:¡þ¼²driver_type´µ:µ"driver_type1µdriver_type2"¡þ_²Example¡þÏ²This´µisµanµexampleµofµaµpinµconnectedµtoµaµcontrolledµpull³upµcell¡þthatµresultsµinµaµweakµ1µwhenµtheµcontrolµportµisµenabled.¡þŸ²function´µ:µ1;¡þÜdriver_typeµ:µresistive;¡þthree_state_enableµ:µEN;¡þû²Interpretation´µofµDriverµTypes¡þk²Theµdriverµtypeµspecifiesµoneµofµtheseµsignalµmodifications:¡þõ²S¡Xõ²Transformµtheµsignal¡XmTheseµdriverµtypesµperformµanµactualµfunctionµonµanµinputµsignal,¡X´mappingµtheµtransitionµfromµ0µorµ1µtoµL,µH,µorµZ.µTransformation¡Xúdriverµtypesµareµopen_drain,µopen_source,µresistive,µresistive_0,¡X	Aandµresistive_1.¡þ	É²S¡X	É²ResolveµtheµvalueµofµZ¡X
ATheseµdriverµtypesµresolveµtheµvalueµofµZµonµanµexistingµcircuit¡X
‡node,µimplyingµaµconstantµ0µorµ1µsignalµsource.µTheyµdoµnot¡X
Îperformµaµfunction.µResolutionµdriverµtypesµareµpull_up,¡Xpull_down,µandµbus_hold.’¦
îD“I501ileaf_page_string1:8-34¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³34¡þÉ²For´µoutputµpins,µthisµattributeµisµappliedµafterµtheµpin'sµfunctional¡þevaluation.µForµinputµpins,µthisµattributeµisµappliedµbeforeµtheµsignal¡þZisµusedµforµfunctionalµevaluation.µSeeµTable 8³1µforµtheµsignal¡þ£mappingsµandµpinµtypesµofµtheµdifferentµdriverµtypes.µ²¡,I²&Table 8³1³DriverµTypes¡,´²¥	öä¡Iø²"Driver´µTypeÁã¡ÃÄ,--?,?,Ç¡ÃÄ,˜,˜,Ç²¡´¥	öä¡.ø²"Description¡ÃÄEE˜˜Ç²¡F´¥	öä¡cø²"SignalµMapping¡ÃÄFaa˜F˜FÇ²¡b´¥	öä¡Ü²"Applicable¡PinµTypes¡ÃÄÊËË?Ê?ÊÇ¡ÃÄbËË˜b˜bÇ²¡Ê´¡,d¥	öä¡I„²pull_up¡ÃÄ,@-@-§,§,@Ç¡ÃÄ,@@A,A,@Ç²¡d¥	öä¡.„²Resolution¡ÃÄ@E@EAA@Ç²¡Fd¥	öä¡c„²01Zµ->µ01H¡ÃÄF@a@aAFAF@Ç²¡bd¥	öä¡„²in,µout¡ÃÄÊ@Ë@Ë§Ê§Ê@Ç¡ÃÄb@Ë@ËAbAb@Ç²¡Êd¡,Ì¥	öä¡Iì²pull_down¡ÃÄ,¨-¨-,,¨Ç²¡Ì¥	öä¡.ì²Resolution²¡FÌ¥	öä¡cì²01Zµ->µ01L²¡bÌ¥	öä¡ì²in,µout¡ÃÄÊ¨Ë¨ËÊÊ¨Ç²¡ÊÌ¡,4¥	öä¡IT²bus_hold¡ÃÄ,--w,w,Ç²¡4¥	öä¡.T²Resolution²¡F4¥	öä¡cT²01Zµ->µ01S²¡b4¥	öä¡T²inout¡ÃÄÊËËwÊwÊÇ²¡Ê4¡,œ¥	öä¡I¼²open_drain¡ÃÄ,x-x-ß,ß,xÇ²¡œ¥	öä¡.¼²T¤ÿþransformation²¡Fœ¥	öä¡c¼²01Zµ->µ0ZZ²¡bœ¥	öä¡¼²out¡ÃÄÊxËxËßÊßÊxÇ²¡Êœ¡,¥	öä¡I$²open_source¡ÃÄ,à-à-G,G,àÇ²¡¥	öä¡.$²T¤ÿþransformation²¡F¥	öä¡c$²01Zµ->µZ1Z²¡b¥	öä¡$²out¡ÃÄÊàËàËGÊGÊàÇ²¡Ê¡,l¥	öä¡IŒ²resistive¡ÃÄ,H-H-¯,¯,HÇ²¡l¥	öä¡.Œ²T¤ÿþransformation²¡Fl¥	öä¡cŒ²01Zµ->µLHZ²¡bl¥	öä¡Œ²out¡ÃÄÊHËHË¯Ê¯ÊHÇ²¡Êl¡,Ô¥	öä¡Iô²resistive_0¡ÃÄ,°-°-,,°Ç²¡Ô¥	öä¡.ô²T¤ÿþransformation²¡FÔ¥	öä¡cô²01Zµ->µ0HZ²¡bÔ¥	öä¡ô²out¡ÃÄÊ°Ë°ËÊÊ°Ç²¡ÊÔ¡,<¥	öä¡I\²resistive_1¡ÃÄ,--,,Ç¡ÃÄ,xx€,€,xÇ²¡<¥	öä¡.\²T¤ÿþransformation¡ÃÄxExE€€xÇ²¡F<¥	öä¡c\²01Zµ->µL1Z¡ÃÄFxaxa€F€FxÇ²¡b<¥	öä¡\²out¡ÃÄÊËËÊÊÇ¡ÃÄbxËxË€b€bxÇ²¡Ê<¡þ²Signal´µMapping:¡þ°0µandµ1¡„°strongµvalues¡þ	IL¡„	Iweakµ0¡þ	âH¡„	âweakµ1¡þ
{Z¡„
{highµimpedance¡þS¡„previousµstate’
îëD“I501ileaf_page_string1:8-35¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³35¡þÉ²Interpreting´µBusµHolderµDriverµType¡þ)²Figure 8³1µillustratesµtheµ01Zµtoµ01Sµsignalµmappingµforµbusµholders.¡,½²&Figure 8³1³Interpretingµbus_holdµDriverµType¡,€²¥	öäÃËÁÊË¡ÄTËëÿ¡Äëÿë—¡Äë—TËâãÇÆÃÁâÊËÃ¡ÄúËëËÆÃÃ¡ÄTËÌËÆÃÃ¡Äñ}ÆÃÃÊË¡Äçcç¡Äcçc)¡Äc))¡Ä)çÆÃ²¡i0 / 1 / ZÃÁâÊË¡Ä¦ž¶Ë¡Ä¶ËÇž¡ÄÇž¦žâÇÆÃÁÊËÃ¡Ä¶Ë¶ËÆÃÃÁâÊË¡ÄÈ^·1¡Ä·1§^¡Ä§^È^âÇÆÃÁÊËÃ¡Ä·1·1ÆÃÁâÊËÃ¡Ä¶Ë·1ÆÃÃÁâÊË¡Ä¦ž¶Ë¡Ä¶ËÇž¡ÄÇž¦žÇÆÃÁÊËÃ¡Ä¶Ë¶ËÆÃÃÁÊË¡ÄÈ^·1¡Ä·1§^¡Ä§^È^ÇÆÃÁÊËÃ¡Ä·1·1ÆÃÁÃ¡Ä¶Ë·1ÆÃ¡'Kenable²¡Ê€¡þ²Forµbus_holderµdriverµtypes,µaµthree³stateµbufferµoutputµvalueµofµ0¡þcchangesµtheµbusµvalueµtoµ0.µSimilarly,µaµthree³stateµbufferµoutput¡þ«valueµofµ1µchangesµtheµbusµvalueµtoµ1.µHowever,µwhenµtheµoutputµof¡þôtheµthree³stateµbufferµisµZ,µtheµbusµholdsµitsµpreviousµvalueµ(S),¡þ=whichµcanµbeµ0,µ1,µorµZ.µInµotherµwords,µtheµbufferµoutputµvalueµofµZ¡þ…isµresolvedµtoµtheµpreviousµvalueµofµtheµbus.¡þ9²ModelingµPull³UpµandµPull³DownµCells¡þ™²Figure 8³2µshowsµaµpull³upµcellµtransistor.¡,,²&Figure 8³2³Pull³UpµCellµTransistor¡,	X²¥	öäÃÁÊË¡Ä"	$"^¡Ä"^j^¡Äj^j	$¡Äj	$"	$âÇÆÃÃÁâÊË¡Ä4ðEùÁÊË¡ÄEùE	$ÈÁÊË¡ÄX’4¤¡Ä4¤X·¡ÄX·4Ê¡Ä4ÊXÝ¡ÄXÝ4ðÈÁÊË¡ÄE]E‡ÁÊË¡ÄE‡X‘ÈÆÃÁ	Ê	ËÃ¡Ä [p[ÆÃ²¡:	UY²¡Ê	X¡þ	ò²Example 8³5µisµtheµdescriptionµofµtheµpull³upµcellµtransistorµin¡þ
:Figure 8³2.µThisµcellµhasµaµpull³upµdriverµtypeµandµnoµinput.µBecause¡þ
ƒitµisµfunctionless,µLibraryµCompilerµlabelsµitµaµblackµbox.µThisµmodel¡þ
Ìrequiresµspecialµrecognitionµfromµtheµtoolsµthatµuseµit.µThisµcellµisµa¡þpad,µbutµyouµcanµomitµtheµpadµinformationµforµanµinternalµpull³up.’ë¢D“I501ileaf_page_string1:8-36¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³36¡,É²&Example 8³5³Description´µofµPull³UpµCellµTransistor¡þ ²cell(pull_up_cell)´µ{¡þ]µµµareaµ:µ0;¡þšµµµauxiliary_pad_cellµ:µtrue;¡þ×µµµpin(Y)µ{¡þµµµµµµdirectionµ:µoutput;¡þQµµµµµµmulticell_pad_pinµ:µtrue;¡þŽµµµµµµconnection_classµ"µ"inpad_network"'¡þÊµµµµµµdriver_typeµ:µpull_up;¡þµµµµµµpulling_resistanceµ:µ10000;¡þDµµµ}¡þ}¡þ²Example 8³6´µdescribesµanµoutputµpinµwithµaµpull³upµresistorµandµthe¡þebidirectionalµpinµonµaµbusµholderµcell.¡,²&Example 8³6³PinµDriverµTypeµSpecifications¡þ«²´µpin(Y)µ{¡þçµµµdirectionµ:µoutputµ;¡þ$µµµdriver_typeµ:µpull_upµ;¡þaµµµpulling_resistanceµ:µ10000µ;¡þžµµµfunctionµ:µ"IO"µ;¡þÛµµµthree_stateµ:µ"OE"µ;¡þµ}¡þUcellµ(bus_hold)µ{¡þ’µpin(Y)µ{¡þÏµµµdirectionµ:µinoutµ;¡þ	µµµdriver_typeµ:µbus_holdµ;¡þ	Hµ}¡þ	…}’¢D“I501ileaf_page_string1:8-37¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³37¡þÉ²Bidirectional´µpadsµcanµoftenµrequireµoneµdriverµtypeµforµtheµoutput¡þbehaviorµandµanotherµassociatedµwithµtheµinput.µForµthisµcase,µyou¡þZcanµdefineµmultipleµdriverµtypesµinµoneµdriver_typeµattribute:¡þÜ²driver_type´µ:µ"open_drainµpull_up"µ;¡þw²Note:²¡X¿²An´µn³channelµopen³drainµpadµisµflaggedµwithµopen_drain,µandµa¡Xp³channelµopen³drainµpadµisµflaggedµwithµopen_source.¡þì²pin_func_type´µAttributeµµ¡þ‹²This´µattributeµdescribesµtheµfunctionsµofµtheµpin.¡þj²Example¡þµ²pin_func_type´µ:µclock_enable;¡þP²With´µthisµattribute,µyouµavoidµtheµcheckingµandµmodelingµcausedµby¡þ™incompleteµtimingµinformationµaboutµtheµenableµpin.µTheµinformation¡þâinµthisµattributeµdefinesµtheµclockµasµtheµclock³enablingµmechanism,¡þ*(thatµis,µtheµclock³enableµpin).µThisµattributeµalsoµspecifiesµwhether¡þstheµactiveµedgeµofµtheµenableµpinµofµlatchesµisµhighµorµlow,µand¡þ¼whetherµtheµactiveµlevelµofµtheµflip³flopµclockµisµrisingµorµfalling.¡þ	^Theµreport_libµcommandµlistsµtheµpinsµofµaµcellµifµtheyµhaveµoneµof¡þ	§theseµpin_func_typeµvalues:µactiveµfalling,µactiveµhigh,µactiveµlow,¡þ	ðactiveµrising,µorµclockµenable.’çD“I501ileaf_page_string1:8-38¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³38¡þÏ²Describing´µDesignµRuleµChecks¡þ~²To´µdefineµdesignµruleµchecks,µuseµtheseµpinµgroupµattributesµand¡þÆgroup:¡þV²S¡XV²fanout_loadµAttribute¡þÑ²S¡XÑ²max_fanoutµAttribute¡þM²S¡XM²min_fanoutµAttribute¡þÈ²S¡XÈ²max_transitionµAttribute¡þD²S¡XD²min_transitionµAttribute¡þ¿²S¡X¿²max_capacitanceµAttribute¡þ;²S¡X;²min_capacitanceµAttribute¡þ¶²S¡X¶²cell_degradationµGroup¡þ¡²fanout_load´µAttribute¡þP²The´µfanout_loadµattributeµgivesµtheµfanoutµloadµvalueµforµanµinput¡þ™pin.¡þ	’²Example¡þ	à²fanout_load´µ:µ1.0;¡þ
ƒ²The´µsumµofµallµfanout_loadµattributeµvaluesµforµinputµpinsµconnected¡þ
Ìtoµaµdrivingµ(output)µpinµmustµnotµexceedµtheµmax_fanoutµvalueµfor¡þthatµoutputµpin.²-’çŽD“I501ileaf_page_string1:8-39¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³39¡þÉ²Figure 8³3´µillustratesµmax_fanoutµandµfanout_loadµattributesµforµa¡þcell.¡,Þ²&Figure 8³3³FanoutµµAttributes¡,	²¥	öäÃËÁÊË¡Ä[[È¡Ä[Èî¡Äî[ÆÃÊËÃ¡Ä[ééÆÃÃ¡Ä¢îÏîÆÃÃÊË¡ÄÍ¼‚¼¡Ä‚¼‚¡Ä‚ÍÆÃÃÊË¡Ìÿÿÿÿÿÿö_ÿÿÿÿÿÿö_ÿÿÿÿÿü<Ùÿÿåð	ÍuÍÆÃÃ¡Ìÿÿÿÿÿÿ÷íÿÿÿÿÿÿðü`Áf¼¾¼êÉüéüAüéÆÃÃÊË¡ÅÿáÿöáÿìÿìÆÃÊËÃ¡ÄéRéÆÃÃÊË¡ÄcˆcE¡ÄcE¦k¡Ä¦kcˆÆÃÊËÃ¡Äcf%fÆÃÃ¡ÄªkØkÆÃÃÊË¡ÄccÂ¡ÄcÂ¦è¡Ä¦ècÆÃÊËÃ¡Äcã%ãÆÃÃ¡ÄªèØèÆÃÃ¡Ä†ééÆÃÃ¡Ä"ã"éÆÃÃ¡ÄƒÐÐÆÃÃ¡ÄÆÃ²$¡¶max_fanout : 10 ;¡†?fanout_load : 1.0¡ˆÁfanout_load : 1.0¡ˆ>fanout_load : 1.0Ã¡Ä"öŒŒÆÃÃ¡ÄT×©EÆÃÃ¡ÄTZ®ÌÆÃÃ¡ÄPá¥OÆÃÃ¡ÄéTéÆÃ²¡Ê	¡þ=²max_fanout´µAttribute¡þò²This´µattributeµdefinesµtheµmaximumµfanoutµloadµthatµanµoutputµpin¡þ;canµdrive.¡þ?²Example¡þŽ²pin(Q)¡þÍ´µµdirectionµ:µoutput;¡þ	µµmax_fanoutµ:µ10;¡þ	K}¡þ	ò²Some´µdesignsµhaveµinputµloadµlimitationsµthatµanµoutputµpinµcan¡þ
:driveµregardlessµofµanyµloadingµcontributedµbyµinterconnectµmetal¡þ
ƒlayers.µToµlimitµtheµnumberµofµinputsµonµtheµsameµnetµdrivenµbyµan¡þ
Ìoutputµpin,µdefineµaµmax_fanoutµvalueµforµeachµoutputµpinµandµa¡þfanout_loadµonµeachµinputµpinµinµaµcell.µ(SeeµFigure 8³3.)µ²-´µµ’ŽND“I501ileaf_page_string1:8-40¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³40¡þÉ²You´µcanµspecifyµmax_fanoutµatµthreeµlevels:µlibraryµlevel,µpinµlevel,¡þandµonµtheµcommandµlineµinµdc_shell.¡þ´Theµmax_fanoutµattributeµisµanµimpliedµdesignµruleµconstraint.¡þýDesignµCompilerµattemptsµtoµresolveµmax_fanoutµviolations,¡þFpossiblyµatµtheµexpenseµofµotherµdesignµconstraints.µ¡þèInµFigure 8³3,µDesignµCompilerµaddsµallµtheµfanout_loadµvaluesµof¡þ1theµinputµtoµequalµ3.0.µThenµDesignµCompilerµcomparesµtheµsumµof¡þztheµfanout_loadµonµallµinputsµtoµtheµmax_fanoutµconstraintµofµthe¡þÂdrivingµoutput,µwhichµisµ10.µInµthisµcase,µnoµdesignµruleµviolation¡þoccurs.µIfµaµdesignµruleµviolationµoccurs,µDesignµCompilerµmayµhave¡þTreplacedµtheµdrivingµcellµwithµaµcellµthatµhasµaµhigherµmax_fanout¡þœvalue.¡þ?Whenµselectingµaµmax_fanoutµvalue,µDesignµCompilerµfollowsµthese¡þ‡rules:¡þ²S¡X²Theµvalueµyouµassignµforµtheµpinµalwaysµoverridesµtheµlibrary¡XSdefaultµvalue.¡þÆ²S¡XÆ²Whenµyouµassignµaµmax_fanoutµvalueµatµtheµcommandµline,¡XDesignµCompilerµusesµtheµsmallestµvalue.µIfµtheµpinµvalueµis¡XSsmaller,µDesignµCompilerµignoresµtheµcommand³lineµvalue.¡þåToµdetermineµmax_fanout,µfindµtheµsmallestµloadingµofµanyµinputµtoµa¡þ	.cellµinµtheµlibraryµandµuseµthatµvalueµasµtheµstandardµloadµunitµforµthe¡þ	ventireµlibrary.µUsuallyµtheµsmallestµbufferµorµinverterµhasµtheµlowest¡þ	¿inputµpinµloadingµvalue.µUseµsomeµmultipleµofµtheµstandardµvalueµfor¡þ
theµfanoutµloadsµofµtheµotherµcells.µBothµrealµandµintegerµvaluesµare¡þ
Psupported.’NLD“I501ileaf_page_string1:8-41¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³41¡þÉ²To´µspecifyµaµglobalµmaximumµfanoutµforµallµgateµoutputsµinµthe¡þdesign,µuseµmax_fanoutµonµtheµcommandµlineµofµdc_shell.µWhen¡þZdefinedµonµtheµcommandµline,µtheµvalueµofµmax_fanoutµisµassigned¡þ£toµallµgateµoutputsµthatµdoµnotµhaveµaµspecifiedµmax_fanoutµor¡þìwhoseµmax_fanoutµvalueµisµgreaterµthanµtheµoneµdefined.µ¡þ›Althoughµyouµcanµuseµcapacitanceµasµtheµunitµforµyourµmax_fanout¡þäandµfanout_loadµspecifications,µitµshouldµbeµusedµtoµconstrain¡þ,routabilityµrequirements.µItµdiffersµfromµtheµcapacitanceµpinµattribute¡þuinµtheµfollowingµways:¡þ²S¡X²Theµfanoutµvaluesµareµusedµonlyµforµdesignµruleµchecking.¡þ|²S¡X|²TheµcapacitanceµvaluesµareµusedµbyµtheµDesignµCompilerµtiming¡XÃverifierµinµdelayµcalculations.¡þ©²min_fanout´µAttribute¡þU²This´µattributeµdefinesµtheµminimumµfanoutµloadµthatµanµoutputµor¡þinoutµpinµcanµdrive.µTheµsumµofµfanoutµcannotµbeµlessµthanµthe¡þæminimumµfanoutµvalue.¡þÚ²Example¡þ	'²pin(Q)´µ{¡þ	eµµµdirectionµ:µoutput;¡þ	£µµµmin_fanoutµ:µ2.0;¡þ	â}¡þ
ƒ²The´µmin_fanoutµattributeµisµanµimpliedµdesignµruleµconstraint.µDesign¡þ
ÌCompilerµattemptsµtoµresolveµmin_fanoutµviolations,µpossiblyµatµthe¡þexpenseµofµotherµdesignµconstraints.µ’LŒD“I501ileaf_page_string1:8-42¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³42¡þÏ²max_transition´µAttribute¡þv²This´µattributeµdefinesµaµdesignµruleµconstraintµforµtheµmaximum¡þ¿acceptableµtransitionµtimeµofµanµinputµorµoutputµpin.µµµµ¡þ¬²Example¡þù²pin(A)´µ{¡þ6µµdirectionµ:µinput;¡þtµµmax_transitionµ:µ4.2;¡þ²}¡þQ²You´µcanµspecifyµmax_transitionµatµthreeµlevels:µlibraryµlevel,µpin¡þšlevel,µandµinµdc_shell.¡þEWithµanµoutputµpin,µmax_transitionµisµusedµonlyµtoµdriveµaµnetµfor¡þŽwhichµtheµcellµcanµprovideµaµtransitionµtimeµatµleastµasµfastµasµthe¡þÖdefinedµlimit.¡þ‚Withµanµinputµpin,µmax_transitionµindicatesµthatµtheµpinµcannotµbe¡þÊconnectedµtoµaµnetµthatµhasµaµtransitionµtimeµgreaterµthanµthe¡þdefinedµlimit.µDesignµCompilerµattemptsµtoµresolveµmax_transition¡þ[violations,µpossiblyµatµtheµexpenseµofµotherµdesignµconstraints.¡þ	Inµtheµfollowingµexample,µtheµcellµthatµcontainsµpinµQµcannotµbe¡þ	Ousedµtoµdriveµaµnetµforµwhichµtheµcellµcannotµprovideµaµtransitionµtime¡þ	˜fasterµthanµ5.2:¡þ
²´µpin(Q)µ{¡þ
]µµµdirectionµ:µoutputµ;¡þ
›µµµmax_transitionµ:µ5.2µ;¡þ
Ùµ}’ŒKD“I501ileaf_page_string1:8-43¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³43¡þÉ²The´µmax_transitionµvalueµyouµdefineµisµcheckedµagainstµD²‹¤T¤ÿø²,µthe¡þtransitionµdelayµthatµDesignµCompilerµcalculates,µwhichµisµtheµrise¡þZandµfallµresistanceµmultipliedµbyµtheµsumµofµtheµpinµandµwire¡þ£capacitances:¡,$¥	öäÃËÁÊË¡Ä,!,À¡Ä,À˜À¡Ä˜À˜!¡Ä˜!,!ÆÃãÊ²a¡²öD²`¡ØT²b¡ûö+²a¡;öR²`¡\d¡or¡}i¡‡v¡—e¡§r²’¡µï³Ò²a¡ÇöC²`¡éw¡i¡r¡e²b¡6ö)²a¡söC²`¡–p¡©i¡³n¡Æs²’¡Ôï³Ó¡ö²'/´µnumber_non_three_state_drivers²¡Ê$¡þÆIf´µtheµcalculatedµD²‹¤T¤ÿø²µisµgreaterµthanµtheµvalueµyouµspecifyµwith¡þmax_transition,µaµdesignµruleµviolationµisµreported,µandµDesign¡þXCompilerµtriesµtoµcorrectµtheµviolation.¡þ<²min_transition´µAttribute¡þÛ²This´µattributeµdefinesµaµdesignµruleµconstraintµforµtheµminimum¡þ$acceptableµtransitionµtimeµofµanµoutputµorµinoutµpin.µ¡þ²Example¡þM²pin(A)´µ{¡þŠµµdirectionµ:µinput;¡þÇµµmin_transitionµ:µ1.0;¡þ}¡þá²max_capacitance´µAttributeµµµµ¡þ	€²This´µattributeµdefinesµtheµmaximumµtotalµcapacitiveµloadµthatµan¡þ	Èoutputµpinµcanµdrive.µThisµattributeµcanµbeµspecifiedµonlyµforµan¡þ
outputµorµinoutµpin.’KJD“I501ileaf_page_string1:8-44¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³44¡þÉ²Example¡þ²pin(Q)´µ{¡þQµµdirectionµ:µoutput;¡þŽµµmax_capacitanceµ:µ5.0;¡þË}¡þf²You´µcanµspecifyµmax_capacitanceµatµthreeµlevels:µlibraryµlevel,µpin¡þ¯level,µandµinµdc_shell.¡þQDesignµCompilerµusesµanµoutputµpinµonlyµwhenµtheµpinµhasµa¡þšmax_capacitanceµattributeµvalueµgreaterµthanµorµequalµtoµtheµtotal¡þãwireµandµpinµcapacitiveµloadµitµdrives.µTheµtotalµwireµandµpin¡þ+capacitanceµisµderatedµbeforeµitµisµcheckedµbyµDesignµCompiler.¡þtDesignµCompilerµattemptsµtoµresolveµmax_capacitanceµdesignµrule¡þ¼violations,µpossiblyµatµtheµexpenseµofµotherµdesignµconstraints.¡þ¡²min_capacitance´µAttributeµµµµ¡þ@²This´µattributeµdefinesµtheµminimumµtotalµcapacitiveµloadµthatµan¡þ‰outputµpinµcanµdrive.µTheµcapacitanceµloadµcannotµbeµlessµthanµthe¡þÑminimumµcapacitanceµvalue.µThisµattributeµcanµbeµspecifiedµonlyµfor¡þanµoutputµorµinoutµpin.¡þø²Example¡þ	D²pin(Q)´µ{¡þ	µµdirectionµ:µoutput;¡þ	½µµmin_capacitanceµ:µ1.0;¡þ	ú}¡þ
7µ’JôD“I501ileaf_page_string1:8-45¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³45¡þÉ²Design´µCompilerµusesµanµoutputµpinµonlyµwhenµtheµpinµhasµa¡þmin_capacitanceµattributeµvalueµlessµthanµorµequalµtoµtheµtotalµwire¡þZandµpinµcapacitiveµloadµitµdrives.µTheµtotalµwireµandµpinµcapacitance¡þ£isµderatedµbeforeµitµisµcheckedµbyµDesignµCompiler.µDesign¡þìCompilerµattemptsµtoµresolveµmin_capacitanceµdesignµrule¡þ4violations,µpossiblyµatµtheµexpenseµofµotherµdesignµconstraints.¡þÐ²cell_degradation´µGroupµ¡þC²Use´µtheµcell_degradationµgroupµtoµdescribeµaµcellµperformance¡þŒdegradationµdesignµruleµwhenµcompilingµaµdesign.µAµcell¡þÕdegradationµdesignµruleµspecifiesµtheµmaximumµcapacitiveµloadµa¡þcellµcanµdriveµwithoutµcausingµcellµperformanceµdegradationµduring¡þftheµfallµtransition.µ¡þÝThisµdescriptionµisµrestrictedµtoµfunctionallyµrelatedµinputµandµoutput¡þ&pairs.µYouµcanµdetermineµtheµdegradationµvalueµbyµswitchingµinputs¡þnwhileµkeepingµotherµinputsµconstant.µThisµcausesµoutputµdischarge.¡þ·Theµdegradationµvalueµforµaµspecifiedµinputµtransitionµrateµisµthe¡þmaximumµoutputµloadingµthatµdoesµnotµcauseµcellµdegradation.¡þwYouµcanµmodelµcellµdegradationµonlyµinµlibrariesµusingµtheµCMOS¡þ¿nonlinearµdelayµmodel.µCellµdegradationµmodelingµusesµtheµsame¡þformatµofµtemplatesµandµlookupµtablesµusedµtoµmodelµdelayµwithµthe¡þQnonlinearµdelayµmodel.µ¡þÈToµmodelµcellµdegradation¡þ	/1.¡X	/Createµaµone³dimensionalµlookupµtableµtemplateµthatµisµindexed¡X	vbyµinputµtransitionµtime.¡X	ÓThisµisµtheµsyntaxµofµtheµcellµdegradationµtemplate.µ¡”
4²lu_table_template(²(template_name²)´µ{¡”
mµµµvariable_1µ:µinput_net_transition;¡”
¥µµµindex_1µ("²(float²,µ...,µ²(float²");¡”
Þ}’ôÉD“I501ileaf_page_string1:8-46¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³46¡XÉ²The´µvalidµvalueµforµvariableµ1µisµinput_net_transition.¡XLindex_1µvaluesµmustµbeµgreaterµthanµorµequalµtoµ0.0µandµfollow¡X’theµsameµrulesµforµtheµlookupµtableµtemplateµindex_1µattribute¡XÙdescribedµinµChapterµ14,µTimingµArcs."µTheµnumberµof¡Xfloating³pointµnumbersµinµindex_1µdeterminesµtheµsizeµofµthe¡Xftableµdimension.¡XéThisµisµanµexampleµofµaµcellµdegradationµtemplate.¡”h²lu_table_template(deg_constraint)´µ{¡”¥µµµvariable_1µ:µinput_net_transition;¡”âµµµindex_1µ("0.0,µ1.0,µ2.0");¡”}¡Xœ²See´µChapterµ14,µTimingµArcs,"µforµmoreµinformationµabout¡Xâlookupµtableµtemplates.¡þe2.¡XeUseµtheµcell_degradationµgroupµandµtheµcellµdegradation¡X«templateµtoµcreateµaµone³dimensionalµlookupµtableµforµeach¡Xòtimingµarcµinµtheµcell.µYouµreceiveµwarningµmessagesµifµyou¡X8defineµaµcell_degradationµconstructµforµsome,µbutµnotµall,µtiming¡Xarcsµinµtheµcell.¡þL²Example¡þ˜²pin(output)´µ{¡þÕµµµtiming()µ{¡þ	µµµµµµcell_degradation(deg_constraint)µ{¡þ	Nµµµµµµµµµindex_1µ("0.5,µ1.5,µ2.5");¡þ	‹µµµµµµµµµvaluesµ("0.0,µ2.0,µ4.0");¡þ	Èµµµµµµ}¡þ
µµµ}¡þ
B}’ÉØD“I501ileaf_page_string1:8-47¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³47¡þÉ²You´µcanµdescribeµcellµdegradationµgroupsµonlyµinµtimingµgroupsµof¡þtheµfollowingµtimingµtypes:¡þ–²S¡X–²combinational¡þ
²S¡X
²three_state_enable¡þ~²S¡X~²rising_edge¡þñ²S¡Xñ²falling_edge¡þe²S¡Xe²preset¡þØ²S¡XØ²clear¡þ¦²AssigningµValuesµtoµLookupµTables¡þ²Theseµareµtheµrulesµforµspecifyingµcellµdegradationµlookupµtables:µ¡þ—²S¡X—²Youµcanµoverwriteµtheµindex_1µinµtheµlookupµtableµtemplateµwith¡XÝtheµoptionalµindex_1µattributeµinµtheµcell_degradationµgroup,µbut¡X$theµoverwriteµmustµoccurµbeforeµactualµdefinitionµofµvalues.¡þ˜²S¡X˜²Theµnumberµofµfloating³pointµnumbersµinµtheµvalueµattributeµmust¡XÞbeµtheµsameµasµtheµnumberµinµtheµcorrespondingµindex_1µinµthe¡X%tableµtemplate.¡þ˜²S¡X˜²Eachµentryµinµtheµvaluesµattributeµusesµtheµcapacitive_load_unit¡Xßlibraryµattributeµasµitsµunitµandµmustµbeµ0.0µorµgreater.¡þ	R²S¡X	R²Whenµaµtimingµarcµisµstate³dependentµandµtheµcellµhasµcell¡X	™degradationµdefinedµforµallµvalidµtimingµtypes,µyouµmustµcreateµa¡X	àcellµdegradationµtableµforµeachµstate³dependentµtimingµarc.’ØD“I501ileaf_page_string1:8-48¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³48¡þÏ²Describing´µClocks¡þn²To´µdefineµclocksµandµclocking,µuseµtheseµpinµgroupµattributes:¡þò²S¡Xò²clock¡þf²S¡Xf²min_period¡þÚ²S¡XÚ²min_pulse_width_high¡þM²S¡XM²min_pulse_width_low¡þ ²clock´µAttributeµµ¡þÀ²This´µattributeµindicatesµwhetherµorµnotµanµinputµpinµisµaµclockµpin.¡þž²Example¡þé²clock´µ:µtrue;¡þ„²By´µdefault,µDesignµCompilerµdeterminesµwhetherµtheµinputµpinµisµa¡þÍclockµpinµbyµitsµcharacteristics.µEitherµofµtheµfollowingµpinsµis¡þautomaticallyµconsideredµaµclockµpinµbyµDesignµCompilerµifµtheµclock¡þ^attributeµstatementµisµabsent:¡þã²S¡Xã²Anµinputµpinµdesignatedµasµaµrelatedµpinµinµaµsetupµorµholdµtiming¡X	*arcµplacedµonµaµdataµpin¡þ	²S¡X	²Anµinputµpinµwithµanµedge³sensitiveµtimingµarcµbetweenµitµandµan¡X	äoutputµpin’ÌD“I501ileaf_page_string1:8-49¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³49¡þÏ²min_period´µAttributeµ²“´µ¡þw²The´µmin_periodµattributeµisµplacedµonµtheµclockµpinµofµaµflip³flopµor¡þÀlatchµtoµspecifyµtheµminimumµclockµperiodµrequiredµforµtheµinputµpin.¡þ	Minimumµperiodµisµtheµsumµofµtheµdataµarrivalµtimeµandµsetupµtime.¡þQThisµtimeµmustµbeµconsistentµwithµtheµmax_transitionµtime.¡þ@²Example¡þŒ²min_period´µ:µ26.0;¡þ,²If´µaµmin_periodµattributeµisµplacedµonµaµpinµthatµisµnotµaµclockµpin,¡þuLibraryµCompilerµignoresµtheµattribute.¡þi²min_pulse_width_high´µandµmin_pulse_width_low¡þ³Attributesµ²“´µµ¡þ\²Use´µtheseµoptionalµattributesµtoµspecifyµtheµminimumµlengthµofµtime¡þ¥aµpinµmustµremainµatµlogicµ1µ(min_pulse_width_high)µorµlogicµ0¡þí(min_pulse_width_low).µTheseµattributesµcanµbeµplacedµonµaµclock¡þ6inputµpinµorµanµasynchronousµclear/presetµpinµofµaµflip³flopµorµlatch.¡þâTheµVHDLµlibraryµgeneratorµusesµmin_pulse_widthµattributesµfor¡þ	+simulation.¡þ	×Note:²¡X
 ²DesignµCompilerµdoesµnotµsupportµminimum³pulseµwidthµasµa¡X
hconstraintµduringµsynthesis.¡þExample 8³7µshowsµbothµattributesµonµaµclockµpin.’ÌD“I501ileaf_page_string1:8-50¥	öäÃËÁâÊË¡Ä,,ý¡Ä,ý	cý¡Ä	cý	c¡Ä	c,ÆÃÁÊËÃ¡ÄþýÊýÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³50¡,É²&Example 8³7³Minimum³Pulse³Width´µSpecificationµforµaµClockµPin¡þ%²pin(CLK)´µ{¡þdµµµdirectionµ:µinputµ;¡þ¢µµµcapacitanceµ:µ1µ;¡þáµµµmin_pulse_width_highµ:µ3µ;¡þµµµmin_pulse_width_lowµ:µ3µ;¡þ^µ}¡þM²Describing´µPinµFunctionsµ¡þü²To´µdefineµaµpin'sµfunction,µuseµtheseµpinµgroupµattributes:¡þŒ²S¡XŒ²function¡þ²S¡X²three_state¡þƒ²S¡Xƒ²x_functionµattribute¡þÿ²S¡Xÿ²state_function¡þ{²S¡X{²internal_node¡þf²function´µAttribute¡þ	²To´µuseµtheµfunctionµattributeµtoµdescribeµtheµvalueµofµaµpinµorµbus,¡þ	^referµtoµtheµfollowingµinstructions.µµµ¡þ
X²PinµNamesµasµfunctionµStatementµArgumentsµ¡þ
Ì²Theµfunctionµattributeµdefinesµtheµvalueµofµanµoutputµorµinoutµpinµin¡þtermsµofµtheµcell'sµinputµorµinoutµpins.’	ôD“I501ileaf_page_string1:8-51¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³51¡þÉ²Boolean´µoperatorsµthatµareµvalidµinµaµfunctionµstatementµareµlistedµin¡þTable 8³2.µ¡,ã²&Table 8³2³ValidµBooleanµOperators¡þd²¥	öä¡„²"OperatorÁã¡ÃÄþ@ÿ@ÿ¯þ¯þ@Ç¡ÃÄþ@)@)HþHþ@Ç²¡*d¥	öä¡G„²"Description¡ÃÄP@Q@Q¯P¯P@Ç¡ÃÄ*@Q@QH*H*@Ç²¡Pd¡þÔ¥	öä¡ì²'¡ÃÄþ°ÿ°ÿþþ°Ç¡ÃÄþ°)°)±þ±þ°Ç²¡*Ô¥	öä¡Gì²Invert´µpreviousµexpression¡ÃÄP°Q°QPP°Ç¡ÃÄ*°Q°Q±*±*°Ç²¡PÔ¡þ4¥	öä¡L²!¡ÃÄþÿÿoþoþÇ²¡*4¥	öä¡GL²Invertµfollowingµexpression¡ÃÄPQQoPoPÇ²¡P4¡þ”¥	öä¡¬²^¡ÃÄþpÿpÿÏþÏþpÇ²¡*”¥	öä¡G¬²LogicalµXOR¡ÃÄPpQpQÏPÏPpÇ²¡P”¡þô¥	öä¡²*¡ÃÄþÐÿÐÿ/þ/þÐÇ²¡*ô¥	öä¡G²LogicalµAND¡ÃÄPÐQÐQ/P/PÐÇ²¡Pô¡þT¥	öä¡l²&¡ÃÄþ0ÿ0ÿþþ0Ç²¡*T¥	öä¡Gl²LogicalµAND¡ÃÄP0Q0QPP0Ç²¡PT¡þ´¥	öä¡Ì²space¡ÃÄþÿÿïþïþÇ²¡*´¥	öä¡GÌ²LogicalµAND¡ÃÄPQQïPïPÇ²¡P´¡þ¥	öä¡,²+¡ÃÄþðÿðÿOþOþðÇ²¡*¥	öä¡G,²LogicalµOR¡ÃÄPðQðQOPOPðÇ²¡P¡þt¥	öä¡Œ²|¡ÃÄþPÿPÿ¯þ¯þPÇ²¡*t¥	öä¡GŒ²LogicalµOR¡ÃÄPPQPQ¯P¯PPÇ²¡Pt¡þÔ¥	öä¡ì²1¡ÃÄþ°ÿ°ÿþþ°Ç²¡*Ô¥	öä¡Gì²Signalµtiedµtoµlogicµ1¡ÃÄP°Q°QPP°Ç²¡PÔ¡þ4¥	öä¡L²0¡ÃÄþÿÿoþoþÇ¡ÃÄþh)h)pþpþhÇ²¡*4¥	öä¡GL²Signalµtiedµtoµlogicµ0¡ÃÄPQQoPoPÇ¡ÃÄ*hQhQp*p*hÇ²¡P4¡þ²The´µfunctionµattributeµstatementµprovidesµinformationµforµbothµthe¡þZDesignµCompilerµandµTestµCompilerµprograms.µDesignµCompiler¡þ£usesµthisµinformationµwhenµchoosingµcomponentsµduringµsynthesis.¡þëAµcellµwithoutµaµfunctionµattributeµisµtreatedµasµaµblackµboxµandµisµnot¡þ	4synthesizedµorµoptimized.µToµcreateµlibrariesµwhoseµelementsµcan¡þ	|beµusedµduringµsynthesis,µyouµmustµhaveµaµlicenseµforµtheµLibrary¡þ	ÅCompilerµprogram.¡þ
ƒIfµyouµwantµtoµpreventµaµcellµfromµbeingµusedµduringµoptimization,¡þ
Ìuseµtheµdont_useµattribute.µToµpreventµaµcellµfromµbeingµreplaced¡þduringµoptimization,µuseµtheµdont_touchµattribute.’	ôD“I501ileaf_page_string1:8-52¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³52¡þÉ²Note:²¡X²Test´µCompilerµcannotµtestµcellsµthatµdoµnotµincludeµaµfunction¡XZattribute,µorµotherµcellsµthatµcannotµhaveµaµfunctionµattribute,¡X£suchµasµshift³registersµandµcounters.¡þš²GroupedµPinsµinµfunctionµStatementsµ¡þ²Groupedµpinsµcanµbeµusedµasµvariablesµinµtheµfunctionµstatement;¡þUreferµtoµDefiningµBusedµPins"µandµDefiningµSignalµBundles,"µlater¡þžinµthisµchapter.µInµfunctionµexpressionsµthatµuseµbusµorµbundle¡þçnames,µallµtheµvariablesµinµthatµexpressionµmustµbeµeitherµbusesµor¡þ/bundlesµofµtheµsameµwidth,µorµaµsingleµpin.¡þàRangesµofµbusesµorµbundlesµareµvalidµsoµlongµasµtheµrangeµyou¡þ)defineµcontainsµtheµsameµnumberµofµmembersµasµtheµotherµbusesµor¡þrbundlesµinµtheµsameµexpression.µYouµcanµreverseµtheµbusµorderµby¡þºlistingµtheµmemberµnumbersµinµreverseµ(high:µlow)µorder.µTwoµbuses,¡þbundles,µorµbused³pinµrangesµwithµdifferentµwidthsµshouldµnot¡þKappearµinµtheµsameµfunctionµstatement.µ¡þüWhenµtheµfunctionµattributeµofµaµcellµwithµgroupµinputµpinsµisµa¡þEcombinational³logicµfunctionµofµgroupedµvariablesµonly,µtheµlogic¡þŽfunctionµisµexpandedµtoµapplyµtoµeachµsetµofµoutputµgroupedµpins¡þÖindependently.µForµexample,µifµA,µBµandµZµareµdefinedµasµbusesµof¡þ	theµsameµwidth,µandµtheµfunctionµstatementµforµoutputµZµis¡þ	ª²function´µ:µ"(Aµ&µB)"µ;¡þ
M²´µtheµfunctionµfor²µ²Z[0]µisµinterpretedµas¡þ
Ø²function´µ:µ"(A[0]µ&µB[0])"µ;’‘D“I501ileaf_page_string1:8-53¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³53¡þÉ²Likewise,´µtheµfunctionµforµZ[1]²µ²isµinterpretedµas¡þZ²function´µ:µ"(A[1]µ&µB[1])"µ;¡þÿ²If´µaµbusµandµaµsingleµpinµareµinµtheµsameµfunctionµattribute,µthe¡þHsingleµpinµisµdistributedµacrossµallµmembersµofµtheµbus.µForµexample,¡þ‘ifµAµandµZµareµbusesµofµtheµsameµwidth,µBµisµaµsingleµpin,µandµthe¡þÙfunctionµstatementµforµtheµZµoutputµis¡þj²function´µ:µ"(Aµ&µB)"µ;¡þ²The´µfunctionµforµZ[0]µisµinterpretedµas¡þ ²function´µ:µ"(A[0]µ&µB)"µ;¡þF²Likewise,´µtheµfunctionµforµZ[1]µisµinterpretedµas¡þ×²function´µ:µ"(A[1]µ&µB)"µ;¡þÌ²three_state´µAttributeµµ¡þ²Use´µthisµattributeµtoµdefineµaµthree³stateµoutputµpinµinµaµcell.¡þ	9Onlyµtheµhighµimpedanceµtoµlogicµ0µandµhighµimpedanceµtoµlogicµ1¡þ	‚timingµarcsµareµusedµduringµthree³stateµcomponentµsynthesisµand¡þ	Ëoptimization.¡þ
ƒInµExample 8³8,µoutputµpinµZµisµaµthree³stateµoutputµpin.µWhenµinput¡þ
ÌpinµEµ(enable)µgoesµlow,µpinµZµgoesµtoµaµhigh³impedanceµstate.µThe¡þvalueµofµtheµthree_stateµattributeµis,µtherefore,µE'.’‘D“I501ileaf_page_string1:8-54¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³54¡,É²&Example 8³8³Three³State´µCellµDescriptionµ¡þT²library(example){¡þ¡…technology´µ(cmos)µ;¡þÉ¡…Édateµ:µ"Januaryµ14,µ1997"µ;¡þ¡…revisionµ:µ1997.01;¡þ?¡…?:¡þy¡…ycell(TRI_INV2)µ{¡þ´¡…´¡´areaµ:µ3µ;¡þî¡…î¡îpin(A)µ{¡þ)¡…)¡)¡“)directionµ:µinputµ;¡þd¡…d¡d¡“dcapacitanceµ:µ2µ;¡þž¡…ž¡ž}¡þÙ¡…Ù¡Ùpin(E)µ{¡þ¡…¡¡“directionµ:µinputµ;¡þN¡…N¡N¡“Ncapacitanceµ:µ2µ;¡þ‰¡…‰¡‰}¡þÃ¡…Ã¡Ãpin(Z)µ{¡þþ¡…þ¡þ¡“þdirectionµ:µoutputµ;¡þ8¡…8¡8¡“8functionµ:µ"A'"µ;¡þs¡…s¡s¡“sthree_stateµ:µ"E'"µ;¡þ®¡…®¡®¡“®timing()µ{¡þè¡…è¡è¡“è...¡þ#¡…#¡#¡“#}¡þ^¡…^¡^}¡þ˜¡…˜}¡þÓ}¡þ•²x_function´µattribute¡þ	²Use´µthisµattributeµtoµdescribeµtheµXµbehaviorµofµaµpin.µXµisµaµstate¡þ	fotherµthanµ0,µ1,µorµZ.¡þ	òThree_state,µfunction,µandµx_functionµareµdefinedµforµoutputµand¡þ
:inoutµpinsµandµcanµhaveµsharedµinput.µYouµcanµassignµthree_state,¡þ
ƒfunction,µandµx_functionµtoµbeµtheµfunctionµofµtheµsameµinputµpins.¡þ
ÌWhenµtheseµfunctionsµhaveµsharedµinput,µhowever,µtheµcellµwillµnot¡þbeµinsertedµbyµDesignµCompiler.µItµmustµbeµinsertedµmanually.’SD“I501ileaf_page_string1:8-55¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³55¡þÉ²Also,´µwhenµtheµvaluesµofµmoreµthanµoneµfunctionµequalµone,µLibrary¡þCompilerµassumesµthatµtheµthreeµfunctionsµwillµbeµevaluatedµinµthis¡þZorder:¡þî1.¡Xîx_function¡þl2.¡Xlthree_state¡þë3.¡Xëfunction¡þÚ²Example¡þ)²pin´µ(y)µ{¡þhµµµdirection:µoutput;¡þ§µµµfunctionµ:µ!apµ*µ!an"µ;¡þæµµµx_functionµ:µ!apµ*µan"µ;¡þ%µµµthree_stateµ:µapµ*µ!an"µ;¡þ²state_function´µAttribute¡þÑ²Use´µthisµattributeµtoµdefineµoutputµlogic.µPortsµinµtheµstate_function¡þBooleanµexpressionµmustµbeµeitherµinput,µthree³stateµinout,µorµports¡þbwithµanµinternal_nodeµattribute.µIfµtheµoutputµlogicµisµaµfunctionµof¡þ«onlyµtheµinputsµ(IN),µtheµoutputµisµpurelyµcombinationalµ(forµexample,¡þôfeedthroughµoutput).µAµportµinµtheµstate_functionµexpressionµrefers¡þ	<onlyµtoµtheµnon³three³stateµfunctionalµbehaviorµofµthatµport.µAnµinout¡þ	…portµinµtheµstate_functionµexpressionµisµtreatedµonlyµasµanµinputµport.¡þ
ˆ²Example¡þ
×²state_function´µ:µQN;’S×D“I501ileaf_page_string1:8-56¥	öäÃËÁâÊË¡Ä,],G¡Ä,G	cG¡Ä	cG	c]¡Ä	c],]ÆÃÁÊËÃ¡ÄþGÊGÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³56¡þÏ²internal_node´µAttribute¡þn²Use´µthisµattributeµtoµresolveµnodeµnamesµtoµrealµportµnames.µThis¡þ¶attributeµisµusedµtoµdescribeµtheµsequentialµbehaviorµofµanµoutput¡þÿpin.µItµprovidesµtheµrelationshipµbetweenµtheµstatetableµgroupµandµa¡þHpinµofµaµcell.µEachµoutputµwithµtheµinternal_nodeµattributeµmayµalso¡þhaveµtheµoptionalµinput_mapµattribute.¡þo²Example¡þº²internal_node´µ:µ"Q";¡þ—²Describing´µSequentialµDevices¡þ6²To´µdescribeµanµinputµpinµofµaµflip³flopµorµlatch,µuseµtheµprefer_tied¡þattribute.¡þc²prefer_tied´µAttribute¡þ²When´µitµisµprocessingµeachµsequentiallyµmodeledµcomponent,¡þKLibraryµCompilerµgeneratesµtheµcombinationalµlogicµnecessaryµ¡þ“toµimplementµDµflip³flopµfunctionalityµthatµusesµthatµcomponent.¡þÜBecauseµDµfunctionalityµcanµbeµimplementedµinµmoreµthanµoneµ¡þ	%wayµbyµusingµaµcomplexµflip³flop,µtheµprefer_tiedµpinµattributeµlets¡þ	myouµchooseµtheµlogicµthatµresultsµinµtyingµtheµpinµtoµaµspecifiedµ¡þ	¶logicµvalue.’×4D“I501ileaf_page_string1:8-57¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³57¡þÉ²Example¡þ²prefer_tied´µ:µ1";¡þ¯²Library´µCompilerµhonorsµasµmanyµprefer_tiedµattributesµasµpossible¡þøwhileµitµisµstillµableµtoµimplementµDµfunctionality.µHowever,µitµcannot¡þAhonorµallµofµthem.µForµexample,µifµtheµlibraryµdeveloperµspecifies¡þ‰prefer_tiedµ:µ0µonµallµtheµinputs,µLibraryµCompilerµhonorsµasµmanyµas¡þÒpossibleµandµignoresµtheµrest.µIfµtheyµareµignored,µaµmessage¡þindicatingµthisµisµissuedµduringµread_lib.µ¡þ½Youµtypicallyµuseµprefer_tiedµonµmultiplexedµflip³flopµinput.¡þ`Note:²¡X¨²Theµprefer_tiedµattributeµdirectsµDesignµCompilerµin¡XñimplementingµaµDµflip³flip.µItµisµimportantµtoµdefineµallµcomplex¡X:registerµelementsµwithµtheµprefer_tiedµattribute.µForµsequential¡X‚optimization,µDesignµCompilerµignoresµtheµattribute.¡þ%Theµprefer_tiedµattributeµcanµalsoµbeµusedµtoµindicateµwhichµpinsµare¡þntiedµtoµfixedµlogicµduringµthree_stateµdegenerationµforµthree³state¡þ¶padµcell.µForµexample,µLibraryµCompilerµtriesµtoµdegenerateµtheµinput¡þÿpadµshownµinµFigure 8³4µintoµaµsimpleµthree³stateµinputµpadµbyµtying¡þHeitherµpinµAµorµpinµBµtoµlogicµ1.µTheµdegeneratedµpadµcellµwillµbe¡þusedµbyµDesignµCompilerµforµpadµrelatedµoperations.µµ’4D“I501ileaf_page_string1:8-58¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³58¡,É²&Figure 8³4³Input´µPadµTiedµtoµFixedµLogic¡,1²¥	öäÁÊËÃ¡Ä•ýœ‡ÆÃÃ¡Ä›†”*ÆÃÃ¡Ä•ý•+ÆÃÃ¡Ä”úÆÃÃ¡Äž…'…ÆÃÃÊË¡ÄÙÝÙ)¡ÄÙ)-)¡Ä-)-Ý¡Ä-ÝÙÝÆÃ²¡Q˜PADÊËÃ¡Ä4nÆÃÃ¡ÌÿÿÿÿÿÿÔ&ÿÿÿÿÿÿÁü5ZÂÇÿÿ|¢m¢Å¢mÆÃÃ¡ÌÿÿÿÿÿÿÖ›ÿÿÿÿÿÿ¹rÿÿÿÿÿÒÂ½¢¢qy½Ü¾ÜÜÆÃÃ¡ÄPBBÆÃÃ¡ÄU››ÆÃÃ¡Ä¢ooÆÃ¡ÿVA¡°BÃ¡ÄÚÆÃÁÊËÃ¡Ä!ÆÃ²¡Ê1¡þï²Toµcontrolµtheµdegenerationµprocessµtoµpreferµoneµversionµoverµthe¡þ7other,µplaceµaµprefer_tiedµattributeµonµtheµpin.µLibraryµCompilerµties¡þ€thatµpinµtoµtheµlogicµspecifiedµinµtheµattribute.¡þ#IfµLibraryµCompilerµcannotµdegenerateµtheµpadµcellµaccordingµtoµthe¡þkspecifiedµprefer_tiedµattributeµbutµcanµdegenerateµtheµcellµbyµtying¡þ´theµsameµpinµtoµtheµoppositeµlogic,µitµdoesµsoµandµissuesµaµwarning.¡þWInµthisµexample,µtoµtieµpinµBµratherµthanµpinµAµtoµlogicµ1µduring¡þŸdegeneration,µspecifyµaµprefer_tiedµattributeµinµtheµpinµgroupµofµpin¡þèB.¡þi²pin´µ(B)µ{¡þ¦¡…¦prefer_tiedµ:µ1";¡þã¡…ã...¡þ	 }’ÇD“I501ileaf_page_string1:8-59¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³59¡þÏ²Describing´µPadµPins¡þ†²To´µdescribeµaµpadµpin,µuseµtheseµpinµgroupµattributes:¡þ²S¡X²is_pad¡þš²S¡Xš²multicell_pad_pin¡þ²S¡X²input_voltage¡þ™²S¡X™²output_voltage¡þ²S¡X²pulling_resistance¡þ™²S¡X™²pulling_current¡þ²S¡X²hysteresis¡þ˜²S¡X˜²drive_current¡þ²S¡X²slew_control¡þ—²S¡X—²rise_current_slope_before_threshold¡þ²S¡X²rise_current_slope_after_threshold¡þ–²S¡X–²fall_current_slope_before_threshold¡þ	²S¡X	²fall_current_slope_after_threshold¡þ	•²S¡X	•²rise_time_before_threshold¡þ
²S¡X
²rise_time_after_threshold¡þ
•²S¡X
•²fall_time_before_threshold¡þ²S¡X²fall_time_after_threshold’ÇïD“I501ileaf_page_string1:8-60¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³60¡þÏ²is_pad´µAttribute¡þn²After´µyouµidentifyµaµcellµasµaµpadµcell,µyouµmustµindicateµwhichµpin¡þ¶representsµtheµpad.µThisµattributeµmustµbeµusedµonµatµleastµoneµpin¡þÿwithµaµpad_cellµattribute.µ¡þÞ²Example¡þ)²cell(INBUF)¡þf¡…f...¡þ£¡…£pin(PAD)¡þà¡…à¡àdirection´µ:µinput;¡þ¡…¡is_padµ:µtrue;¡þù²multicell_pad_pin´µAttribute¡þ˜²Use´µthisµattributeµtoµindicateµwhichµpinµonµaµcellµshouldµbe¡þáconnectedµtoµanotherµcellµtoµcreateµtheµcorrectµconfiguration.µFor¡þ*example,µsomeµtechnologiesµimplementµpadsµwithµmultipleµcellsµby¡þrconnectingµaµpadµcellµandµaµpadµdriver.µ¡þQ²Example¡þœ²multicell_pad_pin´µ:µtrue;¡þ	7²Use´µthisµattributeµforµallµpinsµonµaµpadµorµauxiliaryµpadµcellµthatµare¡þ	€connectedµtoµanotherµcell.µDesignµCompilerµconnectsµtheµcorrect¡þ	Èmulticellµpadµpinsµaccordingµtoµtheµconnection_classµattribute.’ïœD“I501ileaf_page_string1:8-61¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³61¡þÏ²Voltage´µAttributes¡þn²These´µareµvoltageµattributes:¡þò²S¡Xò²input_voltageµisµusedµforµanµinputµpinµdefinition.¡þf²S¡Xf²output_voltageµisµusedµforµanµoutputµpinµdefinition.¡þøYouµcanµdefineµaµspecialµsetµofµvoltageµthresholdsµinµtheµlibrary¡þ@groupµwithµtheµinput_voltageµorµoutput_voltageµattribute.µYouµcan¡þ‰thenµapplyµtheµdefaultµvoltageµrangesµinµtheµgroupµtoµselectedµcells¡þÒbyµusingµtheµinput_voltageµorµoutput_voltageµattributeµinµtheµpin¡þdefinition.¡þ½Example 8³9µselectsµaµvoltageµrangeµforµtheµinputµpinµofµaµpadµcell.¡,n²&Example 8³9³VoltageµRangeµforµInputµPin¡þ²input_voltage(CMOS_SCHMITT)´µ{¡þ?¡…?...¡þ|}¡þ¹cell(INBUF)µ{¡þö¡…ö...¡þ3¡…3pin(PAD)µ{¡þp¡…p¡pinput_voltageµ:µCMOS_SCHMITTµ;¡þ­¡…­...¡þê¡…ê}¡þ	'}’œ,D“I501ileaf_page_string1:8-62¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³62¡þÏ²Pull³Up´µandµPull³DownµStrengthµAttributes¡þs²Pull³up´µandµpull³downµstrengthµattributesµare¡þü²S¡Xü²pulling_resistance¡þr²S¡Xr²pulling_current¡þTheseµattributesµletµyouµdefineµtheµresistanceµorµcurrent³drawing¡þQcapabilityµofµaµpull³upµorµpull³downµdeviceµonµaµpin.µTheseµattributes¡þ™canµbeµusedµforµpinsµwithµdriver_typeµofµpull_upµorµpull_down.µ¡þ²Example¡þÍ²driver_type´µ:µpull_upµ;¡þ
pulling_resistanceµ:µ1000µ;¡þ¨²Assigning´µaµnegativeµvalueµtoµpulling_currentµproducesµaµcurrent¡þñflowµinµtheµoppositeµorµnegativeµdirection.µAssigningµaµnegative¡þ9valueµtoµpulling_resistanceµproducesµaµwarningµandµconvertsµthat¡þ‚valueµtoµ0.¡þo²Hysteresis´µAttribute¡þ	²Use´µtheµhysteresisµattributeµonµanµinputµpadµwhenµyouµanticipateµa¡þ	\longµtransitionµtime,µorµwhenµyouµexpectµtheµpadµtoµbeµdrivenµbyµa¡þ	¥particularlyµnoisyµline.¡þ
²Example¡þ
Ù²hysteresis´µ:µtrue;’,üD“I501ileaf_page_string1:8-63¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³63¡þÉ²This´µattributeµallowsµtheµpadµtoµaccommodateµlongerµtransition¡þtimes,µwhichµareµmoreµsubjectµtoµnoiseµproblems.µAµpadµwithµthis¡þZoptionµhasµwiderµthresholdµtolerances,µsoµvoltageµspikesµonµthe¡þ£inputµdoµnotµpropagateµtoµtheµcoreµcells.µUsingµhysteresisµcutsµdown¡þìonµpowerµconsumptionµbecauseµtheµinputµsignalsµchangeµonlyµafter¡þ4theµthresholdµisµexceeded.¡þ×Theµderatingµfactorsµofµpadsµwithµhysteresisµcanµsometimesµbe¡þ differentµfromµthoseµofµcoreµcells.µYouµmayµwantµtoµdefineµa¡þhscaled_cellµgroupµforµtheµpadsµtoµaccountµforµthisµdifference.µ¡þL²Drive´µCurrentµStrengthµAttribute¡þì²Most´µoutputµandµbidirectionalµpadµcellsµareµcharacterizedµwithµan¡þ4approximateµdrive³currentµcapability.µYouµselectµtheµpadµwithµthe¡þ}lowestµdriveµcurrentµthatµmeetsµyourµalternatingµcurrentsµtiming¡þÆconstraints.¡þ¤²Example¡þï²drive_current´µ:µ5.0;¡þŠ²Each´µlibraryµcellµcanµhaveµonlyµoneµdrive_currentµattribute.µYouµmay¡þÓneedµtoµcreateµaµdifferentµpadµcellµforµeachµdrive³currentµpossibility¡þ	inµyourµlibrary.µOutputµandµinoutµpadsµareµrequiredµtoµhaveµthe¡þ	ddrive_currentµattributeµassigned.’ügD“I501ileaf_page_string1:8-64¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³64¡þÏ²Slew³Rate´µControlµAttributes¡þz²Slew³rate´µcontrolµlimitsµpeakµnoiseµbyµsmoothingµoutµfastµoutput¡þÃtransitionsµandµthusµdecreasingµtheµpossibilityµofµaµmomentary¡þdisruptionµinµtheµpowerµorµgroundµplanes.¡þ»LibraryµCompilerµletsµyouµdescribeµtwoµlevelsµofµslew³rateµcontrol,¡þusingµtheµslew_controlµattributeµforµcoarseµtuningµandµtheµthreshold¡þLattributesµforµfineµtuning.¡þ?²slew_controlµAttribute¡þ±²Theµmoreµslew³rateµcontrolµyouµapply,µtheµslowerµtheµoutput¡þútransitionsµare.µTheµslew_controlµattributeµprovidesµincreasingµlevels¡þCofµslew³rateµcontrolµtoµslowµdownµtheµtransitionµrate.¡þ6²ThresholdµAttributesµµ¡þ¨²Youµcanµdefineµslew³rateµcontrolµinµtermsµofµtheµcurrentµversusµtime¡þñcharacteristicsµofµtheµoutputµpadµ(dI/dT).µTheµsyntaxµis¡X{²(threshold_attribute²´µ:µ²(value²µ;¡þ	²Value´µisµaµfloating³pointµnumberµinµtheµunitsµspecifiedµby¡þ	ecurrent_unitµforµcurrent³relatedµattributesµandµtime_unitµfor¡þ	­time³relatedµattributes.µEightµthresholdµattributesµare¡þ
:rise_current_slope_before_thresholdµ¡X
ƒThisµvalueµrepresentsµaµlinearµapproximationµofµtheµchangeµin¡X
Ìcurrentµwithµrespectµtoµtimeµfromµtheµbeginningµofµtheµrising¡Xtransitionµtoµtheµthresholdµpoint.²-’gD“I501ileaf_page_string1:8-65¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³65¡þÉ²rise_current_slope_after_threshold´µ¡XThisµvalueµrepresentsµaµlinearµapproximationµofµtheµchangeµin¡XZcurrentµwithµrespectµtoµtimeµfromµtheµpointµatµwhichµtheµrising¡X£transitionµreachesµtheµthresholdµtoµtheµendµofµtheµtransition.¡þ
fall_current_slope_before_thresholdµ¡XRThisµvalueµrepresentsµaµlinearµapproximationµofµtheµchangeµin¡X›currentµwithµrespectµtoµtimeµfromµtheµbeginningµofµtheµfalling¡Xätransitionµtoµtheµthresholdµpoint.¡þJfall_current_slope_after_threshold¡X“Thisµvalueµrepresentsµaµlinearµapproximationµofµtheµchangeµin¡XÜcurrentµwithµrespectµtoµtimeµfromµtheµpointµatµwhichµtheµfalling¡X$transitionµreachesµtheµthresholdµtoµtheµendµofµtheµtransition.¡þ‹rise_time_before_threshold¡XÓThisµvalueµgivesµtheµtimeµintervalµfromµtheµbeginningµofµtheµrising¡Xtransitionµtoµtheµpointµatµwhichµtheµthresholdµisµreached.¡þƒrise_time_after_threshold¡XËThisµvalueµgivesµtheµtimeµintervalµfromµtheµthresholdµpointµofµthe¡Xrisingµtransitionµtoµtheµendµofµtheµtransition.¡þ{fall_time_before_threshold¡XÃThisµvalueµgivesµtheµtimeµintervalµfromµtheµbeginningµofµthe¡Xfallingµtransitionµtoµtheµpointµatµwhichµtheµthresholdµisµreached.¡þsfall_time_after_threshold¡X»Thisµvalueµgivesµtheµtimeµintervalµfromµtheµthresholdµpointµofµthe¡X	fallingµtransitionµtoµtheµendµofµtheµtransition.¡þ	‰Example 8³10µshowsµtheµslew³rateµcontrolµattributesµonµanµoutput¡þ	Ñpadµpin.’.D“I501ileaf_page_string1:8-66¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³66¡,É²&Example 8³10³Slew³Rate´µControlµAttributes¡þ]²pin(PAD)´µ{¡þšµ¡…šis_padµ:µtrue;¡þ×µ¡…×directionµ:µoutput;¡þµ¡…output_voltageµ:µGENERAL;¡þQµ¡…Qslew_controlµ:µhigh;¡þŽµ¡…Žrise_current_slope_before_thresholdµ:µ0.18;¡þÊµ¡…Êrise_time_before_thresholdµ:µ0.8;¡þµ¡…rise_current_slope_after_thresholdµ:µ-0.09;¡þDµ¡…Drise_time_after_thresholdµ:µ2.4;¡þµ¡…fall_current_slope_before_thresholdµ:µ-0.14;¡þ¾µ¡…¾fall_time_before_thresholdµ:µ0.55;¡þûµ¡…ûfall_current_slope_after_thresholdµ:µ0.07;¡þ8µ¡…8fall_time_after_thresholdµ:µ1.8;¡þuµ¡…u...¡þ²}¡þŽ²CMOS´µPinµGroupµExample¡þ-²Example 8³11´µshowsµpinµattributesµinµaµCMOSµlibrary.’.\D“I501ileaf_page_string1:8-67¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³67¡,É²&Example 8³11³CMOS´µPinµGroupµExample¡þ]²library(example){¡þšdate´µ:µ"Januaryµ14,µ1997";¡þ×revisionµ:µ1997.01;¡þ...¡þQcell(AN2)µ{¡þŽµareaµ:µ2;¡þÊµpin(A)µ{¡þµµµµdirectionµ:µinput;¡þDµµµµcapacitanceµ:µ1.3;¡þµµµµfanout_loadµ:µ2;µµµµµ/*µinternalµfanoutµloadµ*/¡þ¾µµµµmax_transitionµ:µ4.2;/*µdesign³ruleµconstraintµ*/¡þûµ}¡þ8µpin(B)µ{¡þuµµµµdirectionµ:µinput;¡þ²µµµµcapacitanceµ:µ1.3;¡þîµ}¡þ+µpin(Z)µ{¡þhµµµµdirectionµ:µoutput;¡þ¥µµµµfunctionµ:µ"Aµ*µB";¡þâµµµµmax_transitionµ:µ5.0;¡þµµµµtiming()µ{¡þ\µµµµµµintrinsic_riseµ:µ0.58;¡þ™µµµµµµintrinsic_fallµ:µ0.69µ;¡þÖµµµµµµrise_resistanceµ:µ0.1378;¡þµµµµµµfall_resistanceµ:µ0.0465;¡þOµµµµµµrelated_pinµ:µ"AµB";¡þŒµµµµ}¡þÉµµ}¡þ	}’\¥D“I501ileaf_page_string1:8-68¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Y,C¡Ä,C	cC¡Ä	cC	cY¡Ä	cY,YÆÃÁÊËÃ¡ÄþCÊCÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³68¡,Õ²Defining´µBusedµPins¡þ”²To´µdefineµbusedµpins,µuseµtheseµgroups:µµ¡þ²S¡X²typeµgroup¡þŒ²S¡XŒ²busµgroup¡þYouµcanµuseµaµdefinedµbusµorµbusµmemberµinµBooleanµexpressions¡þginµtheµfunctionµattribute.µAnµoutputµpinµdoesµnotµneedµtoµbeµdefined¡þ¯inµaµcellµbeforeµitµisµreferenced.¡þ“²type´µGroup¡þ3²If´µyourµlibraryµcontainsµbusedµpins,µyouµmustµdefineµtypeµgroupsµand¡þ{defineµtheµstructuralµconstraintsµofµeachµbusµtypeµinµtheµlibrary.µ¡þTheµtypeµgroupµisµdefinedµatµtheµlibraryµgroupµlevel,µasµshownµhere:¡þŸ²library´µ(²(lib_name²)µ{¡þÜµµµtypeµ(µ²(nameµ²)µ{¡þµµµµµµ...²(µtypeµdescription²µ...¡þVµµµ}¡þ“}¡þ	%²Name´µidentifiesµtheµbusµtype.¡þ	ÈAµtypeµgroupµcanµcontainµtheµfollowingµattributes:¡þ
I²base_type´µ:µbaseµ;¡”
˜²Only´µtheµarrayµbaseµtypeµisµsupported.’¥nD“I501ileaf_page_string1:8-69¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³69¡þÃ²data_type´µ:µdataµ;¡”²Only´µtheµbitµdataµtypeµisµsupported.¡þu²bit_width´µ:µwidthµ;¡”Å²width´µisµanµintegerµthatµdesignatesµtheµnumberµofµbus¡”members.µTheµdefaultµisµ1.¡þq²bit_from´µ:µfirstnumµ;¡”À²firstnum´µisµanµintegerµindicatingµtheµmemberµnumberµassigned¡”toµtheµmost³significantµbitµ(MSB)µofµsuccessiveµarray¡”Qmembers.µTheµdefaultµisµ0.¡þ´²bit_to´µ:µlastnumµ;¡”²lastnum´µisµanµintegerµindicatingµtheµmemberµnumberµassigned¡”Ltoµtheµleast³significantµbitµ(LSB)µofµsuccessiveµarrayµmembers.¡”•Theµdefaultµisµ0.¡þø²downto´µ:µtrueµ|µfalseµ;¡”G²true´µindicatesµthatµmemberµnumberµassignmentµisµfromµhighµto¡”lowµinsteadµofµtheµdefaultµlowµtoµhigh.µTheµdefaultµisµfalse.¡þExample 8³12µillustratesµaµtypeµgroupµstatement.¡,Æ²&Example 8³12³typeµGroupµDescription¡þZ²type´µ(µBUS4µ)µ{¡þ—µµbase_typeµ:µarrayµ;¡þÔµµdata_typeµ:µbitµ;¡þ	µµbit_widthµ:µ4µ;¡þ	Nµµbit_fromµ:µ0µ;¡þ	‹µµbit_toµ:µ3µ;¡þ	Èµµdowntoµ:falseµ;¡þ
}’nwD“I501ileaf_page_string1:8-70¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³70¡þÉ²It´µisµnotµnecessaryµtoµuseµallµtheseµattributes.µForµexample,µtheµtype¡þgroupµstatementsµinµExample 8³12µareµbothµvalidµdescriptionsµof¡þZBUS4µinµExample 8³13.¡,²&Example 8³13³AlternateµtypeµGroupµDescriptions¡þ ²type´µ(µBUS4µ)µ{¡þÝµµbase_typeµ:µarrayµ;¡þµµdata_typeµ:µbitµ;¡þWµµbit_widthµ:µ4µ;¡þ”µµbit_fromµ:µ0µ;¡þÑµµbit_toµ:µ3µ;¡þ}¡þ‡typeµ(µBUS4µ)µ{¡þÄµµbase_typeµ:µarrayµ;¡þµµdata_typeµ:µbitµ;¡þ>µµbit_widthµ:µ4µ;¡þ{µµbit_fromµ:µ3µ;¡þ¸µµdowntoµ:µtrueµ;¡þõ}¡þ²Because´µtheµLibraryµCompilerµprogramµchecksµtheµattributesµyou¡þØuseµforµconsistency,µusingµallµofµthemµisµaµgoodµwayµtoµverifyµyour¡þ!description.¡þÃAfterµyouµdefineµaµtypeµgroup,µyouµcanµuseµtheµtypeµinµaµbusµgroup¡þ	toµdescribeµbusedµpins.’wØD“I501ileaf_page_string1:8-71¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,é,Ó¡Ä,Ó	cÓ¡Ä	cÓ	cé¡Ä	cé,éÆÃÁÊËÃ¡ÄþÓÊÓÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³71¡þÏ²bus´µGroup¡þ}²A´µbusµgroupµdescribesµtheµcharacteristicsµofµaµbus.µYouµdefineµitµinµa¡þÆcellµgroup,µasµshownµhere:¡þQ²library´µ(²(lib_name²)µ{¡þµµµcellµ(²(cell_name²)µ{¡þÎµµµµµµareaµ:µ²(float²µ;¡þµµµµµµbusµ(²(µname²µ)µ{¡þKµµµµµµµµ...µ²(busµdescription²µ...¡þ‰µµµµµµ}¡þÈµµµ}¡þ}¡þ©²A´µbusµgroupµcontainsµtheµfollowingµelements:¡þ7²S¡X7²bus_typeµattribute¡X²Youµmustµdeclareµtheµbus_typeµattributeµfirstµinµaµbusµgroup.¡þ?²S¡X?²pinµgroups¡þÝInµaµbusµgroup,µuseµtheµnumberµofµbusµmembersµ(pins)µdefinedµby¡þ&theµbit_widthµattributeµinµtheµapplicableµtypeµgroup.µ¡þ	#²bus_type´µAttributeµ¡þ	Ñ²The´µbus_typeµattributeµspecifiesµtheµbusµtype.µItµisµaµrequired¡þ
elementµofµallµbusµgroups.¡þ
ÌTheµtype_nameµmustµhaveµpreviouslyµbeenµdefinedµbyµaµtypeµgroup.¡þAlwaysµdeclareµtheµbus_typeµfirstµinµaµbusµgroup.’ØyD“I501ileaf_page_string1:8-72¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³72¡þÏ²Pin´µAttributesµandµGroups¡þr²Pin´µattributesµinµaµbusµorµbundleµgroupµspecifyµdefaultµattribute¡þ»valuesµforµallµpinsµinµthatµbusµorµbundle.µPinµattributesµcanµalso¡þappearµinµpinµgroupsµinsideµtheµbusµorµbundleµgroupµtoµdefine¡þLattributeµvaluesµforµspecificµbusµorµbundleµpinsµorµgroupsµofµpins.¡þ•Valuesµusedµinµpinµgroupsµoverrideµtheµdefaultµattributeµvalues¡þÝdefinedµforµtheµbusµorµbundle.µ¡þ„Allµpinµattributesµareµvalidµinsideµbusµandµpinµgroups.µReferµtoµthe¡þÍDefiningµPinµGroups"µsectionµearlierµinµthisµchapterµforµaµdescription¡þofµpinµattributes.µTheµdirectionµattributeµvalueµofµallµbusµmembers¡þ^mustµbeµtheµsame.¡þUseµtheµfullµnameµofµaµpinµforµtheµnamesµofµpinsµinµaµpinµgroup¡þNcontainedµinµaµbusµgroup.¡þõTheµfollowingµexampleµshowsµaµbusµgroupµthatµdefinesµbusµAµwith¡þ=defaultµvaluesµforµdirectionµandµcapacitanceµassigned:¡þÂ²bus´µ(A)µ{¡þÿµbus_typeµ:µbus1µ;¡þ<µdirectionµ:µinputµ;¡þzµcapacitanceµ:µ3µ;¡þ·µ...¡þô}¡þ	‘²The´µfollowingµexampleµillustratesµaµpinµgroupµthatµdefinesµaµnew¡þ	Úcapacitanceµattributeµvalueµforµpinµ0µinµbusµA²-:¡þ
^²pin´µ(A[0])µ{¡þ
œµcapacitanceµ:µ4µ;¡þ
Ù}’yxD“I501ileaf_page_string1:8-73¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³73¡þÉ²You´µcanµalsoµdefineµpinµgroupsµforµaµrangeµofµbusµmembers.µA¡þrangeµofµbusµmembersµisµdefinedµbyµaµbeginningµvalueµandµan¡þZendingµvalueµseparatedµbyµaµcolon.µNoµspacesµcanµappearµbetween¡þ£theµcolonµandµtheµmemberµnumbers.µTheµfollowingµexample¡þìillustratesµaµpinµgroupµthatµdefinesµaµnewµcapacitanceµattributeµvalue¡þ4forµbusµmembersµ0,µ1,µ2µandµ3µinµbusµA:¡þÒ²pin´µ(A[0:3])µ{¡þµcapacitanceµ:µ4µ;¡þT}¡þ²You´µcanµidentifyµmemberµnumbersµasµsingleµnumbersµorµasµaµrange¡þLofµnumbersµseparatedµbyµaµcolon.µDoµnotµdefineµmemberµnumbers¡þ”inµaµlist.µThisµisµvalidµforµnonbusedµpins.¡þ_Note:²¡X¨²Includeµonlyµtheµbaseµnameµofµaµbusedµpinµasµtheµnameµofµthe¡Xðsymbolµlibraryµpin.µThisµnamingµmethodµallowsµoneµsymbolµto¡X9representµcellsµofµtheµsameµtypeµbutµwithµvariableµwidthµinput¡X‚pins.¡þMReferµtoµTable 8³3µforµaµcomparisonµofµbusedµandµsingle³pin¡þ•formats.¡,	v²&Table 8³3³ComparisonµofµBusedµandµSingle³PinµFormats¡þ	þ²¥	öä¡
&²"Pin´µTypeÁã¡ÃÄþ	Úÿ	Úÿ
Qþ
Qþ	ÚÇ¡ÃÄþ	Ú	Ú	âþ	âþ	ÚÇ²¡	þ¥	öä¡$
&²"TechnologyµLibrary¡ÃÄ	Ú	Ú	â	â	ÚÇ²¡	þ¥	öä¡-
&²"SymbolµLibrary¡ÃÄ	Ú	Ú
Q
Q	ÚÇ¡ÃÄ	Ú	Ú	â	â	ÚÇ²¡	þ¡þ
v¥	öä¡
–²BusedµPin¡ÃÄþ
Rÿ
Rÿ
¹þ
¹þ
RÇ¡ÃÄþ
R
R
Sþ
Sþ
RÇ²¡
v¥	öä¡$
–²Lpin²µ²Mx[3:0]¡ÃÄ
R
R
S
S
RÇ²¡
v¥	öä¡-
–²Lpin²µ²Mx¡ÃÄ
R
R
¹
¹
RÇ¡ÃÄ
R
R
S
S
RÇ²¡
v¡þ
Þ¥	öä¡
þ²SingleµPin¡ÃÄþ
ºÿ
ºÿ!þ!þ
ºÇ¡ÃÄþ"þ"þÇ²¡
Þ¥	öä¡$
þ²Lpin²µ²Mx¡ÃÄ""Ç²¡
Þ¥	öä¡-
þ²Lpin²µ²Mx¡ÃÄ
º
º!!
ºÇ¡ÃÄ""Ç²¡
Þ’x™D“I501ileaf_page_string1:8-74¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³74¡þÏ²Sample´µBusµDescription¡þl²Example 8³14´µisµaµcompleteµbusµdescriptionµthatµincludesµtypeµand¡þ´busµgroups.µItµalsoµshowsµtheµuseµofµbusµvariablesµinµfunction,¡þýrelated_pin,µpin_opposite,µandµpin_equalµattributes.¡,¬²&Example 8³14³BusµDescription¡þ²library´µ(ExamBus)µ{¡þ?µdateµ:µ"Januaryµ14,µ1997";¡þ|µrevisionµ:µ1997.01;¡þ¹µbus_naming_styleµ:"%s[%d]";/*µOptional;µthisµisµthe¡þí¡…í¡í¡“í¡í¡¡í¡(í¡¯íµdefaultµ*/¡þ)µtypeµ(bus4)µ{¡þfµµµµbase_typeµ:µarray;/*µRequiredµ*/¡þ£µµµµdata_typeµ:µbit;/*µRequiredµifµbase_typeµisµarrayµ*/¡þßµµµµbit_widthµ:µ4;/*µOptional;µdefaultµisµ1µ*/¡þµµµµbit_fromµ:µ0;/*µOptionalµMSB;µdefaultsµtoµ0µ*/¡þYµµµµbit_toµ:µ3;/*µOptionalµLSB;µdefaultsµtoµ0µ*/¡þ•µµµµdowntoµ:µfalse;/*µOptional;µdefaultsµtoµfalseµ*/¡þÒµ}¡þµcellµ(bused_cell)µ{¡þLµµµµareaµ:µ10;¡þˆµµµµbusµ(A)µ{¡þÅµµµµµµbus_typeµ:µbus4;¡þµµµµµµdirectionµ:µinput;¡þ>µµµµµµcapacitanceµ:µ3;¡þ{µµµµµµpinµ(A[0:2])µ{¡þ¸µµµµµµµµcapacitanceµ:µ2;¡þôµµµµµµ}¡þ	1µµµµµµpinµ(A[3])µ{¡þ	nµµµµµµµµcapacitanceµ:µ2.5;¡þ	ªµµµµµµ}¡þ	çµµµµ}¡þ
$µµµµbusµ(B)µ{¡þ
`µµµµµµbus_typeµ:µbus4;¡þ
µµµµµµdirectionµ:µinput;¡þ
Úµµµµµµcapacitanceµ:µ2;¡þµµµµ}’™bD“I501ileaf_page_string1:8-75¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³75¡þÃ²´µµµµpinµ(E)µ{¡þÿµµµµµµdirectionµ:µinputµ;¡þ:µµµµµµcapacitanceµ2µ;¡þvµµµµ}¡þ²µµµµbus(X)µ{¡þíµµµµµµbus_typeµ:µbus4;¡þ)µµµµµµdirectionµ:µoutput;¡þeµµµµµµcapacitanceµ:µ1;¡þ µµµµµµpinµ(X[0:3])µ{¡þÜµµµµµµµµfunctionµ:µ"Aµ&µB'";¡þµµµµµµµµtiming()µ{¡þSµµµµµµµµrelated_pinµ:µ"AµB";¡þµµµµµµµµ/*µA[0]µandµB[0]µareµrelatedµtoµX[0],¡þËµµµµµµµµA[1]µandµB[1]µareµrelatedµtoµX[1],µetc.µ*/¡þµµµµµµµµ}¡þBµµµµµµ}¡þ~µµµµ}¡þºµµµµbusµ(Y)µ{¡þõµµµµµµbus_typeµ:µbus4;¡þ1µµµµµµdirectionµ:µoutput;¡þmµµµµµµcapacitanceµ:µ1;¡þ¨µµµµµµpinµ(Y[0:3])µ{¡þäµµµµµµµµfunctionµ:µ"B";¡þ µµµµµµµµthree_stateµ:µ"!E";¡þ[µµµµµµµµtimingµ()µ{¡þ—µµµµµµµµµµrelated_pinµ:µ"A[0:3]µBµE";¡þÓµµµµµµµµ}¡þµµµµµµµµinternal_power()µ{¡þJµµµµµµµµµµwhen:µ"E"µ;¡þ†µµµµµµµµµµrelated_pinµ:µBµ;¡þÁµµµµµµµµµµpower()µ{¡þýµµµµµµµµµµ...¡þ	9µµµµµµµµµµ}¡þ	uµµµµµµµµ}¡þ	°µµµµµµµµinternal_power()µ{¡þ	ìµµµµµµµµµµrelated_pinµ:µBµ;¡þ
(µµµµµµµµµµpower()µ{¡þ
cµµµµµµµµµµ}¡þ
Ÿµµµµµµµµ}¡þ
Ûµµµµµµ}¡þµµµµ}’bD“I501ileaf_page_string1:8-76¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³76¡þÃ²´µµµµbusµ(Z)µ{¡þµµµµµµbus_typeµ:µbus4;¡þ=µµµµµµdirectionµ:µoutput;¡þ{µµµµµµpinµ(Z[0:1])µ{¡þ¸µµµµµµµµfunctionµ:µ"!A[0:1]";¡þõµµµµµµµµtimingµ()µ{¡þ2µµµµµµµµµµrelated_pinµ:µ"A[0:1]";¡þoµµµµµµµµ}¡þ­µµµµµµµµinternal_power()µ{¡þêµµµµµµµµµµrelated_pinµ:µ"A[0:1]";¡þ'µµµµµµµµµµpower()µ{¡þdµµµµµµµµµµ...¡þ¡µµµµµµµµµµ}¡þßµµµµµµµµ}¡þµµµµµµ}¡þYµµµµµµpinµ(Z[2])µ{¡þ–µµµµµµµµfunctionµ"A[2]";¡þÔµµµµµµµµtimingµ()µ{¡þµµµµµµµµµµrelated_pinµ:µ"A[2]";¡þNµµµµµµµµ}¡þ‹µµµµµµµµinternal_power()µ{¡þÈµµµµµµµµµµrelated_pinµ:µ"A[0:1]";¡þµµµµµµµµµµpower()µ{¡þCµµµµµµµµµµ...¡þ€µµµµµµµµµµ}¡þ½µµµµµµµµ}¡þûµµµµµµ}¡þ8µµµµµµpinµ(Z[3])µ{¡þuµµµµµµµµfunctionµ:µ"!A[3]";¡þ²µµµµµµµµtimingµ()µ{¡þïµµµµµµµµµµrelated_pinµ:µ"A[3]";¡þ	-µµµµµµµµ}¡þ	jµµµµµµµµinternal_power()µ{¡þ	§µµµµµµµµµµrelated_pinµ:µ"A[0:1]";¡þ	äµµµµµµµµµµpower()µ{¡þ
!µµµµµµµµµµ...¡þ
_µµµµµµµµµµ}¡þ
œµµµµµµµµ}¡þ
Ùµµµµµµ}¡þµµµµ}’ƒD“I501ileaf_page_string1:8-77¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³77¡þÃ²´µµµµpin_opposite("Y[0:1]","Z[0:1]");¡þÿµµµµµ/*µY[0]µisµoppositeµtoµZ[0],µetc.µ*/¡þ:µµµµpin_equal("Y[2:3]µZ[2:3]");¡þvµµµµµ/*µY[2],µY[3],µZ[2],µ²(and²µZ[3]µ²(areµequal²µ*/¡þ²µcellµ(bused_cell2)µ{¡þíµµµµareaµ:µ20;¡þ)µµµµbusµ(A)µ{¡þeµµµµµµbus_typeµ:µbus41;¡þ µµµµµµdirectionµ:µinput;¡þÜµµµµµµcapacitanceµ:µ1;¡þµµµµµµpinµ(A[0:3])µ{¡þSµµµµµµµµcapacitanceµ:µ2;¡þµµµµµµ}¡þËµµµµµµpinµ(A[3])µ{¡þµµµµµµµµcapacitanceµ:µ2.5;¡þBµµµµµµ}¡þ~µµµµ}¡þºµµµµbusµ(B)µ{¡þõµµµµµµbus_typeµ:µbus4;¡þ1µµµµµµdirectionµ:µinput;¡þmµµµµµµcapacitanceµ:µ2;¡þ¨µµµµ}¡þäµµµµpinµ(E)µ{¡þ µµµµµµdirectionµ:µinputµ;¡þ[µµµµµµcapacitanceµ2µ;¡þ—µµµµ}¡þÓµµµµbus(X)µ{¡þµµµµµµbus_typeµ:µbus4;¡þJµµµµµµdirectionµ:µoutput;¡þ†µµµµµµcapacitanceµ:µ1;¡þÁµµµµµµpinµ(X[0:3])µ{¡þýµµµµµµµµfunctionµ:µ"Aµ&µB'";¡þ	9µµµµµµµµtiming()µ{¡þ	uµµµµµµµµrelated_pinµ:µ"AµB";¡þ	°µµµµµµµµ/*µA[0]µandµB[0]µareµrelatedµtoµX[0],¡þ	ìµµµµµµµµA[1]µandµB[1]µareµrelatedµtoµX[1],µetc.µ*/¡þ
(µµµµµµµµ}¡þ
cµµµµµµ}¡þ
Ÿµµµµ}¡þ
Ûµ}¡þ}’ƒD“I501ileaf_page_string1:8-78¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,ª,”¡Ä,”	c”¡Ä	c”	cª¡Ä	cª,ªÆÃÁÊËÃ¡Äþ”Ê”ÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³78¡,Õ²Defining´µSignalµBundles¡þ”²You´µneedµcertainµattributesµtoµdefineµaµbundle.µAµbundleµgroups¡þÝseveralµpinsµthatµhaveµsimilarµtimingµorµfunctionality.µTheµbundleµis¡þ%usedµonlyµwithinµLibraryµCompiler;µDesignµCompilerµcannotµreferµto¡þnaµbundleµinµaµnetlist,µasµitµcanµforµaµbus.µBundlesµareµusedµfor¡þ·multibitµcellsµsuchµasµmultibitµlatch,µmultibitµflip³flop,µandµmultibit¡þÿANDµgate.µ¡þã²bundle´µGroup¡þƒ²You´µdefineµaµbundleµinµaµcellµgroup,µasµillustratedµbelow:¡þ²library´µ(²(lib_name²)µ{¡þAµµµcellµ(²(cell_name²)µ{¡þ~µµµµµµareaµ:µ²(float²µ;¡þ»µµµµµµbundleµ(²(µname²µ)µ{¡þøµµµµµµµµ...µ²(bundleµdescription²µ...¡þ5µµµµµµ}¡þrµµµ}¡þ®}¡þI²A´µbundleµgroupµcontainsµtheµfollowingµelements:¡þÎ²S¡XÎ²membersµattribute.µTheµmembersµattributeµmustµbeµdeclaredµfirst¡X	inµaµbundleµgroup.¡þ	ˆ²S¡X	ˆ²pinµattributes.µTheseµincludeµdirection,µfunction,µandµthree³state.µ’_D“I501ileaf_page_string1:8-79¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³79¡þÏ²members´µAttribute¡þp²The´µmembersµattributeµisµusedµinµaµbundleµgroupµtoµlistµtheµpin¡þ¸namesµofµtheµsignalsµinµaµbundle.µTheµmembersµattributeµmustµbe¡þincludedµasµtheµfirstµattributeµinµtheµbundleµgroup.µItµprovidesµthe¡þJbundleµelementµnamesµandµgroupsµaµsetµofµpinsµthatµhaveµsimilar¡þ’properties.µTheµnumberµofµmembersµdefinesµtheµwidthµofµtheµbundle.¡þ7Ifµaµbundleµhasµaµfunctionµdefinedµforµit,µitµisµcopiedµtoµallµbundle¡þ€members.µForµexample,¡þ²pin´µ(C)µ{¡þ@µµµdirectionµ:µinputµ;¡þ}µµµ...¡þºµ}¡þ÷bundle(A)µ{¡þ4µµµmembers(A0,µA1,µA2,µA3);¡þqµµµdirectionµ:µoutputµ;¡þ®µµµfunctionµ:µ"B'+µC";¡þëµµµ...¡þ(µ}¡þeµbundle(B)µ{¡þ¢µµµmembers(B0,µB1,µB2,µB3);¡þßµµµdirectionµ:µinput;¡þµµµ...¡þZµ}¡þö²´µmeansµthatµtheµmembersµofµtheµAµbundleµhaveµtheseµvalues:¡þ	x²´µA0µ=µB0'µ+µC;¡þ	µµA1µ=µB1'µ+µC;¡þ	óµA2µ=µB2'µ+µC;¡þ
0µA3µ=µB3'µ+µC;¡þ
Ì²Each´µbundleµoperandµ(B)µmustµhaveµtheµsameµwidthµasµtheµfunction¡þparentµbundleµ(A).’_çD“I501ileaf_page_string1:8-80¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³80¡þÏ²pin´µAttribute¡þp²For´µmoreµinformationµaboutµpinµattributes,µseeµtheµDefiningµPin¡þ¸Groups"µsectionµearlierµinµthisµchapter.¡þ]Example 8³15µshowsµhowµtoµdefineµaµbundleµgroupµinµaµmultibit¡þ¥latch.¡,Y²&Example 8³15³MultibitµLatchµwithµSignalµBundles¡,â²-cell´µ(latch4)µ{¡,¡þarea:µ16;¡,O¡þOpinµ(G)µ{µ/*µactive³highµgateµenableµsignalµ*/¡,†¡þ†¡…†directionµ:µinput;¡,½¡þ½¡…½:¡,ô¡þô}¡,+¡þ+bundleµ(D)µ{µ/*µdataµinputµwithµfourµmemberµpinsµ*/¡,b¡þb¡…bmembers(D1,µD2,µD3,µD4);µ/*mustµbeµfirstµattributeµ*/¡,˜¡þ˜¡…˜directionµ:µinput;¡,Ï¡þÏ}¡,¡þbundleµ(Q)µ{¡,=¡þ=¡…=members(Q1,µQ2,µQ3,µQ4);¡,t¡þt¡…tdirectionµ:µoutput;¡,«¡þ«¡…«functionµ:µ"IQ"µ;¡,â¡þâ}¡,¡þbundleµ(QN)µ{¡,O¡þO¡…Omembersµ(Q1N,µQ2N,µQ3N,µQ4N);¡,†¡þ†¡…†directionµ:µoutput;¡,½¡þ½¡…½functionµ:µ"IQN";¡,ô¡þô}¡,	+¡þ	+latch_bank(IQ,µIQN,µ4)µ{¡,	b¡þ	b¡…	benableµ:µ"G"µ;¡,	˜µ¡þ	˜¡…	˜data_inµ:µ"D"µ;¡,	Ï¡þ	Ï}¡,
=cellµ(latch5)µ{¡,
t¡þ
tarea:µ32;¡,
«¡þ
«pinµ(G)µ{µ/*µactive³highµgateµenableµsignalµ*/¡,
â¡þ
â¡…
âdirectionµ:µinput;¡,¡þ¡…:’çõD“I501ileaf_page_string1:8-81¥	öäÃËÁâÊË¡Ä,,z¡Ä,z	cz¡Ä	cz	c¡Ä	c,ÆÃÁÊËÃ¡Ä,zÊzÆÃ¥	öäÃÁÊË¡Ä,	,ï¡Ä,ï	cï¡Ä	cï	c	¡Ä	c	,	ÆÃÁÊËÃ¡ÄþïÊïÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³81¡,½²-¡þ½}¡,õ¡þõbundle´µ(D)µ{µ/*µdataµinputµwithµfourµmemberµpinsµ*/¡,.¡þ.¡….members(D1,µD2,µD3,µD4);µ/*mustµbeµfirstµattributeµ*/¡,g¡þg¡…gdirectionµ:µinput;¡,Ÿ¡þŸ}¡,Ø¡þØbundleµ(Q)µ{¡,¡þ¡…members(Q1,µQ2,µQ3,µQ4);¡,I¡þI¡…Idirectionµ:µoutput;¡,‚¡þ‚¡…‚functionµ:µ"IQ"µ;¡,º¡þº}¡,ó¡þóbundleµ(QN)µ{¡,,¡þ,¡…,membersµ(Q1N,µQ2N,µQ3N,µQ4N);¡,d¡þd¡…ddirectionµ:µoutput;¡,¡þ¡…functionµ:µ"IQN";¡,Õ¡þÕ}¡,¡þlatch_bank(IQ,µIQN,µ4)µ{¡,G¡þG¡…Genableµ:µ"G"µ;¡,µ¡þ¡…data_inµ:µ"D"µ;¡,¸¡þ¸}¡,Ð²Defining´µLayout³RelatedµMultibitµAttributes¡þ©²There´µareµtwoµlayout³relatedµattributesµonµmultibitµcells:µthe¡þògeometry_printµattributeµandµtheµsingle_bit_degenerateµattribute.¡þ:Theseµattributesµalsoµapplyµtoµsequentialµandµcombinationalµcells.¡þ	?²geometry_print¡þ	ò²Theµcellµattributeµgeometry_printµassignsµaµcommonµnameµtoµthe¡þ
:multibitµcellsµinµaµlibraryµthatµhaveµtheµsameµlayoutµfeatures,µsuchµas¡þ
ƒheight.µDesignµCompiler,µinµconsideringµlayoutµrequirements,µneeds¡þ
Ìtoµsizeµtogetherµtwoµorµmoreµmultibitµbundleµorµbusµcells,µsuchµas¡þfour³bitµregisters.’õ’D“I501ileaf_page_string1:8-82¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³82¡þÉ²Only´µtheµlibraryµdeveloperµknowsµandµcanµprovideµsuchµinformation.¡þTheµlibraryµdescriptionµdoesµnotµincludeµinformationµsuchµasµcell¡þZheight.¡þExample 8³16µshowsµtwoµmultibitµcellsµwithµtheµcommonµnameµof¡þSGP1.µTheseµcells,µFDX2µandµFDX4,µareµtoµbeµsizedµtoµtwoµother¡þœcellsµwithµanotherµcommonµnameµthatµisµalsoµdefinedµwithµthe¡þågeometry_printµattribute.¡,¦²&Example 8³16³MultibitµCellsµwithµgeometry_printµAttribute¡þ²cell(FDX2)´µ{¡þ6µµareaµ:µ18;¡þiµµ²)geometry_printµ:µGP1;²¡þµµµbundle(D)µ{¡þÑµµµµmembers(D0,µD1);¡þµµµµdirectionµ:µinput;¡þ9µµµµcapacitanceµ:µ1;¡þmµµµµtiming()µ{¡þ¡µµµµµµtiming_typeµ:µsetup_rising;¡þÕµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ	µµµµµµrelated_pinµ:µ"CP";¡þ<µµµµ}¡þpµµµµtiming()µ{¡þ¤µµµµµµtiming_typeµ:µhold_rising;¡þØµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þµµµµµµrelated_pinµ:µ"CP";¡þ@µµµµ}¡þtµµ}¡þ¨µµbundle(E)µ{¡þÜµµµµmembers(E0,µE1);¡þ	µµµµdirectionµ:µinput;¡þ	Cµµµµcapacitanceµ:µ1;¡þ	wµµµµtiming()µ{¡þ	«µµµµµµtiming_typeµ:µsetup_rising;¡þ	ßµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ
µµµµµµrelated_pinµ:µ"CP";¡þ
Gµµµµ}¡þ
{µµµµtiming()µ{¡þ
¯µµµµµµtiming_typeµ:µhold_rising;¡þ
âµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þµµµµµµrelated_pinµ:µ"CP";’’ûD“I501ileaf_page_string1:8-83¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³83¡þÃ²´µµµµ}¡þ÷µµ}¡þ+µµpin(CP)µ{¡þ_µµµµdirectionµ:µinput;¡þ’µµµµcapacitanceµ:µ1;¡þÆµµ}¡þúµµff_bank("IQ","IQN",µ2)µ{¡þ.µµµµnext_stateµ:µ"DµE";¡þbµµµµclocked_onµ:µ"CP";¡þ–µµ}¡þÊµµbundle(Q)µ{¡þþµµµµmembers(Q0,µQ1);¡þ2µµµµdirectionµ:µoutput;¡þeµµµµfunctionµ:µIQ;¡þ™µµµµtiming()µ{¡þÍµµµµµµtiming_typeµ:µrising_edge;¡þµµµµµµintrinsic_riseµ:µ1.09;µintrinsic_fallµ:µ1.37;¡þ5µµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þiµµµµµµrelated_pinµ:µ"CP";¡þµµµµ}¡þÑµµ}¡þµµbundle(QN)µ{¡þ8µµµµmembers(Q0N,µQ1N);¡þlµµµµdirectionµ:µoutput;¡þ µµµµfunctionµ:µIQN;¡þÔµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µrising_edge;¡þ<µµµµµµintrinsic_riseµ:µ1.59;µintrinsic_fallµ:µ1.57;¡þpµµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þ¤µµµµµµrelated_pinµ:µ"CP";¡þØµµµµ}¡þµµ}¡þ?}¡þ|cell(FDX4)µ{¡þ°µµareaµ:µ32;¡þäµµ²)geometry_printµ:µGP1²;¡þ	µµbus(D)µ{¡þ	Lµµµµbus_typeµ:µbus4;¡þ	€µµµµdirectionµ:µinput;¡þ	´µµµµcapacitanceµ:µ1;¡þ	çµµµµtiming()µ{¡þ
µµµµµµtiming_typeµ:µsetup_rising;¡þ
Oµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ
ƒµµµµµµrelated_pinµ:µ"CP";¡þ
·µµµµ}¡þ
ëµµµµtiming()µ{’ûD“I501ileaf_page_string1:8-84¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³84¡þÃ²´µµµµµµtiming_typeµ:µhold_rising;¡þ÷µµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þ+µµµµµµrelated_pinµ:µ"CP";¡þ_µµµµ}¡þ’µµ}¡þÆµµpin(CP)µ{¡þúµµµµdirectionµ:µinput;¡þ.µµµµcapacitanceµ:µ1;¡þbµµ}¡þ–µµff_bank("IQ","IQN",µ4)µ{¡þÊµµµµnext_stateµ:µ"D";¡þþµµµµclocked_onµ:µ"CP";¡þ2µµ}¡þeµµbus(Q)µ{¡þ™µµµµbus_typeµ:µbus4;¡þÍµµµµdirectionµ:µoutput;¡þµµµµfunctionµ:µIQ;¡þ5µµµµtiming()µ{¡þiµµµµµµtiming_typeµ:µrising_edge;¡þµµµµµµintrinsic_riseµ:µ1.09;µintrinsic_fallµ:µ1.37;¡þÑµµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þµµµµµµrelated_pinµ:µ"CP";¡þ8µµµµ}¡þlµµ}¡þ µµbus(QN)µ{¡þÔµµµµbus_typeµ:µbus4;¡þµµµµdirectionµ:µoutput;¡þ<µµµµfunctionµ:µIQN;¡þpµµµµtiming()µ{¡þ¤µµµµµµtiming_typeµ:µrising_edge;¡þØµµµµµµintrinsic_riseµ:µ1.59;µintrinsic_fallµ:µ1.57;¡þµµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þ?µµµµµµrelated_pinµ:µ"CP";¡þsµµµµ}¡þ§µµ}¡þÛ}’ùD“I501ileaf_page_string1:8-85¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³85¡þÏ²single_bit_degenerate´µAttribute¡þr²The´µsingle_bit_degenerateµattributeµisµforµuseµonµmultibitµbundleµor¡þ»busµcellsµthatµareµblackµboxes.µTheµvalueµ(string)µofµthisµattributeµis¡þtheµnameµofµaµsingle³bitµlibraryµcell,µwhichµDesignµCompilerµusesµas¡þLaµlinkµtoµassociateµtheµmultibitµcellµwithµtheµsingle³bitµcellµinµthe¡þ•library.¡þ<Example 8³17µshowsµmultibitµlibraryµcellsµwithµthe¡þ…single_bit_degenerateµattribute.¡,;²&Example 8³17³MultibitµCellsµwithµsingle_bit_degenerateµAttribute¡þ”²cell´µ(FDX2)µ{¡þÈµµµareaµ:µ18µ;¡þüµµµ²)single_bit_degenerateµ:µFDBµ;²¡þ0µµµbundleµ(D)µ{¡þcµµµµµµmembersµ(D0,µD1)µ;¡þ—µµµµµµdirectionµ:µinputµ;¡þËµµµµµµ...¡þÿµµµµµµtimingµ()µ{¡þ3µµµµµµµµµ...¡þgµµµµµµµµµ...¡þ›µµµµµµ}¡þÏµµµ}¡þ}¡þ6¡þjcellµ(FDX4)¡þžµµµareaµ:µ18µ;¡þÒµµµ²)single_bit_degenerateµ:µFDBµ;²¡þ	µµµbusµ(D)µ{¡þ	:µµµµµµbus_typeµ:µbus4µ;¡þ	nµµµµµµdirectionµ:µinputµ;¡þ	¢µµµµµµ...¡þ	Öµµµµµµtimingµ()µ{¡þ
	µµµµµµµµµ...¡þ
=µµµµµµµµµ...¡þ
qµµµµµµ}¡þ
¥µµµ}¡þ
Ù}’ù\D“I501ileaf_page_string1:8-86¥	öäÃËÁâÊË¡Ä,=,'¡Ä,'	c'¡Ä	c'	c=¡Ä	c=,=ÆÃÁÊËÃ¡Ä,'Ê'ÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³86¡þÉ²Library´µCompilerµverifiesµthatµallµtheµfollowingµconditionsµexistµfor¡þcellsµinµaµlibraryµcontainingµblackµboxµcellsµandµusingµthe¡þZsingle_bit_degenerateµattribute.µIfµanyµoneµofµtheµconditionsµdoes¡þ£notµexist,µtheµsingle_bit_degenerateµattributeµisµremovedµfromµthe¡þìcell.¡þl²S¡Xl²Forµanyµsingle_bit_degenerateµattributeµonµaµmultibitµblackµbox,¡X²aµsingle_bitµcellµbyµthatµnameµmustµexistµinµtheµlibrary.¡þ"²S¡X"²Forµmultibitµblackµboxesµwithµtheµsingle_bit_degenerateµattribute,¡Xiallµbusesµorµbundlesµonµaµcellµmustµhaveµtheµsameµwidth.¡þÙ²S¡XÙ²Forµmultibitµblackµboxesµwithµtheµsingle_bit_degenerateµattribute,¡Xtheµunbusedµpins,µbuses,µandµbundlesµmustµmatchµtheµportsµof¡Xftheµsingle_bitµcell,µandµviceµversa.¡þòOnlyµtheµlibraryµdeveloperµknowsµandµcanµprovideµsuchµinformation.¡þ:Theµlibraryµdescriptionµdoesµnotµincludeµinformationµsuchµasµcell¡þƒheight.¡,}²Defining´µScaledµCellµGroups¡þ3²Not´µallµcellsµscaleµuniformly.µSomeµcellsµareµdesignedµtoµproduceµa¡þ|constantµdelayµandµdoµnotµscaleµatµall;µotherµcellsµdoµnotµscaleµinµa¡þÅlinearµmannerµforµprocess,µvoltage,µorµtemperature.µTheµvaluesµyou¡þ	setµforµaµcellµunderµoneµsetµofµoperatingµconditionsµdoµnotµproduce¡þ	Vaccurateµresultsµforµtheµcellµwhenµscaledµforµdifferentµconditions.µ¡þ	òYouµcanµuseµaµscaledµcellµgroupµtoµsetµtheµvaluesµexplicitlyµforµaµcell¡þ
:underµcertainµoperatingµconditions.µIfµtheµdefaultµscalingµisµsufficient¡þ
ƒforµallµbutµaµfewµparameters,µyouµcanµdefineµonlyµthoseµparameters¡þ
Ìinµtheµscaledµcell,µandµletµDesignµCompilerµuseµandµscaleµthe¡þnominalµattributesµforµallµtheµothers.’\+D“I501ileaf_page_string1:8-87¥	öäÃËÁâÊË¡Ä,”,~¡Ä,~	c~¡Ä	c~	c”¡Ä	c”,”ÆÃÁÊËÃ¡Äþ~Ê~ÆÃ¥	öä¥	öä¡0Á²Defining´µCoreµCells¡Ô¤ÿ¤8³87¡þÉ²Use´µaµscaledµcellµonlyµwhenµabsolutelyµnecessary.µTheµsizeµofµthe¡þlibraryµdatabaseµincreasesµproportionatelyµtoµtheµnumberµofµscaled¡þZcellsµyouµdefine.µThisµsizeµincreaseµmayµincreaseµprocessingµand¡þ£loadµtimes.¡þMNote:²¡X•²LibraryµCompilerµdoesµnotµsupportµscaledµcellµgroupsµusedµin¡XÞcombinationµwithµmultipleµtimingµarcsµbetweenµtwoµpins.¡þÎ²Scaled´µCellµGroups¡þu²You´µcanµuseµtheµscaled_cellµgroupµtoµsupplyµanµalternateµsetµof¡þ½valuesµforµanµexistingµcell.µTheµchoiceµisµbasedµonµtheµsetµof¡þoperatingµconditionsµused.¡þð²Exampleµ¡þz²library´µ(example)µ{¡þ¸¡…¸operating_conditions(WCCOM)µ{¡þö¡…ö...¡þ3¡…3}¡þq¡…qcell(INV)µ{¡þ®¡…®¡®pin(A)µ{¡þì¡…ì¡ì¡“ìdirectionµ:µinputµ;¡þ	*¡…	*¡	*¡“	*capacitanceµ:µ1.0µ:¡þ	g¡…	g¡	g}¡þ	¥¡…	¥¡	¥pin(Z)µ{¡þ	â¡…	â¡	â¡“	âdirectionµ:µoutputµ;¡þ
 ¡…
 ¡
 ¡“
 functionµ:µ"A'"µ;¡þ
^¡…
^¡
^¡“
^timing()µ{¡þ
›¡…
›¡
›¡“
›¡
›intrinsic_riseµ:µ0.36µ;¡þ
Ù¡…
Ù¡
Ù¡“
Ù¡
Ùintrinsic_fallµ:µ0.16µ;¡þ¡…¡¡“¡rise_resistanceµ:µ0.0653µ;’+ýD“I501ileaf_page_string1:8-88¥	öäÃËÁâÊË¡Ä,M,7¡Ä,7	c7¡Ä	c7	cM¡Ä	cM,MÆÃÁÊËÃ¡Ä,7Ê7ÆÃ¥	öä¥	öä¡8Á²Defining´µCoreµCells¡.8³88¡þÃ²¡…Ã¡Ã¡“Ã¡Ãfall_resistance´µ:µ0.0331µ;¡þþ¡…þ¡þ¡“þ¡þrelated_pinµ:µ"A"µ;¡þ:¡…:¡:¡“:}¡þu¡…u¡u}¡þ±¡…±}¡þì¡…ìscaled_cell(INV,WCCOM)µ{¡þ'¡…'¡'pin(A)µ{¡þc¡…c¡c¡“cdirectionµ:µinputµ;¡þž¡…ž¡ž¡“žcapacitanceµ:µ0.7µ;¡þÚ¡…Ú¡Ú}¡þ¡…¡pin(Z)µ{¡þP¡…P¡P¡“Pdirectionµ:µoutputµ;¡þŒ¡…Œ¡Œ¡“Œtiming()µ{¡þÇ¡…Ç¡Ç¡“Ç¡Çintrinsic_riseµ:µ0.12µ;¡þ¡…¡¡“¡intrinsic_fallµ:µ0.13µ;¡þ>¡…>¡>¡“>¡>rise_resistanceµ:µ0.605µ;¡þy¡…y¡y¡“y¡yfall_resistanceµ:µ0.493µ;¡þµ¡…µ¡µ¡“µ¡µrelated_pinµ:µ"A"µ;¡þð¡…ð¡ð¡“ð}¡þ,¡…,¡,}¡þg¡…g}¡þ¢}¡,²Netlisting´µConsiderations¡þ9²Certain´µnetlistµformatsµrequireµspecificµpinµorderingµandµspecific¡þcaseµtypeµ(uppercaseµorµlowercase)µtoµwriteµoutµaµcorrectµnetlist.¡þ	TheµcaseµofµtheµcellµnameµmayµbeµimportantµforµEDIFµandµNDLµ(LSI¡þ	^Netlist)µbecauseµtheµoriginatingµorµdestinationµEDAµsystemµmay¡þ	¦expectµeitherµlowercaseµorµuppercaseµcellµnamesµandµmayµnotµbe¡þ	ïableµtoµdoµcaseµchangesµautomatically.¡þ
ƒIfµorder³basedµnetlistsµareµusedµwithµtheµlibrary,µtheµorderµinµwhich¡þ
Ìtheµpinµgroupsµappearµwithinµaµcellµgroupµmustµmatchµtheµorderµin¡þwhichµtheµpinsµareµspecifiedµinµtheµnetlist.µ’ýØD“I501ileaf_page_string1:8-89¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³89¡þÉ²Netlists´µcanµbeµinµoneµofµtwoµformats:µimplicitµorµexplicit.¡þN²S¡XN²²&Implicit²,µorµorder³based,µnetlistsµattachµnetsµtoµcomponents¡X”accordingµtoµtheµorderµinµwhichµtheyµareµdefinedµinµtheµnetlist.¡XÛTheµorderµinµwhichµtheµpinsµareµlistedµinµtheµdescriptionsµofµthe¡X!cellsµisµtheµorderµinµwhichµtheyµwillµbeµreferencedµwhenµwriting¡Xh(andµpossiblyµreading)µaµnetlist.µTherefore,µLibraryµCompilerµcell¡X¯descriptionsµmustµalsoµhaveµoutputµpinsµlistedµbeforeµinputµpins.¡þ"²S¡X"²²&Explicit²µnetlistsµincludeµtheµpinµnameµandµtheµnetµconnectedµto¡Xitheµpin;µtheµorderµisµnotµimportant.¡þúGate³levelµVerilogµnetlistsµfromµtheµVerilogµSimulatorµuseµtheµimplicit¡þCformatµwithµoutputµpinsµlistedµbeforeµinputµpins.µOtherµDesign¡þŒCompilerµinputµandµoutputµinterfacesµthatµuseµimplicitµpin³ordering¡þÔschemesµareµNDLµ(LSIµNetlist)µandµTDLµ(TegasµNetlist).¡þwTegasµTDLµnetlists,µVHDLµnetlists,µandµLSIµnetlistsµcanµhaveµexplicit¡þÀandµimplicitµformats.¡þbInµExample 8³18,µµtheµDµpinµisµdefinedµfirstµandµtheµclockµisµdefined¡þ«secondµinµtheµDFFµreferenceµinµtheµtechnologyµlibrary.µTheµsame¡þóorderingµappliesµhere.¡,¥²&Example 8³18³PartialµTDLµNetlistµwithµImplicitµPinµOrdering¡þü²COMPILE;¡þ	9DIRECTORY´µMASTER;¡þ	vMODULEµCALCSEL;¡þ	³INPUTSµµOPRDY,ID_REG_2,ID_REG_1,ID_REG_0,INTF,CLK;¡þ	ðOUTPUTSµSEL_Q;’ØD“I501ileaf_page_string1:8-90¥	öä¥	öä¡8Á²âDefining´µCoreµCells¡.8³90¡þÃ²LEVEL´µFUNCTION;¡þDEFINE¡þ=N27µ=µ(OPRDY);¡þz²60¡þ¶0¡þó²N35µ=µ(CLK);¡þ0U52(N65)µ=µND2(N66,N27);¡þmU54(N64)µ=µINV(N65);¡þª²60¡þç0¡þ$²U29(N41)µ=µMUX21(N42,N43,N44);¡þaI0_FF(N38)µ=µDFF(N37,N35);¡þÚENDµMODULE;¡þTENDµCOMPILE;¡þ‘END;¡þ,²Example 8³18´µusesµanµimplicitµpin³referencingµnetlistµscheme.¡þuDesignµCompilerµhasµnoµinformationµaboutµtheµpinµorderingµusedµby¡þ½aµspecificµcell,µexceptµforµtheµorderµofµpinsµusedµinµtheµcell¡þdescriptionsµofµtheµDesignµCompilerµtechnologyµlibrary.µTherefore,µif¡þOanµimplicitµpin³referencingµnetlistµisµusedµasµanµinputµtoµDesign¡þ—Compiler,µspecialµattentionµmustµbeµmadeµtoµtheµorderµinµwhichµthe¡þàinputµandµoutputµpinsµareµlistedµinµtheµcellµdescriptionsµinµa¡þ)technologyµlibrary.µSynopsysµsoftwareµalwaysµwritesµexplicit¡þqpin³referencingµnetlistsµasµshownµinµtheµfollowingµexample.¡þó²U29(N41=Z)´µ=µMUX21(N42=A,N43=B,N44=C);’½D“I501ileaf_page_string1:8-91¥	öä¥	öä¡0Á²âDefining´µCoreµCells¡Ô¤ÿ¤8³91¡þÏ²Verilog´µNetlist³PinµOrder¡þn²In´µcasesµwhereµVerilogµsimulatorµmodelsµofµASICµcellsµhaveµa¡þ¶differentµpinµorderingµthatµcanµconflictµwithµtheµoneµdefinedµinµthe¡þÿtechnologyµlibraryµusedµwithµSynopsys,µDesignµCompilerµreadsµin¡þHtheµVerilogµnetlistµfromµtheµsimulatorµenvironmentµbecauseµitµis¡þsyntacticallyµcorrect.µHowever,µwhenµDesignµCompilerµperforms¡þÙsynthesisµandµoptimizationµonµtheµdesign,µeitherµtheµdesignµdoesµnot¡þ"optimizeµorµtheµresultsµobtainedµareµincorrect.¡þÄTheµdiscrepancyµisµusuallyµinµtheµdescriptionµofµflip³flops.µIfµtheµD¡þandµCLKµpinsµareµreversed,µtheµresultµcanµbeµdesignsµthatµare¡þVincorrectlyµoptimizedµandµinµsomeµcases,µtheµflip³flopsµdisappear¡þžfromµtheµdesign.µTypically,µthisµhappensµwhenµaµcomponentµhas¡þçbeenµinstantiatedµinµaµVerilogµdesignµasµinµtheµfollowingµexample.¡þh²Verilog´µOutput:¡h¡¡hDFFµµµU1(Q,µQN,µD,µCLK)¡þ¥DesignµCompilerµexpects:DFFµU1(D,µCLK,µQ,µQN)¡þ@²In´µtheµprecedingµexample,µtheµVerilogµnetlistsµwereµwrittenµoutµusing¡þ‰anµimplicitµpin³referencingµschemeµwhereµtheµoutputµpinsµareµlisted¡þÒfirst,µthenµtheµinputs.µTheµtechnologyµlibraryµdescriptionµforµDFFµhas¡þtheµinputµpinsµDµandµCLKµdescribedµfirst,µthenµtheµoutputµpinsµQµand¡þcQN.µInµthisµcase,µtheµinputsµandµoutputµpinsµareµreversed.¡þ	Toµavoidµthisµproblem,µtheµorderµofµtheµpinsµinµtheµDesignµCompiler¡þ	Ntechnologyµlibraryµandµtheµnetlisterµyouµuseµmustµbeµidentical.¡þ	—DesignµCompilerµcanµreadµimplicitµorµexplicitµpin³referencingµnetlists,¡þ	ßbutµalwaysµwritesµoutµexplicitµpin³referencingµnetlists.’½ÐOPS m:m:D€‚Document:9seqÿ‚Last saved on:Tue, Dec 9, 1997 17:53:16ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°0wst:courps10i±0:*°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Vwst:timsps10i±V:#!'##%*%*(åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå®å€å™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’M?MD“I501ileaf_page_string1:9-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¾9³1¡,m²².9â²/¥	öä¡Õm²â¡,v²	Defining´µSequentialµCells¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡This´µchapterµdescribesµtheµpeculiaritiesµofµdefiningµflip³flopsµand¡þélatches,µbuildingµuponµtheµcellµdescriptionµsyntaxµgivenµinµChapterµ8,¡þ2DefiningµCoreµCells."µItµdescribesµgroupµstatementsµthatµapplyµonly¡þztoµsequentialµcells,µandµaµvariationµofµtheµfunctionµattribute,µwhich¡þÃmakesµuseµofµstateµvariables.’MØD“I501ileaf_page_string1:9-2¥	öäÃËÁâÊË¡Ä,¦,¡Ä,	c¡Ä	c	c¦¡Ä	c¦,¦ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³2¡þÉ²To´µdesignµflip³flopsµandµlatches,µyouµmustµunderstandµtheµfollowing¡þconceptsµandµtasks:¡þœ²S¡Xœ²Usingµsequentialµcellµsyntax¡þ²S¡X²Describingµaµflip-flop¡þ‹²S¡X‹²Usingµtheµfunctionµattribute¡þ²S¡X²Describingµaµmultibitµflip³flop¡þz²S¡Xz²Describingµaµlatch¡þñ²S¡Xñ²Describingµaµmultibitµlatch¡þi²S¡Xi²Describingµsequentialµcellsµwithµstatetable¡þá²S¡Xá²Flip³flopµandµlatchµexamples¡,æ²Using´µSequentialµCellµSyntax¡þ°²You´µcanµdescribeµsequentialµcellsµwithµtheµfollowingµcellµdefinition¡þùformats:¡þƒ²S¡Xƒ²ff/latchµformat¡XûCellsµusingµff/latchµformatµareµidentifiedµbyµtheµffµgroupµandµlatch¡X	Agroup.¡þ	É²S¡X	É²statetableµformat¡X
ACellsµusingµstatetableµformatµareµidentifiedµbyµtheµstatetable¡X
‡group.µStatetableµformatµsupportsµallµtheµsequentialµcells¡X
Îsupportedµbyµtheµff/latchµformat.µInµaddition,µstatetableµformat¡Xsupportsµmoreµcomplexµsequentialµcells,µsuchµasµtheµfollowing:’ØóD“I501ileaf_page_string1:9-3¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¾9³3¡XÉ²³¡”ÉSequential´µcellsµwithµmultipleµclockµports,µsuchµasµaµcellµwithµa¡”systemµclockµandµaµtestµscanµclock¡X³¡”Internal³stateµsequentialµcells,µsuchµasµmaster³slaveµcells¡X³¡”Multistateµsequentialµcells,µsuchµasµcountersµandµshift¡”Tregisters¡XÔ³¡”ÔSequentialµcellsµthatµalsoµhaveµcombinationalµoutputs¡XS³¡”SSequentialµcellsµwithµcomplexµclockingµandµcomplex¡”™asynchronousµbehavior¡X³¡”Sequentialµcellsµwithµmultipleµsimultaneousµinputµtransitions¡X˜³¡”˜Sequentialµcellsµwithµillegalµinputµconditions¡XTheµstatetableµformatµcontainsµaµcomplete,µexpandedµsetµof¡X]tableµrulesµforµwhichµallµLµandµHµpermutationsµofµtableµinputµis¡X¤explicitlyµspecified.¡þ\ASICµvendorsµshouldµcontinueµtoµuseµff/latchµformatµforµall¡þ¤sequentialµcellsµthatµareµalreadyµadequatelyµsupported.µTheµDesign¡þíCompilerµprogramµstillµsupportsµtheµff/latchµformat.¡þ§However,µtheµstatetableµsyntaxµisµmoreµintuitiveµandµeasierµtoµuse¡þïthanµtheµcurrentµsequentialµmodeling.µTherefore,µASICµvendors¡þ	8shouldµalsoµaddµtheµstatetableµtoµallµtheirµsequentialµcellsµbothµfor¡þ	automaticµfunctionalµverificationµandµforµguaranteedµfuture¡þ	Écompatibility.¡þ
ƒSomeµcellsµcannotµbeµmodeledµwithµstatetableµformat.µForµexample,¡þ
Ìyouµcannotµuseµstatetableµformatµtoµmodelµaµcellµwhoseµfunction¡þdependsµonµdifferentialµclocksµwhenµtheµinputsµchange.’óJD“I501ileaf_page_string1:9-4¥	öäÃËÁâÊË¡Ä,¬,–¡Ä,–	c–¡Ä	c–	c¬¡Ä	c¬,¬ÆÃÁÊËÃ¡Ä,–Ê–ÆÃ¥	öäÃÁÊË¡Ä,¦,¡Ä,	c¡Ä	c	c¦¡Ä	c¦,¦ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³4¡þÉ²The´µformatµyouµuseµdependsµonµtheµtoolµforµwhichµyouµdesignµthe¡þlibrary.µDesignµsynthesis,µtestµsynthesis,µandµfaultµsimulationµtools¡þZsupportµonlyµff/latchµformat.µTheµLibraryµCompilerµprogramµusesµthe¡þ£statetableµformatµtoµgenerateµtheµVITALµandµFTGSµmodelsµofµVHDL¡þìlibraries.µTheµTestµCompilerµprogramµsupportsµstatetableµformatµfor¡þ4ATPGµandµDRCµbutµrequiresµff/latchµformatµforµscanµsubstitutionµand¡þ}forµfaultµsimulation.µSeeµChapterµ12,µ"DefiningµTestµCells,"µfor¡þÆinformationµaboutµmodelingµcellsµforµtest.¡,ì²Describing´µaµFlip³Flop¡þÀ²To´µdescribeµanµedge³triggeredµstorageµdevice,µincludeµanµffµgroupµor¡þ	aµstatetableµgroupµinµaµcellµdefinition.µThisµsectionµdescribesµhowµto¡þQdefineµaµflip³flopµusingµtheµff/latchµformat.µSeeµDescribing¡þšSequentialµCellsµwithµStatetable"µlaterµinµthisµchapterµforµtheµwayµto¡þâdefineµcellsµusingµtheµstatetableµgroup.¡þà²Using´µanµffµGroup¡þŽ²An´µffµgroupµcanµdescribeµeitherµaµsingle³stageµorµaµmaster³slave¡þ×flip³flop.¡þ	Ï²Syntax¡þ
²library´µ(²(lib_name²)µ{¡þ
[¡…
[cellµ(²(cell_name²)µ{¡þ
š¡…
š¡
š...¡þ
Ø¡…
Ø¡
Øffµ(²(µvariable1²,µ²(variable2²µ)µ{¡þ¡…¡¡“clocked_onµ:µ"²(Boolean_expression²"µ;’JmD“I501ileaf_page_string1:9-5¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¾9³5¡þÃ²¡…Ã¡Ã¡“Ãnext_state´µ:µ"²(Boolean_expression²"µ;¡þ¡…¡¡“clearµ:µ"²(Boolean_expression²"µ;¡þ=¡…=¡=¡“=presetµ:µ"²(Boolean_expression²"µ;¡þz¡…z¡z¡“zclear_preset_var1µ:µ²(value²µ;¡þ¶¡…¶¡¶¡“¶clear_preset_var2µ:µ²(value²µ;¡þó¡…ó¡ó¡“óclocked_on_alsoµ:µ"²(Boolean_expression²"µ;¡þ0¡…0¡0}¡þm¡…m}¡þª}¡þ'²variable1¡Xpvariable1´µisµtheµstateµofµtheµnoninvertingµoutputµofµtheµflip³flop.µIt¡X¸isµconsideredµtheµone³bitµstorageµofµtheµflip³flop.¡þvariable2¡Xhvariable2µisµtheµstateµofµtheµinvertingµoutput.¡þìNameµvariable1µandµvariable2µanythingµexceptµtheµnameµofµaµpinµin¡þ5theµcellµbeingµdescribed.µBothµvariablesµareµrequired,µevenµifµoneµof¡þ}themµisµnotµconnectedµtoµaµprimaryµoutputµpin.¡þ Theµclocked_onµandµnext_stateµattributesµareµrequiredµinµtheµff¡þigroup;µallµotherµattributesµareµoptional.¡þM²clocked_on´µandµclocked_on_alsoµAttributes¡þì²The´µclocked_onµandµclocked_on_alsoµattributesµidentifyµtheµactive¡þ	5edgeµofµtheµclockµsignals.¡þ	×Whenµyouµareµdescribingµflip³flopsµthatµrequireµbothµaµmasterµandµa¡þ
 slaveµclock,µuseµtheµclocked_onµattributeµforµtheµmasterµclockµand¡þ
itheµclocked_on_alsoµattributeµforµtheµslaveµclock.’m€D“I501ileaf_page_string1:9-6¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³6¡þÉ²Example¡þ4²This´µdescribesµaµpositiveµedge³triggeredµdevice¡þ³²clocked_on´µ:µ"CP";¡þM²This´µdescribesµaµnegativeµedge³triggeredµdevice.µ¡þÌ²clocked_on´µ:µ"CP'";¡þ¤²next_state´µAttribute¡þ@²next_state´µisµaµlogicµequationµwrittenµinµtermsµofµtheµcell'sµinputµpins¡þ‰orµtheµfirstµstateµvariable,µvariable1.µForµsingle³stageµstorage¡þÒelements,µtheµnext_stateµattributeµequationµdeterminesµtheµvalueµof¡þvariable1µatµtheµnextµactiveµtransitionµofµtheµclocked_onµattribute.¡þºForµdevicesµsuchµasµaµmaster³slaveµflip³flop,µtheµnext_stateµequation¡þdeterminesµtheµvalueµofµtheµmasterµstage'sµoutputµsignalsµatµthe¡þKnextµactiveµtransitionµofµtheµclocked_onµattribute.¡þ$²Example¡þo²next_state´µ:µ"D"µ;¡þ	²The´µnextstate_typeµattributeµinµtheµpinµgroupµdescribedµatµtheµendµof¡þ	Qthisµsectionµdefinesµtheµtypeµofµnext_stateµpinµusedµinµtheµffµand¡þ	šff_bankµgroups.¡þ
x²clear´µAttribute¡þ²The´µclearµattributeµgivesµtheµactiveµvalueµforµtheµclearµinput.’€fD“I501ileaf_page_string1:9-7¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¾9³7¡þÉ²Example¡þ²clear´µ:µ"CD'"µ;¡þž²See´µtheµfollowingµSingle³StageµFlip³Flop"µsectionµforµmore¡þæinformationµaboutµtheµclearµattribute.¡þž²preset´µAttribute¡þ#²The´µpresetµattributeµgivesµtheµactiveµvalueµforµtheµpresetµinput.¡þÕ²Example¡þ²preset´µ:µ"PD'"µ;¡þ©²See´µtheµfollowingµDescribingµaµSingle³StageµFlip³Flop"µsectionµfor¡þòmoreµinformationµaboutµtheµpresetµattribute.¡þª²clear_preset_var1´µAttribute¡þ/²The´µclear_preset_var1µattributeµgivesµtheµvalueµthatµvariable1µhas¡þwwhenµclearµandµpresetµareµbothµactiveµatµtheµsameµtime.¡þ)²Example¡þp²clear_preset_var1´µ:µL;¡þþ²See´µtheµfollowingµDescribingµaµSingle³StageµFlip³Flop"µsectionµfor¡þ	Gmoreµinformationµaboutµtheµclear_preset_var1µattribute,µincludingµits¡þ	functionµandµvalues.¡þ
G²clear_preset_var2´µAttribute¡þ
Ì²The´µclear_preset_var2µattributeµgivesµtheµvalueµthatµvariable2µhas¡þwhenµclearµandµpresetµareµbothµactiveµatµtheµsameµtime.’fD“I501ileaf_page_string1:9-8¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³8¡þÉ²Example¡þ²clear_preset_var2´µ:µLµ;¡þ£²See´µtheµfollowingµDescribingµaµSingle³StageµFlip³Flop"µsectionµfor¡þìmoreµinformationµaboutµtheµclear_preset_var2µattribute,µincludingµits¡þ4functionµandµvalues.¡þú²ff´µGroupµExamples¡þ‡²This´µisµanµexampleµofµanµffµgroupµforµaµsingle³stageµDµflip³flop.¡þü²ff(IQ,´µIQN)µ{¡þ7¡…7next_stateµ:µ"D"µ;¡þr¡…rclocked_onµ:µ"CP"µ;¡þ­}¡þ?²This´µexampleµdefinesµtwoµvariables,µIQµandµIQN.µTheµnext_state¡þˆequationµdeterminesµtheµvalueµofµIQµafterµtheµnextµactiveµtransition¡þÐofµtheµclocked_onµattribute.µInµthisµexample,µIQµisµassignedµthe¡þvalueµofµtheµDµinput.¡þ©Inµsomeµflip³flops,µtheµnextµstateµdependsµonµtheµcurrentµstate.µIn¡þòthisµcase,µtheµfirstµstateµvariableµvariable1,µIQµinµtheµexample,µcan¡þ;beµusedµinµtheµnext_stateµstatement;µtheµsecondµstateµvariable,µIQN,¡þƒcannot.µ¡þ	Forµexample,µtheµffµdeclarationµforµaµJKµflip³flopµlooksµlikeµthis:¡þ	‰²ff(IQ,IQN)´µ{¡þ	Äµµµnext_stateµ:µµ"(JµKµIQ')µ+µ(JµK')µ+µ(J'µK'µIQ)";¡þ	ÿµµµclocked_onµ:µ"CP";¡þ
:}¡þ
Ì²The´µnext_stateµandµclocked_onµattributesµcompletelyµdefineµthe¡þsynchronousµbehaviorµofµtheµflip³flop.’äD“I501ileaf_page_string1:9-9¥	öäÃËÁâÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¾9³9¡þÏ²nextstate_type´µPinµAttribute¡þ‚²The´µnextstate_typeµattributeµisµaµpinµgroupµattributeµthatµdefinesµthe¡þÊtypeµofµnext_stateµpinµusedµinµtheµffµorµff_bankµgroup.¡þÊ²Example¡þ²nextstate_type´µ:µdata;¡þ¾²Any´µpinµwithµtheµnextstate_typeµattributeµmustµbeµinµtheµnextstate¡þfunction.µAµconsistencyµcheckedµisµalsoµmadeµbetweenµtheµpin's¡þOnextstate_typeµattributeµandµtheµnextstateµfunction.¡þExample 9³5µandµExample 9³6µshowµyouµhowµtoµuseµthe¡þNnextstate_typeµattribute.¡þT²Describing´µaµSingle³StageµFlip³Flop¡þ²A´µsingle³stageµflip³flopµdoesµnotµuseµtheµoptionalµclocked_on_also¡þOattribute.¡þ	Theµclearµattributeµgivesµtheµactiveµvalueµforµtheµclearµinput.µThe¡þ	Opresetµattributeµgivesµtheµactiveµvalueµforµtheµpresetµinput.µFor¡þ	—example,µtheµfollowingµstatementµdefinesµanµactive³lowµclearµsignal.µ¡þ
'²clear´µ:µ"CD'"µ;¡þ
Ì²Table 9³1´µshowsµtheµfunctionsµofµtheµattributesµinµtheµffµgroupµforµa¡þsingle³stageµflip³flop.’ä
D“I501ileaf_page_string1:9-10¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³10¡,É²&Table 9³1³Function´µTableµforµSingle³StageµFlip³Flop¡,/²¥	öä¡IO²"active´µedgeÁã¡ÃÄ,--z,z,Ç¡ÃÄ,““,,Ç²¡”/¥	öä¡±O²clear¡ÃÄ”¿¿””Ç²¡À/¥	öä¡ÝO²preset¡ÃÄÀëëÀÀÇ²¡ì/¥	öä¡	O²variable1¡ÃÄìËËììÇ²¡Ì/¥	öä¡éO²variable2¡ÃÄ¬­­z¬z¬Ç¡ÃÄÌ­­ÌÌÇ²¡¬/¡,Ÿ¥	öä¡I¿²clocked_on¡ÃÄ,{-{-ê,ê,{Ç¡ÃÄ,{“{“|,|,{Ç²¡”Ÿ¥	öä¡±·²inactive¡ÃÄ”{¿{¿|”|”{Ç²¡ÀŸ¥	öä¡Ý·²inactive¡ÃÄÀ{ë{ë|À|À{Ç²¡ìŸ¥	öä¡	·²next_state¡ÃÄì{Ë{Ë|ì|ì{Ç²¡ÌŸ¥	öä¡é·²!next_state¡ÃÄ¬{­{­ê¬ê¬{Ç¡ÃÄÌ{­{­|Ì|Ì{Ç²¡¬Ÿ¡,¥	öä¡I/²--¡ÃÄ,ë-ë-Z,Z,ëÇ²¡”¥	öä¡±'²active²¡À¥	öä¡Ý/²inactive²¡ì¥	öä¡	/²0²¡Ì¥	öä¡é/²1¡ÃÄ¬ë­ë­Z¬Z¬ëÇ²¡¬¡,¥	öä¡IŸ²--¡ÃÄ,[-[-Ê,Ê,[Ç²¡”¥	öä¡±—²inactive²¡À¥	öä¡ÝŸ²active²¡ì¥	öä¡	Ÿ²1²¡Ì¥	öä¡é—²0¡ÃÄ¬[­[­Ê¬Ê¬[Ç²¡¬¡,ï¥	öä¡I²--¡ÃÄ,Ë-Ë-*,*,ËÇ¡ÃÄ,#“#“+,+,#Ç²¡”ï¥	öä¡±²active¡ÃÄ”#¿#¿+”+”#Ç²¡Àï¥	öä¡Ý²active¡ÃÄÀ#ë#ë+À+À#Ç²¡ìï¥	öä¡	²clear_preset_var1¡ÃÄì#Ë#Ë+ì+ì#Ç²¡Ìï¥	öä¡é²clear_preset_var2¡ÃÄ¬Ë­Ë­*¬*¬ËÇ¡ÃÄÌ#­#­+Ì+Ì#Ç²¡¬ï¡þè²clear_preset_var1´µandµclear_preset_var2µgiveµtheµvalueµthat¡þ1variable1µandµvariable2µhaveµwhenµclearµandµpresetµareµbothµactive¡þyatµtheµsameµtime.µValidµvaluesµare¡XòLµ³
µ0¡XiHµ³
µ1¡XàNµ³
µnoµchangeµ*¡XWTµ³
µtoggleµtheµcurrentµvalueµfromµ1µtoµ0,µ0µtoµ1,µorµXµtoµXµ*¡XÎXµ³
µunknownµ*¡XD*µDesignµCompilerµdoesµnotµrecognizeµtheseµvaluesµandµissuesµa¡X‹warningµthatµtheµcellµisµaµblackµbox.µTheseµvaluesµareµusedµto¡XÒgenerateµVHDLµmodels.¡þ	aIfµyouµincludeµbothµclearµandµpreset,µyouµmustµuseµeither¡þ	©clear_preset_var1µorµclear_preset_var2,µorµboth.µConversely,µifµyou¡þ	òincludeµclear_preset_var1µorµclear_preset_var2,µorµboth,µyouµmust¡þ
;useµbothµclearµandµpreset.¡þ
ÌTheµflip³flopµcellµisµactivatedµwheneverµclear,µpreset,µclocked_on,µor¡þclocked_on_alsoµchanges.’
«D“I501ileaf_page_string1:9-11¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³11¡þÉ²Example 9³1´µisµaµffµgroupµforµaµsingle³stageµDµflip³flopµwith¡þrising³edgeµsampling,µnegativeµclearµandµpreset,µandµoutputµpinsµset¡þZtoµ0µwhenµbothµclearµandµpresetµareµactiveµ(low).¡,²&Example 9³1³Single³StageµDµFlip³Flop¡þc²ff(IQ,´µIQN)µ{¡þ ¡… next_stateµ:µ"D"µ;¡þÝ¡…Ýclocked_onµ:µ"CP"µ;¡þ¡…clearµ:µ"CD'"µ;¡þW¡…Wpresetµ:µ"PD'"µ;¡þ”¡…”clear_preset_var1µ:µLµ;¡þÑ¡…Ñclear_preset_var2µ:µLµ;¡þ}¡þ¨²Example 9³2´µisµaµffµgroupµforµaµsingle³stage,µrising³edgeµtriggered¡þñJKµflip³flopµwithµscanµinput,µnegativeµclearµandµpreset,µandµoutput¡þ:pinsµsetµtoµ0µwhenµclearµandµpresetµareµbothµactive.¡,ë²&Example 9³2³Single³StageµJKµFlip³Flop¡þC²ff(IQ,´µIQN)µ{¡þ¡…next_state¡þ³:"(TE*TI)+(TE'*J*K')+(TE'*J'*K'*IQ)+(TE'*J*K*IQ')"µ;¡þð¡…ðclocked_onµ:µ"CP"µ;¡þ-¡…-clearµ:µ"CD'"µ;¡þj¡…jpresetµ:µ"PD'"µ;¡þ§¡…§clear_preset_var1µ:µLµ;¡þä¡…äclear_preset_var2µ:µLµ;¡þ	!}¡þ	¼²Example 9³3´µisµanµffµgroupµforµaµDµflip³flopµwithµsynchronous¡þ
negativeµclear.’«üD“I501ileaf_page_string1:9-12¥	öäÃËÁâÊË¡Ä,§,‘¡Ä,‘	c‘¡Ä	c‘	c§¡Ä	c§,§ÆÃÁÊËÃ¡Äþ‘Ê‘ÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³12¡,É²&Example 9³3³D´µFlip³FlopµwithµSynchronousµNegativeµClear¡þ(²ff(IQ,´µIQN)µ{¡þh¡…hnext_stateµ:µ"Dµ*µCLR"µ;¡þ§¡…§clocked_onµ:µ"CP"µ;¡þæ}¡þá²Describing´µaµMaster³SlaveµFlip³Flop¡þš²The´µsyntaxµforµaµmaster³slaveµflip³flopµisµtheµsameµasµforµa¡þãsingle³stageµdevice,µexceptµthatµitµincludesµtheµclocked_on_also¡þ,attribute.µTable 9³2µshowsµtheµfunctionsµofµtheµattributesµinµtheµff¡þtgroupµforµaµmaster³slaveµflip³flop.¡,D²&Table 9³2³FunctionµTablesµforµMaster³SlaveµFlip³Flop¡,Ä²¥	öä¡Iä²"active´µedgeÁã¡ÃÄ, - -,, Ç¡ÃÄ, “ “¨,¨, Ç²¡”Ä¥	öä¡±ä²"clear¡ÃÄ” š š¨”¨” Ç²¡›Ä¥	öä¡¸ä²"preset¡ÃÄ›    ¨›¨› Ç²¡¡Ä¥	öä¡¾ä²"internal1*¡ÃÄ¡ ß ß¨¡¨¡ Ç²¡àÄ¥	öä¡ýä²"internal2*¡ÃÄà ) )¨à¨à Ç²¡*Ä¥	öä¡Gä²"variable1¡ÃÄ* h h¨*¨* Ç²¡iÄ¥	öä¡†ä²"variable2¡ÃÄ	¨ 	© 	©	¨	¨ Ç¡ÃÄi 	© 	©¨i¨i Ç²¡	¨Ä¡,,¥	öä¡IL²clocked_on¡ÃÄ,--£,£,Ç¡ÃÄ,““	,	,Ç²¡”,¥	öä¡±L²inactive¡ÃÄ”šš	”	”Ç²¡›,¥	öä¡¸L²inactive¡ÃÄ›  	›	›Ç²¡¡,¥	öä¡¾L²next_state¡ÃÄ¡ßß	¡	¡Ç²¡à,¥	öä¡ýL²!next_state¡ÃÄà))	à	àÇ²¡*,¥	öä¡ÃÄ*hh	*	*Ç¡i,¥	öä¡ÃÄ	¨	©	©£	¨£	¨Ç¡ÃÄi	©	©	i	iÇ¡	¨,¡,È¥	öä¡Iè²clocked_on_¡Ialso¡ÃÄ,¤-¤-?,?,¤Ç²¡”È¥	öä¡±è²inactive²¡›È¥	öä¡¸è²inactive²¡¡È¥	öä¡àÈ¥	öä¡*È¥	öä¡Gè²internal1²¡iÈ¥	öä¡†è²internal2¡ÃÄ	¨¤	©¤	©?	¨?	¨¤Ç²¡	¨È¡,d¥	öä¡<k²µµµ-¡ÃÄ,@-@-³,³,@Ç²¡”d¥	öä¡¤k²active²¡›d¥	öä¡«k²active²¡¡d¥	öä¡±k²clear_preset_¡±¡var1²¡àd¥	öä¡ðk²clear_preset_¡ð¡var2²¡*d¥	öä¡:k²clear_preset_¡:¡var1²¡id¥	öä¡yk²clear_preset_¡y¡var2¡ÃÄ	¨@	©@	©³	¨³	¨@Ç²¡	¨d¡,Ø¥	öä¡<ß²µµµ-¡ÃÄ,´-´-ó,ó,´Ç²¡”Ø¥	öä¡¤ß²active²¡›Ø¥	öä¡«ß²inactive²¡¡Ø¥	öä¡±ß²0²¡àØ¥	öä¡ðß²1²¡*Ø¥	öä¡:ß²0²¡iØ¥	öä¡yß²1¡ÃÄ	¨´	©´	©ó	¨ó	¨´Ç²¡	¨Ø¡,	¥	öä¡ÃÄ,ô-ô-	3,	3,ôÇ¡”	¥	öä¡¤	²inactive²¡›	¥	öä¡«	²active²¡¡	¥	öä¡±	²1²¡à	¥	öä¡ð	²0²¡*	¥	öä¡:	²1²¡i	¥	öä¡y	²0¡ÃÄ	¨ô	©ô	©	3	¨	3	¨ôÇ²¡	¨	¡,	j¥	öä¡ÃÄ,	4-	4-	Ž,	Ž,	4Ç¡ÃÄ	¨	4	©	4	©	Ž	¨	Ž	¨	4Ç¡ÃÄ,	‡	©	‡	©	,	,	‡Ç¡	¨	j¡,	ä²*Y¤ÿüou´µdoµnotµneedµtoµspecifyµtheµinternal1µandµinternal2µvariables,µwhichµrepresentµinternalµstagesµinµthe¡,
flip³flop.¡þ
ƒ²The´µinternal1µandµinternal2µvariablesµrepresentµtheµoutputµvaluesµof¡þ
Ìtheµmasterµstage,µandµvariable1µandµvariable2µrepresentµtheµoutput¡þvaluesµofµtheµslaveµstage.’üCD“I501ileaf_page_string1:9-13¥	öäÃËÁâÊË¡Ä,,ø¡Ä,ø	cø¡Ä	cø	c¡Ä	c,ÆÃÁÊËÃ¡Ä,øÊøÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³13¡þÉ²The´µinternal1µandµinternal2µvariablesµhaveµtheµsameµvalueµas¡þvariable1µandµvariable2,µrespectively,µwhenµclearµandµpresetµare¡þZbothµactiveµatµtheµsameµtime.¡þExample 9³4µshowsµanµffµgroupµforµaµmaster³slaveµDµflip³flopµwith¡þbrising³edgeµsampling,µfalling³edgeµdataµtransfer,µnegativeµclearµand¡þªpreset,µandµoutputµvaluesµsetµhighµwhenµclearµandµpresetµareµboth¡þóactive.¡,Æ²&Example 9³4³Master³SlaveµDµFlip³Flop¡þ%²ff(IQ,´µIQN)µ{¡þe¡…enext_stateµ:µ"D"µ;¡þ¥¡…¥clocked_onµ:µ"CLK"µ;¡þä¡…äclocked_on_alsoµ:µ"CLKN'"µ;¡þ$¡…$clearµ:µ"CDN'"µ;¡þd¡…dpresetµ:µ"PDN'"µ;¡þ¤¡…¤clear_preset_var1µ:µHµ;¡þã¡…ãclear_preset_var2µ:µHµ;¡þ#}¡,N²Using´µtheµFunctionµAttribute¡þ	3²Each´µstorageµdeviceµoutputµpinµneedsµaµfunctionµattributeµstatement.¡þ	|Onlyµtheµtwoµstateµvariables,µvariable1µandµvariable2,µcanµbeµused¡þ	Äinµtheµfunctionµattributeµstatementµforµsequentiallyµmodeled¡þ
elements.¡þ
ÌExample 9³5µshowsµaµcompleteµfunctionalµdescriptionµofµaµpositive¡þedge³triggeredµDµflip³flopµwithµactive³lowµclearµandµpreset.’C¬D“I501ileaf_page_string1:9-14¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³14¡,É²&Example 9³5³D´µFlip³FlopµDescription¡þ)²cell´µ(dff)µ{¡þiµµareaµ:µ1µ;¡þ©µµpinµ(CLK)µ{¡þèµµµµdirectionµ:µinputµ;¡þ(µµµµcapacitanceµ:µ0µ;¡þhµµ}¡þ¨µµpinµ(D)µ{¡þèµµµµnextstate_typeµ:µdata;¡þµµµµdirectionµ:µinputµ;¡þ[µµµµcapacitanceµ:µ0µ;¡þ›µµ}¡þÛµµpinµ(CLR)µ{¡þµµµµdirectionµ:µinputµ;¡þ[µµµµcapacitanceµ:µ0µ;¡þšµµ}¡þÚµµpinµ(PRE)µ{¡þµµµµdirectionµ:µinputµ;¡þZµµµµcapacitanceµ:µ0µ;¡þšµµ}¡þÚµµffµ(IQ,µIQN)µ{¡þµµµµnext_stateµ:µ"D"µ;¡þYµµµµclocked_onµ:µ"CLK"µ;¡þ™µµµµclearµ:µ"CLR'"µ;¡þÙµµµµpresetµ:µ"PRE'"µ;¡þµµµµclear_preset_var1µ:µLµ;¡þXµµµµclear_preset_var2µ:µLµ;¡þ˜µµ}¡þØµµpinµ(Q)µ{¡þ	µµµµdirectionµ:µoutputµ;¡þ	Xµµµµfunctionµ:µ"IQ"µ;¡þ	—µµ}¡þ	×µµpinµ(QN)µ{¡þ
µµµµdirectionµ:µoutputµ;¡þ
Wµµµµµfunctionµ:µ"IQN"µ;¡þ
—µµ}¡þ
×}µ/*µendµofµcellµdffµ*/’¬}D“I501ileaf_page_string1:9-15¥	öäÃËÁâÊË¡Ä,«,•¡Ä,•	c•¡Ä	c•	c«¡Ä	c«,«ÆÃÁÊËÃ¡Ä,•Ê•ÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³15¡þÉ²Flip³flops´µthatµhaveµfunctionµattributeµstatementsµcanµbe¡þN²S¡XN²InferredµfromµaµstateµmachineµdescriptionµorµaµVHDLµorµVerilog¡X•description¡þ	²S¡X	²Translatedµtoµflip³flopsµinµaµdifferentµtechnologyµlibraryµ¡þ}²S¡X}²Sizedµduringµtimingµoptimizationµ¡þñ²S¡Xñ²Changedµtoµflip³flopsµofµaµdifferentµtype,µsuchµasµDµtoµJK,µorµD¡X7withµpresetµtoµDµwithµclear¡þ«²S¡X«²ConvertedµtoµscanµcellsµbyµtheµTestµCompilerµcompile_test¡Xòcommand¡,ë²Describing´µaµMultibitµFlip³Flop¡þ«²The´µff_bankµgroupµdescribesµaµcellµthatµisµaµcollectionµofµparallel,¡þôsingle³bitµsequentialµparts.µEachµpartµsharesµcontrolµsignalsµwithµthe¡þ=otherµparts,µandµperformsµanµidenticalµfunction.µTheµff_bankµgroupµis¡þ…typicallyµusedµtoµrepresentµmultibitµregisters.µItµcanµbeµusedµinµcell¡þÎandµtest_cellµgroups.¡þ®²Syntax¡þ	²Theµsyntaxµisµsimilarµtoµthatµofµtheµffµgroup;µreferµtoµtheµDescribingµa¡þ	cFlip³Flop"µsectionµearlierµinµthisµchapter.¡þ	å²library´µ(²(lib_name²)µ{¡þ
"¡…
"cellµ(²(cell_name²)µ{¡þ
_¡…
_¡
_...¡þ
œ¡…
œ¡
œpinµ(²(pin_name²)µ{¡þ
Ù¡…
Ù¡
Ù...¡þ¡…¡}’}1D“I501ileaf_page_string1:9-16¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³16¡þÃ²¡…Ã¡Ãbundle´µ(²(bundle_name²)µ{¡þ¡…¡...¡þ=¡…=¡=}¡þz¡…z¡zff_bankµ(²(µvariable1²,µ²(variable2,µbits²µ)µ{¡þ¶¡…¶¡¶¡“¶clocked_onµ:µ"²(Boolean_expression²"µ;¡þó¡…ó¡ó¡“ónext_stateµ:µ"²(Boolean_expression²"µ;¡þ0¡…0¡0¡“0clearµ:µ"²(Boolean_expression²"µ;¡þm¡…m¡m¡“mpresetµ:µ"²(Boolean_expression²"µ;¡þª¡…ª¡ª¡“ªclear_preset_var1µ:µ²(value²µ;¡þç¡…ç¡ç¡“çclear_preset_var2µ:µ²(value²µ;¡þ$¡…$¡$¡“$clocked_on_alsoµ:µ"²(Boolean_expression²"µ;¡þa¡…a¡a}¡þž¡…ž}¡þÚ}¡þu²An´µinputµthatµisµdescribedµinµaµpinµgroup,µsuchµasµtheµclkµinput,µis¡þ¾fannedµoutµtoµeachµflip³flopµinµtheµbank.µEachµprimaryµoutputµmust¡þbeµdescribedµinµaµbusµorµbundleµgroup,µandµitsµfunctionµstatement¡þOmustµincludeµeitherµvariable1µorµvariable2.µ¡þòThree³stateµoutputµpinsµareµallowed;µaµthree_stateµattributeµcanµbe¡þ;addedµtoµanµoutputµbusµorµbundleµtoµspecifyµthisµfunction.¡þÝTheµbitsµvalueµinµtheµff_bankµdefinitionµisµtheµnumberµofµbitsµinµthis¡þ&multibitµcell.¡þÉFigure 9³1µshowsµaµmultibitµregisterµcontainingµfourµpositive¡þ	edge³triggeredµDµflip³flopsµwithµclearµandµpreset.’1	ÚD“I501ileaf_page_string1:9-17¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³17¡,É²&Figure 9³1³Multibit´µFlip³Flop¡,²¥	öäÃËÁÊË¡Ä@¡Ä@)@¡Ä)@)¡Ä)âãÇÆÃ²â¡{D¡ƒQ¡È\PRE¡·ÕCLK¡·CLRÃ¡Ä‘ÜªÌ¡ÄªÌ‘ÁÆÃÃ¡ÅÐ$Ð<ê$Ð0Ð0ÆÃÃ¡ÅÌÌ&åÌÌÆÃÃ¡Ä™Î¡ÄÎ)Î¡Ä)Î)™¡Ä)™™âÇÆÃâ¡Ÿ	D¡Q¡ÉêPRE¡¸cCLK¡¸’CLRÃ¡Ä“j¬[¡Ä¬[“OÆÃÃ¡ÅÑ³ÑÊê³Ñ¾Ñ¾ÆÃÃ¡ÅÍÍµæÍ©Í©ÆÃÃ¡ÄG|¡Ä|/|¡Ä/|/G¡Ä/GGâÇÆÃâ¡ ·D¡¿Q¡Ë˜PRE¡ºCLK¡º@CLRÃ¡Ä“­¡Ä­“ýÆÃÃ¡ÅÔ`Ôxî`ÔlÔlÆÃÃ¡ÅÐKÐbéKÐVÐVÆÃÃ¡ÄÆû¡Äû)û¡Ä)û)Æ¡Ä)ÆÆâÇÆÃâ¡Ÿ6D¡=Q¡ÉPRE¡¸CLK¡¸¾CLRÃ¡Ä“—¬‡¡Ä¬‡“{ÆÃÃ¡ÅÑßÑ÷êßÑëÑëÆÃÃ¡ÅÍÊÍáæÊÍÕÍÕÆÃÊËÃ¡Är=rÆÃÃ¡Ä‘IÆÃÃ¡Ä‘¯E¯ÆÃÃ¡Ä‘-=-ÆÃÃÊË¡Ä× ×	¡Ä×	A	ÆÃÃ¡ÄV	V´¡ÄV´×´¡Ä×´×ßÆÃÃ¡Ä×\×A¡Ä×AVAÆÃÃ¡Ä×¯×¡Ä×VÆÃÊËÃ¡ÄÌ=ÌÆÃÃÊË¡ÄÓ*ÓI¡ÄÓIAIÆÃÃ¡Ä[3[¡Ä3[3ÌÆÃÃ¡Ä‘3¡Ä33[ÆÃÃ¡Ä33‹¡Ä3‹‘‹ÆÃÃ¡ÄÓ¸Óß¡ÄÓßß¡ÄßIÆÃÃ¡Äß¡ÄÓ¡ÄÓÓfÆÃÃ¡Ä¡ÄÓ¡ÄÓÓáÆÃÊËÃ¡Äqz!zÆÃÃ¡Ä”/ÆÃÃ¡Ä¨²5²ÆÃÃ¡Ä”1/1ÆÃÃÊË¡ÅOObOOÇÆÃÃ¡Å)¿)Ò=¿)È)ÈÇÆÃÃ¡Å?S?IIÇÆÃÃ¡ÅM†M™`†MMÇÆÃÃ¡Å)Q)d=Q)[)[ÇÆÃÃ¡ÅM7MK`7MAMAÇÆÃÃ¡ÅÖéÖßßÇÆÃÃ¡Å)ÿ)=ÿ))ÇÆÃÃ¡Å||……ÇÆÃ²¡ÛPRE¡÷D1¡ÛRCLR¡ØÕCLK¡ÿD2¡÷ÃD3¡ÿED4¡ ŽQ1¡¨Q2¡¼ÃQ3¡¨IQ4ÊËÃ¡Ä”äJäÆÃÃÊË¡Å,Ø,ïEØ,ä,äÆÃÊËÃ¡ÄŽjJjÆÃÃÊË¡Å-_-vF_-j-jÆÃÊËÃ¡ÄŽŸJŸÆÃÃÊË¡Å-“-ªF“-Ÿ-ŸÆÃÊËÃ¡Ä¢ Q ÆÃÃÊË¡Å33,M3 3 ÆÃ²¡ðåQN¡ó{QN¡ó(QN¡ï§QN²¡šçQ1N¡¨qQ2N¡¼'Q3N¡¨¥Q4N²¡Ê¡þÓ²Example 9³6µisµtheµdescriptionµofµtheµmultibitµregisterµshownµin¡þ	Figure 9³1µthatµcontainsµfourµpositiveµedge³triggeredµDµflip³flopsµwith¡þ	dclearµandµpreset.’	Ú¢D“I501ileaf_page_string1:9-18¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³18¡,É²&Example 9³6³Multibit´µDµFlip³FlopµRegister¡þ²cell´µ(dff4)µ{¡þ\µµareaµ:µ1µ;¡þ™µµpinµ(CLK)µ{¡þÕµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ0µ;¡þOµµµµmin_pulse_width_lowµµ:µ3µ;¡þ‹µµµµmin_pulse_width_highµ:µ3µ;¡þÈµµ}¡þµµbundleµ(D)µ{¡þAµµµµmembers(D1,µD2,µD3,µD4);¡þ~µµµµnextstate_typeµ:µdata;¡þ²µµµµdirectionµ:µinputµ;¡þîµµµµcapacitanceµ:µ0µ;¡þ+µµµµtiming()µ{¡þgµµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þ¤µµµµµµtiming_typeµµµµµ:µsetup_risingµ;¡þáµµµµµµintrinsic_riseµµ:µ1.0µ;¡þµµµµµµintrinsic_fallµµ:µ1.0µ;¡þZµµµµ}¡þ—µµµµtiming()µ{¡þÓµµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þµµµµµµtiming_typeµµµµµ:µhold_risingµ;¡þLµµµµµµintrinsic_riseµµ:µ1.0µ;¡þ‰µµµµµµintrinsic_fallµµ:µ1.0µ;¡þÆµµµµ}¡þµµ}¡þ?µµpinµ(CLR)µ{¡þ|µµµµdirectionµ:µinputµ;¡þ¸µµµµcapacitanceµ:µ0µ;¡þõµµµµtiming()µ{¡þ	1µµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þ	nµµµµµµtiming_typeµµµµµ:µrecovery_risingµ;¡þ	«µµµµµµintrinsic_riseµµ:µ1.0µ;¡þ	çµµµµµµintrinsic_fallµµ:µ0.0µ;¡þ
$µµµµ}¡þ
`µµ}¡þ
µµpinµ(PRE)µ{¡þ
Úµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ0µ;’¢ÊD“I501ileaf_page_string1:9-19¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³19¡þÃ²´µµµµtiming()µ{¡þÿµµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þ:µµµµµµtiming_typeµµµµµ:µrecovery_risingµ;¡þvµµµµµµintrinsic_riseµµ:µ1.0µ;¡þ²µµµµµµintrinsic_fallµµ:µ0.0µ;¡þíµµµµ}¡þ)µµ}¡þeµµff_bankµ(IQ,µIQN,µ4)µ{¡þ µµµµnext_stateµ:µ"D"µ;¡þÜµµµµclocked_onµ:µ"CLK"µ;¡þµµµµclearµ:µ"CLR'"µ;¡þSµµµµpresetµ:µ"PRE'"µ;¡þµµµµclear_preset_var1µ:µLµ;¡þËµµµµclear_preset_var2µ:µLµ;¡þµµ}¡þBµµbundleµ(Q)µ{¡þ~µµµµmembers(Q1,µQ2,µQ3,µQ4);¡þºµµµµdirectionµ:µoutputµ;¡þõµµµµfunctionµ:µ"(IQ)"µ;¡þ1µµµµtiming()µ{¡þmµµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þ¨µµµµµµtiming_typeµµµµµ:µrising_edgeµ;¡þäµµµµµµintrinsic_riseµµ:µ2.0µ;¡þ µµµµµµintrinsic_fallµµ:µ2.0µ;¡þ[µµµµ}¡þÓµµµµtiming()µ{¡þµµµµµµrelated_pinµµµµµ:µ"PRE"µ;¡þJµµµµµµtiming_typeµµµµµ:µpresetµ;¡þ†µµµµµµtiming_senseµµµµ:µnegative_unateµ;¡þÁµµµµµµintrinsic_riseµµ:µ1.0µ;¡þýµµµµ}¡þ	9µµµµtiming()µ{¡þ	uµµµµµµrelated_pinµµµµµ:µ"CLR"µ;¡þ	°µµµµµµtiming_typeµµµµµ:µclearµ;¡þ	ìµµµµµµtiming_senseµµµµ:µpositive_unateµ;¡þ
(µµµµµµintrinsic_fallµµ:µ1.0µ;¡þ
cµµµµ}¡þ
Ÿµµ}¡þ
Ûµµbundleµ(QN)µ{¡þµµµµmembers(Q1N,µQ2N,µQ3N,µQ4N);’ÊÍD“I501ileaf_page_string1:9-20¥	öäÃËÁâÊË¡Ä,‚,l¡Ä,l	cl¡Ä	cl	c‚¡Ä	c‚,‚ÆÃÁÊËÃ¡Ä,lÊlÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³20¡þÃ²´µµµµdirectionµ:µoutputµ;¡þµµµµfunctionµ:µ"IQN"µ;¡þ=µµµµtiming()µ{¡þzµµµµµµrelated_pinµµµµµ:µ"CLK"µ;¡þ¶µµµµµµtiming_typeµµµµµ:µrising_edgeµ;¡þóµµµµµµintrinsic_riseµµ:µ2.0µ;¡þ0µµµµµµintrinsic_fallµµ:µ2.0µ;¡þmµµµµ}¡þªµµµµtiming()µ{¡þçµµµµµµrelated_pinµµµµµ:µ"PRE"µ;¡þ$µµµµµµtiming_typeµµµµµ:µclearµ;¡þaµµµµµµtiming_senseµµµµ:µpositive_unateµ;¡þžµµµµµµintrinsic_fallµµ:µ1.0µ;¡þÚµµµµ}¡þµµµtiming()µ{¡þTµµµµµµrelated_pinµµµµµ:µ"CLR"µ;¡þ‘µµµµµµtiming_typeµµµµµ:µpresetµ;¡þÎµµµµµµtiming_senseµµµµ:µnegative_unateµ;¡þµµµµµµintrinsic_riseµµ:µ1.0µ;¡þHµµµµ}¡þ…µµ}¡þÂ}µ/*µendµofµcellµdff4µ*/¡,Â²Describing´µaµLatch¡þ‚²To´µdescribeµaµlevel³sensitiveµstorageµdevice,µincludeµaµlatchµgroup¡þÊorµstatetableµgroupµinµtheµcellµdefinition.µThisµsectionµdescribesµhow¡þ	toµdefineµaµlatchµusingµtheµff/latchµformat.µSeeµDescribing¡þ	\SequentialµCellsµwithµStatetable"µlaterµinµthisµchapterµforµtheµwayµto¡þ	¤defineµcellsµusingµtheµstatetableµgroup.’ÍD“I501ileaf_page_string1:9-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³21¡þÏ²latch´µGroup¡þª²Syntax¡þõ²library´µ(²(lib_name²)µ{¡þ2¡…2cellµ(²(cell_name²)µ{¡þo¡…o¡o...¡þ¬¡…¬¡¬latchµ(²(µvariable1²,µ²(variable2²µ)µ{¡þé¡…é¡é¡“éenableµ:µ"²(Boolean_expression²"µ;¡þ&¡…&¡&¡“&data_inµ:µ"²(Boolean_expression²"µ;¡þb¡…b¡b¡“bclearµ:µ"²(Boolean_expression²"µ;¡þŸ¡…Ÿ¡Ÿ¡“Ÿpresetµ:µ"²(Boolean_expression²"µ;¡þÜ¡…Ü¡Ü¡“Üclear_preset_var1µ:µ²(value²µ;¡þ¡…¡¡“clear_preset_var2µ:µ²(value²µ;¡þV¡…V¡V}¡þ“¡…“}¡þÐ}¡þŠ²variable1¡XÒvariable1´µisµtheµstateµofµtheµnoninvertingµoutputµofµtheµlatch.µItµis¡Xconsideredµtheµone³bitµstorageµofµtheµlatch.¡þ‚variable2¡XÊvariable2µisµtheµstateµofµtheµinvertingµoutput.¡þONameµvariable1µandµvariable2µanythingµexceptµtheµnameµofµaµpinµin¡þ—theµcellµbeingµdescribed.µBothµvariablesµareµrequired,µevenµifµoneµof¡þàthemµisµnotµconnectedµtoµaµprimaryµoutputµpin.¡þ	ƒIfµyouµincludeµbothµclearµandµpreset,µyouµmustµuseµeither¡þ	Ëclear_preset_var1µorµclear_preset_var2,µorµboth.µConversely,µifµyou¡þ
includeµclear_preset_var1µorµclear_preset_var2,µorµboth,µyouµmust¡þ
]useµbothµclearµandµpreset.’D“I501ileaf_page_string1:9-22¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³22¡þÏ²clear´µAttribute¡þs²The´µclearµattributeµgivesµtheµactiveµvalueµforµtheµclearµinput.¡þZ²Example¡þÉ²Thisµexampleµdefinesµaµlow³activeµclearµsignal.¡þN²clear´µ:µ"CD'"µ;¡þ0²preset´µAttribute¡þÕ²The´µpresetµattributeµgivesµtheµactiveµvalueµforµtheµpresetµinput.¡þ¼²Example¡þ²preset´µ:µ"R'"µ;¡þê²enable´µandµdata_inµAttributes¡þŽ²The´µenableµandµdata_inµattributesµareµoptional,µbutµifµyouµuseµoneµof¡þ×them,µyouµmustµincludeµtheµother.µTheµenableµattributeµgivesµthe¡þ	 stateµofµtheµenableµinput,µandµdata_inµgivesµtheµstateµofµtheµdata¡þ	hinput.¡þ
P²Example¡þ
œ²enable´µ:µ"G"µ;¡þ
Ùdata_inµ:µ"D";’ŽD“I501ileaf_page_string1:9-23¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³23¡þÏ²clear_preset_var1´µAttribute¡þn²The´µclear_preset_var1µattributeµgivesµtheµvalueµthatµvariable1µhas¡þ¶whenµclearµandµpresetµareµbothµactiveµatµtheµsameµtime.µValid¡þÿvaluesµare:¡X„Lµ³
µ0¡XHµ³
µ1¡X‰Nµ³
µnoµchangeµ*¡XTµ³
µtoggleµtheµcurrentµvalueµfromµ1µtoµ0,µ0µtoµ1,µorµXµtoµXµ*¡XŽXµ³
µunknownµ*¡X*µDesignµCompilerµdoesµnotµrecognizeµtheseµvaluesµandµissuesµa¡XWwarningµthatµtheµcellµisµaµblackµbox.µTheseµvaluesµareµusedµto¡XžgenerateµVHDLµmodels.¡þz²Example¡þÆ²clear_preset_var1´µ:µL;’Ž	D“I501ileaf_page_string1:9-24¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³24¡þÏ²clear_preset_var2´µAttribute¡þk²The´µclear_present_var2µattributeµgivesµtheµvalueµthatµvariable2µhas¡þ³whenµclearµandµpresetµareµbothµactiveµatµtheµsameµtime.µValid¡þüvaluesµare:¡XLµ³
µ0¡XÿHµ³
µ1¡X€Nµ³
µnoµchangeµ*¡XTµ³
µtoggleµtheµcurrentµvalueµfromµ1µtoµ0,µ0µtoµ1,µorµXµtoµXµ*¡XXµ³
µunknownµ*¡X*µDesignµCompilerµdoesµnotµrecognizeµthisµvalueµandµissuesµa¡XHwarningµthatµtheµcellµisµaµblackµbox.µThisµvalueµisµusedµforµVHDL¡XŽmodels.¡þf²Example¡þ°²clear_preset_var2´µ:µLµ;¡þJ²Table 9³3´µshowsµtheµfunctionsµofµtheµattributesµinµtheµlatchµgroup.¡,ø²&Table 9³3³FunctionµTableµforµLatch¡,	f²¥	öä¡I	~²"enableÁã¡ÃÄ,	B-	B-	¡,	¡,	BÇ¡ÃÄ,	BW	BW	J,	J,	BÇ²¡X	f¥	öä¡u	~²"clear¡ÃÄX	B¢	B¢	JX	JX	BÇ²¡£	f¥	öä¡À	~²"preset¡ÃÄ£	BÎ	BÎ	J£	J£	BÇ²¡Ï	f¥	öä¡ì	~²"variable1¡ÃÄÏ	B­	B­	JÏ	JÏ	BÇ²¡®	f¥	öä¡Ë	~²"variable2¡ÃÄÆ	BÇ	BÇ	¡Æ	¡Æ	BÇ¡ÃÄ®	BÇ	BÇ	J®	J®	BÇ²¡Æ	f¡,	Æ¥	öä¡I	Þ²active¡ÃÄ,	¢-	¢-
,
,	¢Ç¡ÃÄ,	¢W	¢W	£,	£,	¢Ç²¡X	Æ¥	öä¡u	Þ²inactive¡ÃÄX	¢¢	¢¢	£X	£X	¢Ç²¡£	Æ¥	öä¡À	Þ²inactive¡ÃÄ£	¢Î	¢Î	££	££	¢Ç²¡Ï	Æ¥	öä¡ì	Þ²data_in¡ÃÄÏ	¢­	¢­	£Ï	£Ï	¢Ç²¡®	Æ¥	öä¡Ë	Þ²!data_in¡ÃÄÆ	¢Ç	¢Ç
Æ
Æ	¢Ç¡ÃÄ®	¢Ç	¢Ç	£®	£®	¢Ç²¡Æ	Æ¡,
&¥	öä¡I
>²--¡ÃÄ,
-
-
a,
a,
Ç²¡X
&¥	öä¡u
>²active²¡£
&¥	öä¡À
>²inactive²¡Ï
&¥	öä¡ì
>²0²¡®
&¥	öä¡Ë
>²1¡ÃÄÆ
Ç
Ç
aÆ
aÆ
Ç²¡Æ
&¡,
†¥	öä¡I
ž²--¡ÃÄ,
b-
b-
Á,
Á,
bÇ²¡X
†¥	öä¡u
ž²inactive²¡£
†¥	öä¡À
ž²active²¡Ï
†¥	öä¡ì
ž²1²¡®
†¥	öä¡Ë
ž²0¡ÃÄÆ
bÇ
bÇ
ÁÆ
ÁÆ
bÇ²¡Æ
†¡,
æ¥	öä¡I
þ²--¡ÃÄ,
Â-
Â-!,!,
ÂÇ¡ÃÄ,WW",",Ç²¡X
æ¥	öä¡u
þ²active¡ÃÄX¢¢"X"XÇ²¡£
æ¥	öä¡À
þ²active¡ÃÄ£ÎÎ"£"£Ç²¡Ï
æ¥	öä¡ì
þ²clear_preset_var1¡ÃÄÏ­­"Ï"ÏÇ²¡®
æ¥	öä¡Ë
þ²clear_preset_var2¡ÃÄÆ
ÂÇ
ÂÇ!Æ!Æ
ÂÇ¡ÃÄ®ÇÇ"®"®Ç²¡Æ
æ’	€D“I501ileaf_page_string1:9-25¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³25¡þÉ²The´µlatchµcellµisµactivatedµwheneverµclear,µpreset,µenable,µorµdata_in¡þchanges.¡þ´AppendixµA,µSampleµCMOSµTechnologyµLibrary"µshowsµaµfully¡þýdescribedµDµLatch.¡þ Example 9³7µshowsµaµlatchµgroupµforµaµDµlatchµwithµanµactive³high¡þèenableµandµnegativeµclear.¡,š²&Example 9³7³DµLatchµwithµActive³HighµEnableµandµNegativeµClear¡þñ²latch(IQ,´µIQN)µ{¡þ.¡….enableµ:µ"G"µ;¡þk¡…kdata_inµ:µ"D"µ;¡þ¨¡…¨clearµ:µ"CD'"µ;¡þå}¡þ€²Example 9³8´µshowsµaµlatchµgroupµforµanµSRµlatch.µTheµenableµand¡þÈdata_inµattributesµareµnotµrequiredµforµanµSRµlatch.¡,z²&Example 9³8³SRµLatch¡þÑ²latch(IQ,´µIQN)µ{¡þ¡…clearµ:µ"S'"µ;¡þK¡…Kpresetµ:µ"R'"µ;¡þˆ¡…ˆclear_preset_var1µ:µLµ;¡þÅ¡…Åclear_preset_var2µ:µLµ;¡þ	}’€mD“I501ileaf_page_string1:9-26¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³26¡,Õ²Describing´µaµMultibitµLatch¡þ•²The´µlatch_bankµgroupµdescribesµaµcellµthatµisµaµcollectionµofµparallel,¡þÞsingle³bitµsequentialµparts.µEachµpartµsharesµcontrolµsignalsµwithµthe¡þ'otherµpartsµandµperformsµanµidenticalµfunction.µTheµlatch_bank¡þogroupµisµtypicallyµusedµtoµrepresentµmultibitµregisters.µItµisµusedµin¡þ¸cellµandµtest_cellµgroups.¡þ˜²Syntax¡þ²Theµsyntaxµisµsimilarµtoµthatµofµtheµlatchµgroup.µReferµtoµthe¡þMDescribingµaµLatch"µsectionµearlierµinµthisµchapter.¡þÏ²library´µ(²(lib_name²)µ{¡þ¡…cellµ(²(cell_name²)µ{¡þI¡…I¡I...¡þ†¡…†¡†pinµ(²(pin_name²)µ{µ...¡þÃ¡…Ã¡Ã}¡þ¡…¡bundleµ(²(bus_name²)µ{µ...¡þ=¡…=¡=}¡þz¡…z¡zlatch_bankµ(²(µvariable1²,µ²(variable2,µbits²µ)µ{¡þ·¡…·¡·¡“·enableµ:µ"²(Boolean_expression²"µ;¡þô¡…ô¡ô¡“ôdata_inµ:µ"²(Boolean_expression²"µ;¡þ1¡…1¡1¡“1clearµ:µ"²(Boolean_expression²"µ;¡þn¡…n¡n¡“npresetµ:µ"²(Boolean_expression²"µ;¡þ«¡…«¡«¡“«clear_preset_var1µ:µ²(value²µ;¡þè¡…è¡è¡“èclear_preset_var2µ:µ²(value²µ;¡þ	%¡…	%¡	%}¡þ	b¡…	b}¡þ	Ÿ}¡þ
:²An´µinputµthatµisµdescribedµinµaµpinµgroup,µsuchµasµtheµclkµinput,µis¡þ
ƒfannedµoutµtoµeachµlatchµinµtheµbank.µEachµprimaryµoutputµmustµbe¡þ
Ìdescribedµinµaµbusµorµbundleµgroup,µandµitsµfunctionµstatementµmust¡þincludeµeitherµvariable1µorµvariable2.’mñD“I501ileaf_page_string1:9-27¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³27¡þÉ²Three³state´µoutputµpinsµareµallowed;µaµthree_stateµattributeµcanµbe¡þaddedµtoµanµoutputµbusµorµbundleµtoµdefineµthisµfunction.¡þ¿Theµbitsµvalueµinµtheµlatch_bankµdefinitionµisµtheµnumberµofµbitsµin¡þtheµmultibitµcell.¡þ´Example 9³9µshowsµaµlatch_bankµgroupµforµaµmultibitµregister¡þýcontainingµfourµpositiveµedge³triggeredµDµlatches.¡,º²&Example 9³9³MultibitµDµLatch¡þ²cell´µ(latch4)µ{¡þS¡…Sarea:µ16;¡þ¡…pinµ(G)µ{µ/*µgateµenableµsignal,µactive³highµ*/¡þÎ¡…Î¡Îdirectionµ:µinput;¡þ¡…¡...¡þJ¡…J}¡þˆ¡…ˆbundleµ(D)µ{µ/*µdataµinputµwithµfourµmemberµpinsµ*/¡þÆ¡…Æ¡Æmembers(D1,µD2,µD3,µD4);/*mustµbeµfirstµbundle¡þúattribute*/¡þ8µ¡…8¡8directionµ:µinput;¡þv¡…v¡v...¡þ´¡…´}¡þò¡…òbundleµ(Q)µ{¡þ/¡…/¡/members(Q1,µQ2,µQ3,µQ4);¡þm¡…m¡mdirectionµ:µoutput;¡þ«¡…«¡«functionµ:µIQ"µ;¡þé¡…é¡é...¡þ	'¡…	'}¡þ	e¡…	ebundleµ(QN)µ{¡þ	£¡…	£¡	£membersµ(Q1N,µQ2N,µQ3N,µQ4N);¡þ	á¡…	á¡	ádirectionµ:µoutput;¡þ
¡…
¡
functionµ:µIQN";¡þ
]¡…
]¡
]...¡þ
›¡…
›}¡þ
Ø¡…
Ølatch_bank(IQ,µIQN,µ4)µ{¡þ¡…¡enableµ:µG"µ;’ñ	%D“I501ileaf_page_string1:9-28¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³28¡þÃ²´µ¡…Ã¡Ãdata_inµ:µD"µ;¡þ¡…}¡þ?¡…?...¡þ}}¡þ²Figure 9³2´µshowsµaµmultibitµregisterµcontainingµfourµhigh³enableµD¡þelatchesµwithµclear.¡,#²&Figure 9³2³MultibitµLatch¡,²¥	öäÃËÁÊË¡Äî‘îµ¡ÄîµŠµ¡ÄŠµŠ‘¡ÄŠ‘î‘âãÇÆÃ²â¡þõD¡lýQ¡)ÓPRE¡VEN¡ˆCLRÃ¡Äò^M¡ÄMòAÆÃÃ¡Å1˜1±J˜1¥1¥ÆÃÃ¡Å-•-®F•-¢-¢ÆÃÃ¡Äð?ðd¡ÄðdŒd¡ÄŒdŒ?¡ÄŒ?ð?âÇÆÃâ¡£D¡o«Q¡+PRE¡EN¡7CLRÃ¡Äôü¡ÄüôïÆÃÃ¡Å4F4_MF4S4SÆÃÃ¡Å/C/]IC/P/PÆÃÃ¡Äð	ð4¡Äð4Œ4¡ÄŒ4Œ	¡ÄŒ	ð	âÇÆÃâ¡sD¡o{Q¡+QPRE¡ÔEN¡	CLRÃ¡ÄôÜÌ¡ÄÌô¿ÆÃÃ¡Å440M4#4#ÆÃÃ¡Å/	/	-I	/	 /	 ÆÃÃ¡Äð
­ð	Ñ¡Äð	ÑŒ	Ñ¡ÄŒ	ÑŒ
­¡ÄŒ
­ð
­âÇÆÃâ¡
D¡o
Q¡+	ïPRE¡
qEN¡
¤CLRÃ¡Äô
z
i¡Ä
iô
\ÆÃÃ¡Å4	´4	ÍM	´4	À4	ÀÆÃÃ¡Å/
±/
ÊI
±/
½/
½ÆÃÊËÃ¡ÄîìƒìÆÃÃ¡Äò››ÆÃÃ¡ÄòkŒkÆÃÃ¡Äò
ƒ
ÆÃÃÊË¡Ä>”>z¡Ä>z‡zÆÃÃ¡Ä>>ô¡Ä>ôƒôÆÃÃ¡Ä>B> ¡Ä> { ÆÃÊËÃ¡ÄîMƒMÆÃÃÊË¡Ä:³:Ô¡Ä:Ô‡ÔÆÃÃ¡Äîüü¡ÄüMÆÃÃ¡ÄòÌÌ¡ÄÌüÆÃÃ¡ÄÌ
m¡Ä
mò
mÆÃÃ¡Ä:a:‹¡Ä:‹g‹¡Äg‹{‹ÆÃÃ¡Ä{
ýg
ý¡Äg
ý:
ý¡Ä:
ý:
ÊÆÃÊËÃ¡ÄùõŽõÆÃÃ¡ÄýŸ“ŸÆÃÃ¡Äýo“oÆÃÃ¡Äý
“
ÆÃÃÊË¡Å‚Á‚Ö˜Á‚Ì‚ÌÇÆÃ²¡7ùDA¡øÝCLRA¡VEN¡@§DB¡7€DC¡@
!DD¡¸QB¡€QC¡#
%QDÃ¡Ä>	¯>	Ž¡Ä>	Ž{	ŽÆÃÃ¡Å‚õ‚
˜õ‚‚ÇÆÃÃ¡Å‚C‚X˜C‚M‚MÇÆÃÃ¡Ä:	1:	[¡Ä:	[{	[ÆÃ¡ô*PREB¡ñÿPREC¡í	˜PRED¡þ…PREA¡÷‘CLRB¡ò	]CLRC¡îCLRDÊËÃ¡Äõ^¬^ÆÃ²¡SfQN¡XQN¡SéQN¡X
~QN²¡
…QND¡!çQNC¡QNB¡qQNA¡QAÃÊË¡ÅŽQŽk¨QŽ^Ž^ÆÃÊËÃ¡ÄóªÆÃÃÊË¡ÅŒŒ¦ŒŒÆÃÊËÃ¡Ä÷Ø®ØÆÃÃÊË¡ÅÌåªÌØØÆÃÊËÃ¡Ä÷
v®
vÆÃÃÊË¡Å
i
‚ª
i
v
vÆÃ²¡Ê’	%tD“I501ileaf_page_string1:9-29¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³29¡þÉ²Example 9³10´µisµtheµcellµdescriptionµofµtheµmultibitµregisterµshownµin¡þFigure 9³2µthatµcontainsµfourµhigh³enableµDµlatchesµwithµclear.¡,½²&Example 9³10³MultibitµLatchesµwithµClear¡þ²cell´µ(DLT2)µ{¡þ‹/*µnote:µ0µholdµtimeµ*/¡þµµareaµ:µ1µ;¡þ@µµpinµ(EN)µ{¡þ}µµµµdirectionµ:µinputµ;¡þ¹µµµµcapacitanceµ:µ0µ;¡þõµµµµmin_pulse_width_lowµµ:µ3µ;¡þ2µµµµmin_pulse_width_highµ:µ3µ;¡þnµµ}¡þçµµbundleµ(D)µ{¡þ#µµµµmembers(DA,µDB,µDC,µDD);¡þ_µµµµdirectionµ:µinputµ;¡þœµµµµcapacitanceµ:µ0µ;¡þØµµµµtiming()µ{¡þµµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þQµµµµµµtiming_typeµµµµµ:µsetup_fallingµ;¡þµµµµµµintrinsic_riseµµ:µ1.0µ;¡þÊµµµµµµintrinsic_fallµµ:µ1.0µ;¡þµµµµ}¡þBµµµµtiming()µ{¡þµµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þ»µµµµµµtiming_typeµµµµµ:µhold_fallingµ;¡þ÷µµµµµµintrinsic_riseµµ:µ0.0µ;¡þ	4µµµµµµintrinsic_fallµµ:µ0.0µ;¡þ	pµµµµ}¡þ	¬µµ}¡þ
%µµbundleµ(CLR)µ{¡þ
aµµµµmembers(CLRA,µCLRB,µCLRC,µCLRD);¡þ
žµµµµdirectionµ:µinputµ;¡þ
Úµµµµcapacitanceµ:µ0µ;¡þµµµµtiming()µ{’tŽD“I501ileaf_page_string1:9-30¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³30¡þÃ²´µµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þÿµµµµµµtiming_typeµµµµµ:µrecovery_fallingµ;¡þ:µµµµµµintrinsic_riseµµ:µ1.0µ;¡þvµµµµµµintrinsic_fallµµ:µ0.0µ;¡þ²µµµµ}¡þíµµ}¡þeµµbundleµ(PRE)µ{¡þ µµµµmembers(PREA,µPREB,µPREC,µPRED);¡þÜµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ0µ;¡þSµµµµtiming()µ{¡þµµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þËµµµµµµtiming_typeµµµµµ:µrecovery_fallingµ;¡þµµµµµµintrinsic_riseµµ:µ1.0µ;¡þBµµµµµµintrinsic_fallµµ:µ0.0µ;¡þ~µµµµ}¡þºµµ}¡þ1µµlatch_bank(IQ,µIQN,µ4)µ{¡þmµµµµdata_inµ:µ"D"µ;¡þ¨µµµµenableµµ:µ"EN"µ;¡þäµµµµclearµµµ:µ"CLRµ'µ"µ;¡þ µµµµpresetµµ:µ"PREµ'µ"µ;¡þ[µµµµclear_preset_var1µµ:µHµ;¡þ—µµµµclear_preset_var2µ:µHµ;¡þÓµµ}¡þJµµbundleµ(Q)µ{¡þ†µµµµmembers(QA,µQB,µQC,µQD);¡þÁµµµµdirectionµ:µoutputµ;¡þýµµµµfunctionµ:µ"IQ"µ;¡þ	9µµµµtiming()µ{¡þ	uµµµµµµrelated_pinµµµµµ:µ"D"µ;¡þ	°µµµµµµintrinsic_riseµµ:µ2.0µ;¡þ	ìµµµµµµintrinsic_fallµµ:µ2.0µ;¡þ
(µµµµ}¡þ
cµµµµtiming()µ{¡þ
Ÿµµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þ
Ûµµµµµµtiming_typeµµµµµ:µrising_edgeµ;¡þµµµµµµintrinsic_riseµµ:µ2.0µ;’ŽõD“I501ileaf_page_string1:9-31¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³31¡þÃ²´µµµµµµintrinsic_fallµµ:µ2.0µ;¡þÿµµµµ}¡þ:µµµµtiming()µ{¡þvµµµµµµrelated_pinµµµµµ:µ"CLR"µ;¡þ²µµµµµµtiming_typeµµµµµ:µclearµ;¡þíµµµµµµtiming_senseµµµµ:µpositive_unateµ;¡þ)µµµµµµintrinsic_fallµµ:µ1.0µ;¡þeµµµµ}¡þ µµµµtiming()µ{¡þÜµµµµµµrelated_pinµµµµµ:µ"PRE"µ;¡þµµµµµµtiming_typeµµµµµ:µpresetµ;¡þSµµµµµµtiming_senseµµµµ:µnegative_unateµ;¡þµµµµµµintrinsic_riseµµ:µ1.0µ;¡þËµµµµ}¡þµµ}¡þ~µµbundleµ(QN)µ{¡þºµµµµmembers(QNA,µQNB,µQNC,µQND);¡þõµµµµdirectionµ:µoutputµ;¡þ1µµµµfunctionµ:µ"IQN"µ;¡þmµµµµtiming()µ{¡þ¨µµµµµµrelated_pinµµµµµ:µ"D"µ;¡þäµµµµµµintrinsic_riseµµ:µ2.0µ;¡þ µµµµµµintrinsic_fallµµ:µ2.0µ;¡þ[µµµµ}¡þ—µµµµtiming()µ{¡þÓµµµµµµrelated_pinµµµµµ:µ"EN"µ;¡þµµµµµµtiming_typeµµµµµ:µrising_edgeµ;¡þJµµµµµµintrinsic_riseµµ:µ2.0µ;¡þ†µµµµµµintrinsic_fallµµ:µ2.0µ;¡þÁµµµµ}¡þýµµµµtiming()µ{¡þ	9µµµµµµrelated_pinµµµµµ:µ"CLR"µ;¡þ	uµµµµµµtiming_typeµµµµµ:µpresetµ;¡þ	°µµµµµµtiming_senseµµµµ:µnegative_unateµ;¡þ	ìµµµµµµintrinsic_riseµµ:µ1.0µ;¡þ
(µµµµ}¡þ
cµµµµtiming()µ{¡þ
Ÿµµµµµµrelated_pinµµµµµ:µ"PRE"µ;¡þ
Ûµµµµµµtiming_typeµµµµµ:µclearµ;¡þµµµµµµtiming_senseµµµµ:µpositive_unateµ;’õ	×D“I501ileaf_page_string1:9-32¥	öäÃËÁâÊË¡Ä,:,$¡Ä,$	c$¡Ä	c$	c:¡Ä	c:,:ÆÃÁÊËÃ¡Ä,$Ê$ÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³32¡þÃ²´µµµµµµintrinsic_fallµµ:µ1.0µ;¡þµµµµ}¡þ=µµ}¡þz}µ/*µendµofµcellµDLT2¡,z²Describing´µSequentialµCellsµwithµStatetable¡þ:²Statetable´µformatµprovidesµanµintuitiveµwayµtoµdescribeµtheµfunction¡þ‚ofµcomplexµsequentialµcells.µUsingµthisµformat,µtheµlibraryµdeveloper¡þËcanµtranslateµaµstateµtableµinµaµdatabookµtoµaµLibraryµCompilerµcell¡þdescription.¡þ¶Figure 9³3µshowsµhowµyouµcanµmodelµeachµsequentialµoutputµport¡þÿ(OUTµandµOUTN)µinµaµsequentialµlibraryµcell.¡,°²&Figure 9³3³GenericµSequentialµLibraryµCellµModel¡,
‰²¥	öäÃÁÊË¡Ä,
†,å¡Ä,å&å¡Ä&å&
†¡Ä&
†,
†ÆÃÃÁÊË¡ÄÔ
tÔ	H¡ÄÔ	H&	H¡Ä&	H&
t¡Ä&
tÔ
tâãÇÆÃ²â¡‹	¿OUTNÊËÃ¡Ä&	Þ¼	ÞÆÃÃÊË¡ÄŒ	Ð¼	ß¡Ä¼	ßŒ	ì¡ÄŒ	ìŒ	Þ¡ÄŒ	ÞŒ	ÐÇÆÃ¡ô	êOutput LogicÃ¡ÄÄ
¡Ä
Í
ÆÃÃ¡Ä
Í
¡ÄÍ

$¡Ä
$
¡Ä

ÇÆÃÃ¡Ä('(û¡Ä(ûyû¡Äyûy'¡Äy'('âÇÆÃÃâ¡ÄÎtÎH¡ÄÎH H¡Ä H t¡Ä tÎtâÇÆÃâ¡§ÅOUT¡=yINÊËÃ¡ÄYŽ(‘ÆÃÃÊË¡Äøƒ(’¡Ä(’÷Ÿ¡Ä÷Ÿø‘¡Äø‘øƒÇÆÃÊËÃ¡Äy‘Ë‘ÆÃÃÊË¡Ä›ƒË’¡ÄË’›Ÿ¡Ä›Ÿ›‘¡Ä›‘›ƒÇÆÃÊËÃ¡Ä Þ¶ÞÆÃÃÊË¡Ä†Ð¶Þ¡Ä¶Þ†ë¡Ä†ë†Þ¡Ä†Þ†ÐÇÆÃÃ¡Ä‘s¡Äs’s¡Ä’s’¡Ä’'ÆÃÃ¡Äøô(¡Ä(ø¡Äøø¡ÄøøôÇÆÃÃ¡Äú‘ú	 ¡Äú	 y	 ¡Äy	 y'¡Äy'Ë'ÆÃÃ¡Ä›Ë'¡ÄË'›4¡Ä›4›'¡Ä›'›ÇÆÃÊËÃ¡ÄÎyƒžÆÃÃ¡Äæ|›¢ÆÃ¡p™Statetable¡ðéOutput Logic¡ŠXInternal NodesÃÊË¡Åsï::ÆÃ¡DIdelay*Ã¡Ål”l	F”lÌlÌÆÃ¡¦Ùdelay*Ã¡ÄsÆ¡ÄÆCÆÆÃÃ¡ÄlÍHÍ¡ÄHÍHÉ¡ÄHÉ&ÉÆÃÃ¡Ä÷»&Ê¡Ä&Êö×¡Äö×÷É¡Ä÷É÷»ÇÆÃÃ¡Äø‘ø7¡Äø77ÆÃÊËÃ¡Äë7&7ÆÃÃÊË¡Ä÷)&8¡Ä&8öE¡ÄöE÷7¡Ä÷7÷)ÇÆÃÃ¡Äy	#y	®¡Äy	®Ï	®ÆÃÃ¡Ä 	 Ï	®¡ÄÏ	®Ÿ	»¡ÄŸ	» 	®¡Ä 	® 	 ÇÆÃ²¡Ê
‰’	×ôD“I501ileaf_page_string1:9-33¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³33¡þÉ²OUT/´µOUTN¡XSequentialµoutputµportsµofµtheµsequentialµcell.¡þ‹IN¡XÔTheµsetµofµallµprimaryµinputµportsµinµtheµsequentialµcell¡XfunctionallyµrelatedµtoµOUTµandµOUTN.¡þ–delay*¡XßAµsmallµtimeµdelay.µAnµasteriskµsuffixµindicatesµaµtimeµdelay.¡þYStatetable¡X¡Aµsequentialµlookupµtable.µTheµstatetableµtakesµaµnumberµof¡Xêinputsµandµtheirµdelayedµvaluesµandµaµnumberµofµinternalµnodes¡X3andµtheirµdelayedµvaluesµtoµformµanµindexµtoµnewµinternalµnode¡X{values.µAµsequentialµlibraryµcellµcanµhaveµonlyµoneµstatetable.¡þõInternalµNodes¡X>Asµstorageµelements,µinternalµnodesµstoreµtheµoutputµvaluesµof¡X†theµstatetable.µThereµcanµbeµanyµnumberµofµinternalµnodes.¡þOutputµLogic¡XIAµcombinationalµlookupµtable.µForµtheµsequentialµcellsµsupported¡X‘inµff/latchµformat,µthereµareµatµmostµtwoµinternalµnodesµandµthe¡XÚoutputµlogicµmustµbeµaµbuffer,µanµinverter,µaµthree³stateµbuffer,µor¡X#aµthree³stateµinverter.¡þÍToµcaptureµtheµfunctionµofµcomplexµsequentialµcells,µuseµthe¡þ	statetableµgroupµinµtheµcellµgroup.µTheµpurposeµofµthisµgroupµisµto¡þ	_defineµtheµstatetableµinµFigure 9³3.µTheµstatetableµgroupµsyntax¡þ	§mapsµtoµtheµtruthµtablesµinµdatabooks.µ¡þ
ƒFigure 9³4µisµanµexampleµofµaµtableµthatµmapsµaµtruthµtableµfromµan¡þ
ÌASICµvendor'sµdatabookµtoµtheµstatetableµsyntax.µSeeµtheµfollowing¡þstatetableµGroup"µsectionµforµtableµinputµtokenµvalues.’ôÂD“I501ileaf_page_string1:9-34¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³34¡,É²&Figure 9³4³Mapping´µDatabookµTruthµTableµtoµStatetable¡,Ž²¥	öä¡`d²Databook´µµµµµµµµµMeaningµµµµµµµµµµµµµµµµµµµStatetableµInputµµµµµµµµµµµµµµµStatetableµOutput¡œÈ²fµµµµµµµµµµµµµµµµµµµµµµFallµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµFµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµN/A¡ÔÈ¡œ6ncµµµµµµµµµµµµµµµµµµµNoµeventµµµµµµµµµµµµµµµµµµµµµµµµµµµN/AµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµN¡œ¤r¡ç¤µµµµµµµµµµµµµµµµRiseµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµRµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµN/A¡œ%tg¡ç%µµµµµµµµµµµµµµµT¤ÿûoggleµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµN/Aµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ(1)¡œ¥u¡ç¥µµµµµµµµµµµµµµµUndefinedµµµµµµµµµµµµµµµµµµµµµµµµµµN/AµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµX¡œx¡çµµµµµµµµµµµµµµµDon'tµCareµµµµµµµµµµµµµµµµµµµµµµµµ-µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµX¡œ‚-¡ç‚µµµµµµµµµµµµµµµNotµusedµµµµµµµµµµµµµµµµµµµµµµµµµµµ-µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµXÃËÁÊË¡Ä”’”¡Ä”,¡Ä,,’¡Ä,’”’ÆÃÊËÃ¡ÄDD~ÆÃÃ¡Äèè~ÆÃÃ¡ÄÈÈ~ÆÃÃ¡Ä,†”†ÆÃÃ¡Ä,b”bÆÃÃ¡Ä,ê”êÆÃÃ¡Ä,Æ”ÆÆÃÃ¡Ä,>”>ÆÃÃ¡Ä,¾”¾ÆÃÃ¡Ä,.”.ÆÃÁâÊËÃ¡ÄjO“ÆÃÃÊË¡ÄU¹>¡¡Ä>¡j¡ÄjU¹âãÇÆÃÁÊËÃ¡ÄjjÆÃÃÁÊË¡ÄjU¹¡ÄU¹>¡ÇÆÃÃÊË¡ÌÿÿÿÿÿþM·ZÿÿÿÿÿÿA;xêÂ*ØB=XO§Á‹ÈÃ¦¬ÈÃÆÃÃ¡Ìÿÿÿÿÿþ­³ÿÿÿÿÿþLÿÿÿÿû†íÌ½n1ÚÄéõfÇ3—BÇ3ÆÃÁâÊËÃ¡Äª::ÆÃÃÊË¡Ä×*×J¡Ä×Jª:¡Äª:×*âÇÆÃÁÊËÃ¡Äª:ª:ÆÃÁÃ¡Äª::ÆÃÃÊË¡Ä×*ª:¡Äª:×J¡Ä×J×*ÇÆÃÁÊËÃ¡Äª:ª:ÆÃÁÃ¡Ä:ê:ÆÃÁâÊËÃ¡ÄeLy`ÆÃÃÁâÊË¡Ä¤ºŽ¡ÄŽ¼¢¡Ä¼¢¤ºÇÆÃÃÊË¡Ìÿÿÿÿÿÿ5TBÿÿÿÿÿÿ5ÿÿÿÿÿa_×\˜8B²§0.*çš	V*çÆÃÃ¡Ä°Ø.ÆÃÃÊË¡ÄÜ.°¡Ä°ÄF¡ÄÄFÜ.ÇÆÃÁÊËÃ¡Ä°°ÆÃÃÁ¡Ìÿÿÿÿÿÿ³ÿÿÿÿÿÿ³zÿÿÿÿÿÊ'%AÁýjiÚ:šî	qîÆÃ¡<ZFalling edge ¡#ëRising edge¡û(from low to high)¡‚(from high to low)¡ˆDon't care¡ô2Unknown¡ÖNo event¡þfrom¡&current¡Nvalue¡¨Toggle¡¨.flag tg (1)¡¨VSee #3.ÁâÊËÃ¡Ä‡¯ÆÃÃÊË¡Ä´´,¡Ä´,‡¡Ä‡´âÇÆÃÁÊËÃ¡Ä‡‡ÆÃÁÃ¡Ä‡¯ÆÃÃÊË¡Ä´‡¡Ä‡´,¡Ä´,´ÇÆÃÁÊËÃ¡Ä‡‡ÆÃÃÁ¡Ìÿÿÿÿÿÿ[úÿÿÿÿÿÿÿÝÿÿÿÿÿÿ€pY¤NíS#»¯X*Ç»S—Ç»ÆÃÃ¡ÄÄÖìêÆÃÃÊË¡ÄðêÄÖ¡ÄÄÖØ¡ÄØðêÇÆÃÁÊËÃ¡ÄÄÖÄÖÆÃ²¡ÊŽ¡þk²To´µmapµaµdatabookµtruthµtableµtoµaµstatetable:¡þû1.¡XûWhenµtheµdatabookµtruthµtableµincludesµtheµnameµofµanµinput¡XAport,µreplaceµthatµportµnameµwithµtheµtokensµforµlow/highµ(L/H).¡þ½2.¡X½Whenµtheµdatabookµtruthµtableµincludesµtheµnameµofµanµoutput¡X	port,µuseµL/Hµforµµtheµcurrentµvalueµofµtheµoutputµportµandµthe¡X	Jnextµvalueµofµtheµoutputµport.¡þ	Å3.¡X	ÅµWhenµtheµdatabookµtruthµtableµhasµtheµtoggleµflagµtgµ(1),µuse¡X
L/HµforµtheµcurrentµvalueµofµtheµoutputµportµandµH/Lµforµtheµnext¡X
Rvalueµofµtheµoutputµport.¡X
ÎInµtheµtruthµtable,µanµoutputµportµprecededµwithµaµ³"µsymbolµis¡Xinverted.µSometimesµyouµmustµmapµfµµtoµ~Rµandµrµtoµ~F.’Â¤D“I501ileaf_page_string1:9-35¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³35¡þÏ²statetable´µGroup¡þn²The´µstatetableµgroupµcontainsµaµtableµconsistingµofµaµsingleµstring.¡þL²Syntax¡,‘²-statetable("²0input´µnodeµnames²-",µ"²0internalµnodeµnames²-")¡,Èµµµµµµµ{tableµ:µ"²0inputµnodeµvalues²-µ:µ²0currentµinternalµvalues²-µ:µ²0nextµinternalµvalues,\¡,ÿµµµµµµµinputµnodeµvalues²-µ:µ²0currentµinternalµvalues²-µ:µ²0nextµinternalµvalues";¡,6²-}¡þÊ²These´µareµstatetableµgroupµconventions:¡þO²S¡XO²Giveµnodesµuniqueµnames.¡þÃ²S¡XÃ²Separateµnodeµnamesµwithµwhiteµspace.¡þ6²S¡X6²Placeµeachµruleµconsistingµofµaµsetµofµinputµnodeµvalues,µcurrent¡X}internalµvalues,µandµnextµinternalµvaluesµonµaµseparateµline¡XÃfollowedµbyµaµcommaµandµtheµlineµcontinuationµcharacterµ(\).µTo¡X
preventµsyntaxµerrors,µtheµlineµcontinuationµcharacterµmustµbe¡XPfollowedµimmediatelyµbyµtheµnextµlineµcharacter.¡þÄ²S¡XÄ²Separateµnodesµvaluesµandµtheµcolonµdelimiterµ(:)µwithµwhite¡Xspace.¡þ~²S¡X~²Insertµcommentsµonlyµwhereµcharacterµspaceµisµallowed.µFor¡XÅexample,µyouµcannotµinsertµaµcommentµwithinµanµH/Lµtokenµor¡X	afterµtheµlineµcontinuationµcharacterµ(\).¡þ	Figure 9³5µshowsµanµexampleµofµaµstatetableµgroup.’¤D“I501ileaf_page_string1:9-36¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³36¡,É²&Figure 9³5³statetable´µGroupµExample¡,:²¥	öä¡"²-statetable(G¡ª"CD¡š"D",¡Š""IQ"´µ)µ{¡u¡outableµ:µµ"-¡ªuL¡šu-µ¡Šu:µ-µ:¡¶uL,µµµ\¡ž¡ož¡Øž¡AžH¡ªžH¡šžL/H¡Šž:µ-µ:¡¶žL/H,µ\¡È¡oÈ¡ØÈµ¡AÈL¡ªÈH¡šÈ-¡ŠÈ:µ-µ:¡¶ÈN";¡ñ}ÃËÁÊË¡Ä!>4>Ë¡Ä4>4Ë¡Ä4!Ë¡Ä!!>ÆÃÃËË¡ÄŠ33Ë¡Ä3ûË¡ÄûŠûË¡ÄŠûŠ3ÆÃÃËË¡Ä\>$>Ë¡Ä$>$Ë¡Ä$\Ë¡Ä\\>ÆÃ¡tM²Input´µNodeµV¤ÿýalues¡|NCurrent¡||Internal¡|ªV¤ÿýalues¡¨BNextµ¡¨pInternal¡¨žV¤ÿýaluesÁÊËÃ¡Ä*E*»ÆÃËÃ¡Ä*²±õÆÃËÃ¡Ä2²2BÆÃ¡M/T¤ÿûableµInputsËÃ¡Ä2²±õÆÃ²¡Ê:¡þ²Table 9³4´µshowsµtheµtokenµvaluesµforµtableµinputs.¡,½²&Table 9³4³LegitimateµValuesµforµTableµInputsµ(InputµandµCurrent¡²ÿInternalNodes)¡þt²¥	öä¡ ²"Input´µNode¡ÖValuesÁã¡ÃÄþPÿPÿþþþþPÇ¡ÃÄþP)P)QþQþPÇ²¡*t¥	öä¡G ²"CurrentµInternal¡GÖNodeµValues¡ÃÄ*P-P-þ*þ*PÇ¡ÃÄ*PÆPÆQ*Q*PÇ²¡Çt¥	öä¡ä¼²"StateµRepresented¡ÃÄÇPÊPÊþÇþÇPÇ¡ÃÄPPþþPÇ¡ÃÄÇPPQÇQÇPÇ²¡t¡þ$¥	öä¡H²L¡ÃÄþÿÿfþfþÇ¡ÃÄþ))þþÇ¡ÃÄþ))þþÇ²¡*$¥	öä¡GH²L¡ÃÄ*--f*f*Ç¡ÃÄ*ÆÆ**Ç¡ÃÄ*ÆÆ**Ç²¡Ç$¥	öä¡äH²Low¡ÃÄÇÊÊfÇfÇÇ¡ÃÄffÇ¡ÃÄÇÇÇÇ¡ÃÄÇÇÇÇ²¡$¡þŒ¥	öä¡°²H¡ÃÄþhÿhÿÎþÎþhÇ¡ÃÄþh)h)kþkþhÇ²¡*Œ¥	öä¡G°²H¡ÃÄ*h-h-Î*Î*hÇ¡ÃÄ*hÆhÆk*k*hÇ²¡ÇŒ¥	öä¡ä°²High¡ÃÄÇhÊhÊÎÇÎÇhÇ¡ÃÄhhÎÎhÇ¡ÃÄÇhhkÇkÇhÇ²¡Œ¡þô¥	öä¡²-¡ÃÄþÐÿÐÿ6þ6þÐÇ¡ÃÄþÐ)Ð)ÓþÓþÐÇ²¡*ô¥	öä¡G²-¡ÃÄ*Ð-Ð-6*6*ÐÇ¡ÃÄ*ÐÆÐÆÓ*Ó*ÐÇ²¡Çô¥	öä¡ä²Don'tµcare¡ÃÄÇÐÊÐÊ6Ç6ÇÐÇ¡ÃÄÐÐ66ÐÇ¡ÃÄÇÐÐÓÇÓÇÐÇ²¡ô¡þ\¥	öä¡€²L/H¡ÃÄþ8ÿ8ÿžþžþ8Ç¡ÃÄþ8)8);þ;þ8Ç²¡*\¥	öä¡G€²L/H¡ÃÄ*8-8-ž*ž*8Ç¡ÃÄ*8Æ8Æ;*;*8Ç²¡Ç\¥	öä¡ä€²ExpandsµtoµbothµLµandµH¡ÃÄÇ8Ê8ÊžÇžÇ8Ç¡ÃÄ88žž8Ç¡ÃÄÇ88;Ç;Ç8Ç²¡\¡þÄ¥	öä¡è²H/L¡ÃÄþ ÿ ÿ	þ	þ Ç¡ÃÄþ ) )£þ£þ Ç²¡*Ä¥	öä¡Gè²H/L¡ÃÄ* - -	*	* Ç¡ÃÄ* Æ Æ£*£* Ç²¡ÇÄ¥	öä¡äè²ExpandsµtoµbothµHµandµL¡ÃÄÇ Ê Ê	Ç	Ç Ç¡ÃÄ  		 Ç¡ÃÄÇ  £Ç£Ç Ç²¡Ä¡þ	,¥	öä¡	P²R¡ÃÄþ	ÿ	ÿ	nþ	nþ	Ç¡ÃÄþ	)	)	þ	þ	Ç²¡*	,¥	öä¡ÃÄ*	-	-	n*	n*	Ç¡ÃÄ*	Æ	Æ	*	*	Ç¡Ç	,¥	öä¡ä	P²Risingµedgeµ(fromµlowµtoµhigh)¡ÃÄÇ	Ê	Ê	nÇ	nÇ	Ç¡ÃÄ			n	n	Ç¡ÃÄÇ			Ç	Ç	Ç²¡	,¡þ	”¥	öä¡	¸²F¡ÃÄþ	pÿ	pÿ	Öþ	Öþ	pÇ¡ÃÄþ	p)	p)	sþ	sþ	pÇ²¡*	”¥	öä¡ÃÄ*	p-	p-	Ö*	Ö*	pÇ¡ÃÄ*	pÆ	pÆ	s*	s*	pÇ¡Ç	”¥	öä¡ä	¸²Fallingµedgeµ(fromµhighµtoµlow)¡ÃÄÇ	pÊ	pÊ	ÖÇ	ÖÇ	pÇ¡ÃÄ	p	p	Ö	Ö	pÇ¡ÃÄÇ	p	p	sÇ	sÇ	pÇ²¡	”¡þ	ü¥	öä¡
 ²~R¡ÃÄþ	Øÿ	Øÿ
>þ
>þ	ØÇ¡ÃÄþ	Ø)	Ø)	Ûþ	Ûþ	ØÇ²¡*	ü¥	öä¡ÃÄ*	Ø-	Ø-
>*
>*	ØÇ¡ÃÄ*	ØÆ	ØÆ	Û*	Û*	ØÇ¡Ç	ü¥	öä¡ä
 ²Notµrisingµedge¡ÃÄÇ	ØÊ	ØÊ
>Ç
>Ç	ØÇ¡ÃÄ	Ø	Ø
>
>	ØÇ¡ÃÄÇ	Ø	Ø	ÛÇ	ÛÇ	ØÇ²¡	ü¡þ
d¥	öä¡
ˆ²~F¡ÃÄþ
@ÿ
@ÿ
§þ
§þ
@Ç¡ÃÄþ
@)
@)
Cþ
Cþ
@Ç¡ÃÄþ
§)
§)
¨þ
¨þ
§Ç²¡*
d¥	öä¡ÃÄ*
@-
@-
§*
§*
@Ç¡ÃÄ*
@Æ
@Æ
C*
C*
@Ç¡ÃÄ*
§Æ
§Æ
¨*
¨*
§Ç¡Ç
d¥	öä¡ä
ˆ²Notµfallingµedge¡ÃÄÇ
@Ê
@Ê
§Ç
§Ç
@Ç¡ÃÄ
@
@
§
§
@Ç¡ÃÄÇ
@
@
CÇ
CÇ
@Ç¡ÃÄÇ
§
§
¨Ç
¨Ç
§Ç²¡
d¡þ²Table 9³5´µshowsµtheµtokenµvaluesµforµnextµinternalµnodes’
ÂD“I501ileaf_page_string1:9-37¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³37¡,É²&Table 9³5³Legitimate´µValuesµforµNextµInternalµNode¡þ9²¥	öä¡e²"Next´µInternal¡›NodeµValueÁã¡ÃÄþÿÿÄþÄþÇ¡ÃÄþ••þþÇ²¡–9¥	öä¡³²"StateµRepresented¡ÃÄ–™™Ä–Ä–Ç¡ÃÄÊËËÄÊÄÊÇ¡ÃÄ–ËË––Ç²¡Ê9¡þé¥	öä¡²L¡ÃÄþÅÿÅÿ,þ,þÅÇ¡ÃÄþÅ•Å•ÈþÈþÅÇ¡ÃÄþÍ•Í•ÐþÐþÍÇ²¡–é¥	öä¡³²Low¤ÿý.¡ÃÄ–Å™Å™,–,–ÅÇ¡ÃÄÊÅËÅË,Ê,ÊÅÇ¡ÃÄ–ÅËÅËÈ–È–ÅÇ¡ÃÄ–ÍËÍËÐ–Ð–ÍÇ²¡Êé¡þQ¥	öä¡u²H¡ÃÄþ-ÿ-ÿ”þ”þ-Ç¡ÃÄþ-•-•0þ0þ-Ç²¡–Q¥	öä¡³u²High.¡ÃÄ–-™-™”–”–-Ç¡ÃÄÊ-Ë-Ë”Ê”Ê-Ç¡ÃÄ–-Ë-Ë0–0–-Ç²¡ÊQ¡þ¹¥	öä¡Ý²-¡ÃÄþ•ÿ•ÿüþüþ•Ç¡ÃÄþ••••˜þ˜þ•Ç²¡–¹¥	öä¡³Ý²Outputµisµnotµspecified.¡ÃÄ–•™•™ü–ü–•Ç¡ÃÄÊ•Ë•ËüÊüÊ•Ç¡ÃÄ–•Ë•Ë˜–˜–•Ç²¡Ê¹¡þ!¥	öä¡E²L/H¡ÃÄþýÿýÿdþdþýÇ¡ÃÄþý•ý•þþýÇ²¡–!¥	öä¡³E²ExpandsµtoµbothµLµandµH.¡ÃÄ–ý™ý™d–d–ýÇ¡ÃÄÊýËýËdÊdÊýÇ¡ÃÄ–ýËýË––ýÇ²¡Ê!¡þ‰¥	öä¡­²H/L¡ÃÄþeÿeÿÌþÌþeÇ¡ÃÄþe•e•hþhþeÇ²¡–‰¥	öä¡³­²ExpandsµtoµbothµHµandµL.¡ÃÄ–e™e™Ì–Ì–eÇ¡ÃÄÊeËeËÌÊÌÊeÇ¡ÃÄ–eËeËh–h–eÇ²¡Ê‰¡þñ¥	öä¡²X¡ÃÄþÍÿÍÿ4þ4þÍÇ¡ÃÄþÍ•Í•ÐþÐþÍÇ²¡–ñ¥	öä¡³²Unknown.¡ÃÄ–Í™Í™4–4–ÍÇ¡ÃÄÊÍËÍË4Ê4ÊÍÇ¡ÃÄ–ÍËÍËÐ–Ð–ÍÇ²¡Êñ¡þY¥	öä¡}²N¡ÃÄþ5ÿ5ÿþþ5Ç¡ÃÄþ5•5•8þ8þ5Ç¡ÃÄþ••	þ	þÇ²¡–Y¥	öä¡³}²Noµeventµfromµcurrentµvalue.µHold.µUseµonly¡³³whenµallµasynchronousµinputsµandµclocksµare¡³éinactive.¡ÃÄ–5™5™––5Ç¡ÃÄÊ5Ë5ËÊÊ5Ç¡ÃÄ–5Ë5Ë8–8–5Ç¡ÃÄ–ËË	–	–Ç²¡ÊY¡þr²Note:²¡Xº²It´µisµimportantµtoµuseµtheµNµtokenµvalueµappropriately.µTheµoutput¡XisµneverµNµwhenµanyµinputµ(asynchronousµorµsynchronous)µis¡XKactive.µTheµoutputµshouldµbeµNµonlyµwhenµallµtheµinputsµare¡X”inactive.¡þ²UsingµShortcuts¡þŽ²Toµrepresentµaµstatetableµexplicitly,µyouµlistµtheµnextµinternalµnode¡þ×onceµforµeveryµpermutationµofµLµandµHµforµtheµcurrentµinputs,¡þ	 previousµinputs,µandµcurrentµstates.¡þ	ÂThisµisµanµexampleµofµaµfullyµexpandedµstatetableµgroupµforµaµdata¡þ
latchµwithµactive³lowµclear.’
ÂõD“I501ileaf_page_string1:9-38¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³38¡þÃ²statetable("¡“ÃG¡Ã¡¡ÃCD¡(Ã¡¯ÃD",¡6Ã¡½Ã"IQ")´µ{¡þ¡…tableµ:"¡“L¡¡¡L¡(¡¯Lµ¡6¡½:µLµ:¡ËL,\¡þ@¡…@¡@¡“@L¡@¡¡@L¡(@¡¯@L¡6@¡½@:µHµ:¡Ë@L,\¡þ¡…¡¡“L¡¡¡L¡(¡¯H¡6¡½:µLµ:¡ËL,\¡þ½¡…½¡½¡“½L¡½¡¡½L¡(½¡¯½H¡6½¡½½:µHµ:¡Ë½L,\¡þü¡…ü¡ü¡“üL¡ü¡¡üH¡(ü¡¯üL¡6ü¡½ü:µLµ:¡ËüN,\¡þ:¡…:¡:¡“:L¡:¡¡:H¡(:¡¯:L¡6:¡½::µHµ:¡Ë:N,\¡þy¡…y¡y¡“yL¡y¡¡yH¡(y¡¯yH¡6y¡½y:µLµ:¡ËyN,\¡þ·¡…·¡·¡“·L¡·¡¡·H¡(·¡¯·H¡6·¡½·:µHµ:¡Ë·N,\¡þö¡…ö¡ö¡“öH¡ö¡¡öL¡(ö¡¯öL¡6ö¡½ö:µLµ:¡ËöL,\¡þ4¡…4¡4¡“4H¡4¡¡4L¡(4¡¯4L¡64¡½4:µHµ:¡Ë4L,\¡þs¡…s¡s¡“sH¡s¡¡sL¡(s¡¯sH¡6s¡½s:µLµ:¡ËsL,\¡þ±¡…±¡±¡“±H¡±¡¡±L¡(±¡¯±H¡6±¡½±:µHµ:¡Ë±L,\¡þð¡…ð¡ð¡“ðH¡ð¡¡ðH¡(ð¡¯ðL¡6ð¡½ð:µLµ:¡ËðL,\¡þ/¡…/¡/¡“/H¡/¡¡/H¡(/¡¯/L¡6/¡½/:µHµ:¡Ë/L,\¡þm¡…m¡m¡“mH¡m¡¡mH¡(m¡¯mH¡6m¡½m:µLµ:¡ËmH,\¡þ¬¡…¬¡¬¡“¬H¡¬¡¡¬H¡(¬¡¯¬H¡6¬¡½¬:µHµ:¡Ë¬H";¡þê}¡þŽ²You´µcanµuseµtheµfollowingµshortcutsµwhenµyouµrepresentµyourµtable.¡þ²S¡X²don'tµcareµsymbolµ(³)¡X™Forµtheµinputµandµcurrentµinternalµnode,µtheµdon'tµcareµsymbol¡XàrepresentsµallµpermutationsµofµLµandµH.¡XmForµtheµnextµinternalµnode,µtheµdon'tµcareµsymbolµmeansµtheµrule¡X´doesµnotµdefineµaµvalueµforµtheµnextµinternalµnode.¡X	BForµexample,µaµmaster³slaveµflip³flopµcanµbeµwrittenµasµfollows:¡,	Æ²-statetable("´µµD¡	Æ¡“	ÆCP¡	ÆCPN",µµ"MQµSQ")µ{¡,	ÿµµtableµ:µ"µµH/L¡	ÿµR¡“	ÿ~Fµµµµ:µ-µµµ-µ:µH/LµµµN,\¡,
7µµµµµµµµµµµµµ-¡
7¡“
7~R¡
7µFµµµµ:µH/Lµ-µ:µNµµµµµH/L,\¡,
oµµµµµµµµµµµµµH/L¡
oµR¡“
oµFµµµµ:µLµµµ-µ:µH/LµµµL,\¡,
¨µµµµµµµµµµµµµH/L¡
¨µR¡“
¨µFµµµµ:µHµµµ-µ:µH/LµµµH,\¡,
àµµµµµµµµµµµµµ-¡
à¡“
à~R¡
à~Fµµµµ:µ-µµµ-µ:µNµµµµµN";¡,}’õÀD“I501ileaf_page_string1:9-39¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³39¡XÉ²Or´µitµcanµbeµwrittenµmoreµconciselyµasµfollows¡XA²statetable("¡AD¡¡ACP¡(ACPN","MQ¡6ASQ")´µ{¡X}µµtableµ:µ¡}H/L¡¡}µRµ¡(}µ-¡¯}:µ-µµµ-µ:µH/Lµ-,\¡X¹¡¹¡“¹¡¹-¡¡¹~R¡(¹µ-¡¯¹:µ-µµµ-µ:µNµµµ-,\¡Xõ¡õ¡“õ¡õ-¡¡õµ-¡(õµF¡¯õ:µH/Lµ-µ:µ-µµµH/L,\¡X1¡1¡“1¡1-¡¡1µ-¡(1~F¡¯1:µ-µµµ-µ:µ-µµµN";¡Xm}¡þè²²S¡Xè²L/H´µandµH/L¡XVBothµL/HµandµH/Lµrepresentµtwoµindividualµlines:µoneµwithµLµand¡XtheµotherµwithµH.µµForµexample,µtheµfollowingµline¡X²H¡H¡“H/L¡:´µ³µ:¡(¡¯L/H,¡X²is´µaµconciseµversionµofµtheµfollowingµlines.¡X²H¡H¡“H¡:´µ-µ:¡(¡¯L,¡XDH¡DH¡“DL¡D:µ-µ:¡(D¡¯DH,¡þÀ²²S¡XÀ²R,´µ~R,µF,µµandµ~Fµ(inputµedge³sensitiveµsymbols)¡X.Theµinputµedge³sensitiveµsymbolsµrepresentµpermutationsµofµL¡XuandµHµforµtheµdelayedµinputµandµtheµcurrentµinput.µEvery¡X»edge³sensitiveµinputµ(thatµis,µoneµthatµhasµatµleastµone¡Xinput³edgeµsymbol)µisµexpandedµintoµtwoµlevel³sensitiveµinputs:¡XHtheµcurrentµinputµvalueµandµtheµdelayedµinputµvalue.µFor¡Xexample,µtheµinput³edgeµsymbolµRµexpandsµtoµanµLµforµthe¡XÕdelayedµinputµvalueµandµanµHµforµtheµcurrentµinputµvalue.µInµthe¡X	followingµstatetableµofµaµDµflip³flop,µclockµCµcanµbeµrepresented¡X	cbyµtheµinputµpairµC*µandµC.µC*µisµtheµdelayedµinputµvalueµandµC¡X	©isµtheµcurrentµinputµvalue.¡X
!²statetable´µ(¡
!"C¡¡
!D",¡(
!"IQ")µ{¡X
]µµtableµ:¡“
]"R¡
]L/H¡¡
]:µ-µ:¡¯
]L/H,µ\¡X
™¡
™¡“
™~R¡
™-¡¡
™:µ-µ:¡¯
™N";¡X²This´µisµtheµinternalµrepresentationµofµtheµsameµcell.’ÀçD“I501ileaf_page_string1:9-40¥	öäÃËÁâÊË¡Ä,,i¡Ä,i	ci¡Ä	ci	c¡Ä	c,ÆÃÁÊËÃ¡ÄþiÊiÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³40¡þÁ²¥	öä¡í²"C*Áã¡ÃÄþÿÿþþÇ¡ÃÄþ°°žþžþÇ²¡±Á¥	öä¡Îí²"C¡ÃÄ±´´±±Ç¡ÃÄ±ccž±ž±Ç²¡dÁ¥	öä¡í²"D¡ÃÄdggddÇ¡ÃÄdždždÇ²¡Á¥	öä¡4í²"IQ¡ÃÄÇ¡ÃÄÊËËÊÊÇ¡ÃÄËËžžÇ²¡ÊÁ¡þ9¥	öä¡]²L¡ÃÄþÿÿ|þ|þÇ¡ÃÄþ°°þþÇ¡ÃÄþ°° þ þÇ²¡±9¥	öä¡Î]²H¡ÃÄ±´´|±|±Ç¡ÃÄ±cc±±Ç¡ÃÄ±cc ± ±Ç²¡d9¥	öä¡]²L/H¡ÃÄdgg|d|dÇ¡ÃÄdddÇ¡ÃÄd d dÇ²¡9¥	öä¡4]²L/H¡ÃÄ||Ç¡ÃÄÊËË|Ê|ÊÇ¡ÃÄËËÇ¡ÃÄËË  Ç²¡Ê9¡þ¡¥	öä¡Å²H¡ÃÄþ}ÿ}ÿäþäþ}Ç¡ÃÄþ}°}°€þ€þ}Ç²¡±¡¥	öä¡ÎÅ²H¡ÃÄ±}´}´ä±ä±}Ç¡ÃÄ±}c}c€±€±}Ç²¡d¡¥	öä¡Å²-¡ÃÄd}g}gädäd}Ç¡ÃÄd}}€d€d}Ç²¡¡¥	öä¡4Å²N¡ÃÄ}}ää}Ç¡ÃÄÊ}Ë}ËäÊäÊ}Ç¡ÃÄ}Ë}Ë€€}Ç²¡Ê¡¡þ	¥	öä¡-²H¡ÃÄþåÿåÿLþLþåÇ¡ÃÄþå°å°èþèþåÇ²¡±	¥	öä¡Î-²L¡ÃÄ±å´å´L±L±åÇ¡ÃÄ±åcåcè±è±åÇ²¡d	¥	öä¡-²-¡ÃÄdågågLdLdåÇ¡ÃÄdååèdèdåÇ²¡	¥	öä¡4-²N¡ÃÄååLLåÇ¡ÃÄÊåËåËLÊLÊåÇ¡ÃÄåËåËèèåÇ²¡Ê	¡þq¥	öä¡•²L¡ÃÄþMÿMÿ´þ´þMÇ¡ÃÄþM°M°PþPþMÇ¡ÃÄþ´°´°µþµþ´Ç²¡±q¥	öä¡Î•²L¡ÃÄ±M´M´´±´±MÇ¡ÃÄ±McMcP±P±MÇ¡ÃÄ±´c´cµ±µ±´Ç²¡dq¥	öä¡•²-¡ÃÄdMgMg´d´dMÇ¡ÃÄdMMPdPdMÇ¡ÃÄd´´µdµd´Ç²¡q¥	öä¡4•²N¡ÃÄMM´´MÇ¡ÃÄÊMËMË´Ê´ÊMÇ¡ÃÄMËMËPPMÇ¡ÃÄ´Ë´Ëµµ´Ç²¡Êq¡þý²²S¡Xý²Priority´µorderingµofµoutputs¡XnTheµoutputsµfollowµaµprioritizedµorder.µTwoµrulesµcanµcoverµthe¡Xµsameµinputµcombinationsµ(withµaµwarningµLibraryµCompiler¡Xüprovides),µbutµtheµruleµdefinedµfirstµhasµpriorityµoverµsubsequent¡XBrules.¡þÞUseµshortcutsµwithµcare.µWhenµinµdoubt,µbeµexplicit.¡þ¹²Partitioning´µtheµCellµintoµaµModel¡þT²You´µcanµpartitionµaµstructuralµnetlistµtoµmatchµtheµgeneralµsequential¡þœoutputµmodelµdescribedµinµExample 9³11µbyµperformingµtheseµtasks:¡þ1.¡XRepresentµeveryµstorageµelementµbyµanµinternalµnode.¡þ2.¡XSeparateµtheµoutputµlogicµfromµtheµinternalµnode.µTheµinternal¡XÕnodeµmustµbeµaµfunctionµofµonlyµtheµsequentialµcellµdataµinput¡X	whenµtheµsequentialµcellµisµtriggered.¡þ	©Internally,µtheµstatetableµisµbrokenµdownµintoµspecificµsubtablesµfor¡þ	òeachµinternalµnode.µTheµamountµofµmemoryµandµprocessingµpower¡þ
:requiredµforµaµsubtableµisµrelatedµexponentiallyµtoµtheµnumberµof¡þ
ƒinputsµtoµtheµsubtable.µTherefore,µaµwarningµisµgivenµwhenµa¡þ
Ìsubtableµrequiresµmoreµthanµ16µinputs.µHowever,µaµsubtableµmayµbe¡þanyµsizeµasµlongµasµtheµworkstationµhasµtheµresourcesµtoµprocessµit.’çZD“I501ileaf_page_string1:9-41¥	öäÃËÁâÊË¡Ä,µ,Ÿ¡Ä,Ÿ	cŸ¡Ä	cŸ	cµ¡Ä	cµ,µÆÃÁÊËÃ¡ÄþŸÊŸÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³41¡þÉ²Note:²¡X²It´µisµveryµimportantµtoµuseµtheµnonactiveµNµvalue.µLibrary¡XZCompilerµwillµnotµcompileµifµtheµoutputµofµaµstatetableµdoesµnot¡X£haveµtheµnonactiveµNµvalue.µµThereµareµtwoµwaysµtoµspecifyµthat¡Xìanµoutputµdoesµnotµchangeµlogicµvalues.µExample 9³11µshows¡X4bothµways.¡,¾²&Example 9³11³JKµFlip³FlopµwithµActive³Low,µDirect³Clear,µand¡²Negative³EdgeµClock¡þM²statetable("J¡“MK¡MCN¡¡MCD","IQ")´µ{¡þ‡µµtableµ:µ"¡“‡-¡‡-¡¡‡-¡(‡L¡¯‡:µ-µ:¡½‡L,\¡þÀ¡…À¡À¡“À-¡À-¡¡À~F¡(ÀH¡¯À:µ-µ:¡½ÀN,\¡þú¡…ú¡ú¡“úL¡úL¡¡úF¡(úH¡¯ú:L/H:¡½úL/H,\¡þ3¡…3¡3¡“3H¡3L¡¡3F¡(3H¡¯3:µ-µ:¡½3H,\¡þm¡…m¡m¡“mL¡mH¡¡mF¡(mH¡¯m:µ-µ:¡½mL,\¡þ¦¡…¦¡¦¡“¦H¡¦H¡¡¦F¡(¦H¡¯¦:L/H:¡½¦H/L";¡þà}¡þi²In´µExample 9³11,µtheµvalueµofµtheµnextµinternalµnodeµofµtheµsecond¡þ²ruleµisµNµbecauseµbothµtheµclearµCDµandµclockµCNµareµinactive.µThe¡þûvalueµofµtheµnextµinternalµnodeµofµtheµthirdµruleµisµL/Hµbecauseµthe¡þCclockµisµactive.¡þî²Defining´µanµOutputµPinµGroup¡þk²Every´µoutputµpinµinµtheµcellµhasµ²&either²µanµinternal_nodeµattribute,¡þ´whichµisµtheµnameµofµanµinternalµnode,µorµaµstate_functionµattribute,¡þýwhichµisµaµBooleanµexpressionµofµportsµandµinternalµpins.¡þ	}Everyµoutputµpinµcanµalsoµhaveµanµoptionalµthree_stateµexpression.¡þ	ýAnµoutputµpinµcanµhaveµoneµofµtheµfollowingµcombinations:¡þ
k²S¡X
k²Anµinternal_nodeµattribute,µanµoptionalµinput_mapµattribute,µand¡X
²anµoptionalµthree_stateµattribute.¡þ²S¡X²Aµstate_functionµattributeµandµanµoptionalµthree_stateµattribute.’ZvD“I501ileaf_page_string1:9-42¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³42¡þÏ²state_function´µAttribute¡þl²The´µstate_functionµattributeµdefinesµoutputµlogic.µPortsµinµthe¡þ´state_functionµBooleanµexpressionµmustµbeµeitherµinput,µinoutµthat¡þýcanµbeµmadeµthree³state,µorµportsµwithµanµinternal_nodeµattribute.¡þžTheµstate_functionµattributeµspecifiesµtheµµpurelyµcombinational¡þæfunctionµofµinputµandµinternalµpins.µAµportµinµtheµstate_function¡þ/expressionµrefersµonlyµtoµtheµnon³three³stateµfunctionalµbehaviorµof¡þwthatµport.µForµexample,µifµEµisµaµportµofµtheµcellµthatµenablesµthe¡þÀthree³state,µtheµstate_functionµattributeµcannotµhaveµaµBoolean¡þ	expressionµthatµusesµpinµE.¡þ©Anµinoutµportµinµtheµstate_functionµexpressionµisµtreatedµonlyµasµan¡þòinputµport.¡þÍ²Example¡þ²pin(Q)¡þU´µµdirectionµ:µoutput;¡þ‘µµstate_functionµ:µ"A";µ/*combinationalµfeedthrough*/¡þk²internal_node´µAttribute¡þ		²The´µinternal_nodeµattributeµisµusedµtoµresolveµnodeµnamesµtoµreal¡þ	Qportµnames.¡þ	òTheµstatetableµisµinµanµindependent,µisolatedµnameµspace.µTheµterm¡þ
:nodeµrefersµtoµtheµidentifiers.µµInputµnodeµandµinternalµnodeµnames¡þ
ƒcanµcontainµanyµcharactersµexceptµwhiteµspaceµandµcomments.¡þ
ÌTheseµnodeµnamesµareµresolvedµtoµtheµrealµportµnamesµbyµeachµport¡þwithµanµinternal_nodeµattribute.’v÷D“I501ileaf_page_string1:9-43¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³43¡þÉ²Each´µoutputµdefinedµbyµtheµinternal_nodeµattributeµmayµhaveµan¡þoptionalµinput_mapµattribute.¡þå²Example¡þ/²internal_node´µ:µ"IQ";¡þ²input_map´µAttribute¡þ›²The´µinput_mapµattributeµmapsµrealµportµandµinternalµpinµnamesµto¡þäeachµtableµinputµandµinternalµnodeµspecifiedµinµtheµstatetable.¡þ·²Example¡þ²input_map´µ:µ"Gx1µCDx1µDx1µQN";/*QNµisµinternalµnode*/¡þ™²An´µinputµmapµisµaµlistingµofµportµnamesµseparatedµbyµwhiteµspace¡þácorrespondingµtoµinternalµnodes.¡þ}Mappingµportµandµinternalµpinµnamesµtoµtableµinputµandµinternal¡þÅnodesµoccursµthroughµaµcombinationµofµtheµinput_mapµattributeµand¡þtheµinternal_nodeµattribute.µµIfµaµnodeµnameµisµnotµmappedµexplicitly¡þWtoµaµrealµportµnameµinµtheµinput_map,µitµautomaticallyµinheritsµthe¡þŸnodeµnameµasµtheµrealµportµname.µµTheµinternalµnodeµname¡þèspecifiedµbyµtheµinternal_nodeµattributeµmapsµimplicitlyµtoµtheµoutput¡þ	1beingµdefined.¡þ	ÌForµexample,µtoµmapµtwoµinputµnodes,µAµandµB,µtoµrealµportsµDµand¡þ
CP,µandµtoµmapµoneµinternalµnode,µZ,µtoµportµQ,µsetµtheµinput_map¡þ
^attributeµasµfollows:¡þ
Ú²input_map´µ:µ"DµµCPµµQ"’÷•D“I501ileaf_page_string1:9-44¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³44¡þÉ²You´µcanµuseµaµdon'tµcareµsymbolµinµplaceµofµaµnameµtoµsignifyµthat¡þtheµinputµisµnotµusedµforµthisµoutput.µCommentsµareµallowedµinµthe¡þZinput_mapµattribute.¡þ	Theµdelayedµnatureµofµoutputsµspecifiedµinµtheµinput_mapµisµimplicit:¡þ–²S¡X–²Internalµnode³
Whenµanµoutputµportµisµspecifiedµforµthisµtypeµof¡XÝnode,µtheµinternalµnodeµisµforcedµtoµmapµtoµtheµdelayedµvalueµof¡X#theµoutputµport.¡þ²S¡X²Synchronousµdataµinputµnode³
Whenµanµoutputµportµisµspecified¡Xäforµthisµtypeµofµnode,µtheµinputµisµforcedµtoµmapµtoµtheµdelayed¡X*valueµofµtheµoutputµport.¡þ¤²S¡X¤²Asynchronousµorµclockµinputµnode³
Whenµanµoutputµportµis¡Xêspecifiedµforµthisµtypeµofµnode,µtheµinputµisµforcedµtoµmapµtoµthe¡X1undelayedµvalueµofµtheµoutputµport.¡þÍForµexample,µFigure 9³6µshowsµaµcircuitµconsistingµofµlatchµU1µand¡þflip³flopµU2.¡,Õ²&Figure 9³6³CircuitµwithµLatchµandµFlip³Flop¡,	±²¥	öäÃËÁÊË¡Äö	7öY¡ÄöY²Y¡Ä²Y²	7¡Ä²	7ö	7ÆÃ²¡•D¡	G¡Š•Q¡A×U1Ã¡Ä–	=–_¡Ä–_Q_¡ÄQ_Q	=¡ÄQ	=–	=ÆÃ¡¡›D¡¥	"CP¡)›Q¡àÝU2ÊËÃ¡Ä³‹•‹ÆÃÃ¡ÄQ‹æ‹ÆÃÃ¡Ä‚ŠóŠÆÃÃ¡Ä`	õ	ÆÃÃÊË¡Ä ‹ ¡Ä ‚¡Ä‚‚‹ÆÃÃ¡Ä•	4	¡Ä4	4	¡¡Ä4	¡_	¡ÆÃ¡	G1¡	«CP2¡sn1¡ˆQ0²¡Ê	±¡þ
ƒ²InµFigure 9³6,µinternalµpinµn1µshouldµmapµtoµportsµQ0µG1µn1*"µand¡þ
ÌoutputµQ0µshouldµmapµtoµn1*µCP2µQ0*".µTheµsubtleµsignificanceµis¡þrelevantµduringµsimultaneousµinputµtransitions.’•¹D“I501ileaf_page_string1:9-45¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³45¡þÉ²With´µthisµinput_mapµattribute,µtheµfunctionalµsyntaxµforµgangedµcells¡þisµidenticalµtoµnongangedµcells.µYouµcanµuseµinput_mapµtoµrepresent¡þZtheµinterconnectionµofµanyµnetworkµofµsequentialµcellsµ(forµexample,¡þ£shiftµregistersµandµcounters).¡þQTheµinput_mapµattributeµcanµbeµcompletelyµunspecified,µcompletely¡þšspecified,µorµmayµspecifyµonlyµtheµbeginningµports.µTheµdefaultµfor¡þâanµincompletelyµdefinedµinput_mapµisµtheµassumptionµthatµmissing¡þ+trailingµprimaryµinputµnodesµandµinternalµnodesµareµequalµtoµthe¡þtnodeµnamesµspecifiedµinµtheµstatetable.µTheµcurrentµstateµofµthe¡þ¼internal_nodeµshouldµbeµequalµtoµtheµoutputµportµname.µ¡þ´²inverted_output´µAttribute¡þ^²The´µinverted_outputµattributeµisµaµrequiredµBooleanµattributeµfor¡þ§statetableµformatµthatµyouµcanµsetµforµanyµoutputµport.µµSetµthis¡þðattributeµtoµfalseµforµnoninvertingµoutput.µThisµisµvariable1µorµIQµfor¡þ8flip³flopµorµlatchµgroups.µSetµthisµattributeµtoµtrueµforµinvertingµoutput.¡þThisµisµvariable2µorµIQNµforµflip³flopµorµlatchµgroups¡þs²Example¡þÀ²inverted_output´µ:µtrue;¡þ	`²Some´µdownstreamµtoolsµmakeµassumptionsµbasedµonµwhetherµan¡þ	©outputµisµconsideredµinvertedµorµnoninverted.µInµstatetableµformat,¡þ	òanµoutputµisµconsideredµinvertedµifµitµhasµanyµdataµinputµwithµa¡þ
:negativeµsense.µThisµalgorithmµmayµbeµinconsistentµwithµaµuser's¡þ
ƒintentions.µForµexample,µwhetherµaµtoggleµoutputµisµconsidered¡þ
Ìinvertedµorµnoninvertedµisµarbitrary.µYouµcanµdefineµoutputµas¡þinvertedµorµnoninvertedµwithµanµinverted_outputµattributeµonµtheµpin.’¹bD“I501ileaf_page_string1:9-46¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³46¡þÏ²Internal´µPinµType¡þn²In´µff/latchµformat,µµpin,µbus,µorµbundleµgroupsµcanµhaveµaµdirection¡þ¶attributeµwithµinput,µoutput,µorµinoutµvalues.µInµstatetableµformat,µthe¡þÿdirectionµattributeµforµanyµlibraryµcellµ(combinationalµorµsequential)¡þHcanµhaveµtheµinternalµvalue.µAµpinµwithµtheµinternalµvalueµtoµthe¡þdirectionµattributeµisµtreatedµlikeµanµoutputµport,µexceptµthatµitµis¡þÙhiddenµwithinµtheµlibraryµcell.µItµcanµtakeµanyµofµtheµattributesµofµan¡þ"outputµpinµwithµtheµfollowingµexceptions:¡þ¦²S¡X¦²Itµcannotµhaveµtheµthree_stateµattribute.¡þ²S¡X²Itµcannotµhaveµtheµstate_functionµattribute.¡þ«Anµinternalµpinµcanµhaveµtimingµarcsµandµcanµhaveµtimingµarcs¡þôrelatedµtoµit,µallowingµaµdistributedµdelayµmodelµforµmultistate¡þ=sequentialµcells.¡þßBecauseµaµcellµwithµaµstatetableµmodelµisµconsideredµaµblackµboxµfor¡þ(synthesis,µnoµchecksµareµperformedµtoµensureµconsistencyµbetween¡þqtimingµandµfunction.¡þO²Example¡þ›²pin´µ(IQ)µ{¡þ×¡…×directionµ:µinternal;¡þ	T²Valid´µPinµGroups¡þ	Ê²Thisµisµanµexampleµofµaµpinµwithµanµinternalµvalueµtoµtheµdirection¡þ
attribute.’bºD“I501ileaf_page_string1:9-47¥	öäÃËÁâÊË¡Ä,O,9¡Ä,9	c9¡Ä	c9	cO¡Ä	cO,OÆÃÁÊËÃ¡Äþ9Ê9ÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³47¡þÃ²pin´µ(n1)µ{¡þý¡…ýdirectionµ:µinternal;¡þ6¡…6internal_nodeµ:"IQ";µ/*µuseµdefaultµinput_mapµ*/¡þp¡…p...¡þªpinµ(QN)µ{¡þãµµdirectionµ:µoutput;¡þµµinternal_nodeµ:"IQN";¡þWµµinput_mapµ:µ"Gx1µCDx1µDx1µQN";µ/*µQNµisµinternalµnodeµ*/¡þµµthree_stateµ:µ"EN2";¡þÊ¡…Ê...¡þpinµ(QNZ)µ{¡þ>¡…>directionµ:µoutput;¡þw¡…wstate_functionµ:"QN";µ/*µignoresµQN'sµthreeµstateµ*/¡þ±¡…±three_stateµ:µ"EN";¡þë¡…ë...¡þ$pinµ(Y)µ{¡þ^¡…^directionµ:µoutput;¡þ˜¡…˜state_functionµ:µ"A";µ/*µcombinationalµfeedthroughµ*/¡þÑ¡…Ñ...¡þ‰²Checking´µStatetables¡þ²In´µadditionµtoµcheckingµforµsyntaxµerrors,µLibraryµCompilerµchecksµfor¡þQtheµfollowingµerrors.¡þ²In´µstatetableµGroups¡þl²²S¡Xl²An´µinputµthatµisµnotµfunctionallyµrequiredµbyµanyµofµtheµinternal¡X²nodes.¡þ	²S¡X	²Anµinternalµnodeµthatµisµpurelyµcombinationalµ(thatµis,µnoµN).¡þ	y²S¡X	y²L/HµorµH/LµpresentµinµtheµoutputµwithoutµanyµL/HµorµH/Lµinµthe¡X	Àinputs.¡þ
$²S¡X
$²Anµinputµorµanµinternalµnodeµnameµinµtheµstatetableµthatµisµthe¡X
jsameµasµanotherµinputµorµinternalµnodeµnameµinµtheµstatetable.¡þ
Î²S¡X
Î²Overlappingµentriesµandµunspecifiedµentries,µwhichµcause¡Xwarnings.’ºD“I501ileaf_page_string1:9-48¥	öäÃËÁâÊË¡Ä,u,_¡Ä,_	c_¡Ä	c_	cu¡Ä	cu,uÆÃÁÊËÃ¡Äþ_Ê_ÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³48¡þÏ²In´µpinµGroups¡þP²²S¡XP²A´µfunctionallyµrelatedµinputµthatµisµexplicitlyµdefinedµasµ³"µin¡X—input_map.¡þ
²S¡X
²Tooµmanyµnamesµdefinedµinµinput_map.¡þ~²S¡X~²Anµinternal_nodeµnameµinµtheµinput_mapµthatµdoesµnot¡XÅcorrespondµtoµtheµcurrentµportµname,µwhichµresultsµinµaµwarning.¡þ8²S¡X8²Anµinternal_nodeµattributeµthatµdoesµnotµmatchµanyµstatetable¡Xinternalµnodeµname.¡þó²S¡Xó²Portsµthatµhaveµmissingµorµillegalµattributes.¡þf²S¡Xf²Anµinputµportµdefinedµasµanµinternalµnodeµinµtheµinput_map.¡þÚ²S¡XÚ²Specifiedµinternalµpinsµthatµdoµnotµaffectµanyµoutputs,µwhich¡X!resultsµinµaµwarning.¡þ”²S¡X”²Inclusionµofµillegalµportsµinµtheµstate_functionµexpression.µIllegal¡XÛportsµareµoutputµwithoutµanµinternal_nodeµattribute,µoutput¡X!withoutµaµmemory_readµattribute,µandµinoutsµwithoutµthree_state¡Xhattributes.¡þÜ²S¡XÜ²Notµhavingµanyµoutputµwithµanµinternal_node.¡þ¯²update_lib´µCommandµ¡þ	O²The´µupdate_libµcommandµsupportsµtheµstatetableµformatµasµfullyµas¡þ	—theµread_libµcommandµdoes.µWithµstatetableµformat,µyouµshouldµsee¡þ	ànoµdifferenceµbetweenµaµcellµcreatedµbyµread_libµandµaµcellµcreated¡þ
)byµupdate_lib.¡þ
ÌNote,µhowever,µthatµreport_libµdoesµnotµreportµonµstatetable¡þinformationµafterµanµupdate_lib.’­D“I501ileaf_page_string1:9-49¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,6, ¡Ä, 	c ¡Ä	c 	c6¡Ä	c6,6ÆÃÁÊËÃ¡Äþ Ê ÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³49¡þÏ²Timing¡þ^²With´µstatetableµformat,µyouµcanµspecifyµtimingµarcsµtoµinternalµpins.µ¡þñWhenµyouµuseµff/latchµformatµinµaµcell,µLibraryµCompilerµperformsµthe¡þ:sameµtimingµchecks.¡þÌWhenµyouµdefineµonlyµtheµstatetable,µLibraryµCompilerµonlyµchecks¡þtheµtimingµtypesµforµconsistencyµwithµotherµtimingµtypesµandµwithµthe¡þ^three³stateµconditions.µLibraryµCompilerµdoesµnotµcheckµtheµtiming¡þ¦typesµagainstµtheµfunctionalµstatetableµdescription.¡þp²Recommended´µStatetableµPractices¡þ²Within´µtheµflexibilityµallowedµinµspecifyingµtheµstatetable,µitµis¡þHimportantµtoµfollowµguidelinesµconsistentlyµforµmaintainabilityµand¡þ‘readability.µUseµtheµreport_libµcommandµtoµverifyµthatµtheµstatetable¡þÙisµinterpretedµcorrectly.¡þlBeginningµusersµshouldµobserveµtheµfollowingµrecommendations:¡þæ²S¡Xæ²Alignµtheµnodeµnamesµandµnodeµvaluesµforµreadability.µAlignµthe¡X-nodeµvaluesµinµaµcolumn,µasµshownµbelow:¡”•²statetable("¡)•D¡°•¡7•CP"¡¾•"IQ")´µ{¡”Ðµµµtableµ:µ¡)ÐH/L¡°Ð¡7ÐµRµ¡¾Ð:µ-µ:¡ÌÐH/L,\¡”	¡	¡¢	¡)	-¡°	¡7	~Rµ¡¾	:µ-µ:¡Ì	N";¡”	G}¡þ	Á²²S¡X	Á²Use´µdetailedµcommentsµwhenµappropriate.¡”
)²statetable("¡)
)D¡°
)CP"¡7
)"IQ")´µ{¡”
dµµµtableµ:µ"H/L¡°
dµRµ¡7
d:µ-µ:¡E
dH/L,/*dataµcapture*/\¡”
 ¡
 ¡¢
 ¡)
 -¡°
 ~Rµ¡7
 :µ-µ:¡E
 N";µ/*µholdµ*/¡”
Û}’­D“I501ileaf_page_string1:9-50¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³50¡þÉ²²S¡XÉ²Place´µeachµruleµonµaµseparateµline.¡þA²S¡XA²Practiceµwithµsequentialµelementsµthatµareµalsoµspecifiedµbyµthe¡Xˆff/latchµformat.µVerificationµisµautomatic.¡þ²S¡X²Setµtheµenvironmentµvariableµlibgen_max_differencesµtoµ³1.¡þx²S¡Xx²Doµnotµuseµunspecifiedµrulesµorµoverlappingµrules.¡þð²S¡Xð²Doµnotµmanuallyµsuppressµwarningsµorµerrors.¡þh²S¡Xh²Useµrealµportµnamesµinµtheµstatetable.µMakeµsureµthatµtheµnode¡X®namesµcorrespondµtoµtheµportµnames.µThisµreducesµtheµnumber¡Xõofµnamesµtoµtrack.¡þm²S¡Xm²Beµexplicitµinµrules.µBeµcarefulµwhenµusingµtheµshort³cutsµ³",µL/H,¡X´andµH/L.¡þ,²S¡X,²Beµexplicitµwhenµusingµinput_map.µIfµpossible,µdoµnotµuseµdefault¡Xrnames.¡þê²S¡Xê²Representµcomplexµcells,µsuchµasµmaster³slaveµcells,µinµone¡X1statetable.¡”¦²statetable("¡)¦D¡°¦CP¡7¦CPN","MQSQ")´µ{¡”äµµµtableµ:µ"¡)äH/LµµµRµµ~Fµµ:µ-µµµµ-µ:µµH/LµµµµµN,\¡”!¡!¡¢!¡)!-µµµµ~RµµµFµµ:µH/Lµµ-µ:µµNµµµµµµµH/L,\¡”_¡_¡¢_¡)_H/LµµµRµµµFµµ:µLµµµµ-µ:µµH/LµµµµµL,\¡”¡¡¢¡)H/LµµµRµµµFµµ:µHµµµµ-µ:µµH/LµµµµµH,\¡”Û¡Û¡¢Û¡)Û-µµµµ~Rµµ~Fµµ:µ-µµµµ-µ:µµNµµµµµµµN";¡”	}¡þ	—²²S¡X	—²Avoid´µusingµinternalµpins.¡þ
²S¡X
²Useµreport_libµtoµdoubleµcheckµtheµstatetableµandµtheµtableµinput¡X
Vmapping.¡þ
Î²S¡X
Î²Doµnotµmapµoutputsµtoµedge³sensitiveµinputs.µUseµaµmore¡Xcomplexµstatetable.’±D“I501ileaf_page_string1:9-51¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³51¡þÉ²²S¡XÉ²Do´µnotµrepresentµmoreµthanµoneµtransitionµperµrule.¡þ=²S¡X=²Continueµtoµdescribeµtestµcellsµonlyµinµff/latchµformat.¡þÎMoreµexperiencedµusersµcanµfollowµtheseµrecommendations:¡þS²S¡XS²Useµ³",µL/H,µandµH/Lµshortcutsµtoµreduceµtheµnumberµofµrules.¡þÆ²S¡XÆ²Useµruleµorderµpriorityµtoµreduceµtheµnumberµofµrules.¡”7²statetable("¡)7D¡°7¡77C1¡¾7C2","IQ")´µ{¡”tµµµtableµ:µ"¡)tH/L¡°t¡7tH¡¾tR¡Et:µ-µ:µµµµµH/L,\¡”±¡±¡¢±¡)±H/L¡°±¡7±R¡¾±H¡E±:µ-µ:µµµµµH/L,\¡”í¡í¡¢í¡)íH/L¡°í¡7íR¡¾íR¡Eí:µ-µ:µµµµµH/L,\¡”*¡*¡¢*¡)*-¡°*¡7*-¡¾*-¡E*:µ-µ:µµµµµN";¡”g}¡þä²²S¡Xä²Use´µinput_mapµtoµrepresentµnetworksµofµtablesµ(forµexample,¡X+shiftµregisters).¡þž²S¡Xž²Useµtheµdefaultµinputµmapµcommandµbyµdefiningµonlyµthe¡Xåminimumµnumberµofµportµnames.¡þY²S¡XY²Useµtheµstate_functionµcommandµforµallµoutputµlogic.¡þÌ²S¡XÌ²Defineµdelayedµinputsµinµtheµstatetableµandµinµtheµinput_map.¡þ@²S¡X@²Filterµoutµwarnings.¡þ³²S¡X³²Specifyµinternalµnodesµinµtheµstateµtableµthatµareµnot¡Xúreferenced³
forµexample,µQµandµQN³
evenµthoughµtheµcellµhas¡X	@onlyµaµQµoutput.µThisµmakesµitµeasierµtoµreuseµstatetablesµamong¡X	‡libraryµcells.µThereµisµonlyµaµsmallµcostµinµLibraryµCompiler¡X	Íprocessing.’±}D“I501ileaf_page_string1:9-52¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³52¡þÉ²Understanding´µStatetableµReports¡þ2²Theµreport_libµcommandµlibraryµreportµincludesµstatetableµinµtheµcell¡þ{report.µTheµonlyµtimeµaµsequentialµlibraryµcellµdoesµnotµhaveµthis¡þÃdataµisµwhenµaµstatetableµisµnotµdefinedµcorrectlyµandµcorrectµff/latch¡þsyntaxµisµnotµspecified.¡þ–Twoµoptionsµtoµtheµreport_libµcommandµprintµoutµtheµstatetableµdata¡þÞforµtheµlibraryµcells:¡þR²S¡XR²-tableµprintsµoutµtheµstatetableµdataµinµaµcompactµform.¡X™Example 9³12µprovidesµanµexampleµofµthisµoption.¡þ²S¡X²-full_tableµprintsµoutµtheµstatetableµmodelµinµaµtableµformµandµthe¡XFmemoryµinformationµofµtheµports.µExample 9³13µprovidesµan¡Xexampleµofµthisµoption.¡þ	Theseµoptionsµareµenabledµonlyµwhenµtheµtechnologyµlibraryµisµread¡þRin.µTheµasteriskµsuffixµ(*)µdenotesµaµdelayedµport.¡,æ²&Example 9³12³Exampleµofµreport_libµ-tableµasic.dbµdffz¡þp²Statetable´µdescriptions¡þ«¡…«CELL(dffz):¡þ ¡… ¡ PIN(QN)µ:µCP*,µQN*,µD,µCP¡þZ¡…Z¡Z¡“ZTableµ:µNNNNNNNNHNHNLNHN¡þ”¡…”¡”END_PINµQN;¡þ		¡…		¡		PIN(Q)µ:¡þ	C¡…	C¡	C¡“	Cstate_functionµ:µQN'¡þ	~¡…	~¡	~END_PINµQ;¡þ	ò¡…	ò¡	òPIN(QNZ)µ:¡þ
-¡…
-¡
-¡“
-state_functionµ:µQN¡þ
g¡…
g¡
g¡“
gthree_stateµ:µEN¡þ
¢¡…
¢¡
¢END_PINµQZ;¡þ
Ü¡…
ÜEND_CELLµdffz;’}™D“I501ileaf_page_string1:9-53¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³53¡,É²&Example 9³13³Example´µofµreport_libµ-full_tableµasic.dbµdff¡þ&²Statetable´µdescriptions:¡þe¡…eCELL(dff):¡þã¡…ã¡ãPIN(QN)µ:µCP*,µQN*,µD,µCP¡þ"¡…"¡"¡“"Tableµ:¡þa¡…a¡a¡“a0000¡a¡¡aN¡þ ¡… ¡ ¡“ 0001¡ ¡¡ H¡þß¡…ß¡ß¡“ß0010¡ß¡¡ßN¡þ¡…¡¡“0011¡¡¡L¡þ\¡…\¡\¡“\0100¡\¡¡\N¡þ›¡…›¡›¡“›0101¡›¡¡›H¡þÚ¡…Ú¡Ú¡“Ú0110¡Ú¡¡ÚN¡þ¡…¡¡“0111¡¡¡H¡þX¡…X¡X¡“X1000¡X¡¡XN¡þ—¡…—¡—¡“—1001¡—¡¡—N¡þÖ¡…Ö¡Ö¡“Ö1010¡Ö¡¡ÖN¡þ¡…¡¡“1011¡¡¡N¡þT¡…T¡T¡“T1100¡T¡¡TN¡þ’¡…’¡’¡“’1101¡’¡¡’N¡þÑ¡…Ñ¡Ñ¡“Ñ1110¡Ñ¡¡ÑN¡þ¡…¡¡“1111¡¡¡N¡þO¡…O¡OEND_PINµQN;¡þŽ¡…ŽEND_CELLµdff;¡þ}²Test´µCellµInformation¡þò²Additionalµerrorµmessagesµandµwarningsµresultµwhenµtheµtimingµand¡þ	;testµcellµofµtheµsequentialµmodelµareµcloselyµchecked.¡þ	òItµisµimportantµtoµupdateµtheµtechnologyµlibrariesµbyµaccurately¡þ
:definingµtheµfullµfunctionµofµeachµlibraryµcellµandµtheµnontestµmodeµof¡þ
ƒeachµtestµcell.µUseµtheµstatetableµformatµand,µifµpossible,µtheµff/latch¡þ
Ìformat.µIfµtheµff/latchµformatµisµadequate,µandµyouµdoµnotµsupply¡þstatetableµinformation,µyouµriskµspecificationµerror.’™„D“I501ileaf_page_string1:9-54¥	öäÃËÁâÊË¡Ä,],G¡Ä,G	cG¡Ä	cG	c]¡Ä	c],]ÆÃÁÊËÃ¡Ä,GÊGÆÃ¥	öä¥	öä¡8Á²Defining´µSequentialµCells¡.9³54¡þÉ²When´µyouµdoµnotµdefineµtheµfullµfunctionµofµaµtestµcellµusingµthe¡þstatetable,µtheµfullµfunctionµisµderivedµfromµtheµtestµcellsµbasedµon¡þZtheµnontestµmodeµfunctionµandµtheµtestµattributesµonµtheµports.¡þüExample 9³14µisµanµexampleµofµaµtestµcellµreport.¡,¬²&Example 9³14³Exampleµofµreport_libµ³tableµasic.dbµdff_test¡þ?²CELL(dff_test):¡þ¹¡…¹PIN(QN)´µ:µCP*,µS,µD0,µD1,µCP¡þõ¡…õ¡õTABLEµ:µNHNLNHNHNNNNNNNN¡þ2¡…2END_PINµQN;¡þ¬¡…¬TEST_CELL¡þè¡…è¡èPIN(QN)µ:µCP*,µD0,µCP¡þ%¡…%¡%¡“%TABLEµ:µNHNLNHNHNNNNNNNN¡þb¡…b¡bEND_PINµQN;¡þŸ¡…ŸEND_TEST_CELL;¡þÛEND_CELLµdff_test;¡,²Flip³Flop´µandµLatchµExamples¡þ[²The´µfollowingµexamplesµshowµflip³flopsµandµlatchesµinµff/latchµand¡þ£statetableµsyntax.¡,	S²&Example 9³15³DµFlip³Flop¡þ	ç²/*´µff/latchµformatµ*/¡þ
`ffµ(IQ,IQN)µ{¡þ
µµnext_stateµ:µ"D"µ;¡þ
Úµµclocked_onµ:µ"CP"µ;¡þ}’„†D“I501ileaf_page_string1:9-55¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³55¡þÃ²/*´µstatetableµformatµ*/¡þ<statetable("¡“<DµCP",µ"IQ")µ{¡þyµµµtableµ:µ"¡“yH/L¡y¡¡yRµ¡(y:µ-µ:¡6yH/L,\¡þµ¡…µ¡µ¡“µ¡µ-¡¡µ¡(µ~Rµ¡¯µ:µ-µ:¡½µN";¡þò}¡,š²&Example 9³16³D´µFlip³FlopµwithµGatedµClock¡þ-²/*´µff/latchµformatµ*/¡þ¦ffµ(IQ,IQN)µ{¡þãµµnext_stateµ:µ"D"µ;¡þµµclocked_onµ:µ"C1µ*µC2"µ;¡þ\}¡þÕ/*µstatetableµformatµ*/¡þNstatetable("¡“ND¡N¡¡NC1¡(NC2",¡¯N"IQ")µ{¡þ‹µµµtableµ:µ"¡“‹H/L¡‹¡¡‹H¡(‹R¡¯‹:µ-µ:¡½‹H/L,\¡þÈ¡…È¡È¡“ÈH/L¡È¡¡ÈR¡(ÈH¡¯È:µ-µ:¡½ÈH/L,\¡þ¡…¡¡“H/L¡¡¡R¡(R¡¯:µ-µ:¡½H/L,\¡þA¡…A¡A¡“A-¡A¡¡A-¡(A-¡¯A:µ-µ:¡½AN";¡þ}}¡,%²&Example 9³17³D´µFlip³FlopsµwithµMaster³SlaveµClockµInputµPins¡þ¸²/*´µff/latchµformatµ*/¡þ	2ffµ(IQ,IQN)µ{¡þ	nµµnext_stateµ:µ"D"µ;¡þ	«µµclocked_onµ:µ"CK"µ;¡þ	çµµclocked_on_alsoµ:µ"CKN'"µ;¡þ
$}¡þ
/*µstatetableµformatµ*/¡þ
Ústatetable("µDµµµCKµµµCKN",¡¯
Úµµ"MQµµµSQ")µ{¡þµµµtableµ:µ"µH/LµµRµµµ~F¡(µµµµ:µ-µµµ-µ:µµH/LµµN,\’†ÊD“I501ileaf_page_string1:9-56¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³56¡þÃ²´µµµµµµµµµµµµµ-µµµµ~RµµFµµµµµ:µH/Lµ-µ:µµNµµµµH/L,\¡þÿµµµµµµµµµµµµµH/LµµRµµµFµµµµµ:µLµµµ-µ:µµH/LµµL,\¡þ<µµµµµµµµµµµµµH/LµµRµµµFµµµµµ:µHµµµ-µ:µµH/LµµH,\¡þxµµµµµµµµµµµµµ-µµµµ~Rµµ~Fµµµµ:µ-µµµ-µ:µµNµµµµN";¡þ´}¡,[²&Example 9³18³D´µFlip³FlopµwithµActive³LowµDirect³ClearµandµActive³Low¡²Direct³Set¡þ/²/*´µff/latchµformatµ*/¡þ¨ffµ(IQ,IQN)µ{¡þäµµnext_stateµ:µ"D"µ;¡þ!µµclocked_onµ:µ"CP"µ;¡þ]µµclearµ:µ"µCD'µ"µ;¡þ™µµpresetµ:µ"µSD'µ"µ;¡þÖµµclear_preset_var1µ:µLµ;¡þµµclear_preset_var2µ:µLµ;¡þN}¡þÇ/*µstatetableµformatµ*/¡þ@statetable("DµµµµCPµµCDµµSD",µµ"IQµIQN")µ{¡þ|µµµtableµ:µ"H/LµµRµµµHµµµHµµ:µ-µµµ-µ:µµH/LµµµL/H,\¡þ¹µµµµµµµµµµµµµ-µµµ~RµµHµµµHµµ:µ-µµµ-µ:µµNµµµµµN,\¡þõµµµµµµµµµµµµµ-µµµ-µµµLµµµHµµ:µ-µµµ-µ:µµLµµµµµH,\¡þ1µµµµµµµµµµµµµ-µµµ-µµµHµµµLµµ:µ-µµµ-µ:µµHµµµµµL,\¡þnµµµµµµµµµµµµµ-µµµ-µµµLµµµLµµ:µ-µµµ-µ:µµLµµµµµL";¡þª}¡,	Q²&Example 9³19³D´µFlip³FlopµwithµActive³LowµDirect³Clear,µActive³Low¡²	“Direct³Set,µandµOneµOutput¡þ
%²/*´µff/latchµformatµ*/¡þ
žffµ(IQ,IQN)µ{¡þ
Úµµnext_stateµ:µ"D"µ;¡þµµclocked_onµ:µ"CP"µ;’ÊƒD“I501ileaf_page_string1:9-57¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³57¡þÃ²´µµclearµ:µ"µCD'µ"µ;¡þµµpresetµ:µ"µSD'µ"µ;¡þEµµclear_preset_var1µ:µLµ;¡þ‡µµclear_preset_var2µ:µLµ;¡þÈ}¡þJ/*µstatetableµformatµ*/¡þÍstatetable("µDµµµµCPµµµCDµµSD",µ"IQ")µ{¡þµµµtableµ:µ"µH/LµµRµµµµHµµµHµµµµ:µ-µ:µµµµµH/L,\¡þOµµµµµµµµµµµµµ-µµµµ~RµµµHµµµHµµµµ:µ-µ:µµµµµN,\¡þµµµµµµµµµµµµµ-µµµµ-µµµµLµµµH/Lµµ:µ-µ:µµµµµL,\¡þÒµµµµµµµµµµµµµ-µµµµ-µµµµHµµµLµµµµ:µ-µ:µµµµµH";¡þ}¡,Ú²&Example 9³20³JK´µFlip³FlopµwithµActive³LowµDirect³Clearµand¡²Negative³EdgeµClock¡þÂ²/*´µff/latchµformatµ*/¡þDffµ(IQ,µIQN)µ{¡þ…µµnext_stateµ:µ"µ(J'µK'µIQ)µ+µ(JµK')µ+µ(JµKµIQ')"µ;¡þÆµµclocked_onµ:µ"µCN'"µ;¡þµµclearµ:µ"µCD'"µ;¡þI}¡þË/*µstatetableµformatµ*/¡þ	Nstatetable("µJµµµKµµµCDµµµCD",µµ"IQ")µ{¡þ	µµµtableµ:µ"µ-µµµ-µµµ-µµµµLµµµµ:µµ-µµ:µµµL,\¡þ	Ðµµµµµµµµµµµµµ-µµµ-µµµ~FµµµHµµµµ:µµ-µµ:µµµN,\¡þ
µµµµµµµµµµµµµLµµµLµµµFµµµµHµµµµ:µL/Hµ:µµµL/Hµ\¡þ
SµµµµµµµµµµµµµHµµµLµµµFµµµµHµµµµ:µµ-µµ:µµµH,\¡þ
”µµµµµµµµµµµµµLµµµHµµµFµµµµHµµµµ:µµ-µµ:µµµL,\¡þ
ÕµµµµµµµµµµµµµHµµµHµµµFµµµµHµµµµ:µL/Hµ:µµµH/L";’ƒqD“I501ileaf_page_string1:9-58¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³58¡,É²&Example 9³21³D´µFlip³FlopµwithµScanµInputµPins¡þ]²/*´µff/latchµformatµ*/¡þ×ffµ(IQ,IQN)µ{¡þµµnext_stateµ:µ"µ(DµTE')µ+µ(TIµTE)"µ;¡þQµµclocked_onµ:µ"CP"µ;¡þŽ}¡þ/*µstatetableµformatµ*/¡þstatetable("µDµµµµTEµµTIµµCP",µµ"IQ")µ{¡þ¾µµµtableµ:µ"µH/LµµLµµ-µµµµRµµ:µ-µ:µµH/L,\¡þûµµµµµµµµµµµµµ-µµµµHµµH/LµµRµµ:µ-µ:µµH/L,\¡þ8µµµµµµµµµµµµµ-µµµµ-µµ-µµµµ~Rµ:µ-µ:µµN";¡þu}¡,²&Example 9³22³D´µFlip³FlopµwithµSynchronousµClear¡þ³²/*´µff/latchµformatµ*/¡þ-ffµ(IQ,µIQN)µ{¡þiµµnext_stateµ:µ"DµCR"µ;¡þ¦µµclocked_onµ:µ"CP"µ;¡þã}¡þ]/*µstatetableµformatµ*/¡þ×statetable("µDµµµµCRµµCP",µµ"IQ")µ{¡þ	µµµtableµ:µ"µH/LµµHµµRµµµ:µ-µ:µµH/L,\¡þ	Qµµµµµµµµµµµµ-µµµµµLµµRµµµ:µ-µ:µµL,\¡þ	µµµµµµµµµµµµ-µµµµµ-µµ~Rµµ:µ-µ:µµN";¡þ	Ê}’q?D“I501ileaf_page_string1:9-59¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³59¡,É²&Example 9³23³D´µLatch¡þk²/*´µff/latchµformatµ*/¡þëlatchµ(IQ,IQN)µ{¡þ,µµdata_inµ:µ"D"µ;¡þlµµenableµ:µ"G"µ;¡þ¬}¡þ-/*µstatetableµformatµ*/¡þ®statetable("µDµG",µ"IQ")µ{¡þîµµµtableµ:µ"µH/LµHµµ:µ-µ:µµH/L,\¡þ.µµµµµµµµµµµµµ-µµµLµµ:µ-µ:µµN";¡þo}¡,/²&Example 9³24³SR´µLatch¡þÑ²/*´µff/latchµformatµ*/¡þRlatchµ(IQ,IQN)µ{¡þ’µµclearµ:µ"R"µ;¡þÒµµpresetµ:µ"S"µ;¡þµµclear_preset_var1µ:µLµ;¡þSµµclear_preset_var2µ:µLµ;¡þ“}¡þ	/*µstatetableµformatµ*/¡þ	•statetable("µRµµS",¡¡	•"IQµIQN")µ{¡þ	Õµµµtableµ:µ"µHµµµLµµµ:µ-µµ-µ:µµLµµµH,\¡þ
µµµµµµµµµµµµµLµµµHµµµ:µ-µµ-µ:µµHµµµL,\¡þ
UµµµµµµµµµµµµµHµµµHµµµ:µ-µµ-µ:µµLµµµL,\¡þ
–µµµµµµµµµµµµµLµµµLµµµ:µ-µµ-µ:µµNµµµN";¡þ
Ö}’?‰D“I501ileaf_page_string1:9-60¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³60¡,É²&Example 9³25³D´µLatchµwithµActive³LowµDirect³Clear¡þP²/*´µff/latchµformatµ*/¡þÄlatchµ(IQ,IQN)µ{¡þþµµdata_inµ:µ"D"µ;¡þ7µµenableµ:µ"G"µ;¡þqµµclearµ:µ"µCD'µ"µ;¡þ«}¡þ/*µstatetableµformatµ*/¡þ‘statetable("µDµµµGµµµCD",µµµ"IQ")µ{¡þËµµµtableµ:µ"µH/LµHµµµHµµµ:µ-µ:µµµH/L,\¡þµµµµµµµµµµµµµ-µµµLµµµHµµµ:µ-µ:µµµN,\¡þ?µµµµµµµµµµµµµ-µµµ-µµµLµµµ:µ-µ:µµµL";¡þx}¡,²&Example 9³26³Multibit´µDµLatchµwithµActive³LowµDirect³Clear¡þ”²/*´µff/latchµformatµ*/¡þµµlatch_bank(IQ,µIQN,µ4)µ{¡þAµµµµdata_inµ:µ"D"µ;¡þ{µµµµenableµµ:µ"EN"µ;¡þµµµµµclearµµµ:µ"CLR'"µ;¡þïµµµµpresetµµ:µ"PRE'"µ;¡þ(µµµµclear_preset_var1µµ:µHµ;¡þbµµµµclear_preset_var2µ:µHµ;¡þœµµ}¡þ	/*µstatetableµformatµ*/¡þ	‚statetable("µDµµµENµµCLµµPRE","IQµIQN")µ{¡þ	¼µµµtableµ:µ"H/LµµHµµµHµµµHµµ:µ-µµµ-µ:µµH/LµµL/H,\¡þ	öµµµµµµµµµµµµ-µµµµLµµµHµµµHµµ:µ-µµµ-µ:µµNµµµµN,\¡þ
0µµµµµµµµµµµµ-µµµµ-µµµLµµµHµµ:µ-µµµ-µ:µµLµµµµH,\¡þ
iµµµµµµµµµµµµ-µµµµ-µµµHµµµLµµ:µ-µµµ-µ:µµHµµµµL,\¡þ
£µµµµµµµµµµµµ-µµµµ-µµµLµµµLµµ:µ-µµµ-µ:µµHµµµµH";¡þ
Ý}’‰ˆD“I501ileaf_page_string1:9-61¥	öäÃËÁâÊË¡Ä,J,4¡Ä,4	c4¡Ä	c4	cJ¡Ä	cJ,JÆÃÁÊËÃ¡Ä,4Ê4ÆÃ¥	öä¥	öä¡¸Á²Defining´µSequentialµCells¡Ô¤ÿ¤9³61¡,É²&Example 9³27³D´µFlip³FlopµwithµScanµClock¡þ\²statetable("´µDµµµSµµCDµµSCµµCP",µµ"IQ")µ{¡þ™µµµtableµ:µ"µH/Lµµ-µµµµ~RµµRµµµ:µ-µ:µµH/L,\¡þÖµµµµµµµµµµµµµ-µµµµH/LµµRµµµ~Rµµ:µ-µ:µµH/L,\¡þµµµµµµµµµµµµµ-µµµµ-µµµµ~Rµµ~Rµµ:µ-µ:µµN,\¡þOµµµµµµµµµµµµµ-µµµµ-µµµµRµµµRµµµ:µ-µ:µµX";¡þŒ}¡,Š²Examples´µofµPortionsµofµCellµDescriptions¡þF²The´µexamplesµinµthisµsectionµareµillustrationsµofµsomeµofµthe¡þconceptsµthisµchapterµdiscusses.¡,?²&Example 9³28³DµLatchesµwithµMaster³SlaveµEnableµInputµPins¡þÒ²cell(ms_latch)´µ{¡þµµareaµ:µ16;¡þKµµpin(D)µ{¡þˆµµµµdirectionµ:µinput;¡þÅµµµµcapacitanceµ:µ1;¡þµµ}¡þ>µµpin(G1)µ{¡þ{µµµµdirectionµ:µinput;¡þ·µµµµcapacitanceµ:µ2;¡þôµµ}¡þ	1µµpin(G2)µ{¡þ	mµµµµdirectionµ:µinput;¡þ	ªµµµµcapacitanceµ:µ2;¡þ	çµµ}¡þ
$µµpin(mq)µ{¡þ
`µµµµinternal_nodeµ:µ"Q";¡þ
µµµµdirectionµ:µinternal;¡þ
Úµµµµinput_mapµ:µ"DµG1";¡þµµµµtiming()µ{’ˆ@D“I501ileaf_page_string1:9-62¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³62¡þÃ²´µµµµµµintrinsic_riseµ:µ0.99;¡þµµµµµµintrinsic_fallµ:µ0.96;¡þAµµµµµµrise_resistanceµ:µ0.1458;¡þµµµµµµfall_resistanceµ:µ0.0653;¡þ¾µµµµµµrelated_pinµ:µ"G1";¡þýµµµµ}¡þ<µµ}¡þ{µµpin(Q)µ{¡þ¹µµµµdirectionµ:µoutput;¡þøµµµµfunctionµ:µ"IQ";¡þ7µµµµinternal_nodeµ:µ"Q";¡þvµµµµinput_mapµ:µ"mqµG2";¡þµµµµµtiming()µ{¡þôµµµµµµintrinsic_riseµ:µ0.99;¡þ2µµµµµµintrinsic_fallµ:µ0.96;¡þqµµµµµµrise_resistanceµ:µ0.1458;¡þ°µµµµµµfall_resistanceµ:µ0.0653;¡þïµµµµµµrelated_pinµ:µ"G2";¡þ.µµµµ}¡þmµµ}¡þ«µµpin(QN)µ{¡þêµµµµdirectionµ:µoutput;¡þ)µµµµfunctionµ:µ"IQN";¡þhµµµµinternal_nodeµ:µ"QN";¡þ§µµµµinput_mapµ:µ"mqµG2";¡þæµµµµtiming()µ{¡þ$µµµµµµintrinsic_riseµ:µ0.99;¡þcµµµµµµintrinsic_fallµ:µ0.96;¡þ¢µµµµµµrise_resistanceµ:µ0.1458;¡þáµµµµµµfall_resistanceµ:µ0.0653;¡þ	 µµµµµµrelated_pinµ:µ"G2";¡þ	_µµµµ}¡þ	µµ}¡þ	Üµµff(IQ,µIQN)µ{¡þ
µµµµclocked_onµµ:µ"G1";¡þ
Zµµµµclocked_on_alsoµµ:µ"G2";¡þ
™µµµµnext_stateµ:µ"D";¡þ
Øµµ}¡þµ’@ºD“I501ileaf_page_string1:9-63¥	öä¥	öä¡¸Á²âDefining´µSequentialµCells¡Ô¤ÿ¤9³63¡þÃ²statetable´µ(µ"DµG",µ"QµQN"µ)µ{¡þµµµtableµ:µ"L/HµHµ:µ-µ-µ:µL/HµµH/L,\¡þ?µµµµµµµµµµµµ-µµµLµ:µ-µ-µ:µNµµµµN";¡þ~µµ}¡þ¼}¡,o²&Example 9³29³FF´µShiftµRegisterµ(timingµremoved)¡þ	²cell(shift_reg_ff)´µ{¡þGµµareaµ:µ16;¡þ…µµpin(D)µ{¡þÃµµµµdirectionµ:µinput;¡þµµµµcapacitanceµ:µ1;¡þ@µµ}¡þ~µµpin(CP)µ{¡þ½µµµµdirectionµ:µinput;¡þûµµµµcapacitanceµ:µ2;¡þ9µµ}¡þwµµpinµ(Q0)µ{¡þ¶µµµµdirectionµ:µoutput;¡þôµµµµinternal_nodeµ:µ"Q";¡þ2µµµµinput_mapµ:µ"DµCP";¡þpµµ}¡þ¯µµpinµ(Q1)µ{¡þíµµµµdirectionµ:µoutput;¡þ+µµµµinternal_nodeµ:µ"Q";¡þiµµµµinput_mapµ:µ"Q0µCP";¡þ¨µµ}¡þæµµpinµ(Q2)µ{¡þ	$µµµµdirectionµ:µoutput;¡þ	cµµµµinternal_nodeµ:µ"Q";¡þ	¡µµµµinput_mapµ:µ"Q1µCP";¡þ	ßµµ}¡þ
µµpinµ(Q3)µ{¡þ
\µµµµdirectionµ:µoutput;¡þ
šµµµµinternal_nodeµ:µ"Q";¡þ
Øµµµµinput_mapµ:µ"Q2µCP";¡þµµ}’ºD“I501ileaf_page_string1:9-64¥	öä¥	öä¡8Á²âDefining´µSequentialµCells¡.9³64¡þÃ²´µµstatetable(µ"DµCP",µ"QµQN"µ)µ{¡þµµµµtableµ:µ"-µµµ~Rµ:µ-µ-µ:µNµµµµN,\¡þBµµµµµµµµµµµµµH/LµµRµ:µ-µ-µ:µH/LµµL/H";¡þ‚µµ}¡þÂ}¡,?²&Example 9³30³FF´µCounterµ(timingµremoved)¡þÞ²cell(counter_ff)´µ{¡þµµareaµ:µ16;¡þ^µµpin(reset)µ{¡þžµµµµdirectionµ:µinput;¡þÝµµµµcapacitanceµ:µ1;¡þµµ}¡þ]µµpin(CP)µ{¡þœµµµµdirectionµ:µinput;¡þÜµµµµcapacitanceµ:µ2;¡þµµ}¡þ\µµpinµ(Q0)µ{¡þ›µµµµdirectionµ:µoutput;¡þÛµµµµinternal_nodeµ:µ"Q0";¡þµµµµinput_mapµ:µ"CPµresetµQ0µQ1";¡þ[µµ}¡þšµµpinµ(Q1)µ{¡þÚµµµµdirectionµ:µoutput;¡þµµµµinternal_nodeµ:µ"Q1";¡þYµµµµinput_mapµ:µ"CPµresetµQ0µQ1";¡þ™µµ}¡þÙµµstatetable(µ"CPµreset",µ"Q0µQ1"µ)µ{¡þ	µµµµtableµ:µ"-µµµLµ:µ-µ-µ:µLµµH,\¡þ	X¡…	X¡	Xµµµµ~RµµHµ:µ-µ-µ:µNµµN,\¡þ	˜¡…	˜¡	˜¡“	˜RµµHµ:µLµLµ:µHµµL,\¡þ	Ø¡…	Ø¡	Ø¡“	ØRµµHµ:µHµLµ:µLµµH,\¡þ
¡…
¡
¡“
RµµHµ:µLµHµ:µHµµH,\¡þ
W¡…
W¡
W¡“
WRµµHµ:µHµHµ:µLµµL";¡þ
—µµ}¡þ
×}’ÐOPS m:m:D€‚Document:10memoryÿ‚Last saved on:Tue, Dec 9, 1997 17:53:18ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:timsps8±:									
				!!!°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°7wst:timsps14b±7:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:0!!!!6*'**'#---'7*-#-* '**:**'"    0    *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%******:*''''%*-----%-****%% *% %    %%%:%%:%%%%%%%%%%%%%%%:
%%%%%%%%%%%%%%%%%%%:%%%*°Bwst:courps8±B:!°Cwst:courps10b±C:*°Rwst:timsps12b±R:                                2*/$!$$!'''!/$''$!$$2$$!*$                                                 $$$$$$2$!!!! $''''' '$$$$  $     2  2               2                   2   $ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿå®å™™ÿÿNîÍåÿÿ‘hˆáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’TøÐD“I501ileaf_page_string1:10-1¥	öäÃËÁâÊË¡Ä,º,¤¡Ä,¤	c¤¡Ä	c¤	cº¡Ä	cº,ºÆÃÁÊËÃ¡Ä,¤Ê¤ÆÃ¥	öä²¡·¡Ï·¡ž·¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿ¤10³1¡,m²².10â²/¥	öä¡`m²â¡,x²	Defining´µMemoryµModules¡ò²¥	öäÁÊËÃ¡Ä,ÖÊÖÆÃ¡	öò¡þ¦This´µchapterµdescribesµhowµtoµmodelµmemoryµmodulesµ(largeµASIC¡þîlibraryµcellµelements)µwithµLibraryµCompilerµsyntax.¡,ú²Modeling´µMemoryµModulesµµ¡þ¼²Each´µofµtheµfollowingµtwoµwaysµofµrepresentingµRAMµmodulesµhas¡þ	anµadvantageµandµaµdrawback:¡þ	ŠAsµaµdesignµnetlistµofµsmallerµprimitiveµelements.¡X	ÓAdvantage:µCapturesµtheµfunctionµandµtimingµofµtheµcell.¡X
Drawback:µCanµexceedµmemoryµandµperformanceµcapacities.¡þ
ƒAsµaµblackµboxµwithµinterfaceµtimingµspecificationµ(ITS)¡X
ÌAdvantage:µCapturesµtheµtimingµofµtheµcell.µDrawback:µDoesµnot¡Xdefineµtheµcell'sµfunction.’ÐtD“I501ileaf_page_string1:10-2¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³2¡þÉ²To´µspecifyµ²&bothµ²theµfunctionµandµtimingµofµunparameterizedµRAMµor¡þROMµmodules,µuseµtheµmemoryµgroupsµdescribedµinµthisµchapter¡þZandµITS.¡þêNote:²¡X3²TestSim,µtheµfaultµsimulatorµinµtheµTestµCompilerµprogram,µuses¡X|memoryµgroups;µDesignµCompilerµprogramµdoesµnot.¡þStatetableµformatµsupportsµmemoryµcellsµwithµtheµfollowing¡þTcharacteristics:µ²µµ¡þÌ²²S¡XÌ²SynchronousµandµasynchronousµRAMs¡þ7²S¡X7²Multiportµandµsingleµport¡þ¡²S¡X¡²Sameµdata³inµandµdata³outµport¡þ²S¡X²Sameµreadµandµwriteµaddressµports¡þu²S¡Xu²Separateµreadµandµwriteµaddressµports¡þß²S¡Xß²Controlµpinsµ(chipµselect,µwriteµenable,µandµclock)¡þJ²S¡XJ²Abilityµtoµwriteµtoµbitsµofµaµword¡þÌFigure 10³1µshowsµtheµRAMµorµROMµmoduleµsupported.µLogic¡þblocksµareµnetlistsµofµarbitraryµcombinationalµandµsequentialµlogic.¡þ]Theµmemoryµblockµisµanµarrayµofµstorageµelementsµinµwhichµevery¡þ¦individualµbitµcanµbeµreadµfromµorµwrittenµto.¡,	A²&Figure 10³1³SupportedµMemoryµModuleµModel¡,²¥	öä¡€	£²RAM/ROM´µcell¡
kInputs¡¤
mLogic¡¨
mMemoryµBlock¡L
mLogic¡È
kOutputsÃËÁÊË¡Äf	ýB	ý¡ÄB	ýB
±¡ÄB
±f
±¡Äf
±f	ýÆÃÃ¡Ä	ýê	ý¡Äê	ýê
±¡Äê
±
±¡Ä
±	ýÆÃÃ¡Ä~	ýÒ	ý¡ÄÒ	ýÒ
±¡ÄÒ
±~
±¡Ä~
±~	ýÆÃÃÊË¡ÄÐ	qX	qË¡ÄX	qXË¡ÄXÐË¡ÄÐÐ	qÆÃÊËÃ¡Ä”
af
bÆÃÃ¡ÄB
`~
^ÆÃÃ¡ÄÒ
]
]ÆÃÃ¡Äê
_¼
aÆÃ²¡Ê’tÜD“I501ileaf_page_string1:10-3¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿ¤10³3¡þÉ²This´µisµtheµgeneralµprocedureµforµmodelingµaµmemoryµmodule:¡þN1.¡XNObtainµtheµmodule'sµITSµdescriptionµfromµtheµASICµvendor,µor¡X”createµone.µSeeµChapterµ15,µInterfaceµTimingµofµComplex¡XÛSequentialµBlocks,"µforµinformationµaboutµcreatingµanµITS¡X!description.¡þ•2.¡X•Inµtheµtechnologyµlibrary,µcreateµmemoryµcellsµbyµaddingµthe¡XÜmemoryµgroupµtoµaµcellµgroup.¡þO3.¡XOInµtheµbusµgroupµofµtheµmemoryµcell,µuseµtheµmemory_write¡X–groupµtoµdefineµtheµwayµdataµisµwrittenµintoµtheµmemoryµblock.¡XÜUseµtheµmemory_readµgroupµtoµdefineµtheµfunctionµofµtheµoutput.¡X#Youµcanµuseµstatetableµformatµtoµdescribeµtheµfunctionµofµthe¡Xicell.µSeeµChapterµ9,µDefiningµSequentialµCells,"µforµinformation¡X°aboutµstatetableµformat.¡þ$4.¡X$UseµtheµLibraryµCompilerµupdate_libµorµadd_moduleµcommand¡Xjtoµmergeµtheµtechnologyµlibraryµ.dbµfileµwithµtheµmodule'sµITS¡X±descriptionµandµcreateµaµnewµ.dbµfileµthatµincludesµmemory¡X÷information.µTheµupdate_libµandµadd_moduleµcommandsµtreat¡X>theµmoduleµlikeµaµsimpleµsequentialµcell.µYouµcanµuse¡X„add_moduleµtoµaddµmemoryµmodulesµonly.¡þø5.¡XøUseµtheµLibraryµCompilerµreport_libµ³full_tableµcommandµto¡X?reportµtheµmemoryµgroupsµassociatedµwithµtheµpins.µµ¡þÐReferµtoµtheµExamplesµofµMemoryµModules"µsectionµinµthisµchapter¡þ	forµexamplesµofµmemoryµmodulesµandµtheirµfunctionalµdescription.’ÜaD“I501ileaf_page_string1:10-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,	Ú,	Ä¡Ä,	Ä	c	Ä¡Ä	c	Ä	c	Ú¡Ä	c	Ú,	ÚÆÃÁÊËÃ¡Äþ	ÄÊ	ÄÆÃ¥	öä¥	öä¡8Á²Defining´µMemoryµModules¡.10³4¡,Õ²memory´µGroupµ¡þµ²The´µmemoryµgroupµisµinµtheµcellµgroup.µThisµgroupµtagsµtheµcellµasµa¡þþmemoryµcellµandµcontainsµgeneralµinformationµaboutµtheµmemory¡þGcellµwithµtheseµcomponents:¡þÜ²S¡XÜ²typeµattribute¡þ\²S¡X\²address_widthµattribute¡þÜ²S¡XÜ²word_widthµattribute¡þ\²S¡X\²column_addressµattribute¡þÜ²S¡XÜ²row_addressµattribute¡þÏ²Syntax¡þ²cell()¡þ^´µµmemory()µ{¡þµµµµµtypeµ:µ[ramµ|µromµ];¡þÝµµµµµaddress_widthµ:µ<#µofµaddressµinputs>;¡þµµµµµword_widthµ:µ<#µofµbitsµinµtheµmemoryµword>;¡þ\µµµµµcolumn_addressµ:µ"²(integer²"µ;¡þ›µµµµµrow_addressµ:µ"²(integer²"µ;¡þÚµµ}¡þ	}¡þ
²type´µAttributeµ¡þ
Ì²This´µattributeµspecifiesµtheµtypeµofµmemoryµblock.µTypeµcanµbeµram¡þorµrom.’atD“I501ileaf_page_string1:10-5¥	öäÃËÁâÊË¡Ä,‹,u¡Ä,u	cu¡Ä	cu	c‹¡Ä	c‹,‹ÆÃÁÊËÃ¡ÄþuÊuÆÃ¥	öäÃÁÊË¡Ä,ô,Þ¡Ä,Þ	cÞ¡Ä	cÞ	cô¡Ä	cô,ôÆÃÁÊËÃ¡ÄþÞÊÞÆÃ¥	öäÃÁÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öä¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿ¤10³5¡þÉ²Example¡þ²type´µ:µram;¡þÅ²address_width´µAttributeµ¡þC²This´µattributeµspecifiesµtheµnumberµofµinputsµneededµtoµaddressµthe¡þ‹memoryµblock.¡þ3²Example¡þx²address_width´µ:µ4;¡þ.²word_width´µAttributeµ¡þ¬²This´µattributeµspecifiesµtheµwidthµ(numberµofµdataµbitsµinµtheµword)µof¡þõtheµmemoryµblock.¡þœ²Example¡þâ²word_width´µ:µ2;¡þ˜²column_address´µSimpleµAttributeµ¡þ²This´µattributeµspecifiesµtheµnumberµorµrangeµofµnumbersµofµindices¡þ^forµaµcolumn.¡þàSyntax:¡,	D²-column_address´µ:µ"index1²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µ[range1²B¤[¤ÿù¤i¤ÿù¤n¤ÿù¤t¤ÿù¤:¤ÿù¤i¤ÿù¤n¤ÿù¤t¤ÿù¤]¤ÿù²-µindex2²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µindex3²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µ...]"µ;¡þ	»²integer¡X
Number´µorµrangeµofµnumbersµofµindices.¡þ
sExample:¡þ
Ý²column_address´µ:µ"0:4µ5"µ;’tèD“I501ileaf_page_string1:10-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Ý,Ç¡Ä,Ç	cÇ¡Ä	cÇ	cÝ¡Ä	cÝ,ÝÆÃÁÊËÃ¡Ä,ÇÊÇÆÃ¥	öä¥	öä¡8Á²Defining´µMemoryµModules¡.10³6¡þÏ²row_address´µSimpleµAttributeµ¡þn²This´µattributeµspecifiesµtheµnumberµorµrangeµofµnumbersµofµindices¡þ¶forµaµrow.¡þYSyntax:¡,Ô²-row_address´µ:µ"index1²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µ[range1²B¤[¤ÿù¤i¤ÿù¤n¤ÿù¤t¤ÿù¤:¤ÿù¤i¤ÿù¤n¤ÿù¤t¤ÿù¤]¤ÿù²-µindex2²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µindex3²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-µ...]"µ;¡þQ²integer¡XšNumber´µorµrangeµofµnumbersµofµindices.¡þExample:¡þ ²row_address´µ:µ"6:9"µ;¡þ;²Example 10³18´µatµtheµendµofµthisµchapterµshowsµaµRAMµcellµwithµthe¡þ„newµmemoryµdescription.µYouµcanµalsoµfindµmoreµinformationµabout¡þÌtheµsyntaxµofµcolumn_addressµandµrow_addressµattributesµinµthe¡þ²&LibraryµCompilerµReferenceµManualµVolumeµ1².¡,²memory_read´µGroupµ¡þÝ²The´µmemory_readµgroupµisµinµtheµbusµgroup.µAllµmemory³block¡þ	%outputµrequiresµaµmemory_readµgroupµtoµdefineµhowµtheµoutput¡þ	nfunctions.µµThisµgroupµisµallowedµonlyµonµoutputµbusesµandµinternal¡þ	·buses.µItµcannotµbeµusedµinµinputµbusµgroups.µTheµbusµcannotµhave¡þ	ÿaµstate_functionµattributeµorµanµinternal_nodeµattribute.’è~D“I501ileaf_page_string1:10-7¥	öäÃËÁâÊË¡Ä,½,§¡Ä,§	c§¡Ä	c§	c½¡Ä	c½,½ÆÃÁÊËÃ¡Äþ§Ê§ÆÃ¥	öäÃÁÊË¡Ä,â,Ì¡Ä,Ì	cÌ¡Ä	cÌ	câ¡Ä	câ,âÆÃÁÊËÃ¡Ä,ÌÊÌÆÃ¥	öä¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿ¤10³7¡þÉ²Syntax¡þ²cell()¡þU´µµ...¡þ“µµbus()µ{¡þÒµµµµµ...¡þµµµµµmemory_read()µ{¡þNµµµµµµµaddressµ:<²(ram_addrµbus²>;¡þµµµµµ}¡þËµµ}¡þ	}¡þ÷²address´µAttributeµ¡þ¥²This´µattributeµspecifiesµtheµnameµofµtheµaddressµbusµtoµbeµread.µThis¡þíattributeµisµrequired.µTheµwidthµofµtheµbusµmustµbeµtheµsameµas¡þ6address_widthµinµtheµmemoryµgroup.µAnµoutputµbusµwithµa¡þmemory_readµattributeµalwaysµreflectsµtheµvaluesµstoredµinµthe¡þÇlocationµpointedµatµbyµtheµaddress.¡þ¾²Example¡þ²address´µ:µADDR;¡,	"²memory_write´µGroupµ¡þ	õ²The´µmemory_writeµgroupµisµinµtheµbusµgroup.µAllµdataµinputµrequires¡þ
=aµmemory_writeµgroupµtoµdefineµhowµtheµdataµisµwrittenµintoµthe¡þ
†memoryµblock.µTheµcomponentsµinµthisµgroupµare¡þ²S¡X²addressµattribute’~½D“I501ileaf_page_string1:10-8¥	öäÃËÁâÊË¡Ä,#,¡Ä,	c¡Ä	c	c#¡Ä	c#,#ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,	`,	J¡Ä,	J	c	J¡Ä	c	J	c	`¡Ä	c	`,	`ÆÃÁÊËÃ¡Äþ	JÊ	JÆÃ¥	öä¥	öä¡8Á²Defining´µMemoryµModules¡.10³8¡þÉ²²S¡XÉ²clocked_on´µattribute¡þ=²S¡X=²enableµattribute¡þ²Syntax¡þY²cell()¡þ–´µµbus()µ{¡þÓµµµµµ...¡þµµµµµmemory_write()µ{¡þMµµµµµµµaddressµ:<²(ram_addrµbus²>;¡þŠµµµµµµµclocked_onµ:µ<²(clockµport/bus²>;¡þÇµµµµµµµenableµ:µ<²(enableµport/bus²>;¡þµµµµµ}¡þAµµ}¡þ~}¡þ\²address´µAttributeµ¡þý²This´µattributeµspecifiesµtheµnameµofµtheµbusµtoµbeµwritten.µµThis¡þFattributeµisµrequired.µTheµwidthµofµtheµbusµmustµbeµtheµsameµas¡þaddress_widthµinµtheµmemoryµgroup.¡þp²Example¡þ»²address´µ:µADDR;¡þ	š²clocked_on´µAttributeµ¡þ
:²This´µattributeµidentifiesµtheµactiveµedgeµofµtheµclockµinputµforµa¡þ
ƒsynchronousµRAMµcell.µItµisµaµpinµorµbusµname.µIfµitµisµaµbus,µitµmust¡þ
Ìhaveµtheµsameµwidthµasµword_widthµinµtheµmemoryµgroup.µYou¡þcannotµspecifyµclocked_onµifµenableµisµspecified.’½¾D“I501ileaf_page_string1:10-9¥	öäÃËÁâÊË¡Ä,¨,’¡Ä,’	c’¡Ä	c’	c¨¡Ä	c¨,¨ÆÃÁÊËÃ¡Äþ’Ê’ÆÃ¥	öäÃÁÊË¡Ä,B,,¡Ä,,	c,¡Ä	c,	cB¡Ä	cB,BÆÃÁÊËÃ¡Äþ,Ê,ÆÃ¥	öä¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿ¤10³9¡þÉ²Example¡þ²clocked_on´µ:µ"EN";¡þá²enable´µAttributeµ¡þu²This´µattributeµidentifiesµtheµactiveµlevelµofµtheµenableµinputµforµan¡þ¾asynchronousµRAMµcell.µItµisµaµpinµorµbusµname.µIfµitµisµaµbus,µitµmust¡þhaveµtheµsameµwidthµasµword_widthµinµtheµmemoryµgroup.µµThis¡þOattributeµrequiresµtheµaddressµattribute.µYouµcannotµspecifyµenableµif¡þ˜clocked_onµisµspecified.¡þc²Example¡þ­²enable´µ:µWR;¡þ|²Checking´µErrorsµinµMemoryµGroupsµ¡þ²The´µLibraryµCompilerµprogramµmakesµtheseµchecksµforµmemory¡þXerrors:¡þÕ²S¡XÕ²AµROMµcellµthatµhasµaµmemory_writeµgroup.¡þC²S¡XC²AµROMµcellµthatµdoesµnotµhaveµatµleastµoneµmemory_readµgroup.¡þ±²S¡X±²AµRAMµcellµthatµdoesµnotµhaveµatµleastµoneµmemory_readµgroup¡X÷andµmemory_writeµgroup.¡þ	e²S¡X	e²Addressµwidthsµinµaµcellµthatµdoµnotµmatchµtheµaddress_width¡X	¬valueµinµtheµmemoryµgroup.¡þ
²S¡X
²Dataµinputµwidthsµinµaµcellµthatµdoµnotµmatchµtheµword_width¡X
`valueµinµtheµmemoryµgroup.¡þ
Î²S¡X
Î²Dataµoutputµwidthsµinµaµcellµthatµdoµnotµmatchµtheµword_width¡Xvalueµinµtheµmemoryµgroup.’¾‰D“I501ileaf_page_string1:10-10¥	öäÃËÁâÊË¡Ä,,‡¡Ä,‡	c‡¡Ä	c‡	c¡Ä	c,ÆÃÁÊËÃ¡Ä,‡Ê‡ÆÃ¥	öä¥	öä¡8Á²Defining´µMemoryµModules¡.10³10¡þÉ²²S¡XÉ²Width´µofµtheµclocked_onµandµenableµbusµinµaµcellµthatµdoesµnot¡Xmatchµtheµword_widthµvalueµinµtheµmemoryµgroup.µ(Noteµthat¡XVclocked_onµandµenableµpinsµdoµnotµhaveµtoµmatchµtheµmemory¡Xgroupµword_widthµvalue.)¡þ²S¡X²Twoµreadµportsµorµtwoµwriteµportsµthatµhaveµtheµsameµportµinµthe¡X\addressµattribute.¡þÔ²S¡XÔ²Numberµofµindicesµinµaµcolumn_addressµthatµareµmoreµthanµthe¡Xaddress_widthµvalueµofµtheµmemoryµgroup.¡þ“²S¡X“²Numberµofµindicesµinµaµrow_addressµthatµareµmoreµthanµthe¡XÙaddress_widthµvalueµofµtheµmemoryµgroup.¡þR²S¡XR²Rangesµdefinedµinµtheµcolumn_addressµandµrow_address¡X˜attributesµthatµareµoutsideµofµtheµrangeµofµtheµaddress_width¡Xßvalueµforµtheµmemoryµgroup.¡þW²S¡XW²Moreµthanµoneµcolumn_addressµandµrow_addressµcombination¡Xžisµdefinedµandµmoreµthanµoneµtakenµintoµconsideration.¡þ²S¡X²Anµindexµisµfoundµinµbothµtheµcolumn_addressµandµrow_address¡X\list.¡þÕ²S¡XÕ²Anµindexµisµnotµusedµbyµeitherµtheµaddressµcolumnµorµrow.¡,Ý²update_lib´µCommandµ¡þ	©²The´µupdate_libµcommandµsupportsµtheµstatetableµformatµasµfullyµas¡þ	òtheµread_libµcommandµdoes.µToµtheµuser,µthereµisµnoµdiscernible¡þ
:differenceµbetweenµaµcellµcreatedµbyµread_libµandµaµcellµcreatedµby¡þ
ƒupdate_libµwithµregardsµtoµtheµstatetableµformat.µNote,µhowever,µthat¡þ
Ìreport_libµdoesµnotµreportµonµstatetableµinformationµafterµan¡þupdate_lib.’‰¦D“I501ileaf_page_string1:10-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,3,¡Ä,	c¡Ä	c	c3¡Ä	c3,3ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿŠ10³11¡,Õ²add_module´µCommand¡þš²The´µadd_moduleµcommandµisµmemory³specific.µItµhasµtheµsame¡þâinterfaceµasµupdate_lib,µbutµitµaddsµonlyµmemoryµcellsµandµdoesµnot¡þ+requireµaµlicense.¡þÒSeeµChapterµ3,µUsingµtheµLibraryµCompilerµShellµInterface,"µor¡þChapterµ4,µUsingµtheµLibraryµCompilerµGraphicalµInterface,"µfor¡þcinformationµaboutµadd_module.¡,t²report_lib´µCommandµµ¡þ8²The´µreport_libµcommandµwithµtheµ³full_tableµflagµreportsµonµmemory¡þgroupsµofµmemoryµcells.¡þ(Example 10³1µshowsµaµreport_libµ³full_tableµmem.dbµcell.¡,Þ²&Example 10³1³report_libµ³full_tableµmem.dbµcell1¡þt²PIN(DI[0]):¡þ±¡…±MEMORY_WRITE:´µTRUE¡þïEND_PINµDI[0];¡þ	,µ¡þ	iPIN(DI[1]):¡þ	§¡…	§MEMORY_WRITE:µTRUE¡þ	äEND_PINµDI[1];¡þ
!µ¡þ
^PIN(DI[2]):¡þ
œ¡…
œMEMORY_WRITE:µTRUE¡þ
ÙEND_PINµDI[2];¡þµ’¦!D“I501ileaf_page_string1:10-12¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³12¡þÃ²PIN(DI[3]):¡þ¡…MEMORY_WRITE:´µTRUE¡þ=END_PINµDI[3];¡þ{µ¡þ¸PIN(DI[4]):¡þõ¡…õMEMORY_WRITE:µTRUE¡þ2END_PINµDI[4];¡þoµ¡þ­PIN(DI[5]):¡þê¡…êMEMORY_WRITE:µTRUE¡þ'END_PINµDI[5];¡þdµ¡þ¡PIN(DI[6]):¡þß¡…ßMEMORY_WRITE:µTRUE¡þEND_PINµDI[6];¡þYµ¡þ–PIN(DI[7]):¡þÔ¡…ÔMEMORY_WRITE:µTRUE¡þEND_PINµDI[7];¡þNµ¡þ‹PIN(DO[0]):¡þÈ¡…ÈMEMORY_READ:µTRUE¡þEND_PINµDO[0];¡þCµ¡þ€PIN(DO[1]):¡þ½¡…½MEMORY_READ:µTRUE¡þûEND_PINµDO[1];¡þ8µ¡þuPIN(DO[2]):¡þ²¡…²MEMORY_READ:µTRUE¡þïEND_PINµDO[2];¡þ	-µ¡þ	jPIN(DO[3]):¡þ	§¡…	§MEMORY_READ:µTRUE¡þ	äEND_PINµDO[3];¡þ
!µ¡þ
_PIN(DO[4]):¡þ
œ¡…
œMEMORY_READ:µTRUE¡þ
ÙEND_PINµDO[4];¡þµ’!ÙD“I501ileaf_page_string1:10-13¥	öäÃËÁâÊË¡Ä,ê,Ô¡Ä,Ô	cÔ¡Ä	cÔ	cê¡Ä	cê,êÆÃÁÊËÃ¡Ä,ÔÊÔÆÃ¥	öä¥	öä¡¥Á²Defining´µMemoryµModules¡Ô¤ÿŠ10³13¡þÃ²PIN(DO[5]):¡þ¡…MEMORY_READ:´µTRUE¡þ=END_PINµDO[5];¡þ·PIN(DO[6]):¡þõ¡…õMEMORY_READ:µTRUE¡þ2END_PINµDO[6];¡þoµ¡þ¬PIN(DO[7]):¡þé¡…éMEMORY_READ:µTRUE¡þ&END_PINµDO[7];¡,*²Examples´µofµMemoryµModulesµ¡þí²These´µareµexamplesµofµmemoryµmodulesµinµaµlibrary.¡þ’Example 10³2µshowsµanµasynchronousµ4³wordµbyµ2³bitµRAMµcell¡þÛwithµaµsingleµport.¡,²&Example 10³2³Asynchronousµ4x2µRAMµCellµwithµSingleµPort¡þ$²library´µ(µmemory)µ{¡þa...¡þžtype(bus4)µ{¡þÒµµbase_typeµ:µarray;¡þ	µµdata_typeµ:µbit;¡þ	:µµbit_widthµ:µ4;¡þ	nµµbit_fromµ:µ0;¡þ	¢µµbit_toµ:µ3;¡þ	Öµµdowntoµ:µfalse;¡þ

}¡þ
Gtype(bus2)µ{¡þ
{µµbase_typeµ:µarray;¡þ
¯µµdata_typeµ:µbit;¡þ
âµµbit_widthµ:µ2;¡þµµbit_fromµ:µ0;’Ù¸D“I501ileaf_page_string1:10-14¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³14¡þÃ²´µµbit_toµ:µ1;¡þ÷µµdowntoµ:µfalse;¡þ+}¡þh...¡þ¤cell(async_single)µ{¡þáµµµµµareaµ:µ778.000;¡þµµµµµinterface_timingµ:µTRUE;¡þRµµµµµmemory()µ{µ/*µIndicatesµthisµisµaµmemoryµcellµ*/¡þ†µµµµµµµµtypeµ:µram;¡þºµµµµµµµµaddress_widthµ:µ4;¡þîµµµµµµµµword_widthµ:µ2;¡þ"µµµµµ}¡þ_µµµµµbusµ(RA)µ{¡þ’µµµµµµµµbus_typeµµ:µ"bus4";µ¡þÆµµµµµµµµdirectionµ:µinput;¡þúµµµµµµµµcapacitanceµ:µ0.241;¡þ.µµµµµµµµtimingµ()µ{µ/*Addressµsetupµtimeµ*/¡þbµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ–µµµµµµµµµµµintrinsic_riseµ:µ1.7;µ¡þÊµµµµµµµµµµµintrinsic_fallµ:µ4.2;¡þþµµµµµµµµµµµrelated_pinµ:µ"WR";µ¡þ2µµµµµµµµµ}¡þnµµµµµµµµµtimingµ()µ{µ/*µAddressµholdµtimeµ*/¡þ¢µµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þÖµµµµµµµµµµµµintrinsic_riseµ:µ0.11;µµµ¡þ
µµµµµµµµµµµµintrinsic_fallµ:µ0.23;¡þ>µµµµµµµµµµµµrelated_pinµ:µ"WR";µ¡þrµµµµµµµµµ}µµµµµµ¡þ¦µµµµµ}¡þãµµµµµbusµ(DI)µ{¡þµµµµµµµµbus_typeµµµ:µ"bus2"¡þJµµµµµµµµdirectionµ:µinput;¡þ~µµµµµµµµcapacitanceµ:µ0.144;¡þ»µµµµµµµµmemory_write()µ{µ/*µIndicateµthisµisµaµwriteµportµ*/¡þïµµµµµµµµµµµµaddressµ:µRA;¡þ	#µµµµµµµµµµµµenableµ:µWR;¡þ	Wµµµµµµµµµ}¡þ	”µµµµµµµµµtimingµ()µ{µ/*µInputµdataµsetupµtimeµ*/¡þ	Èµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ	üµµµµµµµµµµµµintrinsic_riseµ:µ1.7;µ¡þ
/µµµµµµµµµµµµintrinsic_fallµ:µ1.1;¡þ
cµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þ
—µµµµµµµµµµ}’¸ýD“I501ileaf_page_string1:10-15¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³15¡þÃ²´µµµµµµµµµµtimingµ()µ{µ/*µInputµDataµholdµtimeµ*/¡þ÷µµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ+µµµµµµµµµµµµµintrinsic_riseµ:µ0.11;¡þ_µµµµµµµµµµµµµintrinsic_fallµ:µ0.12;¡þ’µµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þÆµµµµµµµµµµ}¡þúµµµµµ}¡þ7µµµµµpinµ(WR)µ{¡þkµµµµµµµdirectionµ:µinput;¡þŸµµµµµµµcapacitanceµ:µ0.28;¡þÓµµµµµµµclockµ:µtrue;µ/*µWRµpulseµisµmodeledµasµaµclockµ*/¡þµµµµµ}¡þDµµµµµbus(DO){¡þwµµµµµµµbus_typeµµ:µ"bus2";¡þ«µµµµµµµdirectionµ:µoutput;¡þßµµµµµµµcapacitanceµ:µ0.097;¡þµµµµµµµmemory_read()µ{µ/*µIndicatesµthatµthisµisµaµreadµportµ*/¡þPµµµµµµµµµµµaddressµ:µRA;¡þ„µµµµµµµ}¡þÁµµµµµµµtimingµ()µ{¡þõµµµµµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡þ)µµµµµµµµµµµintrinsic_riseµ:µ5.15;µ¡þ\µµµµµµµµµµµintrinsic_fallµ:µ4.51;¡þµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þÄµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þøµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þ,µµµµµµµ}¡þ`µµµµ}µµµ¡þ”}¡þÑ...¡þ}¡þ©²Example 10³3´µshowsµanµasynchronousµ16³wordµbyµ18³bitµRAMµcell¡þñwithµaµsingleµport.µThisµcellµhasµaµdifferentµsize,µbutµtheµsameµtiming¡þ	:andµfunctionalityµasµtheµoneµinµExample 10³2.’ý7D“I501ileaf_page_string1:10-16¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³16¡,É²&Example 10³3³Asynchronous´µ16x18µRAMµCellµwithµSingleµPort¡þa²library´µ(µmemory)µ{¡þŸ...¡þÝtype(bus4)µ{¡þµµbase_typeµ:µarray;¡þYµµdata_typeµ:µbit;¡þ—µµbit_widthµ:µ4;¡þÕµµbit_fromµ:µ0;¡þµµbit_toµ:µ3;¡þQµµdowntoµ:µfalse;¡þ}¡þÌtype(bus18)µ{¡þ
µµbase_typeµ:µarray;¡þHµµdata_typeµ:µbit;¡þ†µµbit_widthµ:µ18;¡þÄµµbit_fromµ:µ0;¡þµµbit_toµ:µ17;¡þ@µµdowntoµ:µfalse;¡þ~}¡þ¼...¡þúcellµ(async_single_16X18)µ{¡þ8µµµµµµareaµ:µ2556.000;¡þvµµµµµµinterface_timingµ:µTRUE;¡þ´µµµµµµmemory()µ{¡þñµµµµµµµµtypeµ:µram;¡þ/µµµµµµµµaddress_widthµ:µ4;¡þmµµµµµµµµword_widthµ:µ18;¡þ«µµµµµµ}¡þéµµµµµµbusµ(RA)µ{¡þ	'µµµµµµµµbus_typeµµ:µ"bus4";¡þ	eµµµµµµµµdirectionµ:µinput;¡þ	£µµµµµµµµcapacitanceµ:µ0.241;¡þ	áµµµµµµµµtimingµ()µ{µ/*Addressµsetupµtimeµ*/¡þ
µµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ
]µµµµµµµµµµµintrinsic_riseµ:µ1.7;¡þ
›µµµµµµµµµµµintrinsic_fallµ:µ4.2;¡þ
Øµµµµµµµµµµµrelated_pinµ:µ"WR";¡þµµµµµµµµµ}’7OD“I501ileaf_page_string1:10-17¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³17¡þÃ²´µµµµµµµµµtimingµ()µ{µ/*µAddressµholdµtimeµ*/¡þµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ>µµµµµµµµµµµµintrinsic_riseµ:µ0.11;¡þ{µµµµµµµµµµµµintrinsic_fallµ:µ0.23;¡þ¹µµµµµµµµµµµµrelated_pinµ:µ"WR";¡þöµµµµµµµµµ}¡þ4µµµµµµ}¡þqµµµµµbusµ(DI)µ{¡þ¯µµµµµµµµbus_typeµµµ:µ"bus18"¡þìµµµµµµµµdirectionµ:µinput;¡þ)µµµµµµµµcapacitanceµ:µ1.46;¡þgµµµµµµµµmemory_write()µ{¡þ¤µµµµµµµµµµµaddressµ:µRA;¡þâµµµµµµµµµµµenableµ:µWR;¡þµµµµµµµµ}¡þ]µµµµµµµµtimingµ()µ{µ/*µInputµdataµsetupµtimeµ*/¡þšµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þØµµµµµµµµµµµµintrinsic_riseµ:µ1.7;¡þµµµµµµµµµµµµintrinsic_fallµ:µ1.1;¡þSµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þµµµµµµµµ}¡þÎµµµµµµµµtimingµ()µ{µ/*µInputµDataµholdµtimeµ*/¡þµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þIµµµµµµµµµµµµintrinsic_riseµ:µ0.11;¡þ†µµµµµµµµµµµµintrinsic_fallµ:µ0.12;¡þÃµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þµµµµµµµµ}¡þ>µµµµµ}¡þ|µµµµµpinµ(WR)µ{¡þ¹µµµµµµµdirectionµ:µinput;¡þ÷µµµµµµµcapacitanceµ:µ0.28;¡þ	4µµµµµµµclockµ:µtrue;¡þ	rµµµµµ}¡þ	¯µµµµµbus(DO){¡þ	íµµµµµµµbus_typeµµ:µ"bus18";¡þ
*µµµµµµµdirectionµ:µoutput;¡þ
hµµµµµµµcapacitanceµ:µ0.097;¡þ
¥µµµµµµµmemory_read()µ{µµµµµ/*µIndicatesµthatµthisµisµa¡þ
Ùreadµportµ*/¡þµµµµµµµµµµaddressµ:µRA;’O+D“I501ileaf_page_string1:10-18¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³18¡þÃ²´µµµµµµµ}¡þµµµµµµµtimingµ()µ{¡þ?µµµµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelay¡þs*/¡þ±µµµµµµµµµµintrinsic_riseµ:µ5.15;¡þïµµµµµµµµµµintrinsic_fallµ:µ4.51;¡þ-µµµµµµµµµµrise_resistanceµ:µ0.020;¡þkµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ©µµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þçµµµµµµµ}¡þ%µµµµµ}¡þc}¡þ¡...¡þß}¡þ€²Example 10³4´µshowsµanµasynchronousµ16³wordµbyµ32³bitµRAMµcell¡þÉwithµaµsingleµport.µThisµcellµhasµaµdifferentµsizeµbutµtheµsameµtiming¡þandµfunctionalityµasµtheµasynchronousµcellsµinµExample 10³2µand¡þZExample 10³3.¡,²&Example 10³4³Asynchronousµ16x32µRAMµCellµwithµSingleµPort¡þ²²library´µ(µmemory)µ{¡þð...¡þ.type(bus4)µ{¡þlµµbase_typeµ:µarray;¡þªµµdata_typeµ:µbit;¡þèµµbit_widthµ:µ4;¡þ	&µµbit_fromµ:µ0;¡þ	dµµbit_toµ:µ3;¡þ	¢µµdowntoµ:µfalse;¡þ	à}¡þ
type(bus32)µ{¡þ
\µµbase_typeµ:µarray;¡þ
šµµdata_typeµ:µbit;¡þ
Øµµbit_widthµ:µ32;¡þµµbit_fromµ:µ0;’+€D“I501ileaf_page_string1:10-19¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³19¡þÃ²´µµbit_toµ:µ31;¡þµµdowntoµ:µfalse;¡þ=}¡þ{...¡þ¸cellµ(async_single_16X32)µ{¡þõµµµµµµareaµ:µ4908.000;¡þ2µµµµµµinterface_timingµ:µTRUE;¡þoµµµµµµmemory()µ{µ/*µIndicateµthisµisµaµmemoryµcellµ*/¡þ­µµµµµµµµtypeµ:µram;¡þêµµµµµµµµaddress_widthµ:µ4;¡þ'µµµµµµµµword_widthµ:µ32;¡þdµµµµµµ}¡þ¡µµµµµµbusµ(RA)µ{¡þßµµµµµµµµµµbus_typeµµ:µ"bus4";¡þµµµµµµµµµµdirectionµ:µinput;¡þYµµµµµµµµµµcapacitanceµ:µ0.241;¡þ–µµµµµµµµµµtimingµ()µ{µ/*Addressµsetupµtimeµ*/¡þÔµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.7;¡þNµµµµµµµµµµµµµµµµintrinsic_fallµ:µ4.2;¡þ‹µµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þÈµµµµµµµµµµ}¡þµµµµµµµµµµtimingµ()µ{µ/*µAddressµholdµtimeµ*/¡þCµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ€µµµµµµµµµµµµµµintrinsic_riseµ:µ0.11;¡þ½µµµµµµµµµµµµµµintrinsic_fallµ:µ0.23;¡þûµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þ8µµµµµµµµµ}¡þuµµµµµ}¡þ²µµµµµbusµ(DI)µ{¡þïµµµµµµµµµµµbus_typeµµµ:µ"bus32"¡þ	-µµµµµµµµµµµdirectionµ:µinput;¡þ	jµµµµµµµµµµµcapacitanceµ:µ0.144;¡þ	§µµµµµµµµµµµmemory_write()µ{/*µIndicatesµaµwriteµportµ*/¡þ	äµµµµµµµµµµµµµaddressµ:µRA;¡þ
!µµµµµµµµµµµµµenableµ:µWR;¡þ
_µµµµµµµµµµµ}¡þ
œµµµµµµµµµµµtimingµ()µ{¡þ
Ùµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.7;’€D“I501ileaf_page_string1:10-20¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³20¡þÃ²´µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.1;¡þµµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þ>µµµµµµµµµµµ}¡þ{µµµµµµµµµµµtimingµ()µ{¡þ¹µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þöµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.11;¡þ4µµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.12;¡þqµµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þ¯µµµµµµµµµµµ}¡þíµµµµµ}¡þ*µµµµµpinµ(WR)µ{¡þhµµµµµµµdirectionµ:µinput;¡þ¥µµµµµµµcapacitanceµ:µ0.28;¡þãµµµµµµµclockµ:µtrue;¡þ µµµµµ}¡þ^µµµµµbus(DO){¡þ›µµµµµµµbus_typeµµ:µ"bus32";¡þÙµµµµµµµdirectionµ:µoutput;¡þµµµµµµµcapacitanceµ:µ0.097;¡þTµµµµµµµmemory_read()µ{µ/*µIndicatesµthisµisµaµreadµportµ*/¡þ‘µµµµµµµµµaddressµ:µRA;¡þÏµµµµµµµ}¡þµµµµµµµtimingµ()µ{¡þJµµµµµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinational¡þ~delayµ*/¡þ»µµµµµµµµµµµintrinsic_riseµ:µ5.15;¡þùµµµµµµµµµµµintrinsic_fallµ:µ4.51;¡þ6µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þtµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ±µµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þïµµµµµµµ}¡þ	,µµµµ}¡þ	jµ}¡þ	§...¡þ	å}¡þ
ƒ²Example 10³5´µshowsµanµasynchronousµ1K³wordµbyµ8³bitµRAMµcell¡þ
Ìwithµaµsingleµport,µactive³lowµwriteµenableµ(WE),µandµactive³lowµchip¡þenableµ(CE).’üD“I501ileaf_page_string1:10-21¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³21¡,É²&Example 10³5³Asynchronous´µ1Kx8µRAMµCellµwithµSingleµPort¡,²-library´µ(µmemory)µ{¡,W...¡,type(bus10)µ{¡,½µµbase_typeµ:µarray;¡,êµµdata_typeµ:µbit;¡,µµbit_widthµ:µ10;¡,Fµµbit_fromµ:µ0;¡,sµµbit_toµ:µ9;¡,¡}¡,Ùtype(bus8)µ{¡,µµbase_typeµ:µarray;¡,5µµdata_typeµ:µbit;¡,bµµbit_widthµ:µ8;¡,µµbit_fromµ:µ0;¡,¾µµbit_toµ:µ7;¡,ëµµdowntoµ:µfalse;¡,}¡,Q...¡,‰cellµ(async_chp_enb)µ{¡,Âµµµµµµareaµ:µ1381.000;¡,ïµµµµµµinterface_timingµ:µTRUE;¡,(µµµµµµmemory()µ{¡,Uµµµµµµµµtypeµ:µram;¡,ƒµµµµµµµµaddress_widthµ:µ10;¡,±µµµµµµµµword_widthµ:µ8;¡,Þµµµµµµ}¡,µµµµµµbusµ(RA)µ{¡,Dµµµµµµµµµµµbus_typeµµ:µ"bus10";µ¡,rµµµµµµµµµµµdirectionµ:µinput;¡, µµµµµµµµµµµcapacitanceµ:µ0.241;¡,Íµµµµµµµµµµµtimingµ()µ{¡,ûµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡,)µµµµµµµµµµµµintrinsic_riseµ:µ2.1;µ/*µAddressµsetupµtimeµ*/¡,Vµµµµµµµµµµµµµµµµintrinsic_fallµ:µ5.1;¡,„µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,²µµµµµµµµµµ}¡,êµµµµµµµµµµtimingµ()µ{¡,	µµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,	Eµµµµµµµµµµµµintrinsic_riseµ:µ0.0;µµ/*µAddressµholdµtimeµ*/¡,	sµµµµµµµµµµµµµµintrinsic_fallµ:µ0.0;¡,	 µµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,	Îµµµµµµµµµ}µµµµµµ¡,	üµµµµ}¡,
4µµµµpinµ(WRE)µ{¡,
bµµµµµdirectionµ:µinternal;¡,
µµµµµcapacitanceµ:µ0.28;¡,
½µµµµµstate_functionµ:µ"!(WE'µ*µCE')";¡,
ëµµµµµclockµ:µtrue;µ/*µwriteµoccursµonlyµwhenµWEµandµCEµareµactiveµ*/¡,µµµµµ}’ü$D“I501ileaf_page_string1:10-22¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³22¡,½²-´µµµµµbusµ(DI)µ{¡,êµµµµµµµµµµµbus_typeµµµ:µ"bus8"¡,µµµµµµµµµµµdirectionµ:µinput;¡,Fµµµµµµµµµµµcapacitanceµ:µ0.144;¡,€µµµµµµµµµµµmemory_write()µ{¡,­µµµµµµµµµµµµµaddressµ:µRA;¡,Ûµµµµµµµµµµµµµenableµ:µ"WRE";¡,	µµµµµµµµµµµ}¡,Cµµµµµµµµµµµtimingµ()µ{¡,qµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡,žµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µµµ/*µinputµdataµsetupµtimeµ*/¡,Ìµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡,úµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡,'µµµµµµµµµµµ}¡,aµµµµµµµµµµµtimingµ()µ{¡,µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,½µµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµµ/*µinputµdataµholdµtimeµ*/¡,êµµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡,µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡,Fµµµµµµµµµµµ}¡,€µµµµµµµµµµµtimingµ()µ{¡,®µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡,Ûµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µµµ/*µinputµdataµsetupµtimeµ*/¡,	µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡,7µµµµµµµµµµµµµµµµrelated_pinµ:µ"CE";¡,dµµµµµµµµµµµ}¡,žµµµµµµµµµµµtimingµ()µ{¡,Ìµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,úµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµµ/*µinputµdataµholdµtimeµ*/¡,'µµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡,Uµµµµµµµµµµµµµµµµrelated_pinµ:µ"CE";¡,ƒµµµµµµµµµµµ}¡,½µµµµµ}¡,ëµµµµµ¡,µµµµµpinµ(WE)µ{¡,Fµµµµµµµdirectionµ:µinput;¡,tµµµµµµµcapacitanceµ:µ0.28;¡,¡µµµµµµµclockµ:µtrue;µ¡,Ïµµµµµ}¡,		µµµµµpinµ(CE)µ{¡,	7µµµµµµµdirectionµ:µinput;¡,	dµµµµµµµcapacitanceµ:µ0.28;¡,	’µµµµµµµclockµ:µtrue;µ/*µCEµmustµbeµactiveµforµwriteµorµreadµtoµoccurµ*/¡,	Àµµµµµ}¡,	úµµµµµbus(DO){¡,
(µµµµµµµbus_typeµµ:µ"bus8";¡,
Uµµµµµµµdirectionµ:µoutput;¡,
ƒµµµµµµµcapacitanceµ:µ0.097;¡,
½µµµµµµµmemory_read()µ{¡,
ëµµµµµµµµµaddressµ:µRA;¡,µµµµµµµ}’$àD“I501ileaf_page_string1:10-23¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³23¡,½²-´µµµµµµµtimingµ()µ{¡,êµµµµµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡,µµµµµµµµµµµintrinsic_riseµ:µ5.15;µµµµ/*µtacc*/¡,Fµµµµµµµµµµµintrinsic_fallµ:µ4.50;¡,sµµµµµµµµµµµrise_resistanceµ:µ0.020;¡,¡µµµµµµµµµµµfall_resistanceµ:µ0.017;¡,Ïµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡,üµµµµµµµ}¡,*µµµµµµµtimingµ()µ{¡,Xµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡,…µµµµµµµµµµµµintrinsic_riseµ:µ1.6;µµµ/*µoutputµdataµsetupµtimeµ*/¡,³µµµµµµµµµµµµintrinsic_fallµ:µ2.0;¡,áµµµµµµµµµµµµrelated_pinµ:µ"CE";¡,µµµµµµµ}¡,Fµµµµµµµtimingµ()µ{¡,tµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,¡µµµµµµµµµµµµintrinsic_riseµ:µ0.01;µµµ/*µoutputµdataµholdµtimeµ*/¡,Ïµµµµµµµµµµµµintrinsic_fallµ:µ0.12;¡,ýµµµµµµµµµµµµrelated_pinµ:µ"CE";¡,*µµµµµµµ}¡,bµµµµ}µµµ¡,µ}¡,Ç...¡,þ}¡þ—²Example 10³6´µshowsµanµasynchronousµ4³wordµbyµ2³bitµRAMµcell¡þàwithµaµsingleµportµandµaddressµlatches.¡,›²&Example 10³6³Asynchronousµ4X2µRAMµCellµwithµSingleµPortµandµAddress¡²ÝLatches¡,1²-library´µ(µmemory)µ{¡,h...¡,Ÿtype(bus2)µ{¡,Íµµbase_typeµ:µarray;¡,ûµµdata_typeµ:µbit;¡,	(µµbit_widthµ:µ2;¡,	Vµµbit_fromµ:µ0;¡,	„µµbit_toµ:µ1;¡,	²µµdowntoµ:µfalse;¡,	ß}¡,
...¡,
Ncellµ(async_add_latch)µ{¡,
†µµµµµµareaµ:µ5000.000;¡,
³µµµµµµinterface_timingµ:µTRUE;¡,
ëµµµµµµmemory()µ{µµµ/*µIndicatesµthatµthisµisµaµmemoryµcellµ*/¡,µµµµµµµµµtypeµ:µram;’à²D“I501ileaf_page_string1:10-24¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³24¡,½²-´µµµµµµµµµaddress_widthµ:µ2;¡,êµµµµµµµµµword_widthµ:µ2;¡,µµµµµµ}¡,Oµµµµµµstatetableµ(µ"µRAµµRE",µ"RQ")µ{µµµ/*µaddressµlatchµµ*/¡,|µµµµµµµµµtableµ:µ"µµµL/HµµHµ:µ-µ:µL/Hµ,\¡,ªµµµµµµµµµµµµµµµµµµ-µµµLµ:µ-µ:µNµ";¡,Øµµµµµµ}¡,µµµµµµbusµ(RA)µ{¡,<µµµµµµµµµµµbus_typeµµ:µ"bus2";µ¡,jµµµµµµµµµµµdirectionµ:µinput;¡,—µµµµµµµµµµµcapacitanceµ:µ1.46;¡,Åµµµµµµµµµµµtimingµ()µ{µµµ/*µAddressµsetupµtimesµ*/¡,óµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡, µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡,Nµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡,|µµµµµµµµµµµµµµµµrelated_pinµ:µ"RE";µ¡,©µµµµµµµµµµµ}¡,àµµµµµµµµµµµtimingµ()µ{µµµ/*µAddressµholdµtimeµ*/¡,µµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,<µµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µ¡,iµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡,—µµµµµµµµµµµµµµrelated_pinµ:µ"RE";µ¡,Åµµµµµµµµµ}µµµµµµ¡,òµµµµµ}¡,)µµµµµµbusµ(RQ)µ{¡,Wµµµµµµµµµbus_typeµµ:µ"bus2";µ¡,„µµµµµµµµµdirectionµ:µinternal;¡,²µµµµµµµµµcapacitanceµ:µ1.46;¡,àµµµµµµµµµpinµ(RQ[0])µ{µµµ/*µTheµconstraintsµforµpinµRQ[0]µ*/¡,µµµµµµµµµµµinternal_nodeµ:µ"RQ";¡,;µµµµµµµµµµµinput_mapµ:µ"µRA[0],µREµ";¡,iµµµµµµµµµµµtimingµ()µ{¡,–µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡,Äµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡,òµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡,µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,Mµµµµµµµµµµµ}¡,„µµµµµµµµµµµtimingµ()µ{¡,±µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,ßµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡,	µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡,	:µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,	hµµµµµµµµµµµ}µµµµµµ¡,	–µµµµµµµµµ}¡,	Ãµµµµµµµµµpinµ(RQ[1])µ{µµµ/*µTheµconstraintsµforµpinµRQ[1]µ*/¡,	ñµµµµµµµµµµµinternal_nodeµ:µ"RQ";¡,
µµµµµµµµµµµinput_mapµ:µ"µRA[1],µREµ";¡,
Lµµµµµµµµµµµtimingµ()µ{¡,
zµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡,
¨µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ’²LD“I501ileaf_page_string1:10-25¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³25¡,½²-´µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡,êµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,µµµµµµµµµµµ}¡,\µµµµµµµµµµµtimingµ()µ{¡,Šµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,¸µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡,åµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡,µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡,Aµµµµµµµµµµµ}µµµµµµ¡,nµµµµµµµµ}¡,œµµµµµµ}¡,Êµµµµµ¡,÷µµµµµµbusµ(DI)µ{¡,%µµµµµµµµµµµbus_typeµµµ:µ"bus2"µ¡,Sµµµµµµµµµµµdirectionµ:µinput;¡,€µµµµµµµµµµµcapacitanceµ:µ1.46;¡,Åµµµµµµµµµµµmemory_write()µ{¡,òµµµµµµµµµµµµµaddressµ:µRQµ;µµµµµµ¡, µµµµµµµµµµµµµenableµ:µWE;¡,Nµµµµµµµµµµµ}¡,’µµµµµµµµµµµtimingµ()µ{¡,¿µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡,íµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡,µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡,Hµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡,vµµµµµµµµµµµ}¡,ºµµµµµµµµµµµtimingµ()µ{¡,èµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡,µµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµ¡,Cµµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡,qµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡,Ÿµµµµµµµµµµµ}¡,Ìµµµµµµ}¡,µµµµµµpinµ(WE)µ{¡,>µµµµµµµµµµµdirectionµ:µinput;¡,lµµµµµµµµµµµcapacitanceµ:µ1.13;¡,šµµµµµµµµµµµclockµ:µtrue;µ¡,Çµµµµµµ}¡,õµ¡,	#µµµµµµpinµ(RE)µ{¡,	Pµµµµµµµµµµµdirectionµ:µinput;¡,	~µµµµµµµµµµµcapacitanceµ:µ1.13;¡,	¬µµµµµµµµµµµclockµ:µtrue;¡,	Ùµµµµµµ}¡,
µµµµµµbus(DO){¡,
Kµµµµµµµµµµbus_typeµµ:µ"bus2";µ¡,
yµµµµµµµµµµdirectionµ:µoutput;¡,
½µµµµµµµµµµmemory_read()µ{¡,
ëµµµµµµµµµµµµµµµaddressµ:µRQ;¡,µµµµµµµµµµ}’L¥D“I501ileaf_page_string1:10-26¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³26¡,½²-´µµµµµµµµµµtimingµ()µ{¡,êµµµµµµµµµµµµµµµtiming_senseµ:µnon_unate;µ¡,µµµµµµµµµµµµµµµintrinsic_riseµ:µ5.25;µµµµ¡,Fµµµµµµµµµµµµµµµrise_resistanceµ:µ0.020;¡,sµµµµµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡,¡µµµµµµµµµµµµµµµfall_resistanceµ:µ0.017;¡,Ïµµµµµµµµµµµµµµµrelated_pinµ:µ"RA";¡,üµµµµµµµµµ}¡,*µµµµµµ}¡,X}¡,Ž...¡,Ã}¡þT²Example 10³7´µshowsµanµasynchronousµ1K³wordµbyµ8³bitµRAMµcell¡þœwithµaµsingleµdataµport.¡,D²&Example 10³7³Asynchronousµ1Kx8µRAMµCellµwithµSingleµDataµPort¡þ˜²library´µ(µmemory)µ{¡þÔ...¡þtype(bus10_1)µ{¡þDµµbase_typeµ:µarray;¡þxµµdata_typeµ:µbit;¡þ¬µµbit_widthµ:µ10;¡þàµµbit_fromµ:µ9;¡þµµbit_toµ:µ0;¡þHµµdowntoµ:µtrue¡þ|}¡þ¸type(bus8_1)µ{¡þìµµbase_typeµ:µarray;¡þµµdata_typeµ:µbit;¡þSµµbit_widthµ:µ8;¡þ‡µµbit_fromµ:µ7;¡þ»µµbit_toµ:µ0;¡þïµµdowntoµ:µtrue;¡þ	#}¡þ	_...¡þ	›cellµ(async_bidir)µ{¡þ	×µµµµµµareaµ:µ2300.000000;¡þ
µµµµµµinterface_timingµ:µTRUE;¡þ
Gµµµµµµmemory()µ{¡þ
{µµµµµµµµtypeµ:µram;¡þ
¯µµµµµµµµaddress_widthµ:µ10;¡þ
âµµµµµµµµword_widthµ:µ8;¡þµµµµµµ}’¥[D“I501ileaf_page_string1:10-27¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³27¡þÃ²´µµµµµµbusµ(RA)µ{¡þ÷µµµµµµµµµµµbus_typeµµ:µ"bus10_1";¡þ+µµµµµµµµµµµdirectionµ:µinput;¡þ_µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ’µµµµµµµµµµµfanout_loadµ:µ1.46;¡þÆµµµµµµµµµµµtimingµ()µ{¡þúµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ.µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þbµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ–µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þÊµµµµµµµµµµµ}¡þµµµµµµµµµµµtimingµ()µ{¡þ;µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þnµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡þ¢µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þÖµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þ
µµµµµµµµµµµ}µµµµµµ¡þ>µµµµµ}¡þrµµµµµµµ¡þ¦µµµµµpinµ(WE)µ{¡þÚµµµµµµµdirectionµ:µinput;¡þµµµµµµµcapacitanceµ:µ1.13;¡þAµµµµµµµfanout_loadµ:µ1.13;¡þuµµµµµµµclockµ:µtrue;µ¡þ©µµµµµ}¡þæµµµµµpinµ(CE)µ{¡þµµµµµµµdirectionµ:µinput;¡þNµµµµµµµcapacitanceµ:µ1.13;¡þ‚µµµµµµµfanout_loadµ:µ1.13;¡þ¶µµµµµµµclockµ:µtrue;¡þêµµµµµ}¡þ&µµµµµbusµ(data)µ{¡þZµµµµµµµµµµµbus_typeµµµ:µ"bus8_1"¡þŽµµµµµµµµµµµdirectionµ:µinout;¡þÂµµµµµµµµµµµcapacitanceµ:µ1.46;¡þÿµµµµµµµµµµµmemory_read()µ{¡þ	3µµµµµµµµµµµµµaddressµ:µRA;¡þ	gµµµµµµµµµµµ}¡þ	¤µµµµµµµµµµµmemory_writeµ()µ{¡þ	Øµµµµµµµµµµµµµµaddressµ:µRA;¡þ
µµµµµµµµµµµµµµenableµ:µWE;¡þ
?µµµµµµµµµµµµ}’[ÁD“I501ileaf_page_string1:10-28¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³28¡þÃ²´µµµµµµµµµµµµthree_stateµ:µ"CE";¡þ÷µµµµµµµµµµµ¡þ+µµµµµµµµµµµµtimingµ()µ{¡þ_µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ’µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þÆµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þúµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ.µµµµµµµµµµµµ}¡þkµµµµµµµµµµµµtimingµ()µ{¡þŸµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þÓµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µ¡þµµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ;µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þnµµµµµµµµµµµµ}¡þ«µµµµµµµµµµµµtimingµ()µ{¡þßµµµµµµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ5.25;µµ¡þGµµµµµµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ{µµµµµµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ¯µµµµµµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þãµµµµµµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þµµµµµµµµµµµµ}¡þJµµµµµµµµ}µµµ¡þ~µ}¡þ»...¡þø}’ÁD“I501ileaf_page_string1:10-29¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³29¡þÉ²Example 10³8´µshowsµ16³wordµbyµ8³bitµlevelµsensitiveµRAMµcellµwith¡þ3³portµregisterµfileµandµthree³stateµoutput.¡,ž²&Example 10³8³Three³PortµRegisterµFileµ16x8µRAMµCellµwithµThree³State¡²áOutput¡þh²library´µ(µmemory)µ{¡þ¢...¡þÛtype(bus4)µ{¡þµµbase_typeµ:µarray;¡þCµµdata_typeµ:µbit;¡þwµµbit_widthµ:µ4;¡þ«µµbit_fromµ:µ0;¡þßµµbit_toµ:µ3;¡þµµdowntoµ:µfalse;¡þG}¡þ€type(bus8_1)µ{¡þ´µµbase_typeµ:µarray;¡þèµµdata_typeµ:µbit;¡þµµbit_widthµ:µ8;¡þPµµbit_fromµ:µ7;¡þ„µµbit_toµ:µ0;¡þ¸µµdowntoµ:µtrue;¡þì}¡þ%...¡þ_cellµ(reg_file)µ{¡þ™µµµµµµareaµ:µ8000.000;¡þÍµµµµµµinterface_timingµ:µTRUE;¡þµµµµµµmemory()µ{¡þ:µµµµµµµµtypeµ:µram;¡þnµµµµµµµµaddress_widthµ:µ4;¡þ¢µµµµµµµµword_widthµ:µ8;¡þÖµµµµµµ}¡þ	µµµµµµbusµ(RA1)µ{¡þ	Cµµµµµµµµµµµbus_typeµµ:µ"bus4";¡þ	wµµµµµµµµµµµdirectionµ:µinput;¡þ	«µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ	ßµµµµµµµµµµµfanout_loadµ:µ1.46;¡þ
µµµµµµµµµµµtimingµ()µ{¡þ
Gµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ
{µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þ
¯µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ
âµµµµµµµµµµµµµµµµrelated_pinµ:µ"G1";µ¡þµµµµµµµµµµµ}’)D“I501ileaf_page_string1:10-30¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³30¡þÃ²´µµµµµµµµµµµtimingµ()µ{¡þ÷µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ+µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þ_µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ’µµµµµµµµµµµµµµµµrelated_pinµ:µ"G1";µ¡þÆµµµµµµµµµµµ}µµµµµµ¡þúµµµµµ}¡þ7µµµµµµbusµ(RA2)µ{¡þkµµµµµµµµµµbus_typeµµ:µ"bus4";¡þŸµµµµµµµµµµdirectionµ:µinput;¡þÓµµµµµµµµµµcapacitanceµ:µ1.46;¡þµµµµµµµµµµfanout_loadµ:µ1.46;¡þ;µµµµµµµµµµtimingµ()µ{¡þnµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ¢µµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þÖµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ
µµµµµµµµµµµµµµµrelated_pinµ:µ"G2";µ¡þ>µµµµµµµµµµ}¡þ{µµµµµµµµµµtimingµ()µ{¡þ¯µµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þãµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µ¡þµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þJµµµµµµµµµµµµµµµrelated_pinµ:µ"G2";µ¡þ~µµµµµµµµµµ}µµµµµµ¡þ²µµµµµ}¡þïµµµµµµbusµ(WA)µ{¡þ#µµµµµµµµµµµbus_typeµµ:µ"bus4";¡þWµµµµµµµµµµµdirectionµ:µinput;¡þ‹µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ¿µµµµµµµµµµµfanout_loadµ:µ1.46;¡þüµµµµµµµµµµµtimingµ()µ{¡þ/µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þcµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þ—µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þËµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þÿµµµµµµµµµµµ}¡þ	<µµµµµµµµµµµtimingµ()µ{¡þ	pµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ	¤µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µ¡þ	Øµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ
µµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þ
?µµµµµµµµµµµ}¡þ
|µµµµµ}’)lD“I501ileaf_page_string1:10-31¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³31¡þÃ²´µµµµµbusµ(DI)µ{¡þ÷µµµµµµµµµµµbus_typeµµµ:µ"bus8_1"¡þ+µµµµµµµµµµµdirectionµ:µinput;¡þ_µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ’µµµµµµµµµµµfanout_loadµ:µ1.46;¡þÍµµµµµµµµµµµmemory_write()µ{¡þµµµµµµµµµµµµµaddressµ:µWA;¡þ5µµµµµµµµµµµµµenableµ:µWCLK;¡þiµµµµµµµµµµµ}¡þ£µµµµµµµµµµµtimingµ()µ{¡þ×µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µ/*µtdisµ*/¡þ?µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þsµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ§µµµµµµµµµµµ}¡þâµµµµµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þIµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµµ/*µtdihµ*/¡þ}µµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ±µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þåµµµµµµµµµµµ}¡þµµµµµ}¡þTµµµµµpinµ(WE)µ{¡þ‡µµµµµµµdirectionµ:µinput;¡þ»µµµµµµµcapacitanceµ:µ1.13;¡þöµµµµµµµclockµ:µtrue;¡þ1µµµµµ}¡þkµµµµµpinµ(CLK)µ{¡þ¦µµµµµµµdirectionµ:µinput;¡þáµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµclockµ:µtrue;¡þVµµµµµ}¡þ‘µµµµµpinµ(G1)µ{¡þÌµµµµµµµdirectionµ:µinput;¡þ	µµµµµµµcapacitanceµ:µ1.13;¡þ	Aµµµµµµµclockµ:µtrue;¡þ	|µµµµµ}¡þ	¶µµµµµpinµ(G2)µ{¡þ	ñµµµµµµµdirectionµ:µinput;¡þ
,µµµµµµµcapacitanceµ:µ1.13;¡þ
fµµµµµµµclockµ:µtrue;¡þ
¡µµµµµ}¡þ
Üµµµµµpinµ(WCLK)µ{¡þµµµµµµµdirectionµ:µinternal;’l D“I501ileaf_page_string1:10-32¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³32¡þÃ²´µµµµµµµcapacitanceµ:µ1.13;¡þÿµµµµµµµclockµ:µtrue;¡þ:µµµµµµµstate_functionµ:µ"WEµ*µCLK";¡þvµµµµµ}¡þ²µµµµµbus(QO1){¡þíµµµµµµµbus_typeµµ:µ"bus8_1";¡þ)µµµµµµµdirectionµ:µoutput;¡þeµ¡þ µµµµµµµmemory_read()µ{¡þÜµµµµµµµµµaddressµ:µRA1;¡þµµµµµµµ}¡þSµ¡þµµµµµµthree_stateµ:µ"G1";¡þËµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þBµµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ~µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þºµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þõµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ1µµµµµµµµµµµrelated_bus_pinsµ:µ"RA1";¡þmµµµµµµµ}¡þ¨µµµµ}¡þäµµµµµbus(QO2){¡þ µµµµµµµbus_typeµµ:µ"bus8_1";¡þ[µµµµµµµdirectionµ:µoutput;¡þ—µ¡þÓµµµµµµµmemory_read()µ{¡þµµµµµµµµµaddressµ:µRA2;¡þJµµµµµµµ}¡þ†µ¡þÁµµµµµµthree_stateµ:µ"G2";¡þýµµµµµµµtimingµ()µ{¡þ	9µµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ	uµµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ	°µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ	ìµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ
(µµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ
cµµµµµµµµµµµrelated_bus_pinsµ:µ"RA2";¡þ
Ÿµµµµµµµ}¡þ
Ûµµµµ}¡þµ}’ ðD“I501ileaf_page_string1:10-33¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³33¡þÃ²...¡þ}¡þŸ²Example 10³9´µshowsµaµsynchronousµ16³wordµbyµ2³bitµRAMµcellµwith¡þçaµsingleµport.¡, ²&Example 10³9³Synchronousµ16x2µRAMµCellµwithµSingleµPort¡þú²library´µ(µmemory)µ{¡þ7...¡þutype(bus4)µ{¡þ²µµbase_typeµ:µarray;¡þðµµdata_typeµ:µbit;¡þ-µµbit_widthµ:µ4;¡þkµµbit_fromµ:µ0;¡þ¨µµbit_toµ:µ3;¡þæµµdowntoµ:µfalse;¡þ#}¡þatype(bus2)µ{¡þžµµbase_typeµ:µarray;¡þÜµµdata_typeµ:µbit;¡þµµbit_widthµ:µ2;¡þWµµbit_fromµ:µ0;¡þ•µµbit_toµ:µ1;¡þÒµµdowntoµ:µfalse;¡þ}¡þM...¡þ‹µµcellµ(sync_single)µ{¡þÈµµµµµµareaµ:µ5000.000;¡þüµµµµµµinterface_timingµ:µTRUE;¡þ	:µµµµµµmemory()µ{¡þ	nµµµµµµµµtypeµ:µram;¡þ	¡µµµµµµµµaddress_widthµ:µ4;¡þ	Õµµµµµµµµword_widthµ:µ2;¡þ
	µµµµµµ}¡þ
Gµµµµµµbusµ(ADDR)µ{¡þ
{µµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þ
¯µµµµµµµµµµµdirectionµ:µinput;¡þ
âµµµµµµµµµµµcapacitanceµ:µ1.46;¡þµµµµµµµµµµµtimingµ()µ{’ðôD“I501ileaf_page_string1:10-34¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³34¡þÃ²´µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þÿµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þ;µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þwµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";¡þ²µµµµµµµµµµ}¡þîµµµµµµµµµµtimingµ()µ{¡þ*µµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þfµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;¡þ¢µµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þÞµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";¡þµµµµµµµµµ}µµµµµµ¡þNµµµµµ}¡þŠµµµµµbusµ(DI)µ{¡þÅµµµµµµµµµµµbus_typeµµµ:µ"bus2"¡þµµµµµµµµµµµdirectionµ:µinput;¡þ=µµµµµµµµµµµcapacitanceµ:µ1.46;¡þyµµµµµµµµµµµfanout_loadµ:µ1.46;¡þµµµµµµµµµµµµmemory_write()µ{¡þñµµµµµµµµµµµµµaddressµ:µADDR;¡þ-µµµµµµµµµµµµµclocked_onµ:µ"EN";¡þiµµµµµµµµµµµ}¡þ¥µµµµµµµµµµµtimingµ()µ{¡þàµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þXµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ”µµµµµµµµµµµµµµµµrelated_pinµ:µ"WEN";¡þÐµµµµµµµµµµ}¡þµµµµµµµµµµtimingµ()µ{¡þHµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ„µµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þ¿µµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þûµµµµµµµµµµµµµµµrelated_pinµ:µ"WEN";¡þ	7µµµµµµµµµµ}¡þ	sµµµµµµµµµµtimingµ()µ{¡þ	¯µµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ	ëµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þ
'µµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ
cµµµµµµµµµµµµµµµrelated_pinµ:µ"CSN";¡þ
Ÿµµµµµµµµµµ}¡þ
Úµµµµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;’ôÎD“I501ileaf_page_string1:10-35¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³35¡þÃ²´µµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þÿµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ;µµµµµµµµµµµµµµµrelated_pinµ:µ"CSN";¡þwµµµµµµµµµµ}¡þ²µµµµµ}¡þîµµµµµpinµ(CLK)µ{¡þ*µµµµµµµdirectionµ:µinput;¡þfµµµµµµµcapacitanceµ:µ1.13;¡þ¢µµµµµµµclockµ:µtrue;¡þÞµµµµµ}¡þµµµµµpinµ(WEN)µ{¡þVµµµµµµµdirectionµ:µinput;¡þ’µµµµµµµcapacitanceµ:µ1.13;¡þÍµµµµµµµclockµ:µtrue;¡þ	µµµµµ}¡þEµµµµµpinµ(CSN)µ{¡þµµµµµµµdirectionµ:µinput;¡þ½µµµµµµµcapacitanceµ:µ1.13;¡þùµµµµµµµclockµ:µtrue;µ¡þ-µµµµµ}¡þiµµµµµpinµ(EN)µ{¡þ¥µµµµµµµdirectionµ:µinternal;¡þàµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµclockµ:µtrue;¡þXµµµµµµµstate_functionµ:µ"!CSNµ*µ!WENµ*µCLK";¡þ”µµµµµ}¡þÐµµµµµbus(QO){¡þµµµµµµµbus_typeµµ:µ"bus2";¡þHµµµµµµµdirectionµ:µoutput;¡þ„µµµµµµµmemory_read()µ{¡þ¿µµµµµµµµµaddressµ:µADDR;¡þûµµµµµµµ}¡þ	7µµµµµµµtimingµ()µ{¡þ	sµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ	¯µµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ	ëµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ
'µµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ
cµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ
Ÿµµµµµµµµµµµrelated_bus_pinsµ:µ"ADDR";¡þ
Úµµµµµµµ}¡þµµµµ}’ÎvD“I501ileaf_page_string1:10-36¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³36¡þÃ²´µ}¡þý...¡þ7}¡þÃ²Example 10³10´µshowsµaµsynchronousµ16³wordµbyµ2³bitµRAMµcell¡þwithµaµdualµport.¡,›²&Example 10³10³Synchronousµ16x2µRAMµCellµwithµDualµPort¡þé²library´µ(µmemory)µ{¡þ#...¡þ]type(bus4)µ{¡þ‘µµbase_typeµ:µarray;¡þÅµµdata_typeµ:µbit;¡þùµµbit_widthµ:µ4;¡þ-µµbit_fromµ:µ0;¡þaµµbit_toµ:µ3;¡þ•µµdowntoµ:µfalse;¡þÉ}¡þtype(bus2)µ{¡þ6µµbase_typeµ:µarray;¡þjµµdata_typeµ:µbit;¡þžµµbit_widthµ:µ2;¡þØµµbit_fromµ:µ0;¡þµµbit_toµ:µ1;¡þ@µµdowntoµ:µfalse;¡þt}¡þ®...¡þèµcellµ(sync_dual)µ{¡þ"µµµµµµareaµ:µ5000.000;¡þVµµµµµµinterface_timingµ:µTRUE;¡þµµµµµµmemory()µ{¡þÃµµµµµµµµtypeµ:µram;¡þýµµµµµµµµaddress_widthµ:µ4;¡þ	1µµµµµµµµword_widthµ:µ2;¡þ	eµµµµµµ}¡þ	Ÿµµµµµµbusµ(RA)µ{¡þ	Óµµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þ
µµµµµµµµµµµdirectionµ:µinput;¡þ
Aµµµµµµµµµµµcapacitanceµ:µ1.46;¡þ
uµµµµµµµµµµµtimingµ()µ{¡þ
¯µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ
âµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;’vêD“I501ileaf_page_string1:10-37¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³37¡þÃ²´µµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þ÷µµµµµµµµµµµ}¡þ3µµµµµµµµµµµtimingµ()µ{¡þgµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ›µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµµ¡þÏµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þ7µµµµµµµµµµµ}µµµµµµ¡þkµµµµµ}¡þ§µµµµµµbusµ(WA)µ{¡þÛµµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þµµµµµµµµµµµdirectionµ:µinput;¡þCµµµµµµµµµµµcapacitanceµ:µ1.46;¡þwµµµµµµµµµµµtimingµ()µ{¡þ³µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þðµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þ,µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þiµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";¡þ¦µµµµµµµµµµµ}¡þâµµµµµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ[µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;¡þ˜µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þÔµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";¡þµµµµµµµµµµµ}¡þMµµµµµ}¡þŠµµµµµbusµ(DI)µ{¡þÇµµµµµµµµµµµbus_typeµµµ:µ"bus2"¡þµµµµµµµµµµµdirectionµ:µinput;¡þ@µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ|µµµµµµµµµµµfanout_loadµ:µ1.46;¡þ¹µµµµµµµµµµµmemory_write()µ{¡þõµµµµµµµµµµµµµaddressµ:µWA;¡þ	2µµµµµµµµµµµµµclocked_onµ:µ"EN1";¡þ	nµµµµµµµµµµµ}¡þ	«µµµµµµµµµµµtimingµ()µ{¡þ	èµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ
$µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þ
aµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ
µµµµµµµµµµµµµµµµrelated_pinµ:µ"WEN";¡þ
Úµµµµµµµµµµ}¡þµµµµµµµµµµtimingµ()µ{’êïD“I501ileaf_page_string1:10-38¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³38¡þÃ²´µµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þÿµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þ:µµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þvµµµµµµµµµµµµµµµrelated_pinµ:µ"WEN";¡þ²µµµµµµµµµ}¡þíµµµµµ}¡þ)µµµµµbusµ(WEN)µ{¡þeµµµµµµµbus_typeµ:µ"bus2";¡þ µµµµµµµdirectionµ:µinput;¡þÜµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµclockµ:µtrue;¡þSµµµµµ}¡þµµµµµpinµ(OEN)µ{¡þËµµµµµµµdirectionµ:µinput;¡þµµµµµµµcapacitanceµ:µ1.13;¡þBµµµµµµµclockµ:µtrue;¡þ~µµµµµ}¡þºµµµµµpinµ(CLK)µ{¡þõµµµµµµµdirectionµ:µinput;¡þ1µµµµµµµcapacitanceµ:µ1.13;¡þmµµµµµµµclockµ:µtrue;¡þ¨µµµµµ}¡þäµµµµµbusµ(EN1)µ{¡þ µµµµµµµbus_typeµ:µ"bus2";¡þ[µµµµµµµdirectionµ:µinternal;¡þ—µµµµµµµcapacitanceµ:µ1.13;¡þÓµµµµµµµclockµ:µtrue;¡þµµµµµµµstate_functionµ:µ"!OENµ*µ!WENµ*µCLK";¡þJµµµµµ}¡þ†µµµµµbus(QO){¡þÁµµµµµµµbus_typeµµ:µ"bus2";¡þýµµµµµµµdirectionµ:µoutput;¡þ	9µµµµµµµmemory_read()µ{¡þ	uµµµµµµµµµaddressµ:µRA;¡þ	°µµµµµµµ}¡þ	ìµµµµµµµtimingµ()µ{¡þ
(µµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ
cµµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ
Ÿµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ
Ûµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þµµµµµµµµµµµfall_resistanceµ:µ0.017;’ï D“I501ileaf_page_string1:10-39¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³39¡þÃ²´µµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þµµµµµµµ}¡þBµµµµ}¡þµ}¡þÁ...¡þ}¡þ¨²Example 10³11´µshowsµanµasynchronousµ1K³wordµbyµ8³bitµRAMµcell¡þðwithµaµdualµport.¡,À²&Example 10³11³Asynchronousµ1Kx8µRAMµCellµwithµDualµPort¡þ^²library´µ(µmemory)µ{¡þ...¡þÝtype(bus10_1)µ{¡þµµbase_typeµ:µarray;¡þDµµdata_typeµ:µbit;¡þxµµbit_widthµ:µ10;¡þ¸µµbit_fromµ:µ9;¡þìµµbit_toµ:µ0;¡þ µµdowntoµ:µtrue¡þS}¡þ“type(bus8_1)µ{¡þÇµµbase_typeµ:µarray;¡þûµµdata_typeµ:µbit;¡þ:µµbit_widthµ:µ8;¡þnµµbit_fromµ:µ7;¡þ¢µµbit_toµ:µ0;¡þáµµdowntoµ:µtrue;¡þ	}¡þ	U...¡þ	”cellµ(async_dual)µ{¡þ	Óµµµµµµareaµ:µ5000.000;¡þ
µµµµµµinterface_timingµ:µTRUE;¡þ
Gµµµµµµmemory()µ{¡þ
{µµµµµµµµtypeµ:µram;¡þ
¯µµµµµµµµaddress_widthµ:µ10;¡þ
âµµµµµµµµword_widthµ:µ8;¡þµµµµµµ}’ QD“I501ileaf_page_string1:10-40¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³40¡þÃ²´µµµµµµbusµ(RA)µ{¡þ÷µµµµµµµµµµµbus_typeµµ:µ"bus10_1";µ¡þ+µµµµµµµµµµµdirectionµ:µinput;¡þ_µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ’µµµµµµµµµµµfanout_loadµ:µ1.46;¡þÆµµµµµµµµµµµtimingµ()µ{¡þúµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ.µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þbµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ–µµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þÊµµµµµµµµµµ}¡þµµµµµµµµµµtimingµ()µ{¡þLµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ€µµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡þ³µµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þçµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þµµµµµµµµµµ}µµµµµµ¡þOµµµµµ}¡þµµµµµµbusµ(WA)µ{¡þÑµµµµµµµµµµµbus_typeµµ:µ"bus10_1";µ¡þµµµµµµµµµµµdirectionµ:µinput;¡þ9µµµµµµµµµµµcapacitanceµ:µ1.46;¡þmµµµµµµµµµµµfanout_loadµ:µ1.46;¡þ¡µµµµµµµµµµµtimingµ()µ{¡þÔµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þ<µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þpµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þ¤µµµµµµµµµµ}¡þòµµµµµµµµµµtimingµ()µ{¡þ&µµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þZµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡þŽµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þÁµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þõµµµµµµµµµµ}µµµµµµ¡þ	)µµµµµ}¡þ	]µµµµµbusµ(DI)µ{¡þ	‘µµµµµµµµµµµbus_typeµµµ:µ"bus8_1"¡þ	Åµµµµµµµµµµµdirectionµ:µinput;¡þ	ùµµµµµµµµµµµcapacitanceµ:µ1.46;¡þ
-µµµµµµµµµµµfanout_loadµ:µ1.46;¡þ
{µµµµµµµµµµµmemory_write()µ{¡þ
¯µµµµµµµµµµµµµaddressµ:µWA;¡þ
âµµµµµµµµµµµµµenableµ:µWE;¡þµµµµµµµµµµµ}’Q\D“I501ileaf_page_string1:10-41¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³41¡þÃ²´µµµµµµµµµµµtimingµ()µ{¡þ÷µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ+µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µ¡þ_µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ’µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þÆµµµµµµµµµµµ}¡þµµµµµµµµµµµtimingµ()µ{¡þ:µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þnµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµ¡þ¡µµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þÕµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ	µµµµµµµµµµµ}¡þ=µµµµµ}¡þ}µµµµµpinµ(WE)µ{¡þ±µµµµµµµdirectionµ:µinput;¡þäµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµfanout_loadµ:µ1.13;¡þLµµµµµµµclockµ:µtrue;µ¡þ€µµµµµ}¡þÀµµµµµpinµ(OE)µ{¡þóµµµµµµµdirectionµ:µinput;¡þ'µµµµµµµcapacitanceµ:µ1.13;¡þ[µµµµµµµfanout_loadµ:µ1.13;¡þµµµµµµµclockµ:µtrue;µ¡þÃµµµµµ}¡þµµµµµbus(QO){¡þ6µµµµµµµbus_typeµµ:µ"bus8_1";¡þjµµµµµµµdirectionµ:µoutput;¡þªµµµµµµµmemory_read()µ{¡þÞµµµµµµµµµaddressµ:µRA;¡þµµµµµµµ}¡þEµµµµµµµ¡þyµµµµµµµthree_stateµ:µ"OE";¡þ¹µµµµµµµtimingµ()µ{¡þíµµµµµµµµµµµtiming_senseµ:µnon_unate;µ¡þ	!µµµµµµµµµµµintrinsic_riseµ:µ5.25;µµµµ¡þ	Tµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ	ˆµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ	¼µµµµµµµµµµµfall_resistanceµ:µ0.017;¡þ	ðµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þ
0µµµµµµµ}¡þ
cµµµµ}µµµ¡þ
—µ}¡þ
×...¡þ}’\iD“I501ileaf_page_string1:10-42¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³42¡þÉ²Example 10³12´µshowsµaµROMµcellµwithµoutputµenable,µchipµselect,¡þandµclock.¡,ù²&Example 10³12³ROMµCell¡þ^²library´µ(µmemory)µ{¡þŸ...¡þátype(bus8)µ{¡þµµbase_typeµ:µarray;¡þHµµdata_typeµ:µbit;¡þ|µµbit_widthµ:µ8;¡þ°µµbit_fromµ:µ0;¡þäµµbit_toµ:µ7;¡þµµdowntoµ:µfalse;¡þL}¡þtype(bus4)µ{¡þÁµµbase_typeµ:µarray;¡þõµµdata_typeµ:µbit;¡þ)µµbit_widthµ:µ4;¡þ]µµbit_fromµ:µ0;¡þ‘µµbit_toµ:µ3;¡þÅµµdowntoµ:µfalse;¡þù}¡þ:...¡þ|cellµ(ROM)µ{¡þ½µµµµµµareaµ:µ5000.000;¡þñµµµµµµinterface_timingµ:µTRUE;¡þ2µµµµµµmemory()µ{¡þfµµµµµµµµtypeµ:µrom;¡þšµµµµµµµµaddress_widthµ:µ4;¡þÎµµµµµµµµword_widthµ:µ8;¡þ	µµµµµµ}¡þ	Cµµµµµµbusµ(ADDR)µ{¡þ	wµµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þ	«µµµµµµµµµµµdirectionµ:µinput;¡þ	ßµµµµµµµµµµµcapacitanceµ:µ1.46;¡þ
µµµµµµµµµµµtimingµ()µ{¡þ
Gµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ
{µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þ
¯µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ
âµµµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þµµµµµµµµµµ}’i3D“I501ileaf_page_string1:10-43¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³43¡þÃ²´µµµµµµµµµµtimingµ()µ{¡þ÷µµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ+µµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµµ¡þ_µµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ’µµµµµµµµµµµµµµµrelated_pinµ:µ"CLK";µ¡þÆµµµµµµµµµµ}µµµµµµ¡þúµµµµµµµµµµtimingµ()µ{¡þ.µµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þbµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þ–µµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þÊµµµµµµµµµµµµµµµrelated_pinµ:µ"OEN";µ¡þþµµµµµµµµµµ}¡þ<µµµµµµµµµµtimingµ()µ{¡þpµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ¤µµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµµ¡þØµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þµµµµµµµµµµµµµµµrelated_pinµ:µ"OEN";µ¡þ?µµµµµµµµµµ}µµµµµµ¡þsµµµµµµµµµµtimingµ()µ{¡þ§µµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þÛµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þCµµµµµµµµµµµµµµµrelated_pinµ:µ"CSN";µ¡þwµµµµµµµµµµ}¡þµµµµµµµµµµµtimingµ()µ{¡þéµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµµ¡þQµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ…µµµµµµµµµµµµµµµrelated_pinµ:µ"CSN";µ¡þ¹µµµµµµµµµµ}µµµµµµ¡þíµµµµµ}¡þ+µµµµµpinµ(CLK)µ{¡þ_µµµµµµµdirectionµ:µinput;¡þ“µµµµµµµcapacitanceµ:µ1.13;¡þÇµµµµµµµclockµ:µtrue;µ¡þúµµµµµ}¡þ	9µµµµµpinµ(OEN)µ{¡þ	mµµµµµµµdirectionµ:µinput;¡þ	¡µµµµµµµcapacitanceµ:µ1.13;¡þ	Õµµµµµµµclockµ:µtrue;µ¡þ
µµµµµ}¡þ
Gµµµµµpinµ(CSN)µ{¡þ
{µµµµµµµdirectionµ:µinput;¡þ
¯µµµµµµµcapacitanceµ:µ1.13;¡þ
âµµµµµµµclockµ:µtrue;µ¡þµµµµµ}’3…D“I501ileaf_page_string1:10-44¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³44¡þÃ²´µµµµµbus(QO){¡þ÷µµµµµµµbus_typeµµ:µ"bus8";¡þ+µµµµµµµdirectionµ:µoutput;¡þhµµµµµµµmemory_read()µ{¡þœµµµµµµµµµaddressµ:µADDR;¡þÐµµµµµµµ}¡þµµµµµµµthree_stateµ:µ"!CSNµ*µ!OENµ*µCLK";¡þAµµµµµµµtimingµ()µ{¡þtµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ¨µµµµµµµµµµµintrinsic_riseµ:µ5.25;µµµ¡þÜµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þDµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þxµµµµµµµµµµµrelated_bus_pinsµ:µ"ADDR";¡þ¬µµµµµµµ}¡þàµµµµ}µµµ¡þµ}¡þQ...¡þŽ}¡þ*²Example 10³13´µshowsµanµasynchronousµ16³bitµbyµ32³wordµRAMµcell¡þswithµdualµport.¡,'²&Example 10³13³Asynchronousµ16x32µRAMµCellµwithµDualµPort¡þ²library´µ(µmemory)µ{¡þ¼type(bus4)µ{¡þúµµbase_typeµ:µarray;¡þ-µµdata_typeµ:µbit;¡þaµµbit_widthµ:µ4;¡þ•µµbit_fromµ:µ0;¡þÉµµbit_toµ:µ3;¡þýµµdowntoµ:µfalse;¡þ	1}¡þ	ntype(bus32)µ{¡þ	¢µµbase_typeµ:µarray;¡þ	Öµµdata_typeµ:µbit;¡þ

µµbit_widthµ:µ32;¡þ
>µµbit_fromµ:µ0;¡þ
qµµbit_toµ:µ31;¡þ
¥µµdowntoµ:µfalse;¡þ
Ù}¡þcellµ(async_dual_16X32)µ{’…%D“I501ileaf_page_string1:10-45¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³45¡þÃ²´µµµµµµareaµ:µ5000.000;¡þ÷µµµµµµinterface_timingµ:µTRUE;¡þ1µµµµµµmemory()µ{¡þeµµµµµµµµtypeµ:µram;¡þ™µµµµµµµµaddress_widthµ:µ4;¡þÍµµµµµµµµword_widthµ:µ32;¡þµµµµµµ}¡þ;µµµµµµbusµ(RA)µ{¡þoµµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þ£µµµµµµµµµµµdirectionµ:µinput;¡þ×µµµµµµµµµµµcapacitanceµ:µ1.46;¡þµµµµµµµµµµµfanout_loadµ:µ1.46;¡þEµµµµµµµµµµµtimingµ()µ{¡þ€µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ³µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þçµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ"µµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þVµµµµµµµµµµ}¡þµµµµµµµµµµtimingµ()µ{¡þÄµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þøµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡þ,µµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þfµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þšµµµµµµµµµ}µµµµµµ¡þÎµµµµµ}¡þµµµµµµbusµ(WA)µ{¡þ<µµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þpµµµµµµµµµµµdirectionµ:µinput;¡þªµµµµµµµµµµµcapacitanceµ:µ1.46;¡þåµµµµµµµµµµµfanout_loadµ:µ1.46;¡þµµµµµµµµµµµtimingµ()µ{¡þSµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þŽµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þÈµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þüµµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";µ¡þ	0µµµµµµµµµµµ}¡þ	jµµµµµµµµµµµtimingµ()µ{¡þ	žµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ	Òµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;¡þ
µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ
@µµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";µ¡þ
tµµµµµµµµµµµ}¡þ
¯µµµµµ}¡þ
âµµµµµbusµ(DI)µ{¡þµµµµµµµµµµµbus_typeµµµ:µ"bus32"’%WD“I501ileaf_page_string1:10-46¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³46¡þÃ²´µµµµµµµµµµµdirectionµ:µinput;¡þ÷µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ+µµµµµµµµµµµfanout_loadµ:µ1.46;¡þgµµµµµµµµµµµmemory_write()µ{¡þ›µµµµµµµµµµµµµaddressµ:µWA;¡þÏµµµµµµµµµµµµµenableµ:µWR;¡þµµµµµµµµµµµ}¡þ?µµµµµµµµµµµtimingµ()µ{¡þsµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ¯µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µ¡þãµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þµµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þKµµµµµµµµµµ}¡þ‡µµµµµµµµµµtimingµ()µ{¡þÃµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ÷µµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þ3µµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þpµµµµµµµµµµµµµµµrelated_pinµ:µ"WR";¡þ¬µµµµµµµµµµ}¡þèµµµµµ}¡þ%µµµµµpinµ(WR)µ{¡þaµµµµµµµdirectionµ:µinput;¡þµµµµµµµcapacitanceµ:µ1.13;¡þÙµµµµµµµclockµ:µtrue;¡þµµµµµ}¡þRµµµµµpinµ(OE)µ{¡þŽµµµµµµµdirectionµ:µinput;¡þÊµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµclockµ:µtrue;¡þCµµµµµ}¡þµµµµµbus(QO){¡þ¼µµµµµµµbus_typeµµ:µ"bus32";¡þøµµµµµµµdirectionµ:µoutput;¡þ	4µµµµµµµmemory_read()µ{¡þ	pµµµµµµµµµaddressµ:µRA;¡þ	­µµµµµµµ}¡þ	éµµµµµµµthree_stateµ:µ"OE";¡þ
%µµµµµµµtimingµ()µ{¡þ
bµµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ
žµµµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ
Úµµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þµµµµµµµµµµµµintrinsic_fallµ:µ5.50;’W1D“I501ileaf_page_string1:10-47¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³47¡þÃ²´µµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þµµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þ<µµµµµµµ}¡þyµµµµ}¡þ¶µ}¡þó}¡þ²Example 10³14´µshowsµanµasynchronousµ9³bitµbyµ2³wordµRAMµcell¡þÖwithµdualµport,µreadµbar,µandµwriteµbar.¡,†²&Example 10³14³Asynchronousµ9x2µRAMµCellµwithµDualµPort¡þÝ²library´µ(µmemory)µ{¡þ...¡þVtype(bus3)µ{¡þŠµµbase_typeµ:µarray;¡þ¾µµdata_typeµ:µbit;¡þòµµbit_widthµ:µ3;¡þ/µµbit_fromµ:µ0;¡þcµµbit_toµ:µ2;¡þ—µµdowntoµ:µfalse;¡þÊ}¡þtype(bus2)µ{¡þ;µµbase_typeµ:µarray;¡þoµµdata_typeµ:µbit;¡þ£µµbit_widthµ:µ2;¡þàµµbit_fromµ:µ0;¡þµµbit_toµ:µ1;¡þGµµdowntoµ:µfalse;¡þ{}¡þ¸...¡þõcellµ(async_web_oeb)µ{¡þ	2µµµµµµareaµ:µ5000.000;¡þ	eµµµµµµinterface_timingµ:µTRUE;¡þ	¢µµµµµµmemory()µ{¡þ	Öµµµµµµµµtypeµ:µram;¡þ

µµµµµµµµaddress_widthµ:µ3;¡þ
>µµµµµµµµword_widthµ:µ2;¡þ
rµµµµµµ}¡þ
¯µµµµµµbusµ(RA)µ{¡þ
âµµµµµµµµµµµbus_typeµµ:µ"bus3";µ¡þµµµµµµµµµµµdirectionµ:µinput;’1ŽD“I501ileaf_page_string1:10-48¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³48¡þÃ²´µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ÷µµµµµµµµµµµfanout_loadµ:µ1.46;¡þ+µµµµµµµµµµµtimingµ()µ{¡þeµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ™µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þÍµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þµµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þ<µµµµµµµµµµµ}¡þwµµµµµµµµµµµtimingµ()µ{¡þ«µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þßµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µ¡þµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þMµµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þµµµµµµµµµµµ}µµµµµµ¡þµµµµµµ}¡þðµµµµµµbusµ(WA)µ{¡þ$µµµµµµµµµµµbus_typeµµ:µ"bus3";µ¡þXµµµµµµµµµµµdirectionµ:µinput;¡þŒµµµµµµµµµµµcapacitanceµ:µ1.46;¡þÇµµµµµµµµµµµfanout_loadµ:µ1.46;¡þúµµµµµµµµµµµtimingµ()µ{¡þ.µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þbµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þÑµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þµµµµµµµµµµµ}¡þ@µµµµµµµµµµµtimingµ()µ{¡þtµµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ§µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µ¡þÛµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þJµµµµµµµµµµµ}µµµµµµ¡þ~µµµµµ}¡þ¹µµµµµbusµ(DI)µ{¡þíµµµµµµµµµµµbus_typeµµµ:µ"bus2"¡þ	(µµµµµµµµµµµdirectionµ:µinput;¡þ	[µµµµµµµµµµµcapacitanceµ:µ1.46;¡þ	–µµµµµµµµµµµfanout_loadµ:µ1.46;¡þ	Ñµµµµµµµµµµµmemory_write()µ{¡þ
µµµµµµµµµµµµµaddressµ:µWA;¡þ
9µµµµµµµµµµµµµenableµ:µ"WEB";¡þ
tµµµµµµµµµµµ}¡þ
¯µµµµµµµµµµµtimingµ()µ{¡þ
âµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µ/*µinputµdataµsetupµtimeµ*/’Ž:D“I501ileaf_page_string1:10-49¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³49¡þÃ²´µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ÷µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ2µµµµµµµµµµµ}¡þmµµµµµµµµµµµtimingµ()µ{¡þ¡µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þÕµµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µ/*µinputµdataµholdµtimeµ*/¡þµµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þDµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ€µµµµµµµµµµµ}¡þ»µµµµµµ}¡þöµ¡þ2µµµµµpinµ(WE)µ{¡þfµµµµµµµdirectionµ:µinput;¡þ™µµµµµµµcapacitanceµ:µ1.13;¡þÕµµµµµµµclockµ:µtrue;µ¡þ	µµµµµ}¡þDµµµµµpinµ(OE)µ{¡þµµµµµµµdirectionµ:µinput;¡þ»µµµµµµµcapacitanceµ:µ1.13;¡þïµµµµµµµclockµ:µtrue;¡þ*µµµµµ}¡þeµµµµµpinµ(WEB)µ{¡þ™µµµµµµµdirectionµ:µinternal;¡þÔµµµµµµµcapacitanceµ:µ1.13;¡þµµµµµµµstate_functionµ:µ"!WE";¡þKµµµµµµµclockµ:µtrue;µ¡þµµµµµ}¡þºµµµµµbus(QO){¡þîµµµµµµµbus_typeµµ:µ"bus2";¡þ)µµµµµµµdirectionµ:µoutput;¡þeµ¡þ µµµµµµµmemory_read()µ{¡þÛµµµµµµµµµaddressµ:µRA;¡þ	µµµµµµµ}¡þ	Kµµµµµµ¡þ	µµµµµµµthree_stateµµ:µ"!OE";¡þ	ºµµµµµµµtimingµ()µ{¡þ	îµµµµµµµµµµµµtiming_senseµ:µnon_unate;¡þ
)µµµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þ
dµµµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ
 µµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ
Ûµµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þµµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";’:fD“I501ileaf_page_string1:10-50¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³50¡þÃ²´µµµµµµµ}¡þüµµµµµµµtimingµ()µ{¡þ0µµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þhµµµµµµµµµµµµintrinsic_riseµ:µ1.50;µ/*µoutputµdataµsetup¡þœtimeµ*/¡þÕµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þµµµµµµµµµµµµrelated_pinµ:µ"OE";¡þGµµµµµµµ}¡þµµµµµµµtimingµ()µ{¡þ¸µµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þñµµµµµµµµµµµµintrinsic_riseµ:µ0.65;µµµ/*µoutputµdataµhold¡þ%timeµ*/¡þ^µµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ–µµµµµµµµµµµµrelated_pinµ:µ"OE";¡þÏµµµµµµµ}¡þµµµµ}¡þAµ}¡þz...¡þ²}¡þ9²Example 10³15´µshowsµanµasynchronousµ16³bitµbyµ18³wordµRAMµcell¡þwithµdualµport.¡,²&Example 10³15³Asynchronousµ16x18µRAMµCellµwithµDualµPort¡þ‡²library´µ(µmemory)µ{¡þÀ...¡þøtype(bus18)µ{¡þ,µµbase_typeµ:µarray;¡þeµµdata_typeµ:µbit;¡þ™µµbit_widthµ:µ18;¡þÍµµbit_fromµ:µ0;¡þ	µµbit_toµ:µ17;¡þ	:µµdowntoµ:µfalse;¡þ	m}¡þ	¦type(bus4)µ{¡þ	Úµµbase_typeµ:µarray;¡þ
µµdata_typeµ:µbit;¡þ
Bµµbit_widthµ:µ4;¡þ
{µµbit_fromµ:µ0;¡þ
¯µµbit_toµ:µ3;¡þ
âµµdowntoµ:µfalse;¡þ}’fD“I501ileaf_page_string1:10-51¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³51¡þÃ²...¡þÿcell´µ(async_dual_16X18)µ{¡þ:µµµµµµareaµ:µ5000.000;¡þnµµµµµµinterface_timingµ:µTRUE;¡þªµµµµµµmemory()µ{¡þÞµµµµµµµµtypeµ:µram;¡þµµµµµµµµaddress_widthµ:µ4;¡þUµµµµµµµµword_widthµ:µ18;¡þ‰µµµµµµ}¡þÅµµµµµµbusµ(RA)µ{¡þùµµµµµµµµµµµbus_typeµµ:µ"bus4";µ¡þ-µµµµµµµµµµµdirectionµ:µinput;¡þhµµµµµµµµµµµcapacitanceµ:µ1.46;¡þ¤µµµµµµµµµµµfanout_loadµ:µ1.46;¡þØµµµµµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þGµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þƒµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ·µµµµµµµµµµµµµµµµrelated_pinµ:µ"OE";¡þóµµµµµµµµµµ}¡þ.µµµµµµµµµµtimingµ()µ{¡þbµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ–µµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;µµ¡þÊµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þþµµµµµµµµµµµµµµrelated_pinµ:µ"OE";µ¡þ2µµµµµµµµµ}µµµµµµ¡þfµµµµµ}¡þ¡µµµµµµbusµ(WA)µ{¡þÕµµµµµµµµµµµbus_typeµµ:µ"bus4";¡þµµµµµµµµµµµdirectionµ:µinput;¡þEµµµµµµµµµµµcapacitanceµ:µ1.46;¡þyµµµµµµµµµµµfanout_loadµ:µ1.46;¡þµµµµµµµµµµµµtimingµ()µ{¡þèµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ	$µµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;µ¡þ	Xµµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ	”µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þ	Èµµµµµµµµµµµ}¡þ
µµµµµµµµµµµtimingµ()µ{¡þ
7µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ
kµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;¡þ
§µµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ
âµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";µ¡þµµµµµµµµµµµ}’]D“I501ileaf_page_string1:10-52¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³52¡þÃ²´µµµµµ}¡þÿµµµµµbusµ(DI)µ{¡þ3µµµµµµµµµµµbus_typeµµµ:µ"bus18"¡þoµµµµµµµµµµµdirectionµ:µinput;¡þ«µµµµµµµµµµµcapacitanceµ:µ1.46;¡þçµµµµµµµµµµµfanout_loadµ:µ1.46;¡þ#µµµµµµµµµµµmemory_write()µ{¡þWµµµµµµµµµµµµµaddressµ:µWA;¡þ‹µµµµµµµµµµµµµenableµ:µWE;¡þ¿µµµµµµµµµµµ}¡þûµµµµµµµµµµµtimingµ()µ{¡þ/µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þcµµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þŸµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þÓµµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þµµµµµµµµµµµ}¡þKµµµµµµµµµµµtimingµ()µ{¡þ‡µµµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ»µµµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þ÷µµµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ+µµµµµµµµµµµµµµµµrelated_pinµ:µ"WE";¡þ_µµµµµµµµµµµ}¡þ“µµµµµ}¡þÏµµµµµpinµ(WE)µ{¡þµµµµµµµdirectionµ:µinput;¡þ7µµµµµµµcapacitanceµ:µ1.13;¡þsµµµµµµµclockµ:µtrue;µ¡þ§µµµµµ}¡þãµµµµµpinµ(OE)µ{¡þµµµµµµµdirectionµ:µinput;¡þKµµµµµµµcapacitanceµ:µ1.13;¡þ‡µµµµµµµclockµ:µtrue;µ¡þ»µµµµµ}¡þ÷µµµµµbus(QO){¡þ	+µµµµµµµbus_typeµµ:µ"bus18";¡þ	_µµµµµµµdirectionµ:µoutput;¡þ	›µµµµµµµ¡þ	Ïµµµµµµµmemory_read()µ{¡þ
µµµµµµµµµaddressµ:µRA;¡þ
?µµµµµµµ}¡þ
rµµµµµµµthree_stateµ:µ"OE";¡þ
¯µµµµµµµtimingµ()µ{¡þ
âµµµµµµµµµµµtiming_senseµ:µnon_unate;µ¡þµµµµµµµµµµµintrinsic_riseµ:µ5.25;’]˜D“I501ileaf_page_string1:10-53¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³53¡þÃ²´µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þ÷µµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ+µµµµµµµµµµµfall_resistanceµ:µ0.017;¡þhµµµµµµµµµµµrelated_bus_pinsµ:µ"RA";¡þ›µµµµµµµ}¡þØµµµµµµµtimingµ()µ{¡þµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þIµµµµµµµµµµµintrinsic_riseµ:µ5.25;µµµµ¡þ}µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þºµµµµµµµµµµµrelated_pinµ:µ"OE";¡þ÷µµµµµµµ}¡þ4µµµµµµµtimingµ()µ{¡þqµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ­µµµµµµµµµµµintrinsic_riseµ:µ5.25;¡þêµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þ'µµµµµµµµµµµrelated_pinµ:µ"OE";¡þ[µµµµµµµ}¡þ˜µµµµ}¡þÕµ}¡þ...¡þO}¡þê²Example 10³16´µisµaµsynchronousµ16³wordµbyµ8³bitµRAMµcellµwith¡þ2oneµwriteµportµandµoneµreadµport,µaµpositiveµedge³triggeredµclock¡þ{(CLK),µactive³highµwriteµenableµ(WE),µchipµselectµ(CS),µandµread¡þÄenableµ(RE).µDataµisµclockedµinµfromµtheµRAMDATA_INµbusµonµthe¡þpositiveµedgeµofµCLK,µbutµonlyµwhenµWEµisµactive.µBothµCSµandµRE¡þUmustµbeµactiveµforµtheµRAM_OUTµbusµtoµdriveµtheµoutput.¡þžOtherwise,µRAM_OUTµisµinµaµthree³stateµmode.’˜ßD“I501ileaf_page_string1:10-54¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³54¡,É²&Example 10³16³Synchronous´µ16x8µRAMµCellµwithµOneµReadµPortµandµOne¡²WriteµPort¡þg²cell´µ(RAM1_16Bx8)µ{¡þ¦µµareaµ:µ2500.000;¡þÙµµinterface_timingµ:µTRUE;¡þµ¡þLµµmemory()µ{¡þ€µµµµtypeµ:µram;¡þ´µµµµaddress_widthµ:µ4;¡þçµµµµword_widthµ:µ8;¡þµµ}¡þZµµbusµ(ADDR_IN)µ{¡þŽµµµµbus_typeµµ:µ"bus4";µ¡þÁµµµµdirectionµ:µinput;¡þµµµµcapacitanceµ:µ1.46;¡þ4µµµµfanout_loadµ:µ1.46;¡þhµ¡þ¦µµµµtimingµ()µ{¡þÚµµµµµµtiming_typeµ:µsetup_falling;¡þµµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þLµµµµµµintrinsic_fallµ:µ3.20;¡þ€µµµµµµrelated_pinµ:µ"CLK";µ¡þ´µµµµ}¡þòµµµµtimingµ()µ{¡þ&µµµµµµtiming_typeµ:µhold_rising;¡þZµµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þ™µµµµµµintrinsic_fallµ:µ1.85;¡þÌµµµµµµrelated_pinµ:µ"CLK";µ¡þµµµµ}¡þ?µµ}¡þ}µµbusµ(RAMDATA_IN)µ{¡þ±µµµµbus_typeµµµ:µ"bus8"¡þåµµµµdirectionµ:µinput;¡þ	#µµµµcapacitanceµ:µ1.46;¡þ	bµµµµfanout_loadµ:µ1.46;¡þ	 µµµµmemory_write()µ{¡þ	Þµµµµµµaddressµ:µADDR_IN;¡þ
µµµµµµclocked_onµ:µ"WECLK";¡þ
[µµµµ}¡þ
šµµµµtimingµ()µ{¡þ
Øµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµintrinsic_riseµ:µ1.50;µ/*µinputµdataµsetupµtimeµ*/’ßïD“I501ileaf_page_string1:10-55¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³55¡þÃ²´µµµµµµintrinsic_fallµ:µ1.50;¡þµµµµµµrelated_pinµ:µ"WE";¡þ>µµµµ}¡þ|µµµµtimingµ()µ{¡þºµµµµµµtiming_typeµ:µhold_rising;¡þ÷µµµµµµintrinsic_riseµ:µ0.65;µ/*µinputµdataµholdµtimeµ*/¡þ5µµµµµµintrinsic_fallµ:µ0.65;¡þsµµµµµµrelated_pinµ:µ"WE";¡þ±µµµµ}¡þîµµ}¡þ,µ¡þjµµpinµ(WE)µ{¡þ¨µµµµdirectionµ:µinput;¡þåµµµµcapacitanceµ:µ1.13;¡þ#µµµµclockµ:µfalse;¡þaµµ}¡þžµ¡þÜµµpinµ(CLK)µ{¡þµµµµdirectionµ:µinput;¡þXµµµµcapacitanceµ:µ1.5;¡þ•µµµµclockµ:µtrue;¡þÓµµ}¡þµµpinµ(RE)µ{¡þNµµµµdirectionµ:µinput;¡þŒµµµµcapacitanceµ:µ1.2;¡þÊµµµµclockµ:µfalse;¡þµµ}¡þEµµpinµ(CS)µ{¡þyµµµµdirectionµ:µinput;¡þ·µµµµcapacitanceµ:µ1.15;¡þëµµµµclockµ:µfalse;¡þ	)µµ}¡þ	fµµpinµ(WECLK)µ{¡þ	¤µµµµdirectionµ:µinternal;¡þ	âµµµµcapacitanceµ:µ1.5;¡þ
µµµµclockµ:µfalse;¡þ
]µµµµstate_functionµ:µ"WEµ*µCLK";¡þ
›µµ}¡þ
Ùµµbus(RAM_OUT){¡þµµµµbus_typeµµ:µ"bus8";’ï—D“I501ileaf_page_string1:10-56¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³56¡þÃ²´µµµµdirectionµ:µoutput;¡þµµµµmemory_read()µ{¡þ=µµµµµµaddressµ:µADDR_IN;¡þzµµµµ}¡þ¶µµµµthree_stateµ:µ"!CSµ+µ!RE";¡þóµµµµtimingµ()µ{¡þ0µµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡þmµµµµµµintrinsic_riseµ:µ5.25;µµµµ/*µtacc*/¡þ¡µµµµµµrise_resistanceµ:µ0.020;¡þÞµµµµµµintrinsic_fallµ:µ5.50;¡þµµµµµµfall_resistanceµ:µ0.017;¡þXµµµµµµrelated_bus_pinsµ:µ"ADDR_IN";¡þ•µµµµµ}¡þÑµ¡þµµ}¡þK}¡þæ²Example 10³17´µisµanµasynchronousµ16³wordµbyµ8³bitµRAMµcellµwith¡þ/twoµwriteµports,µtwoµreadµports,µandµactive³highµwriteµenablesµ(WE).¡þwAllµtheµaddressesµareµheldµinµlatchesµthatµareµclockedµbyµthe¡þÀRAMCLKµinputµpin.µWriteµportµ1µisµenabledµbyµWE1.µWriteµportµ2µis¡þ	enabledµbyµWE2.µIfµbothµwriteµportsµwriteµtoµtheµsameµaddress,µwrite¡þQportµ1µdominates,µandµwriteµportµ2µisµinhibited.µµThisµisµaccomplished¡þšbyµcreatingµanµinternalµpinµnamedµWE2_CONDITIONED.¡þãWE2_CONDITIONEDµequalsµWE2µunlessµWE2_CONDITIONEDµis¡þ+inhibitedµbyµwriteµportµ1µandµwriteµportµ2µwritingµtoµtheµsame¡þtaddress.’—¼D“I501ileaf_page_string1:10-57¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³57¡,É²&Example 10³17³Asynchronous´µ16x8µRAMµCellµwithµTwoµWriteµPortsµand¡²TwoµReadµPorts¡þª²cell´µ(RAM2_16Bx8)µ{¡þéµµareaµ:µ2500.000;¡þ)µµinterface_timingµ:µTRUE;¡þhµµmemory()µ{¡þ§µµµµtypeµ:µram;¡þçµµµµaddress_widthµ:µ4;¡þ&µµµµword_widthµ:µ8;¡þfµµ}¡þ¥µµstatetableµ(µ"µµDµµµµµµµµRAMCLKµµµ",µµ"µµµµµµµµQ")µ{¡þåµµµµtableµ:µ"µµµµL/HµµµµµµµµµHµµµµµµ:µ-µ:µµµL/H,\¡þ$µµµµµµµµµµµµµµµµµµ-µµµµµµµµµµLµµµµµµ:µ-µ:µµµµN";¡þcµµ}¡þ£µµbusµ(READADDR1_IN)µ{¡þâµµµµbus_typeµµ:µ"bus4";¡þ"µµµµdirectionµ:µinput;¡þaµµµµcapacitanceµ:µ1.46;¡þ¡µµµµfanout_loadµ:µ1.46;¡þàµµµµtimingµ()µ{¡þµµµµµµtiming_typeµ:µsetup_falling;¡þ_µµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þžµµµµµµintrinsic_fallµ:µ3.20;¡þÞµµµµµµrelated_pinµ:µ"RAMCLK";¡þµµµµ}¡þ]µµµµtimingµ()µ{¡þœµµµµµµtiming_typeµ:µhold_rising;¡þÛµµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þ	µµµµµµintrinsic_fallµ:µ1.85;¡þ	Zµµµµµµrelated_pinµ:µ"RAMCLK";¡þ	šµµµµ}¡þ	Ùµµ}¡þ
µµbusµ(READADDR2_IN)µ{¡þ
Xµµµµbus_typeµµ:µ"bus4";¡þ
˜µµµµdirectionµ:µinput;¡þ
×µµµµcapacitanceµ:µ1.46;¡þµµµµfanout_loadµ:µ1.46;’¼D“I501ileaf_page_string1:10-58¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³58¡þÃ²´µµµµtimingµ()µ{¡þµµµµµµtiming_typeµ:µsetup_falling;¡þ?µµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þ}µµµµµµintrinsic_fallµ:µ3.20;¡þ»µµµµµµrelated_pinµ:µ"RAMCLK";¡þùµµµµ}¡þ7µµµµtimingµ()µ{¡þuµµµµµµtiming_typeµ:µhold_rising;¡þ³µµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þñµµµµµµintrinsic_fallµ:µ1.85;¡þ/µµµµµµrelated_pinµ:µ"RAMCLK";¡þmµµµµ}¡þ«µµ}¡þ'µµbusµ(READADDR1_LATCHED)µ{¡þ[µµµµbus_typeµ:µ"bus4";¡þ™µµµµdirectionµ:µinternal;¡þ×µµµµcapacitanceµ:µ1.85;¡þSµµµµpinµ(READADDR1_LATCHED[0])µ{¡þ‘µµµµµµinternal_nodeµ:µ"Q";¡þÏµµµµµµinput_mapµ:µ"µREADADDR1_IN[0],µRAMCLK";¡þµµµµµµtiming()µ{¡þKµµµµµµµµtiming_typeµ:µsetup_falling;¡þ‰µµµµµµµµintrinsic_riseµ:µ3.20;¡þÇµµµµµµµµintrinsic_fallµ:µ3.20;¡þµµµµµµµµrelated_pinµ:µ"READADDR1_IN[0]";¡þCµµµµµµ}¡þµµµµµµtimingµ()µ{¡þ¿µµµµµµµµtiming_typeµ:µhold_rising;¡þýµµµµµµµµintrinsic_riseµ:µ1.85;¡þ	;µµµµµµµµintrinsic_fallµ:µ1.85;¡þ	oµµµµµµµµrelated_pinµ:µ"READADDR1_IN[0]";¡þ	¬µµµµµµ}¡þ	êµµµµ}¡þ
(µµµµpinµ(READADDR1_LATCHED[1])µ{¡þ
fµµµµµµinternal_nodeµ:µ"Q";¡þ
¤µµµµµµinput_mapµ:µ"µREADADDR1_IN[1],µRAMCLK";¡þ
Øµµµµµµtiming()µ{¡þµµµµµµµµtiming_typeµ:µsetup_falling;’@D“I501ileaf_page_string1:10-59¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³59¡þÃ²´µµµµµµµµintrinsic_riseµ:µ3.20;¡þµµµµµµµµintrinsic_fallµ:µ3.20;¡þ4µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þrµµµµµµ}¡þ¯µµµµµµtimingµ()µ{¡þíµµµµµµµµtiming_typeµ:µhold_rising;¡þ*µµµµµµµµintrinsic_riseµ:µ1.85;¡þhµµµµµµµµintrinsic_fallµ:µ1.85;¡þ¥µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þâµµµµµµ}¡þ µµµµ}¡þ]µµµµpinµ(READADDR1_LATCHED[2])µ{¡þ›µµµµµµinternal_nodeµ:µ"Q";¡þØµµµµµµinput_mapµ:µ"µREADADDR1_IN[2],µRAMCLK";¡þµµµµµµtiming()µ{¡þSµµµµµµµµtiming_typeµ:µsetup_falling;¡þ‘µµµµµµµµintrinsic_riseµ:µ3.20;¡þÎµµµµµµµµintrinsic_fallµ:µ3.20;¡þµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þIµµµµµµ}¡þ‡µµµµµµtimingµ()µ{¡þÄµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµintrinsic_riseµ:µ1.85;¡þ?µµµµµµµµintrinsic_fallµ:µ1.85;¡þ|µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þºµµµµµµ}¡þ÷µµµµ}¡þ5µµµµpinµ(READADDR1_LATCHED[3])µ{¡þrµµµµµµinternal_nodeµ:µ"Q";¡þ°µµµµµµinput_mapµ:µ"µREADADDR1_IN[3],µRAMCLK";¡þíµµµµµµtiming()µ{¡þ	+µµµµµµµµtiming_typeµ:µsetup_falling;¡þ	hµµµµµµµµintrinsic_riseµ:µ3.20;¡þ	¦µµµµµµµµintrinsic_fallµ:µ3.20;¡þ	ãµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ
!µµµµµµ}¡þ
^µµµµµµtimingµ()µ{¡þ
›µµµµµµµµtiming_typeµ:µhold_rising;¡þ
Ùµµµµµµµµintrinsic_riseµ:µ1.85;¡þµµµµµµµµintrinsic_fallµ:µ1.85;’@ùD“I501ileaf_page_string1:10-60¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³60¡þÃ²´µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þÿµµµµµµ}¡þ:µµµµ}¡þvµµ}¡þ²µµbusµ(READADDR2_LATCHED)µ{¡þíµµµµbus_typeµ:µ"bus4";¡þ)µµµµdirectionµ:µinternal;¡þeµµµµcapacitanceµ:µ1.85;¡þÜµµµµpinµ(READADDR2_LATCHED[0])µ{¡þµµµµµµinternal_nodeµ:µ"Q";¡þSµµµµµµinput_mapµ:µ"µREADADDR2_IN[0],µRAMCLK";¡þµµµµµµtiming()µ{¡þËµµµµµµµµtiming_typeµ:µsetup_falling;¡þµµµµµµµµintrinsic_riseµ:µ3.20;¡þBµµµµµµµµintrinsic_fallµ:µ3.20;¡þ~µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þºµµµµµµ}¡þõµµµµµµtimingµ()µ{¡þ1µµµµµµµµtiming_typeµ:µhold_rising;¡þmµµµµµµµµintrinsic_riseµ:µ1.85;¡þ¨µµµµµµµµintrinsic_fallµ:µ1.85;¡þäµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ µµµµµµ}¡þ[µµµµ}¡þ—µµµµpinµ(READADDR2_LATCHED[1])µ{¡þÓµµµµµµinternal_nodeµ:µ"Q";¡þµµµµµµinput_mapµ:µ"µREADADDR2_IN[1],µRAMCLK";¡þJµµµµµµtiming()µ{¡þ†µµµµµµµµtiming_typeµ:µsetup_falling;¡þÁµµµµµµµµintrinsic_riseµ:µ3.20;¡þýµµµµµµµµintrinsic_fallµ:µ3.20;¡þ	9µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ	uµµµµµµ}¡þ	°µµµµµµtimingµ()µ{¡þ	ìµµµµµµµµtiming_typeµ:µhold_rising;¡þ
(µµµµµµµµintrinsic_riseµ:µ1.85;¡þ
cµµµµµµµµintrinsic_fallµ:µ1.85;¡þ
Ÿµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ
Ûµµµµµµ}¡þµµµµ}’ùôD“I501ileaf_page_string1:10-61¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³61¡þÃ²´µµµµpinµ(READADDR2_LATCHED[2])µ{¡þµµµµµµinternal_nodeµ:µ"Q";¡þ=µµµµµµinput_mapµ:µ"µREADADDR2_IN[2],µRAMCLK";¡þ{µµµµµµtiming()µ{¡þ¸µµµµµµµµtiming_typeµ:µsetup_falling;¡þõµµµµµµµµintrinsic_riseµ:µ3.20;¡þ2µµµµµµµµintrinsic_fallµ:µ3.20;¡þoµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ­µµµµµµ}¡þêµµµµµµtimingµ()µ{¡þ'µµµµµµµµtiming_typeµ:µhold_rising;¡þdµµµµµµµµintrinsic_riseµ:µ1.85;¡þ¡µµµµµµµµintrinsic_fallµ:µ1.85;¡þßµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þµµµµµµ}¡þYµµµµ}¡þ–µµµµpinµ(READADDR2_LATCHED[3])µ{¡þÔµµµµµµinternal_nodeµ:µ"Q";¡þµµµµµµinput_mapµ:µ"µREADADDR2_IN[3],µRAMCLK";¡þNµµµµµµtiming()µ{¡þ‹µµµµµµµµtiming_typeµ:µsetup_falling;¡þÈµµµµµµµµintrinsic_riseµ:µ3.20;¡þµµµµµµµµintrinsic_fallµ:µ3.20;¡þCµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ€µµµµµµ}¡þ½µµµµµµtimingµ()µ{¡þûµµµµµµµµtiming_typeµ:µhold_rising;¡þ8µµµµµµµµintrinsic_riseµ:µ1.85;¡þuµµµµµµµµintrinsic_fallµ:µ1.85;¡þ²µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þïµµµµµµ}¡þ	-µµµµ}¡þ	jµµ}¡þ	§µ¡þ	äµµbusµ(WRITEADDR1_IN)µ{¡þ
!µµµµbus_typeµµ:µ"bus4";¡þ
_µµµµdirectionµ:µinput;¡þ
œµµµµcapacitanceµ:µ1.46;¡þ
Ùµµµµfanout_loadµ:µ1.46;¡þµµµµtimingµ()µ{’ôãD“I501ileaf_page_string1:10-62¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³62¡þÃ²´µµµµµµtiming_typeµ:µsetup_falling;¡þµµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þ=µµµµµµintrinsic_fallµ:µ3.20;¡þ{µµµµµµrelated_pinµ:µWE1;¡þ¸µµµµ}¡þõµµµµtimingµ()µ{¡þ2µµµµµµtiming_typeµ:µhold_rising;¡þoµµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þ­µµµµµµintrinsic_fallµ:µ1.85;¡þêµµµµµµrelated_pinµ:µWE1;¡þ'µµµµ}¡þdµµ}¡þ¡µµbusµ(WRITEADDR2_IN)µ{¡þßµµµµbus_typeµµ:µ"bus4";¡þµµµµdirectionµ:µinput;¡þYµµµµcapacitanceµ:µ1.46;¡þ–µµµµfanout_loadµ:µ1.46;¡þÔµµµµtimingµ()µ{¡þµµµµµµtiming_typeµ:µsetup_falling;¡þNµµµµµµintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡þ‹µµµµµµintrinsic_fallµ:µ3.20;¡þÈµµµµµµrelated_pinµ:µWE2;¡þµµµµ}¡þCµµµµtimingµ()µ{¡þ€µµµµµµtiming_typeµ:µhold_rising;¡þ½µµµµµµintrinsic_riseµ:µ1.85;µµµ/*µtadhµ*/¡þûµµµµµµintrinsic_fallµ:µ1.85;¡þ8µµµµµµrelated_pinµ:µWE2;¡þuµµµµ}¡þ²µµ}¡þïµµbusµ(WRITEADDR1_LATCHED)µ{¡þ	-µµµµbus_typeµ:µ"bus4";¡þ	jµµµµdirectionµ:µinternal;¡þ	§µµµµcapacitanceµ:µ1.85;¡þ
!µµµµpinµ(WRITEADDR1_LATCHED[0])µ{¡þ
_µµµµµµinternal_nodeµ:µ"Q";¡þ
œµµµµµµinput_mapµ:µ"µWRITEADDR1_IN[0],µRAMCLK";¡þ
Ùµµµµµµtiming()µ{¡þµµµµµµµµtiming_typeµ:µsetup_falling;’ãDD“I501ileaf_page_string1:10-63¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³63¡þÃ²´µµµµµµµµintrinsic_riseµ:µ3.20;¡þµµµµµµµµintrinsic_fallµ:µ3.20;¡þ=µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ{µµµµµµ}¡þ¸µµµµµµtimingµ()µ{¡þõµµµµµµµµtiming_typeµ:µhold_rising;¡þ2µµµµµµµµintrinsic_riseµ:µ1.85;¡þoµµµµµµµµintrinsic_fallµ:µ1.85;¡þ­µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þêµµµµµµ}¡þ'µµµµ}¡þdµµµµpinµ(WRITEADDR1_LATCHED[1])µ{¡þ¡µµµµµµinternal_nodeµ:µ"Q";¡þßµµµµµµinput_mapµ:µ"µWRITEADDR1_IN[1],µRAMCLK";¡þµµµµµµtiming()µ{¡þYµµµµµµµµtiming_typeµ:µsetup_falling;¡þ–µµµµµµµµintrinsic_riseµ:µ3.20;¡þÔµµµµµµµµintrinsic_fallµ:µ3.20;¡þµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þNµµµµµµ}¡þ‹µµµµµµtimingµ()µ{¡þÈµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµintrinsic_riseµ:µ1.85;¡þCµµµµµµµµintrinsic_fallµ:µ1.85;¡þ€µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ½µµµµµµ}¡þûµµµµ}¡þ8µµµµpinµ(WRITEADDR1_LATCHED[2])µ{¡þuµµµµµµinternal_nodeµ:µ"Q";¡þ²µµµµµµinput_mapµ:µ"µWRITEADDR1_IN[2],µRAMCLK";¡þïµµµµµµtiming()µ{¡þ	-µµµµµµµµtiming_typeµ:µsetup_falling;¡þ	jµµµµµµµµintrinsic_riseµ:µ3.20;¡þ	§µµµµµµµµintrinsic_fallµ:µ3.20;¡þ	äµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ
!µµµµµµ}¡þ
_µµµµµµtimingµ()µ{¡þ
œµµµµµµµµtiming_typeµ:µhold_rising;¡þ
Ùµµµµµµµµintrinsic_riseµ:µ1.85;¡þµµµµµµµµintrinsic_fallµ:µ1.85;’DþD“I501ileaf_page_string1:10-64¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³64¡þÃ²´µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þÿµµµµµµ}¡þ:µµµµ}¡þvµµµµpinµ(WRITEADDR1_LATCHED[3])µ{¡þ²µµµµµµinternal_nodeµ:µ"Q";¡þíµµµµµµinput_mapµ:µ"µWRITEADDR1_IN[3],µRAMCLK";¡þ)µµµµµµtiming()µ{¡þeµµµµµµµµtiming_typeµ:µsetup_falling;¡þ µµµµµµµµintrinsic_riseµ:µ3.20;¡þÜµµµµµµµµintrinsic_fallµ:µ3.20;¡þµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þSµµµµµµ}¡þµµµµµµtimingµ()µ{¡þËµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµintrinsic_riseµ:µ1.85;¡þBµµµµµµµµintrinsic_fallµ:µ1.85;¡þ~µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þºµµµµµµ}¡þõµµµµ}¡þ1µµ}¡þmµµbusµ(WRITEADDR2_LATCHED)µ{¡þ¨µµµµbus_typeµ:µ"bus4";¡þäµµµµdirectionµ:µinternal;¡þ µµµµcapacitanceµ:µ1.85;¡þ—µµµµpinµ(WRITEADDR2_LATCHED[0])µ{¡þÓµµµµµµinternal_nodeµ:µ"Q";¡þµµµµµµinput_mapµ:µ"µWRITEADDR2_IN[0],µRAMCLK";¡þJµµµµµµtiming()µ{¡þ†µµµµµµµµtiming_typeµ:µsetup_falling;¡þÁµµµµµµµµintrinsic_riseµ:µ3.20;¡þýµµµµµµµµintrinsic_fallµ:µ3.20;¡þ	9µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ	uµµµµµµ}¡þ	°µµµµµµtimingµ()µ{¡þ	ìµµµµµµµµtiming_typeµ:µhold_rising;¡þ
(µµµµµµµµintrinsic_riseµ:µ1.85;¡þ
cµµµµµµµµintrinsic_fallµ:µ1.85;¡þ
Ÿµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ
Ûµµµµµµ}¡þµµµµ}’þwD“I501ileaf_page_string1:10-65¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³65¡þÃ²´µµµµpinµ(WRITEADDR2_LATCHED[1])µ{¡þÿµµµµµµinternal_nodeµ:µ"Q";¡þ:µµµµµµinput_mapµ:µ"µWRITEADDR2_IN[1],µRAMCLK";¡þvµµµµµµtiming()µ{¡þ²µµµµµµµµtiming_typeµ:µsetup_falling;¡þíµµµµµµµµintrinsic_riseµ:µ3.20;¡þ)µµµµµµµµintrinsic_fallµ:µ3.20;¡þeµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ µµµµµµ}¡þÜµµµµµµtimingµ()µ{¡þµµµµµµµµtiming_typeµ:µhold_rising;¡þSµµµµµµµµintrinsic_riseµ:µ1.85;¡þµµµµµµµµintrinsic_fallµ:µ1.85;¡þËµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þµµµµµµ}¡þBµµµµ}¡þ~µµµµpinµ(WRITEADDR2_LATCHED[2])µ{¡þºµµµµµµinternal_nodeµ:µ"Q";¡þõµµµµµµinput_mapµ:µ"µWRITEADDR2_IN[2],µRAMCLK";¡þ1µµµµµµtiming()µ{¡þmµµµµµµµµtiming_typeµ:µsetup_falling;¡þ¨µµµµµµµµintrinsic_riseµ:µ3.20;¡þäµµµµµµµµintrinsic_fallµ:µ3.20;¡þ µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þ[µµµµµµ}¡þ—µµµµµµtimingµ()µ{¡þÓµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµintrinsic_riseµ:µ1.85;¡þJµµµµµµµµintrinsic_fallµ:µ1.85;¡þ†µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þÁµµµµµµ}¡þýµµµµ}¡þ	9µµµµpinµ(WRITEADDR2_LATCHED[3])µ{¡þ	uµµµµµµinternal_nodeµ:µ"Q";¡þ	°µµµµµµinput_mapµ:µ"µWRITEADDR2_IN[3],µRAMCLK";¡þ	ìµµµµµµtiming()µ{¡þ
(µµµµµµµµtiming_typeµ:µsetup_falling;¡þ
cµµµµµµµµintrinsic_riseµ:µ3.20;¡þ
Ÿµµµµµµµµintrinsic_fallµ:µ3.20;¡þ
Ûµµµµµµµµrelated_pinµ:µ"RAMCLK";¡þµµµµµµ}’w¥D“I501ileaf_page_string1:10-66¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³66¡þÃ²´µµµµµµtimingµ()µ{¡þµµµµµµµµtiming_typeµ:µhold_rising;¡þAµµµµµµµµintrinsic_riseµ:µ1.85;¡þµµµµµµµµintrinsic_fallµ:µ1.85;¡þ¾µµµµµµµµrelated_pinµ:µ"RAMCLK";¡þýµµµµµµ}¡þ<µµµµ}¡þ{µµ}¡þ¹µµbusµ(RAMDATA1_IN)µ{¡þøµµµµbus_typeµµµ:µ"bus8"¡þ7µµµµdirectionµ:µinput;¡þvµµµµcapacitanceµ:µ1.46;¡þµµµµµfanout_loadµ:µ1.46;¡þôµµµµmemory_write()µ{¡þ2µµµµµµaddressµ:µWRITEADDR1_LATCHED;¡þqµµµµµµenableµ:µWE1;¡þ°µµµµ}¡þïµµµµtimingµ()µ{¡þ.µµµµµµtiming_typeµ:µsetup_rising;¡þmµµµµµµintrinsic_riseµ:µ1.50;µ/*µinputµdataµsetupµtimeµ*/¡þ«µµµµµµintrinsic_fallµ:µ1.50;¡þêµµµµµµrelated_pinµ:µ"WE1";¡þ)µµµµ}¡þhµµµµtimingµ()µ{¡þ§µµµµµµtiming_typeµ:µhold_rising;¡þæµµµµµµintrinsic_riseµ:µ0.65;µ/*µinputµdataµholdµtimeµ*/¡þ$µµµµµµintrinsic_fallµ:µ0.65;¡þcµµµµµµrelated_pinµ:µ"WE1";¡þ¢µµµµ}¡þáµµ}¡þ	 µµbusµ(RAMDATA2_IN)µ{¡þ	_µµµµbus_typeµµµ:µ"bus8"¡þ	µµµµdirectionµ:µinput;¡þ	Üµµµµcapacitanceµ:µ1.46;¡þ
µµµµfanout_loadµ:µ1.46;¡þ
Zµµµµmemory_write()µ{¡þ
™µµµµµµaddressµ:µWRITEADDR2_LATCHED;¡þ
Øµµµµµµenableµ:µWE2_CONDITIONED;¡þµµµµ}’¥¦D“I501ileaf_page_string1:10-67¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³67¡þÃ²´µµµµtimingµ()µ{¡þµµµµµµtiming_typeµ:µsetup_rising;¡þCµµµµµµintrinsic_riseµ:µ1.50;µ/*µinputµdataµsetupµtimeµ*/¡þƒµµµµµµintrinsic_fallµ:µ1.50;¡þÃµµµµµµrelated_pinµ:µ"WE2";¡þµµµµ}¡þDµµµµtimingµ()µ{¡þ„µµµµµµtiming_typeµ:µhold_rising;¡þÄµµµµµµintrinsic_riseµ:µ0.65;µ/*µinputµdataµholdµtimeµ*/¡þµµµµµµintrinsic_fallµ:µ0.65;¡þDµµµµµµrelated_pinµ:µ"WE2";¡þ„µµµµ}¡þÄµµ}¡þµµpinµ(WE1)µ{¡þDµµµµdirectionµ:µinput;¡þ…µµµµcapacitanceµ:µ1.13;¡þÅµµµµclockµ:µtrue;¡þµµ}¡þEµµpinµ(WE2)µ{¡þ…µµµµdirectionµ:µinput;¡þÅµµµµcapacitanceµ:µ1.13;¡þµµµµclockµ:µtrue;¡þEµµ}¡þ†µµpinµ(WE2_CONDITIONED)µ{¡þÆµµµµdirectionµ:µinternal;¡þµµµµcapacitanceµ:µ0.85;¡þFµµµµstate_functionµ:µ"WE2µ*µ(!WE1µ+µ(WRITEADDR1_LATCHED[0]¡þz^µWRITEADDR2_LATCHED[0])µ+µ(WRITEADDR1_LATCHED[1]µ^¡þ®WRITEADDR2_LATCHED[1])µ+µ(WRITEADDR1_LATCHED[2]µ^¡þâWRITEADDR2_LATCHED[2])µ+µ(WRITEADDR1_LATCHED[3]µ^¡þ	WRITEADDR2_LATCHED[3]))";¡þ	Vµµ}¡þ	–µ¡þ	Öµ¡þ
µµpinµ(RAMCLK)µ{¡þ
Vµµµµdirectionµ:µinput;¡þ
–µµµµcapacitanceµ:µ1.13;¡þ
Öµµµµclockµ:µtrue;¡þµµ}’¦D“I501ileaf_page_string1:10-68¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³68¡þÃ²´µµbus(RAM1_OUT){¡þµµµµbus_typeµµ:µ"bus8";¡þ=µµµµdirectionµ:µoutput;¡þzµµµµmemory_read()µ{¡þ·µµµµµµaddressµ:µREADADDR1_LATCHED;¡þôµµµµ}¡þ1µµµµtimingµ()µ{¡þnµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡þ«µµµµµµintrinsic_riseµ:µ5.25;µµµµ/*µtacc*/¡þèµµµµµµrise_resistanceµ:µ0.020;¡þ%µµµµµµintrinsic_fallµ:µ5.50;¡þbµµµµµµfall_resistanceµ:µ0.017;¡þŸµµµµµµrelated_bus_pinsµ:µ"READADDR1_LATCHED";¡þÛµµµµ}¡þµ¡þUµµ}¡þ’µ¡þÏµµbus(RAM2_OUT){¡þµµµµbus_typeµµ:µ"bus8";¡þIµµµµdirectionµ:µoutput;¡þ†µµµµmemory_read()µ{¡þÃµµµµµµaddressµ:µREADADDR2_LATCHED;¡þµµµµ}¡þ=µµµµtimingµ()µ{¡þzµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡þ·µµµµµµµintrinsic_riseµ:µ5.25;µµµµ/*µtacc*/¡þôµµµµµµµrise_resistanceµ:µ0.020;¡þ1µµµµµµµintrinsic_fallµ:µ5.50;¡þnµµµµµµµfall_resistanceµ:µ0.017;¡þ«µµµµµµµrelated_bus_pinsµ:µ"READADDR2_LATCHED";¡þèµµµµ}¡þ	%µ¡þ	bµµ}¡þ	Ÿ}¡þ
:²Example 10³18´µshowsµanµexampleµofµaµRAMµcellµwithµtheµnew¡þ
ƒmemoryµdescription.µForµmoreµinformationµaboutµtheµsyntaxµofµthe¡þ
Ìcolumn_addressµandµrow_addressµattributes,µseeµtheµ²&Library¡þCompilerµReferenceµManualµVolumeµ1².’ºD“I501ileaf_page_string1:10-69¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³69¡,É²&Example 10³18³RAM´µCellµwithµAddressµRowsµandµColumnsµDescription¡þ(²cell´µ(RAM_10_8)µ{¡þhµµµµµµareaµ:µ2300.000000;¡þ§µµµµµµtype(bus10)µ{¡þçµµµµµµµµµµµbase_typeµ:µarray;¡þ&µµµµµµµµµµµdata_typeµ:µbit;¡þfµµµµµµµµµµµbit_widthµ:µ10;¡þ¥µµµµµµµµµµµbit_fromµ:µ0;¡þåµµµµµµµµµµµbit_toµ:µ9;¡þ$µµµµµµ}¡þ£µµµµµtype(bus8)µ{¡þãµµµµµµµµµµµbase_typeµ:µarray;¡þ"µµµµµµµµµµµdata_typeµ:µbit;¡þbµµµµµµµµµµµbit_widthµ:µ8;¡þ¡µµµµµµµµµµµbit_fromµ:µ0;¡þáµµµµµµµµµµµbit_toµ:µ7;¡þ µµµµµµ}¡þŸµµµµµµmemory()µ{¡þßµµµµµµµµµtypeµ:µram;¡þµµµµµµµµµaddress_widthµ:µ10;¡þ^µµµµµµµµµword_widthµ:µ8;¡þµµµµµµµµµcolumn_addressµ:µ0:4µ5";¡þÝµµµµµµµµµrow_addressµ:µ6:9";¡þµµµµµµ}¡þ\µ¡þ›µµµµµµbusµ(ram_addr)µ{¡þÛµµµµµµµµµµµbus_typeµµ:µbus10";¡þ	µµµµµµµµµµµdirectionµ:µinput;¡þ	Zµµµµµµµµµµµcapacitanceµ:µ1.46;¡þ	™µµµµµµµµµµµfanout_loadµ:µ1.46;¡þ	Ùµµµµµµµµµµµtimingµ()µ{¡þ
µµµµµµµµµµµµµµµµtiming_typeµ:µsetup_falling;¡þ
Xµµµµµµµµµµµµµµµµintrinsic_riseµ:µ3.20;¡þ
—µµµµµµµµµµµµµµµµintrinsic_fallµ:µ3.20;¡þ
×µµµµµµµµµµµµµµµrelated_pinµ:µWR";¡þµµµµµµµµµµ}’ºïD“I501ileaf_page_string1:10-70¥	öä¥	öä¡8Á²âDefining´µMemoryµModules¡.10³70¡þÃ²´µµµµµµµµµµtimingµ()µ{¡þÿµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þ:µµµµµµµµµµµµµµintrinsic_riseµ:µ1.85;¡þvµµµµµµµµµµµµµµintrinsic_fallµ:µ1.85;¡þ²µµµµµµµµµµµµµµrelated_pinµ:µWR";¡þíµµµµµµµµµ}¡þ)µµµµµ}¡þeµ¡þ µµµµµbusµ(data_in)µ{¡þÜµµµµµµµµµµµbus_typeµµµ:µbus8"¡þµµµµµµµµµµµdirectionµ:µinput;¡þSµµµµµµµµµµµcapacitanceµ:µ1.46;¡þµµµµµµµµµµµfanout_loadµ:µ1.46;¡þµµµµµµµµµµµmemory_write()µ{¡þBµµµµµµµµµµµµµaddressµ:µram_addr;¡þ~µµµµµµµµµµµµµenableµ:µWR;¡þºµµµµµµµµµµµ}¡þ1µµµµµµµµµµµtimingµ()µ{¡þmµµµµµµµµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ¨µµµµµµµµµµµµµµµµintrinsic_riseµ:µ1.50;¡þäµµµµµµµµµµµµµµµµintrinsic_fallµ:µ1.50;¡þ µµµµµµµµµµµµµµµµrelated_pinµ:µWR";¡þ[µµµµµµµµµµ}¡þ—µµµµµµµµµµµtimingµ()µ{¡þÓµµµµµµµµµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµµµµµµµµµintrinsic_riseµ:µ0.65;¡þJµµµµµµµµµµµµµµintrinsic_fallµ:µ0.65;¡þ†µµµµµµµµµµµµµµrelated_pinµ:µWR";¡þÁµµµµµµµµµ}¡þýµµµµµ}¡þ	9µµµµµpinµ(WR)µ{¡þ	uµµµµµµµdirectionµ:µinput;¡þ	°µµµµµµµcapacitanceµ:µ1.13;¡þ	ìµµµµµµµfanout_loadµ:µ1.13;¡þ
(µµµµµ}¡þ
Ÿµµµµµbus(data_out){¡þ
Ûµµµµµµµbus_typeµµ:µbus8";¡þµµµµµµµdirectionµ:µoutput;’ïRD“I501ileaf_page_string1:10-71¥	öä¥	öä¡¥Á²âDefining´µMemoryµModules¡Ô¤ÿŠ10³71¡þÃ²´µµµµµµµmemory_read()µ{¡þµµµµµµµµµaddressµ:µram_addr;¡þ=µµµµµµµ}¡þ¶µµµµµµµtimingµ()µ{¡þóµµµµµµµµµµµtiming_senseµ:µnon_unate;µ/*µcombinational¡þ'¡…'¡'¡“'¡'¡¡'¡('¡¯'¡6'¡½'µdelayµ*/¡þdµµµµµµµµµµµintrinsic_riseµ:µ5.25;µµµµ/*µtacc*/¡þ¡µµµµµµµµµµµrise_resistanceµ:µ0.020;¡þÞµµµµµµµµµµµintrinsic_fallµ:µ5.50;¡þµµµµµµµµµµµfall_resistanceµ:µ0.017;¡þXµµµµµµµµµµµrelated_bus_pinsµ:µram_addr";¡þ•µµµµµµµ}¡þÑµµµµ}¡þµ}µ/*µendµcellµ*/’RÐOPS m:m:D€‚Document:11padÿ‚Last saved on:Tue, Dec 9, 1997 17:53:18ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°ˆwst:helvps10.5±ˆ:'
-  " % ""  *



% ,  """"""    ',,,,*åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’@{jD“I501ileaf_page_string1:11-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿ¤11³1¡,m²².11â²/¥	öä¡`m²â¡,j²	Defining´µInput/OutputµPads¡à²¥	öäÁÊËÃ¡Ä,ÄÊÄÆÃ¡	öà¡þ‡To´µdefineµI/Oµpads,µyouµcombineµtheµlibrary,µcell,µandµpin³group¡þÐattributesµthatµdescribeµinput,µoutput,µandµbidirectionalµpadµcells.¡þTheµpadµmodelingµfeaturesµsupportµDesignµCompilerµsynthesisµof¡þaI/OµpadsµinµFPGAsµandµstandardµCMOSµtechnologies.¡þûI/Oµpadµmodelingµinvolvesµtheµfollowingµmajorµtasks:¡þz²S¡Xz²Identifyingµpadµcells¡þé²S¡Xé²Describingµmulticellµpads¡þ	X²S¡X	X²Definingµunitsµforµpadµcells¡þ	Ç²S¡X	Ç²Describingµinputµpads¡þ
6²S¡X
6²Describingµoutputµpads¡þ
¥²S¡X
¥²Modelingµwireµloadµforµpads¡þ²S¡X²Reportingµpadµinformation’j\D“I501ileaf_page_string1:11-2¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³2¡þÉ²Input/output´µ(I/O)µpadsµareµtheµspecialµcellsµatµtheµchipµboundaries¡þthatµallowµcommunicationµwithµtheµworldµoutsideµtheµchip.µTheir¡þZcharacteristicsµdistinguishµthemµfromµtheµotherµcellsµthatµmakeµup¡þ£theµcoreµofµanµintegratedµcircuit.µTheseµcharacteristicsµmustµbe¡þìdescribedµinµSynopsysµtechnologyµlibrariesµsoµtheµDesignµCompiler¡þ4programµcanµunderstandµthemµwellµenoughµtoµinsertµthem¡þ}automaticallyµduringµsynthesis.¡þ(Padsµtypicallyµhaveµlongerµdelaysµandµhigherµdriveµcapabilitiesµthan¡þptheµcellsµinµanµintegratedµcircuit'sµcore.µBecauseµofµtheirµhigher¡þ¹drive,µCMOSµpadsµsometimesµexhibitµnoiseµproblems.µSlew³rate¡þcontrolµisµavailableµonµoutputµpadsµtoµhelpµalleviateµthisµproblem.¡þ¬Padsµareµfixedµresources³
aµlimitedµnumberµisµavailableµonµeachµdie¡þõsize.µInµaddition,µspecialµtypes,µsuchµasµclockµpads,µmayµbeµmore¡þ>limitedµthanµothers.µTheseµlimitsµmustµbeµmodeled.¡þèAnotherµdistinguishingµfeatureµofµpadµcellsµisµtheµvoltageµlevelµat¡þ1whichµinputµpadsµtransferµlogicµ0µorµlogicµ1µsignalsµtoµtheµcore,µorµat¡þzwhichµoutputµpadµdriversµcommunicateµlogicµvaluesµfromµtheµcore.¡þ$Integratedµcircuitsµthatµcommunicateµwithµoneµanotherµmustµhave¡þmcompatibleµvoltageµlevelsµatµtheirµpads.µBecauseµpadsµcommunicate¡þ¶withµtheµworldµoutsideµtheµintegratedµcircuit,µyouµmustµdescribeµthe¡þþpertinentµunitsµofµperipheralµlibraryµproperties,µsuchµasµexternalµload,¡þ	Gdriveµcapability,µdelay,µcurrent,µpower,µandµresistance.µThis¡þ	descriptionµmakesµitµeasierµtoµdesignµchipsµfromµmultiple¡þ	Øtechnologies.¡þ
ƒSomeµlibrariesµcreateµlogicalµpadsµoutµofµmultipleµcells;µlogicalµpads¡þ
Ìmustµbeµmodeledµsoµthatµtheyµareµjustµasµeasyµtoµinsert¡þautomaticallyµonµaµdesignµasµaµsingle³cellµpad.’\D“I501ileaf_page_string1:11-3¥	öäÃËÁâÊË¡Ä,,ú¡Ä,ú	cú¡Ä	cú	c¡Ä	c,ÆÃÁÊËÃ¡Ä,úÊúÆÃ¥	öäÃÁÊË¡Ä,æ,Ð¡Ä,Ð	cÐ¡Ä	cÐ	cæ¡Ä	cæ,æÆÃÁÊËÃ¡ÄþÐÊÐÆÃ¥	öäÃÁÊË¡Ä,@,*¡Ä,*	c*¡Ä	c*	c@¡Ä	c@,@ÆÃÁÊËÃ¡Äþ*Ê*ÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿ¤11³3¡þÉ²You´µmustµcaptureµallµtheseµpropertiesµinµtheµlibraryµtoµmakeµit¡þpossibleµforµtheµintegratedµcircuitµdesignerµtoµinsertµtheµcorrectµpads¡þZduringµsynthesis.¡,P²Identifying´µPadµCells¡þ²The´µDesignµCompilerµprogramµusesµtheµmethodsµyouµuseµtoµidentify¡þKcellsµasµI/Oµpadsµwhenµitµsynthesizesµaµchip.µ¡þ ²Regular´µPadµCells¡þ¶²Use´µtheµpad_cellµattributeµtoµtagµaµcellµasµanµI/Oµpad.µTheµDesign¡þþCompilerµprogramµfiltersµpadµcellsµoutµofµtheµnormalµcore¡þGoptimizationµandµtreatsµthemµdifferentlyµduringµtechnology¡þtranslation.¡þ_²Example¡þ¨²pad_cell´µ:µtrue;¡þz²Clock´µPads¡þ	²Certain´µpadµandµauxiliaryµpadµcellsµareµspecialµandµrequireµspecial¡þ	Xtreatment.µTheµmostµimportantµofµtheseµisµtheµclockµdriverµpadµcell.µIt¡þ	¡isµimportantµtoµidentifyµclockµdrivers,µbecauseµtheµDesignµCompiler¡þ	êandµTestµCompilerµprogramsµtreatµthemµdifferently.¡þ
ƒToµdesignateµaµclockµpadµonµaµcellµthatµisµtaggedµwithµaµpad_cellµ¡þ
Ìorµanµauxiliary_pad_cellµattribute,µuseµtheµpad_typeµ¡þattributeµstatement.’¦D“I501ileaf_page_string1:11-4¥	öäÃËÁâÊË¡Ä,Ú,Ä¡Ä,Ä	cÄ¡Ä	cÄ	cÚ¡Ä	cÚ,ÚÆÃÁÊËÃ¡ÄþÄÊÄÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³4¡þÉ²Example¡þ²pad_type´µ:µclock;¡þ²Pad´µPinµAttributes¡þÍ²Each´µcellµthatµisµidentifiedµasµanµI/Oµpadµmustµhaveµaµpinµthat¡þrepresentsµtheµpad.µAdditionally,µtheµpinµmustµhaveµaµdirection,µto¡þ^indicateµwhetherµtheµcellµisµanµinput,µoutput,µorµbidirectionalµpad.¡þUseµtheµis_padµattributeµonµpinsµorµparameterizedµpinsµtoµidentify¡þdwhichµpinsµareµtoµbeµconsideredµlogicalµI/Oµpadµpins.µUseµtheµis_pad¡þ¬attributeµonµatµleastµoneµpinµofµaµcellµwithµaµpad_cellµattribute.¡þiTheµinformationµaboutµwhetherµtheµpadµisµanµinput,µoutput,µor¡þ²bidirectionalµpadµisµsuppliedµwithµtheµdirectionµattribute.¡þ¼²Example¡þ²pin(PAD)´µ{¡þKµµµdirectionµ:µoutput;¡þ‹µµµis_padµ:µtrue;¡þÊ...¡þ	
}¡þ	²²If´µaµpinµisµbidirectional,µyouµcanµsupplyµmultipleµdriver_type¡þ	úattributesµforµtheµsameµpinµtoµmodelµbothµtheµoutputµbehaviorµand¡þ
Ctheµinputµbehavior.µAnµexampleµis¡þ
×²driver_type´µ:µ"open_drainµpull_up"µ;’¦ôD“I501ileaf_page_string1:11-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿ¤11³5¡,Õ²Describing´µMulticellµPads¡þ”²I/O´µpadsµcanµbeµrepresentedµeitherµasµoneµcellµwithµmanyµattributes,¡þÝorµasµaµcollectionµofµcells,µeachµwithµattributesµaffectingµthe¡þ%operationµofµtheµlogicalµpad.µTheseµtechnologiesµimplementµpads¡þnwithµmultipleµcells³
aµpadµcellµandµaµdriverµcell,µforµexample.¡þTheµfirstµtypeµofµlibraryµcontainsµaµdifferentµcellµforµeachµpossible¡þYcombinationµofµpadµcharacteristics.µTheµsecondµtypeµcontainsµa¡þ¢smallerµnumberµofµcomponents,µbutµeachµtypeµofµpadµmustµbe¡þëindividuallyµconstructedµfromµtheseµcomponents.¡þFigure 11³1µshowsµtheµdifferentµcomponentsµthatµmakeµupµmulticell¡þÖpadsµinµtheµsecondµtypeµofµlibrary.µReferµtoµtheµexamplesµatµtheµend¡þofµthisµchapterµforµtheµLibraryµCompilerµdescriptions.’ôÑD“I501ileaf_page_string1:11-6¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³6¡,É²&Figure 11³1³Multicell´µPads¡,E²¥*ûžJÃËÁÊË¡Ä,A,ý¡Ä,ýÙý¡ÄÙýÙA¡ÄÙA,AÆÃÃÁÊË¡Ä¨7¡Ä7¥7¡Ä¥7¥¨¡Ä¥¨¨âãÇÆÃâ¡'|inpadÃ¡Ä6¦65¡Ä65Ì5¡ÄÌ5Ì¦¡ÄÌ¦6¦âÇÆÃâ¡BoutbufÃ¡Äï¦ï5¡Äï5…5¡Ä…5…¦¡Ä…¦ï¦âÇÆÃâ¡	zinbufÃ¡Ä’n’ú¡Ä’úwú¡Äwúwn¡Äwn’nâÇÆÃâ¡À?bidirpadÊËÃ¡Äµ·µJÆÃÃÊË¡Ä§zµJ¡ÄµJÂz¡ÄÂzµz¡Äµz§zÇÆÃ¡~:pull³upÊËÃ¡ÄåpåíÆÃ¡£pull³downÃ¡Äën¤nÆÃÃÊË¡Ääïä~¡Ää~z~¡Äz~zï¡ÄzïäïâÇÆÃâ¡ýÆinpadÃ¡Äïïï~¡Äï~…~¡Ä…~…ï¡Ä…ïïïâÇÆÃâ¡ÆinbufÊËÃ¡Äz»ï»ÆÃÃÊË¡Ä¤3¡Ä3«3¡Ä«3«¤¡Ä«¤¤âÇÆÃâ¡/winpadÃ¡Ä ¤ 3¡Ä 3¶3¡Ä¶3¶¤¡Ä¶¤ ¤âÇÆÃâ¡8winbufÊËÃ¡Ä«p pÆÃÃÊË¡Ä©9¡Ä9±9¡Ä±9±©¡Ä±©©âÇÆÃâ¡!outpadÊËÃ¡ÄÌrrÆÃÃ¡Ä2rrÆÃ¡¤ifrom¡¤coreÃ¡Ä…i·iÆÃ¡Üeto¡ØcoreÃ¡Ä„¸¶¸ÆÃ¡Û´to¡×ÝcoreÃ¡Ä»mímÆÃ¡ito¡’coreÃ¡Äú·ÆÃÃÊË¡Ä··¡Ä··ÆÃÊËÃ¡Ä’4C4ÆÃÃÊË¡ÄC4C4¡ÄC4C4ÆÃ¡Õ¢controlÊËÃ¡Äy4§4ÆÃÃÊË¡Ä§4§4¡Ä§4§4ÆÃ¡ÄEpadÃ¡ÄSpS¡ÄSé¡Äéép¡ÄépSpâÇÆÃâ¡_FoutbufÃ¡ÄSSž¡ÄSžéž¡Äéžé¡ÄéSâÇÆÃâ¡oäinbufÊËÃ¡Ä®sÜsÆÃ¡ù„padÃ¡ÄáooÆÃ¡wpadÃ¡Ä·ºåºÆÃ¡[ÄpadÃ¡ÄJ4ê4ÆÃÃÊË¡Äê4ê4¡Äê4ê4ÆÃÊËÃ¡ÄæqqÆÃ¡ypadÃÊË¡Äœ(¡Ä(ÿ(¡Äÿ(ÿœ¡ÄÿœœâÇÆÃâ¡CobidirpadÊËÃ¡ÄŠ(ŠåÆÃÃ¡ÄbËbÆÃ¡]ÐcontrolÃ¡Äb/bÆÃ¡LspadÃÊË¡ÄÛžÛ.¡ÄÛ.q.¡Äq.qž¡ÄqžÛžâÇÆÃâ¡çpoutbufÃ¡ÄÛ=ÛÌ¡ÄÛÌqÌ¡ÄqÌq=¡Äq=Û=âÇÆÃâ¡÷inbufÊËÃ¡ÄÒbrbÆÃÃÊË¡Är	‘	¡Ä‘	‘žÆÃÃ¡Ä`w`¡Ä`E¡ÄEEw¡ÄEw`wâÇÆÃâ¡†HbidirpadÊËÃ¡ÄÑÑÀÆÃÃ¡Ä`==ÆÃ¡£«controlÃ¡ÄG=u=ÆÃ¡’NpadÃÊË¡Ä!y!	¡Ä!	·	¡Ä·	·y¡Ä·y!yâÇÆÃâ¡0KoutbufÃ¡Ä!!§¡Ä!§·§¡Ä·§·¡Ä·!âÇÆÃâ¡=áinbufÊËÃ¡Ä=¸=ÆÃÃÊË¡Ä¸äÓä¡ÄÓäÓyÆÃÊËÃ¡ÄüüŠÆÃÃÊË¡Ä
ZüŠ¡ÄüŠîZ¡ÄîZüZ¡ÄüZ
ZÇÆÃ¡¹·pull³downÊËÃ¡Äß†ÆÃÃÊË¡Ä¶†¡Ä†¶¡Ä¶¶¡Ä¶¶ÇÆÃ¡Ötpull³upÊËÃ¡ÄØOØÆÃÃÊË¡ÄOØOØ¡ÄOØOØÆÃ¡¸Ëto¡´õcoreÊËÃ¡ÄíããÆÃ¡€Ùto¡|coreÃ¡Ä¥×ÆÃ¡@ûto¡<%core¡¤3from¡¤YcoreÃ¡ÄV88ÆÃÃÊË¡Ä88¡Ä88ÆÃ¡<_from¡<„coreÊËÃ¡ÄÜdšdÆÃ¡g8from¡g^coreÃ¡Ä =Ý=ÆÃÁÊËÃ¡ÄéÝÝÆÃÃ¡ÄnÝÆÃÃÁÊË¡Äò¼äí¡Ääí×¼¡Ä×¼ä¼¡Ää¼ò¼ÇÆÃ¥	öä¡ÊE’Ñ±D“I501ileaf_page_string1:11-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,Ì,¶¡Ä,¶	c¶¡Ä	c¶	cÌ¡Ä	cÌ,ÌÆÃÁÊËÃ¡Äþ¶Ê¶ÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿ¤11³7¡þÏ²Auxiliary´µPadµCells¡þi²If´µyouµimplementµyourµpadsµwithµmoreµthanµoneµcell,µyouµcanµidentify¡þ±thoseµcellsµthatµcanµbeµusedµtoµbuildµupµaµlogicalµpadµwithµan²¡þú²auxiliary_pad_cellµattribute.µThisµattributeµindicatesµthatµtheµcellµcan¡þCbeµusedµasµpartµofµaµlogicalµpad.¡þ²Example¡þc²auxiliary_pad_cell´µ:µtrue;¡þü²Identifying´µsuchµcellsµhelpsµtheµDesignµCompilerµprogramµcreateµI/O¡þDpadsµconsistingµofµmoreµthanµoneµcell.µCellsµthatµhaveµthe¡þauxiliary_pad_cellµattributeµcanµalsoµbeµusedµwithinµtheµcore.¡þ*Auxiliaryµpadµcellsµareµusedµonlyµwithµpullµupsµandµpullµdowns.¡þ²Connecting´µPins¡þ ²If´µyourµlibraryµusesµmulticellµpads,µtheµDesignµCompilerµprogram¡þéneedsµtoµknowµwhichµpinsµonµtheµvariousµcellsµtoµconnectµto¡þ2implementµtheµpadµproperly.µTwoµattributesµgiveµthisµinformation:¡þ³multicell_pad_pinµattributeµ¡XûIdentifiesµtheµpinsµtoµconnectµtoµcreateµaµworkingµmulticellµpad.¡X	DUseµthisµattributeµtoµflagµallµtheµpinsµtoµconnectµonµaµpadµorµan¡X	auxiliaryµpadµcell.¡þ	òconnection_classµattributeµ¡X
:Indicatesµtheµpinsµthatµareµtoµbeµconnectedµtoµpinsµonµotherµcells.¡X
ƒForµexample,µpull³upµcellsµareµgenerallyµconnectedµtoµthe¡X
Ìnetworkµbetweenµtheµinputµpadµcellµandµtheµinputµdriverµcell.µThis¡XattributeµtellsµDesignµCompilerµtheµclassesµofµpinsµtoµconnect.µµ’±øD“I501ileaf_page_string1:11-8¥	öäÃËÁâÊË¡Ä,,ø¡Ä,ø	cø¡Ä	cø	c¡Ä	c,ÆÃÁÊËÃ¡Ä,øÊøÆÃ¥	öäÃÁÊË¡Ä,	,	¡Ä,		c	¡Ä	c		c	¡Ä	c	,	ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³8¡þÉ²Example¡þ²multicell_pad_pin´µ:µtrue;¡þQconnection_classµ:µ"INPAD_NETWORK";¡,O²Defining´µUnitsµforµPadµCells¡þ²Design´µCompilerµneedsµinformationµaboutµtheµphysicalµquantitiesµof¡þTtime,µcapacitance,µresistance,µvoltage,µcurrent,µandµpowerµtoµhandle¡þpadsµforµfullµchipµsynthesis.µLibraryµCompilerµacceptsµthese¡þådefinitionsµtoµsupplyµtheµphysicalµunitµinformationµneededµto¡þ.synthesizeµpadµcells:¡þ±²S¡X±²capacitive_load_unit¡þ$²S¡X$²pulling_resistance_unit¡þ—²S¡X—²voltage_unit¡þ	²S¡X	²current_unit¡þ™Allµtheseµattributesµareµdefinedµatµtheµlibraryµgroupµlevel,µas¡þâdescribedµinµChapterµ7,µBuildingµaµTechnologyµLibrary."µThese¡þ+valuesµareµrequired.µIfµyouµdoµnotµsupplyµtheseµattributes,µDesign¡þsCompilerµprintsµaµwarning.¡þ	T²Capacitance¡þ	ò²Theµcapacitive_load_unitµdefinesµtheµcapacitanceµassociatedµwithµa¡þ
:standardµload.µIfµyouµalreadyµrepresentµcapacitanceµvaluesµinµterms¡þ
ƒofµpicofaradsµorµfemtofarads,µdefineµyourµbaseµunit.µIfµyouµrepresent¡þ
Ìcapacitancesµinµtermsµofµtheµstandardµloadµofµanµinverter,µdefineµthe¡þexactµcapacitanceµforµthatµinverter,µforµexample,µ0.101µpF.’øñD“I501ileaf_page_string1:11-9¥	öäÃËÁâÊË¡Ä,›,…¡Ä,…	c…¡Ä	c…	c›¡Ä	c›,›ÆÃÁÊËÃ¡Äþ…Ê…ÆÃ¥	öäÃÁÊË¡Ä,S,=¡Ä,=	c=¡Ä	c=	cS¡Ä	cS,SÆÃÁÊËÃ¡Äþ=Ê=ÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿ¤11³9¡þÉ²Example¡þ²capacitive_load_unit(´µ0.1,ffµ);¡þÕ²Resistance¡þ`²In´µtimingµgroups,µyouµcanµdefineµaµrise_resistanceµandµa¡þ©fall_resistanceµvalue.µTheseµvaluesµareµusedµexpresslyµinµtiming¡þñcalculations,µandµareµnormalizedµtoµtheµdefinedµdefaultµcapacitive¡þ:loadingµunit.µTheµvaluesµindicateµhowµmanyµtime³unitsµitµtakesµto¡þƒdriveµaµcapacitiveµloadµofµoneµcapacitanceµunitµtoµeitherµ1µorµ0.¡þËGivenµtheµconversionsµforµcapacitanceµandµtime,µDesignµCompiler¡þcanµcomputeµaµrealµdriveµcapabilityµinµns/pFµwithoutµknowingµthe¡þ]conversionµfactorsµforµtheµvalues.µYouµdoµnotµneedµtoµprovide¡þ¥scalingµinformationµforµrise_resistanceµorµfall_resistance.¡þ3Youµmustµsupplyµaµpulling_resistanceµattributeµforµpull³upµand¡þ|pull³downµdevicesµonµpads,µandµidentifyµtheµunitµtoµuseµwithµthe¡þÅpulling_resistance_unitµattribute.¡þ²Example¡þÉ²pulling_resistance_unit´µ:µ"1kohm";¡þ²Voltage¡þ	²You´µcanµuseµtheµinput_voltageµandµoutput_voltageµgroupsµtoµdefine¡þ	`aµsetµofµinputµorµoutputµvoltageµrangesµforµyourµpads.µToµdefineµthe¡þ	©unitsµofµvoltageµyouµuseµforµtheseµgroups,µuseµtheµvoltage_unit¡þ	òattribute.µAllµtheµattributesµdefinedµinsideµinput_voltageµand¡þ
:output_voltageµgroupsµareµscaledµbyµtheµvalueµdefinedµfor¡þ
ƒvoltage_unit.µInµaddition,µtheµvoltageµattributeµinµthe¡þ
Ìoperating_conditionsµgroupsµalsoµrepresentsµitsµvaluesµinµthese¡þunits.’ñ¾D“I501ileaf_page_string1:11-10¥	öäÃËÁâÊË¡Ä,…,o¡Ä,o	co¡Ä	co	c…¡Ä	c…,…ÆÃÁÊËÃ¡ÄþoÊoÆÃ¥	öäÃÁÊË¡Ä,,i¡Ä,i	ci¡Ä	ci	c¡Ä	c,ÆÃÁÊËÃ¡Ä,iÊiÆÃ¥	öäÃÁÊË¡Ä,,ù¡Ä,ù	cù¡Ä	cù	c¡Ä	c,ÆÃÁÊËÃ¡ÄþùÊùÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³10¡þÉ²Example¡þ²voltage_unit´µ:µ"1V";¡þ¿²Current¡þ8²You´µcanµdefineµthe²µ²drive_currentµthatµcanµbeµgeneratedµbyµan¡þoutputµpad,µandµtheµpulling_currentµforµaµpull³upµorµpull³down¡þÊtransistorµunderµnominalµvoltageµconditions.µDefineµallµcurrent¡þvaluesµwithµtheµlibrary³levelµcurrent_unitµattribute.¡þ²²Example¡þ÷²current_unit´µ:µ"1uA";¡,¿²Describing´µInputµPads¡þL²To´µrepresentµinputµpadsµinµyourµtechnologyµlibrary,µyouµmust¡þ•describeµtheµinputµvoltageµcharacteristicsµandµindicateµwhether¡þÞhysteresisµapplies.µTheµinputµpadµpropertiesµareµdescribedµbelow.¡þ[Examplesµatµtheµendµofµthisµchapterµdescribeµaµstandardµinput¡þ£buffer,µanµinputµbufferµwithµhysteresis,µandµanµinputµclockµbuffer.¡þI²Voltage´µLevels¡þÂ²You´µcanµuseµtheµinput_voltageµgroupµatµtheµlibraryµlevelµtoµdefineµa¡þ	setµofµinputµvoltageµrangesµforµyourµpads.µYouµcanµthenµassignµthis¡þ	Tsetµofµvoltageµrangesµtoµtheµinputµpinµofµaµpadµcell.µForµexample,µyou¡þ	œcanµdefineµanµinput_voltageµgroupµcalledµTTLµwithµaµsetµofµhighµand¡þ	ålowµthresholdsµandµminimumµandµmaximumµvoltageµlevels,µandµuse¡þ
.thisµcommandµinµtheµpinµgroupµtoµassignµthoseµrangesµtoµtheµpad¡þ
vcellµpin:¡þ
Ý²input_voltage´µ:µTTLµ;’¾éD“I501ileaf_page_string1:11-11¥	öäÃËÁâÊË¡Ä,å,Ï¡Ä,Ï	cÏ¡Ä	cÏ	cå¡Ä	cå,åÆÃÁÊËÃ¡Ä,ÏÊÏÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³11¡þÉ²You´µcanµincludeµvil,µvih,µvimin,µandµvimaxµattributesµinµthe¡þinput_voltageµgroup.µReferµtoµµChapterµ7,µBuildingµaµTechnology¡þZLibrary,"µforµadditionalµinformation.¡þé²Hysteresis¡þf²YouµcanµindicateµanµinputµpadµwithµhysteresisµusingµtheµBoolean¡þ®hysteresisµattribute.µTheµdefaultµforµthisµattributeµisµfalse.µWhenµitµis¡þ÷true,µtheµvilµandµvolµvoltageµratingsµareµactualµtransitionµpoints.¡þî²Example¡þ;²hysteresis´µ:µtrue;¡þÝ²Pads´µwithµhysteresisµsometimesµhaveµdifferentµderatingµfactorsµfrom¡þ&cellsµinµtheµcore.µAsµaµresult,µyouµneedµtoµdescribeµtheµtimingµofµcells¡þothatµhaveµhysteresisµwithµaµscaled_cellµgroup,µwhichµisµdescribedµin¡þ·Chapterµ14,µTimingµArcs."µµThisµconstructµprovidesµderating¡þcapabilitiesµandµminimum,µtypical,µorµmaximumµtimingµforµcells.¡,%²Describing´µOutputµPads¡þø²To´µrepresentµoutputµpadsµinµyourµtechnologyµlibrary,µyouµmust¡þ	Adescribeµtheµoutputµvoltageµcharacteristicsµandµtheµdrive³current¡þ	‰ratingµofµoutputµandµbidirectionalµpads.µAdditionally,µyouµmust¡þ	Òincludeµinformationµaboutµtheµslewµrateµofµtheµpad.µTheseµoutputµpad¡þ
propertiesµareµdescribedµbelow.¡þ
ÌExamplesµatµtheµendµofµthisµchapterµshowµaµstandardµoutputµbuffer¡þandµaµbidirectionalµpad.’é·D“I501ileaf_page_string1:11-12¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³12¡þÏ²Voltage´µLevels¡þn²You´µcanµuseµtheµoutput_voltageµgroupµatµtheµlibraryµlevelµtoµdefineµa¡þ¶setµofµoutputµvoltageµrangesµforµyourµpads.µYouµcanµthenµuseµthe¡þÿoutput_voltageµattributeµatµtheµpinµlevelµtoµassignµthisµsetµofµvoltage¡þHrangesµtoµtheµoutputµpinµofµaµpadµcell.¡þ&²Example¡þ“²Inµthisµexample,µanµoutput_voltageµgroupµcalledµTTLµcontainsµaµset¡þÜofµhighµandµlowµthresholdsµandµminimumµandµmaximumµvoltage¡þ$levels.¡þ¦²output_voltage(TTL)´µ{¡þâµµµvolµ:µ0.4;¡þµµµvohµ:µ2.4;¡þ\µµµvominµ:µ³0.3;¡þ™µµµvomaxµ:µVDDµ+µ0.3;¡þÖ}¡þq²In´µtheµpinµgroup,µassignµthoseµrangesµtoµtheµpadµcellµpinµwithµthe¡þºoutput_voltageµattribute:¡þ;²pin(Z)´µ{¡þxµµµdirectionµ:µoutput;¡þµµµµis_padµ:µtrue;¡þòµµµoutput_voltageµ:µTTLµ;¡þ	/µµµ...¡þ	l}¡þ
²You´µcanµincludeµvol,µvoh,µvomin,µandµvomaxµvaluesµin¡þ
Ooutput_voltageµgroups.µReferµtoµChapterµ7,µBuildingµaµTechnology¡þ
˜Library,"µforµadditionalµinformation.’·sD“I501ileaf_page_string1:11-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³13¡þÏ²Drive´µCurrent¡þq²Output´µandµbidirectionalµpadsµinµaµtechnologyµcanµhaveµdifferent¡þºdrive³currentµcapabilities.µToµdefineµtheµdrive³currentµsuppliedµbyµthe¡þpadµbuffer,µuseµtheµdrive_currentµattributeµonµanµoutputµor¡þKbidirectionalµpadµorµauxiliaryµpadµpin.µTheµvalueµisµinµunitsµconsistent¡þ”withµtheµcurrent_unitµyouµdefined.¡þx²Example¡þÃ²pin(PAD´µ)µ{¡þ¡…directionµ:µoutput;¡þ>¡…>is_padµ:µtrue;¡þ{¡…{drive_currentµ:µ1.0;¡þ¸}¡þ˜²Slew³Rate´µControl¡þ;²Slew³rate´µcontrolµlimitsµpeakµnoiseµandµsmoothsµoutµfastµoutput¡þƒtransitions.µLibraryµCompilerµimplementsµslew³rateµcontrolµbyµusing¡þÌoneµqualitativeµattributeµandµeightµquantitativeµattributes.¡þrTheµqualitativeµattributeµdefinedµforµpinsµisµslew_control.µThis¡þ»attributeµacceptsµoneµofµfourµpossibleµenumerations:µnone,µlow,¡þ	medium,µandµhigh;µtheµdefaultµisµnone.µIncreasingµlevelsµof¡þ	Lslew_controlµslowµdownµtheµtransitionµrate.µThisµmethodµisµthe¡þ	•coarsestµwayµtoµmeasureµtheµlevelµofµslew³rateµcontrolµassociated¡þ	Ýwithµanµoutputµpad.¡þ
ƒYouµcanµdefineµslew³rateµcontrolµforµmoreµdetail.µLibraryµCompiler¡þ
Ìacceptsµeightµnewµattributesµtoµdefineµaµtwo³pieceµapproximationµof¡þtheµcurrentµvs.µtimeµcharacteristicsµofµtheµpadµ(dI/dT).’såD“I501ileaf_page_string1:11-14¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³14¡þÉ²These´µattributesµcharacterizeµtheµdI/dTµbehaviorµofµanµoutputµpadµon¡þrisingµandµfallingµtransitions.µInµaddition,µtwoµattributesµapproximate¡þZtheµdifferenceµinµdI/dTµbeforeµtheµthresholdµisµreachedµandµafterµthe¡þ£thresholdµisµreached.¡þSFinally,µtheµattributesµdefineµtheµtimeµintervalsµforµrisingµandµfalling¡þœtransitionsµfromµstartµtoµthresholdµ(before)µandµfromµthresholdµto¡þåfinishµ(after).¡þ•Eachµvalueµisµexpressedµasµaµfloating³pointµnumberµofµcurrentµunits¡þÝorµtimeµunits.µTheµattributesµare¡þk²S¡Xk²rise_current_slope_before_threshold¡þå²S¡Xå²rise_current_slope_after_threshold¡þ`²S¡X`²fall_current_slope_before_threshold¡þÚ²S¡XÚ²fall_current_slope_after_threshold¡þT²S¡XT²rise_time_before_threshold¡þÏ²S¡XÏ²rise_time_after_threshold¡þI²S¡XI²fall_time_before_threshold¡þÄ²S¡XÄ²fall_time_after_threshold¡þ	`Theµriseµcurrentµslopeµattributesµareµshownµgraphicallyµin¡þ	©Figure 11³2.µTheµAµvalueµisµaµpositiveµnumberµrepresentingµaµlinear¡þ	òapproximationµofµtheµchangeµofµcurrentµasµaµfunctionµofµtimeµfrom¡þ
:theµbeginningµofµtheµrisingµtransitionµtoµtheµthresholdµpoint.µTheµB¡þ
ƒvalueµisµaµnegativeµnumberµrepresentingµaµlinearµapproximationµof¡þ
Ìtheµcurrentµchangeµoverµtimeµfromµtheµpointµatµwhichµtheµrising¡þtransitionµreachesµtheµthresholdµtoµtheµendµofµtheµtransition.’åÜD“I501ileaf_page_string1:11-15¥	öä¥	öä¡Á²âDefining´µInput/OutputµPads¡Ô¤ÿŠ11³15¡,É²&Figure 11³2³Slew³Rate´µAttributes³
RisingµTransitions¡,²¥	öäÃËÁÊË¡ÄjFj}¡Äj}Ž}ÆÃÃ¡ÊËÍxyŽeáj%Íj%½sºU>ªÍ>ªbÁ©ø²%Í²%ÙåÔD¶~Æ¡+Threshold¡¶•Time¡!*CurrentÃ¡ÄqyvÆÃÃÊË¡ÄJ£v¡Ävdµ¡ÄdµW¬¡ÄW¬J£ãÇÆÃÃ¡ÄœUqy¡Äqy‚C¡Ä‚CL¡ÄLœUÇÆÃÊËÃ¡ÄªyÆÃÃÊË¡Ä—Dªy¡Äªy~V¡Ä~V‹M¡Ä‹M—DÇÆÃÃ¡Ä µ¡Äº£¡Äº£­¬¡Ä­¬ µÇÆÃ¡¢qA¡SuB¡DÎA = rise_current_slope_before_threshold¡DB = rise_current_slope_after_threshold¡cPositive dl/dT¡P‹Negative dl/dTÊËÃ¡Ä„=„EÆÃ¡Ê¡þÓ²Forµfallingµtransitions,µtheµgraphµisµreversed:µAµisµnegativeµandµBµis¡þpositiveµasµshownµinµFigure 11³3.’ÜÐD“I501ileaf_page_string1:11-16¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³16¡,É²&Figure 11³3³Slew³Rate´µAttributes³
FallingµTransitions¡,²¥	öäÃËÁÊË¡Ä]H]o¡Ä]o&oÆÃÃ¡ÊËÍk\npúìL¤ÍL¤™R…pÿÍÿ!cÐk¤Ík¤èŒ]WÆ²ˆ¡DThreshold²¡L‡Time²ˆ¡-CurrentÃ¡Äd€MJÆÃÃÊË¡Ä<MJ¡ÄMJ$(¡Ä$(0¡Ä0<ãÇÆÃÃ¡Ävµd€¡Äd€Ž£¡ÄŽ£‚¬¡Ä‚¬vµÇÆÃÊËÃ¡Ä_JR€ÆÃÃÊË¡Ä)¢R€¡ÄR€@´¡Ä@´4«¡Ä4«)¢ÇÆÃÃ¡Ä‰(_J¡Ä_Jq¡Äq}¡Ä}‰(ÇÆÃ²¡LmA¡Ë„B¡)¿A = rise_current_slope_before_threshold¡)÷B = rise_current_slope_after_threshold²ˆ¡>¢Negative dl/dT¡Ö¶Positive dl/dTÊËÃ¡ÄV]V_ÆÃ²¡Ê¡þá²Thisµisµanµexampleµusingµtheµattributes:¡þm²´µpin(PAD)µ{¡þ¬µ¡…¬is_padµ:µtrue;¡þêµ¡…êdirectionµ:µoutput;¡þ)µ¡…)output_voltageµ:µGENERAL;¡þgµ¡…gslew_controlµ:µhigh;¡þ¦µ¡…¦rise_current_slope_before_thresholdµ:µ0.18;¡þäµ¡…ärise_time_before_thresholdµ:µ0.8;¡þ	#µ¡…	#rise_current_slope_after_thresholdµ:µ-0.09;¡þ	aµ¡…	arise_time_after_thresholdµ:µ2.4;¡þ	 µ¡…	 fall_current_slope_before_thresholdµ:µ-0.14;¡þ	Þµ¡…	Þfall_time_before_thresholdµ:µ0.55;¡þ
µ¡…
fall_current_slope_after_thresholdµ:µ0.07;¡þ
[µ¡…
[fall_time_after_thresholdµ:µ1.8;¡þ
™µ¡…
™...¡þ
Øµ}’ÐD“I501ileaf_page_string1:11-17¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³17¡,Õ²Modeling´µWireµLoadµforµPads¡þ”²You´µcanµdefineµaµnumberµofµwire_loadµgroupsµtoµcontainµallµthe¡þÝinformationµDesignµCompilerµneedsµtoµestimateµinterconnectµwiring¡þ%delays.µEstimatedµwireµloadsµforµpadsµcanµbeµsignificantlyµdifferent¡þnfromµthoseµofµcoreµcells.µ¡þTheµwire_loadµmodelµforµtheµnetµconnectingµanµI/Oµpadµtoµtheµcore¡þYneedsµtoµbeµhandledµseparatelyµbecauseµitµisµusuallyµlongerµthan¡þ¢mostµotherµnetsµinµtheµcircuit.µSomeµI/Oµpadµnetsµextendµcompletely¡þëacrossµtheµchip.¡þYouµcanµdefineµaµwire_loadµgroupµtoµuseµforµwireµloadµestimationµon¡þÖtheµpadµring.µForµexample,µyouµnameµtheµgroupµPad_WireLoad.µYou¡þcanµaddµaµlevelµofµhierarchyµandµplaceµtheµpadsµinµtheµtopµlevelµwith¡þgallµtheµcoreµcircuitryµincludedµatµaµlowerµlevel.µDuringµtheµDesign¡þ°Compilerµsession,µyouµcanµdefineµtheµPad_WireLoadµmodelµwhen¡þùyouµcompileµtheµlevelµofµhierarchyµcontainingµtheµpads:¡þz²dc_shell>´µset_wire_loadµPad_WireLoad¡þ²A´µdifferentµmodelµisµdefinedµforµtheµcoreµlevelsµofµhierarchy.’&D“I501ileaf_page_string1:11-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³18¡,Õ²Reporting´µPadµInformation¡þ’²The´µreport_libµcommandµprintsµinformationµonµtheµvoltageµgroups¡þÛandµunitsµdefinedµinµyourµlibraryµasµshownµinµExample 11³1.µYouµcan¡þ#printµaµreportµforµtheµlibraryµasµaµwhole,µorµforµonlyµtheµcellsµyou¡þlselect.µReferµtoµChapterµ3,µUsingµtheµLibraryµCompilerµShell¡þµInterface,"µforµmoreµinformationµonµtheµreport_libµcommand.¡,d²&Example 11³1³SampleµLibraryµReport¡,ë²-****************************************¡,"Report´µ:µlibrary¡,XLibrary:µtestpad¡,Version:µ1997.01¡,ÅDateµµµ:µTuesµJanµ14µ16:10:03µ1997¡,ü****************************************¡,iLibraryµTypeµµµµµµµµµµµµ:µTechnology¡, ToolµCreatedµµµµµµµµµµµµ:µ1997.01¡,ÖDateµCreatedµµµµµµµµµµµµ:µTuesµJanµ14µ20:05:36µ1997¡,LibraryµVersionµµµµµµµµµ:µ2.110100¡,CTimeµUnitµµµµµµµµµµµµµµµ:µ1ns¡,zCapacitiveµLoadµUnitµµµµ:µ0.100000ff¡,°PullingµResistanceµUnitµ:µ1kilo-ohm¡,çVoltageµUnitµµµµµµµµµµµµ:µ1V¡,CurrentµUnitµµµµµµµµµµµµ:µ1uA¡,TBusµNamingµStyleµµµµµµµµ:µ%s[%d]µ(default)¡,Š...¡,ÁInputµVoltages:¡,	.µµµµNameµµµµµµµµµµµµµµµµVilµµµµµµµµµVihµµµµµµµµµViminµµµµµµµVimax¡,	dµµµµ-----------------------------------------------------------------¡,	›µµµµTTLµµµµµµµµµµµµµµµµµ0.80µµµµµµµµ2.00µµµµµµµµ-0.30µµµµµµµVDDµ+µ0.300¡,	ÑµµµµTTL_SCHMITTµµµµµµµµµ0.80µµµµµµµµ2.00µµµµµµµµ-0.30µµµµµµµVDDµ+µ0.300¡,
µµµµCMOSµµµµµµµµµµµµµµµµ1.50µµµµµµµµ3.50µµµµµµµµ-0.30µµµµµµµVDDµ+µ0.300¡,
>µµµµCMOS_SCHMITTµµµµµµµµ1.00µµµµµµµµ4.00µµµµµµµµ-0.30µµµµµµµVDDµ+µ0.300¡,
«OutputµVoltages:¡,µµµµNameµµµµµµµµµµµµµµµµVolµµµµµµµµµVohµµµµµµµµµVominµµµµµµµVomax’&©D“I501ileaf_page_string1:11-19¥	öäÃËÁâÊË¡Ä,ö,à¡Ä,à	cà¡Ä	cà	cö¡Ä	cö,öÆÃÁÊËÃ¡Ä,àÊàÆÃ¥	öäÃÁÊË¡Ä,è,Ò¡Ä,Ò	cÒ¡Ä	cÒ	cè¡Ä	cè,èÆÃÁÊËÃ¡ÄþÒÊÒÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³19¡,½²-´µµµµ-----------------------------------------------------------------¡,óµµµµGENERALµµµµµµµµµµµµµ0.40µµµµµµµµ2.40µµµµµµµµ-0.30µµµµµµµVDDµ+µ0.300¡,aWireµLoadingµModel:¡,ÎµµµµNoµwireµloadingµspecified.¡,;WireµLoadingµModelµMode:µtop.¡,6²Examples´µofµPadµCells¡þõ²These´µareµexamplesµofµinput,µclock,µoutput,µandµbidirectionalµpad¡þ>cells.¡þ"²Input´µPads¡þÁ²The´µinputµpadµdefinitionµinµExample 11³2µrepresentsµaµstandard¡þ
inputµbuffer,µandµExample 11³3µlistsµanµinputµbufferµwithµhysteresis.¡þSExample 11³4µshowsµanµinputµclockµbuffer.’©6D“I501ileaf_page_string1:11-20¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³20¡,É²&Example 11³2³Input´µBuffer¡þ[²library´µ(example1)µ{¡þ˜¡…˜dateµ:µ"Januaryµ14,µ1997"µ;¡þÔ¡…Ôrevisionµ:µ1997.01;¡þ¡…...¡þM¡…Mtime_unitµ:µ"1ns";¡þ‰¡…‰voltage_unitµ:µ"1V";¡þÆ¡…Æcurrent_unitµ:µ"1uA";¡þ¡…pulling_resistance_unitµ:µ"1kohm";¡þ?¡…?capacitive_load_unit(µ0.1,ffµ);¡þ{¡…{...¡þ·¡…·define_cell_area(bond_pads,pad_slots);¡þô¡…ôdefine_cell_area(driver_sites,pad_driver_sites);¡þ0¡…0...¡þm¡…minput_voltage(CMOS)µ{¡þ©¡…©¡©vilµ:µ1.5;¡þå¡…å¡åvihµ:µ3.5;¡þ"¡…"¡"viminµ:µ-0.3;¡þ^¡…^¡^vimaxµ:µVDDµ+µ0.3;¡þ›¡…›}¡þ×¡…×...¡þ¡…/*****µINPUTµPAD*****/¡þP¡…Pcell(INBUF)µ{¡þŒ¡…Œ¡Œareaµ:µ0.000000;¡þÉ¡…É¡Épad_cellµ:µtrue;¡þ¡…¡bond_padsµ:µ1;¡þA¡…A¡Adriver_sitesµ:µ1;¡þ~¡…~¡~pin(PADµ)µ{¡þº¡…º¡º¡“ºdirectionµ:µinput;¡þ÷¡…÷¡÷¡“÷is_padµ:µtrue;¡þ	3¡…	3¡	3¡“	3input_voltageµ:µCMOS;¡þ	p¡…	p¡	p¡“	pcapacitanceµ:µ2.500000;¡þ	¬¡…	¬¡	¬¡“	¬fanout_loadµ:µ0.000000;¡þ	è¡…	è¡	è}¡þ
%¡…
%¡
%pin(Yµ)µ{¡þ
a¡…
a¡
a¡“
adirectionµ:µoutput;¡þ
ž¡…
ž¡
ž¡“
žfunctionµ:µ"PAD";¡þ
Ú¡…
Ú¡
Ú¡“
Útiming()µ{¡þ¡…¡¡“¡intrinsic_fallµ:µ2.952000’63D“I501ileaf_page_string1:11-21¥	öä¥	öä¡Á²âDefining´µInput/OutputµPads¡Ô¤ÿŠ11³21¡þÃ²¡…Ã¡Ã¡“Ã¡Ãintrinsic_rise´µ:µ3.075000¡þ¡…¡¡“¡fall_resistanceµ:µ0.500000¡þ=¡…=¡=¡“=¡=rise_resistanceµ:µ0.500000¡þy¡…y¡y¡“y¡yrelated_pinµ:"PAD";¡þ¶¡…¶¡¶¡“¶}¡þó¡…ó¡ó}¡þ0¡…0}¡,²&Example 11³3³Input´µBufferµwithµHysteresis¡þ1²library´µ(example1)µ{¡þn¡…ndateµ:µ"Januaryµ14,µ1997"µ;¡þ«¡…«revisionµ:µ1997.01;¡þè¡…è...¡þ%¡…%time_unitµ:µ"1ns";¡þa¡…avoltage_unitµ:µ"1V";¡þž¡…žcurrent_unitµ:µ"1uA";¡þÛ¡…Ûpulling_resistance_unitµ:µ"1kohm";¡þ¡…capacitive_load_unit(µ0.1,ffµ);¡þU¡…U...¡þ’¡…’input_voltage(CMOS_SCHMITT)µ{¡þÏ¡…Ï¡Ïvilµ:µ1.0;¡þ¡…¡vihµ:µ4.0;¡þH¡…H¡Hviminµ:µ-0.3;¡þ…¡……¡…vimaxµ:µVDDµ+µ0.3;¡þÂ¡…Â}¡þÿ¡…ÿ...¡þ<¡…</*INPUTµPADµWITHµHYSTERESIS*/¡þy¡…ycell(INBUFH)µ{¡þ¶¡…¶¡¶areaµ:µ0.000000;¡þó¡…ó¡ópad_cellµ:µtrue;¡þ	/¡…	/¡	/pin(PADµ)µ{¡þ	l¡…	l¡	l¡“	ldirectionµ:µinput;¡þ	©¡…	©¡	©¡“	©is_padµ:µtrue;¡þ	æ¡…	æ¡	æ¡“	æhysteresisµ:µtrue;¡þ
#¡…
#¡
#¡“
#input_voltageµ:µCMOS_SCHMITT;¡þ
`¡…
`¡
`¡“
`capacitanceµ:µ2.500000;¡þ
¡…
¡
¡“
fanout_loadµ:µ0.000000;¡þ
Ù¡…
Ù¡
Ù}¡þ¡…¡pin(Yµ)µ{’3/D“I501ileaf_page_string1:11-22¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³22¡þÃ²¡…Ã¡Ã¡“Ãdirection´µ:µoutput;¡þ¡…¡¡“functionµ:µ"PAD";¡þ=¡…=¡=¡“=timing()µ{¡þy¡…y¡y¡“y¡yintrinsic_fallµ:µ2.952000¡þ¶¡…¶¡¶¡“¶¡¶intrinsic_riseµ:µ3.075000¡þó¡…ó¡ó¡“ó¡ófall_resistanceµ:µ0.500000¡þ0¡…0¡0¡“0¡0rise_resistanceµ:µ0.500000¡þm¡…m¡m¡“m¡mrelated_pinµ:"PAD";¡þª¡…ª¡ª¡“ª}¡þç¡…ç¡ç}¡þ$¡…$}¡,Í²&Example 11³4³Input´µClockµBuffer¡þ%²library´µ(example1)µ{¡þa¡…adateµ:µ"Januaryµ14,µ1997"µ;¡þž¡…žrevisionµ:µ1997.01;¡þÛ¡…Û...¡þ¡…time_unitµ:µ"1ns";¡þU¡…Uvoltage_unitµ:µ"1V";¡þ’¡…’current_unitµ:µ"1uA";¡þÏ¡…Ïpulling_resistance_unitµ:µ"1kohm";¡þ¡…capacitive_load_unit(µ0.1,ffµ);¡þH¡…H...¡þ…¡……input_voltage(CMOS)µ{¡þÂ¡…Â¡Âvilµ:µ1.5;¡þÿ¡…ÿ¡ÿvihµ:µ3.5;¡þ<¡…<¡<viminµ:µ-0.3;¡þy¡…y¡yvimaxµ:µVDDµ+µ0.3;¡þ¶¡…¶}¡þó¡…ó...¡þ	/¡…	//*****µCLOCKµINPUTµBUFFERµ*****/¡þ	l¡…	lcell(CLKBUF)µ{¡þ	©¡…	©¡	©areaµ:µ0.000000;¡þ	æ¡…	æ¡	æpad_cellµ:µtrue;¡þ
#¡…
#¡
#pad_typeµ:µclock;¡þ
`¡…
`¡
`pin(PADµ)µ{¡þ
¡…
¡
¡“
directionµ:µinput;¡þ
Ù¡…
Ù¡
Ù¡“
Ùis_padµ:µtrue;¡þ¡…¡¡“input_voltageµ:µCMOS;’/`D“I501ileaf_page_string1:11-23¥	öäÃËÁâÊË¡Ä,è,Ò¡Ä,Ò	cÒ¡Ä	cÒ	cè¡Ä	cè,èÆÃÁÊËÃ¡ÄþÒÊÒÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³23¡þÃ²¡…Ã¡Ã¡“Ãcapacitance´µ:µ2.500000;¡þÿ¡…ÿ¡ÿ¡“ÿfanout_loadµ:µ0.000000;¡þ<¡…<¡<}¡þx¡…x¡xpin(Yµ)µ{¡þ´¡…´¡´¡“´directionµ:µoutput;¡þñ¡…ñ¡ñ¡“ñfunctionµ:µ"PAD";¡þ-¡…-¡-¡“-max_fanoutµ:µ2000.000000;¡þi¡…i¡i¡“itiming()µ{¡þ¦¡…¦¡¦¡“¦¡¦intrinsic_fallµ:µ6.900000¡þâ¡…â¡â¡“â¡âintrinsic_riseµ:µ5.700000¡þ¡…¡¡“¡fall_resistanceµ:µ0.010238¡þ[¡…[¡[¡“[¡[rise_resistanceµ:µ0.009921¡þ—¡…—¡—¡“—¡—related_pinµ:"PAD";¡þÓ¡…Ó¡Ó¡“Ó}¡þ¡…¡}¡þL¡…L}¡þ"²Output´µPads¡þ¼²The´µoutputµpadµdefinitionµinµExample 11³5µrepresentsµaµstandard¡þoutputµbuffer.¡,°²&Example 11³5³OutputµBuffer¡þ²library´µ(example1)µ{¡þB¡…Bdateµ:µ"Januaryµ14,µ1997"µ;¡þ¡…revisionµ:µ1997.01;¡þ»¡…»...¡þ÷¡…÷time_unitµ:µ"1ns";¡þ	4¡…	4voltage_unitµ:µ"1V";¡þ	p¡…	pcurrent_unitµ:µ"1uA";¡þ	¬¡…	¬pulling_resistance_unitµ:µ"1kohm";¡þ	é¡…	écapacitive_load_unit(µ0.1,ffµ);¡þ
%¡…
%...¡þ
a¡…
aoutput_voltage(GENERAL)µ{¡þ
ž¡…
ž¡
žvolµ:µ0.4;¡þ
Ú¡…
Ú¡
Úvohµ:µ2.4;¡þ¡…¡vominµ:µ-0.3;’`”D“I501ileaf_page_string1:11-24¥	öäÃËÁâÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³24¡þÃ²¡…Ã¡Ãvomax´µ:µVDDµ+µ0.3;¡þ¡…}¡þ=¡…=/*****µOUTPUTµPADµ*****/¡þz¡…zcell(OUTBUF)µ{¡þ¶¡…¶¡¶areaµ:µ0.000000;¡þó¡…ó¡ópad_cellµ:µtrue;¡þ0¡…0¡0pin(Dµ)µ{¡þm¡…m¡m¡“mdirectionµ:µinput;¡þª¡…ª¡ª¡“ªcapacitanceµ:µ1.800000;¡þç¡…ç¡ç}¡þ$¡…$¡$pin(PADµ)µ{¡þa¡…a¡a¡“adirectionµ:µoutput;¡þž¡…ž¡ž¡“žis_padµ:µtrue;¡þÚ¡…Ú¡Ú¡“Údrive_currentµ:µ2.0;¡þ¡…¡¡“output_voltageµ:µGENERAL;¡þT¡…T¡T¡“Tfunctionµ:µ"D";¡þ‘¡…‘¡‘¡“‘timing()µ{¡þÎ¡…Î¡Î¡“Î¡Îintrinsic_fallµ:µ9.348001¡þ¡…¡¡“¡intrinsic_riseµ:µ8.487000¡þH¡…H¡H¡“H¡Hfall_resistanceµ:µ0.186960¡þ…¡……¡…¡“…¡…rise_resistanceµ:µ0.169740¡þÂ¡…Â¡Â¡“Â¡Ârelated_pinµ:"D";¡þþ¡…þ¡þ¡“þ}¡þ;¡…;¡;}¡þx¡…x}¡þU²Bidirectional´µPad¡þô²Example 11³6´µshowsµaµbidirectionalµpadµcellµwithµthree³stateµenable.’”D“I501ileaf_page_string1:11-25¥	öä¥	öä¡Á²âDefining´µInput/OutputµPads¡Ô¤ÿŠ11³25¡,É²&Example 11³6³Bidirectional´µPad¡þ[²library´µ(example1)µ{¡þ˜¡…˜dateµ:µ"Januaryµ14µ,1997"µ;¡þÔ¡…Ôrevisionµ:µ1997.01;¡þ¡…...¡þM¡…Mtime_unitµ:µ"1ns";¡þ‰¡…‰voltage_unitµ:µ"1V";¡þÆ¡…Æcurrent_unitµ:µ"1uA";¡þ¡…pulling_resistance_unitµ:µ"1kohm";¡þ?¡…?capacitive_load_unit(µ0.1,ffµ);¡þ{¡…{...¡þ·¡…·output_voltage(GENERAL)µ{¡þô¡…ô¡ôvolµ:µ0.4;¡þ0¡…0¡0vohµ:µ2.4;¡þm¡…m¡mvominµ:µ-0.3;¡þ©¡…©¡©vomaxµ:µVDDµ+µ0.3;¡þå¡…å}¡þ"¡…"/*****µBIDIRECTIONALµPADµ*****/¡þ^¡…^cell(BIBUF)µ{¡þ›¡…›¡›areaµ:µ0.000000;¡þ×¡…×¡×pad_cellµ:µtrue;¡þ¡…¡pin(EµDµ)µ{¡þP¡…P¡P¡“Pdirectionµ:µinput;¡þŒ¡…Œ¡Œ¡“Œcapacitanceµ:µ1.800000;¡þÉ¡…É¡É}¡þ¡…¡pin(Yµ)µ{¡þA¡…A¡A¡“Adirectionµ:µoutput;¡þ~¡…~¡~¡“~functionµ:µPAD";¡þº¡…º¡º¡“ºdriver_typeµ:µ"open_sourceµpull_up";¡þ÷¡…÷¡÷¡“÷pulling_resistanceµ:µ10000;¡þ	3¡…	3¡	3¡“	3timing()µ{¡þ	p¡…	p¡	p¡“	p¡	pintrinsic_fallµ:µ2.952000¡þ	¬¡…	¬¡	¬¡“	¬¡	¬intrinsic_riseµ:µ3.075000¡þ	è¡…	è¡	è¡“	è¡	èfall_resistanceµ:µ0.500000¡þ
%¡…
%¡
%¡“
%¡
%rise_resistanceµ:µ0.500000¡þ
a¡…
a¡
a¡“
a¡
arelated_pinµ:"PADµ;¡þ
ž¡…
ž¡
ž¡“
ž}¡þ
Ú¡…
Ú¡
Ú}¡þ¡…¡pin(PADµ)µ{’äD“I501ileaf_page_string1:11-26¥	öäÃËÁâÊË¡Ä,¡,‹¡Ä,‹	c‹¡Ä	c‹	c¡¡Ä	c¡,¡ÆÃÁÊËÃ¡Äþ‹Ê‹ÆÃ¥	öä¥	öä¡8Á²Defining´µInput/OutputµPads¡.11³26¡þÃ²¡…Ã¡Ã¡“Ãdirection´µ:µinout;¡þ¡…¡¡“is_padµ:µtrue;¡þ=¡…=¡=¡“=drive_currentµ:µ2.0;¡þz¡…z¡z¡“zoutput_voltageµ:µGENERAL;¡þ¶¡…¶¡¶¡“¶input_voltageµ:µCMOS;¡þó¡…ó¡ó¡“ófunctionµ:µ"D";¡þ0¡…0¡0¡“0three_stateµ:µ"E";¡þm¡…m¡m¡“mtiming()µ{¡þª¡…ª¡ª¡“ª¡ªintrinsic_fallµ:µ19.065001¡þç¡…ç¡ç¡“ç¡çintrinsic_riseµ:µ17.466000¡þ$¡…$¡$¡“$¡$fall_resistanceµ:µ0.381300¡þa¡…a¡a¡“a¡arise_resistanceµ:µ0.346860¡þž¡…ž¡ž¡“ž¡žrelated_pinµ:"E";¡þÚ¡…Ú¡Ú¡“Ú}¡þ¡…¡¡“timing()µ{¡þT¡…T¡T¡“T¡Tintrinsic_fallµ:µ9.348001¡þ‘¡…‘¡‘¡“‘¡‘intrinsic_riseµ:µ8.487000¡þÎ¡…Î¡Î¡“Î¡Îfall_resistanceµ:µ0.186960¡þ¡…¡¡“¡rise_resistanceµ:µ0.169740¡þH¡…H¡H¡“H¡Hrelated_pinµ:"D";¡þ…¡……¡…¡“…}¡þÂ¡…Â¡Â}¡þþ¡…þ}¡þÛ²Components´µforµMulticellµPads¡þz²Example 11³7´µshowsµaµlibraryµthatµallowsµmulticellµpad¡þÃconfigurations.’äLD“I501ileaf_page_string1:11-27¥	öä¥	öä¡Á²âDefining´µInput/OutputµPads¡Ô¤ÿŠ11³27¡,É²&Example 11³7³Multicell´µPadµComponents¡þ[²library´µ(multicell_pad_example)µ{¡þ˜¡…˜time_unitµ:µ"1ns";¡þÔ¡…Ôvoltage_unitµ:µ"1V";¡þ¡…current_unitµ:µ"1mA";¡þM¡…Mpulling_resistance_unitµ:µ"1kohm";¡þ‰¡…‰default_connection_classµ:µ"some_default";¡þÆ¡…Æcell(INPAD)µ{¡þ¡…¡areaµ:µ1;¡þ?¡…?¡?pad_cellµ:µtrue;¡þ{¡…{¡{pin(µPADµ)µ{¡þ·¡…·¡·¡“·directionµ:µinput;¡þô¡…ô¡ô¡“ôcapacitanceµ:µ1.0;¡þ0¡…0¡0¡“0is_padµ:µtrueµ;¡þm¡…m¡m}¡þ©¡…©¡©pin(µToInBufµ)µ{¡þå¡…å¡å¡“ådirectionµ:µoutput;¡þ"¡…"¡"¡“"multicell_pad_pinµ:µtrue;¡þ^¡…^¡^¡“^connection_classµ:µ"INPAD_NETWORK";¡þ›¡…›¡›¡“›timing()µ{¡þ×¡…×}¡þP¡…Pcell(OUTPAD)µ{¡þŒ¡…Œ¡Œareaµ:µ1;¡þÉ¡…É¡Épad_cellµ:µtrue;¡þ¡…¡pin(µFromOutBufµ)µ{¡þA¡…A¡A¡“Adirectionµ:µinput;¡þ~¡…~¡~¡“~capacitanceµ:µ1.0;¡þº¡…º¡º¡“ºmulticell_pad_pinµ:µtrue;¡þ÷¡…÷¡÷¡“÷connection_classµ:µ"OUTPAD_NETWORK";¡þ	3¡…	3¡	3}¡þ	p¡…	p¡	ppin(PADµ)µ{¡þ	¬¡…	¬¡	¬¡“	¬directionµ:µoutput;¡þ	è¡…	è¡	è¡“	èis_padµ:µtrue;¡þ
%¡…
%¡
%¡“
%drive_currentµ:µ1.0;¡þ
a¡…
a¡
a}¡þ
ž¡…
ž}¡þ
Úµµcell(µBIDIPADµ)µ{¡þµµµµareaµ:µ1;’LAD“I501ileaf_page_string1:11-28¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³28¡þÃ²´µµµµpad_cellµ:µtrue;¡þÿµµµµpin(µFromOutBufµ)µ{¡þ:µµµµµµdirectionµ:µinput;¡þvµµµµµµcapacitanceµ:µ1.0;¡þ²µµµµµµmulticell_pad_pinµ:µtrue;¡þíµµµµµµconnection_classµ:µ"OUTPAD_NETWORK";¡þ)µµµµ}¡þeµµµµpin(µToInBufµ)µ{¡þ µµµµµµdirectionµ:µoutput;¡þÜµµµµµµmulticell_pad_pinµ:µtrue;¡þµµµµµµconnection_classµ:µ"INPAD_NETWORK";¡þSµµµµ}¡þµµµµpin(µControlµ)µ{¡þËµµµµµµdirectionµ:µinput;¡þµµµµµµcapacitanceµ:µ1.0;¡þBµµµµ}¡þºµµµµpin(µPADµ)µ{¡þõµµµµµµdirectionµ:µinout;¡þ1µµµµµµis_padµ:µtrue;¡þmµµµµµµdrive_currentµ:µ1.0;¡þ¨µµµµ}¡þäµµ}¡þ[µµcell(µINBUFµ)µ{¡þ—µµµµareaµ:µ1;¡þÓµµµµauxiliary_pad_cellµ:µtrue;¡þµµµµpin(µFrom_In_Padµ)µ{¡þJµµµµµµdirectionµ:µinput;¡þ†µµµµµµcapacitanceµ:µ1.0;¡þÁµµµµµµmulticell_pad_pinµ:µtrue;¡þýµµµµµµconnection_classµ:µ"INPAD_NETWORK";¡þ	9µµµµ}¡þ	uµµµµpin(µToCoreµ)µ{¡þ	°µµµµµµdirectionµ:µoutput;¡þ	ìµµµµ}¡þ
(µµ}¡þ
Ÿµµcell(µOUTBUFµ)µ{¡þ
Ûµµµµareaµ:µ1;¡þµµµµauxiliary_pad_cellµ:µtrue;’A}D“I501ileaf_page_string1:11-29¥	öäÃËÁâÊË¡Ä,	Å,	¯¡Ä,	¯	c	¯¡Ä	c	¯	c	Å¡Ä	c	Å,	ÅÆÃÁÊËÃ¡Äþ	¯Ê	¯ÆÃ¥	öä¥	öä¡Á²Defining´µInput/OutputµPads¡Ô¤ÿŠ11³29¡þÃ²´µµµµpin(µTo_Out_Padµ)µ{¡þýµµµµµµdirectionµ:µoutput;¡þ7µµµµµµmulticell_pad_pinµ:µtrue;¡þqµµµµµµconnection_classµ:µ"OUTPAD_NETWORK";¡þ¬µµµµ}¡þæµµµµpin(µFromCoreµ)µ{¡þ µµµµµµcapacitanceµ:µ1.0;¡þZµµµµµµdirectionµ:µinput;¡þ”µµµµ}¡þÎµµ}¡þCµµcell(µPULLUPµ)µ{¡þ}µµµµareaµ:µ1;¡þ·µµµµauxiliary_pad_cellµ:µtrue;¡þñµµµµpin(µPULLING_PINµ)µ{¡þ+µµµµµµdirectionµ:µoutput;¡þeµµµµµµdriver_typeµ:µpull_up;¡þ µµµµµµmulticell_pad_pinµ:µtrue;¡þÚµµµµµµconnection_classµ:µ"INPAD_NETWORK";¡þµµµµµµpulling_resistanceµ:µ1000;µ/*µ1000µohmsµ*/¡þNµµµµ}¡þˆµµ}¡þÂµµcell(µPULLDOWNµ)µ{¡þýµµµµareaµ:µ1;¡þ7µµµµauxiliary_pad_cellµ:µtrue;¡þqµµµµpin(µPULLING_PINµ)µ{¡þ«µµµµµµdirectionµ:µoutput;¡þåµµµµµµdriver_typeµ:µpull_down;¡þµµµµµµmulticell_pad_pinµ:µtrue;¡þZµµµµµµconnection_classµ:µ"INPAD_NETWORK";¡þ”µµµµµµpulling_resistanceµ:µ1000;µ/*µ1000µohmsµ*/¡þÎµµµµ}¡þ	µµ}¡þ	B}¡þ	ÿ²Cell´µwithµx_functionµandµcontention_condition¡þ
ƒ²Example 11³8´µshowsµaµcellµwithµtheµx_functionµattributeµthat¡þ
ÌdescribesµtheµXµbehaviorµofµtheµpinµandµtheµcontention_condition¡þattributeµthatµspecifiesµcontention³causingµconditions.’}ÀD“I501ileaf_page_string1:11-30¥	öä¥	öä¡8Á²âDefining´µInput/OutputµPads¡.11³30¡,É²&Example 11³8³Cell´µwithµx_functionµAttribute¡þ+²default_intrinsic_fall´µ:µ0.1;¡þ_µµdefault_inout_pin_fall_resµ:µ0.1;µ¡þ“µµdefault_fanout_loadµ:µ0.1;µ¡þÇµµdefault_intrinsic_riseµ:µ0.1;µ¡þûµµdefault_slope_riseµ:µ0.1;¡þ/µµdefault_output_pin_fall_resµ:µ0.1;¡þcµµdefault_inout_pin_capµ:µ0.1;µ¡þ–µµdefault_input_pin_capµ:µ0.1;¡þÊµµdefault_slope_fallµ:µ0.1;¡þþµµdefault_inout_pin_rise_resµ:µ0.1;¡þ2µµdefault_output_pin_capµ:µ0.1;¡þfµµdefault_output_pin_rise_resµ:µ0.1;¡þš¡þÎµµcapacitive_load_unit(1,µpf);µ¡þ¡þ6µµpulling_resistance_unitµ:µ1ohm;µ¡þi¡þµµvoltage_unitµ:µ1V;µ¡þÑµµcurrent_unitµ:µ1mA;µ¡þµµtime_unitµ:µ1ps;µ¡þ9¡þmµµcellµ(cell_a)µ{¡þ¡µµµµareaµ:µ1;¡þÕµµµµcontention_conditionµ:µ"!apµ&µan";¡þ	¡þ<µµµµpinµ(ap,µan)µ{¡þpµµµµµµdirectionµ:µinput;¡þ¤µµµµµµcapacitanceµ:µ1;¡þØµµµµ}¡þµµµµpinµ(io)µ{¡þ@µµµµµµdirectionµ:µoutput;¡þtµµµµµµfunctionµ:µ"!apµ&µ!an";¡þ¨µµµµµµthree_stateµ:µ"apµ&µ!an";¡þÜµµµµµµx_functionµ:µ"!apµ&µan";¡þ	µµµµµµtiming()µ{¡þ	Cµµµµµµµµrelated_pinµ:µ"apµan";¡þ	wµµµµµµµµtiming_typeµ:µthree_state_disable;¡þ	«µµµµµµµµintrinsic_riseµ:µ0.1;¡þ	ßµµµµµµµµintrinsic_fallµ:µ0.1;¡þ
µµµµµµ}¡þ
Gµµµµµµtiming()µ{¡þ
{µµµµµµµµrelated_pinµ:µ"apµan";¡þ
¯µµµµµµµµtiming_typeµ:µthree_state_enable;¡þ
âµµµµµµµµintrinsic_riseµ:µ0.1;¡þµµµµµµµµintrinsic_fallµ:µ0.1;’À*D“I501ileaf_page_string1:11-31¥	öä¥	öä¡Á²âDefining´µInput/OutputµPads¡Ô¤ÿŠ11³31¡þÃ²´µµµµµµ}¡þ÷µµµµ}¡þ+µµµµpinµ(z)µ{¡þ_µµµµµµdirectionµ:µoutput;¡þ’µµµµµµfunctionµ:µ"!apµ&µ!an";¡þÆµµµµµµx_functionµ:µ"!apµ&µanµ|µapµ&µ!an";¡þúµµµµ}¡þ.µµ}¡þb}’*ÐOPS m:m:D€‚Document:12testÿ‚Last saved on:Tue, Dec 9, 1997 17:53:20ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G° wst:helvps20b± :44444444444444444444444444444444*..J< 0...........0003Q<<<<73A<.<3E<A7A<73<7N7730..3.3.33.J3333 .3.A..*  0*444444444444444444444444444444444....4.4.444444444.44.4443<<<<<<S<77774<AAAAA4A<<<<443......J.....433333343333344.4.*S.44S444444444..*444444S444444444444444.4444S444N°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Cwst:courps10b±C:*°Qwst:courps10.5±Q:,°_wst:timsps9±_:			


"!#





	!



	%%%!°iwst:helvps8i±i:							!								!									!!!!åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå®å€åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»åšå³3áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’WƒqD“I501ileaf_page_string1:12-1¥	öä² â¡º¡Ïº¡žº¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿ¤12³1¡,m²².12â²/¥	öä¡`m²â¡,v²	Defining´µTestµCells¡ð²¥	öäÁÊËÃ¡Ä,ÔÊÔÆÃ¡	öð¡þ¢Synopsys´µTestµCompilerµisµaµsynthesisµtoolµfeaturingµa¡þëdesign³for³testµstrategy.µThisµtoolµfacilitatesµtheµdesignµofµhighly¡þ3testableµcircuitsµwithµminimalµspeedµandµareaµoverheads,µand¡þ|generatesµanµassociatedµsetµofµtestµvectorsµautomatically.µTheµTest¡þÅCompilerµprogramµcanµuseµeitherµaµfull³scanµorµaµpartial³scan¡þmethodologyµtoµaddµscanµcellsµtoµyourµdesignµandµhelpµmakeµa¡þVdesignµcontrollableµandµobservable.¡þùToµsupportµTestµCompiler,µyouµmustµaddµtest³specificµdetailsµof¡þ	Bscannableµcellsµtoµtechnologyµlibraries.µYouµmustµidentifyµscannable¡þ	Šflip³flopsµandµlatches,µandµselectµtheµtypesµofµnot³scannableµcells¡þ	Ótheyµreplaceµforµaµgivenµscanµmethodology.µToµdoµthis,µyouµmust¡þ
understandµtheµfollowingµconceptsµdescribedµinµthisµchapter:¡þ
 ²S¡X
 ²Describingµaµscanµcell¡þ²S¡X²Describingµaµmultibitµscanµcell’q’D“I501ileaf_page_string1:12-2¥	öäÃËÁâÊË¡Ä,@,*¡Ä,*	c*¡Ä	c*	c@¡Ä	c@,@ÆÃÁÊËÃ¡Ä,*Ê*ÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³2¡þÉ²²S¡XÉ²Verifying´µscanµcellµmodels¡þ6²S¡X6²Usingµsequentialµmapping³basedµscanµinsertion¡þ¢²S¡X¢²Modelingµscanµcellsµexamples¡,€²Describing´µaµScanµCell¡þ-²Only´µMUXedµflip³flop,µclockedµscan,µandµlevelµsensitiveµscanµdevice¡þu(LSSD)µcellsµthatµfitµoneµofµtheµsupportedµmethodologiesµcanµbe¡þ¾describedµasµaµscanµcellµinµtheµlibrary.µToµdescribeµaµscanµcell,µadd¡þtheµtest_cellµgroupµtoµthatµscanµcellµdescription.¡þ›Onlyµtheµnontestµmodeµfunctionµofµaµscanµcellµisµmodeledµinµthe¡þätest_cellµgroup.µTheµnontestµoperationµisµdescribedµbyµitsµff,µff_bank,¡þ-latch,µorµlatch_bankµdeclarationµandµpinµfunctionµattributes.µThis¡þunontestµbehaviorµdeterminesµwhichµcellsµcanµbeµreplacedµwhenµTest¡þ¾Compilerµaddsµscanµcircuitryµtoµaµdesignµinµresponseµtoµthe¡þinsert_scanµcommandµ(seeµFigure 12³1).¡þ›Note:²¡Xä²Forµaµdescriptionµofµpinµgroups,µreferµtoµµtheµDefiningµPin¡X,Groups"µsectionµinµChapterµ8,µDefiningµCoreµCells."µµTheµpin¡Xugroupµrestrictionsµareµdescribedµinµtheµtest_cellµpinµGroup"¡X¾sectionµlaterµinµthisµchapter.µReferµtoµChapterµ9,µDefining¡X	SequentialµCells,"µforµdetailsµonµff,µff_bank,µlatch,µorµlatch_bank¡X	Odeclarationsµandµtheirµattributes.¡þ	äTestµCompilerµhasµtwoµmodesµinµwhichµitµreplacesµaµcellµwithµits¡þ
,equivalentµscanµcell:¡þ
¨²S¡X
¨²Identicalµfunction³basedµscanµinsertion¡þ²S¡X²Sequentialµmapping³basedµscanµinsertion’’mD“I501ileaf_page_string1:12-3¥	öäÃËÁâÊË¡Ä,Ã,­¡Ä,­	c­¡Ä	c­	cÃ¡Ä	cÃ,ÃÆÃÁÊËÃ¡Äþ­Ê­ÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿ¤12³3¡þÉ²The´µidenticalµfunction³basedµscanµinsertionµmethodµisµfasterµbut¡þmoreµrestrictive.µThisµmethodµexactlyµmatchesµtheµfunctional¡þZdescription,µasµwellµasµtheµpinsµwhenµsubstitutingµscanµcells.¡þýNote:²¡XF²Synopsysµengineersµrecommendµthatµlibrariesµalwaysµsupport¡XŽtheµidenticalµfunction³basedµscanµprocedure.¡þ1Theµsequentialµmapping³basedµscanµinsertionµmethodµisµmore¡þzgeneral.µµItµisµdescribedµinµtheµSequentialµMapping³BasedµScan¡þÂInsertion"µsectionµlaterµinµthisµchapter.µSequentialµmapping³based¡þscanµinsertionµcurrentlyµsupportsµonlyµcellsµthatµareµedge³triggered¡þTinµnontestµmode.¡þöNote:²¡X?²Setµtheµenvironmentµvariableµread_translate_msff=trueµsoµthat¡X‡TestµCompilerµwillµcorrectlyµrecognizeµmaster³slaveµlatches.µIf¡XÐtheµvariableµisµnotµsetµtoµtrue,µTestµCompilerµwillµtreatµtheseµcells¡Xasµmaster³slaveµflip³flopµpairsµratherµthanµlatchµpairs.¡þý²test_cell´µGroup¡þœ²The´µtest_cellµgroupµdefinesµonlyµtheµnontestµmodeµfunctionµofµa¡þåscanµcell.µFigure 12³1µillustratesµtheµrelationshipµbetweenµaµtest_cell¡þ	-groupµandµtheµscanµcellµinµwhichµitµisµdefined.’mÏD“I501ileaf_page_string1:12-4¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³4¡,É²&Figure 12³1³Scan´µCellµwithµtest_cellµGroup¡,™²¥	öäÃËÁÊË¡Ä''«¡Ä'«{«¡Ä{«{¡Ä{'âãÇÆÃâÊËÃ¡Äxí'íÆÃÃÁÊË¡Ä§¡Ä·¡Ä·§·¡Ä§·§âÇÆÃ¡³¯²âCLKÁÊËÃ¡ÄuÄ$ÄÆÃÃ¡Ä{ñ*ñÆÃÃÁÊË¡Ä<ø”ø¡Ä”ø” ¡Ä” < ¡Ä< <øâÇÆÃ¡HâSIÃ¡Äâ½½¡Ä½å¡Äåâå¡Äâåâ½âÇÆÃ¡îÝâDÃ¡ÄÁ{Á¡Ä{Á{é¡Ä{éé¡ÄéÁâÇÆÃ¡*áâQÃ¡Ä¢—¡Ä——7¡Ä—7¢7¡Ä¢7¢âÇÆÃ¡®/âScan´µCellÃÁÊË¡Ä	“	þ¡Ä	þ–þ¡Ä–þ–“¡Ä–“	“ÆÃÊËÃ¡Ä'²YËÆÃÃ¡ÄYË'äÆÃÃÁÊË¡ÄŒÅèÅ¡ÄèÅèí¡ÄèíŒí¡ÄŒíŒÅâÇÆÃ¡˜åâQÁÊËÃ¡Ä{É*ÉÆÃÃÁÊË¡Äšvš¡ÄvšvÂ¡ÄvÂÂ¡ÄÂšâÇÆÃ¡%ºâQNÃ¡Äšìš¡ÄìšìÂ¡ÄìÂÂ¡ÄÂšâÇÆÃ¡™ºâQNÁÊËÃ¡Ä	:@:ÆÃÃÁÊË¡Ä-‰¡Ä‰‰:¡Ä‰:-:¡Ä-:-âÇÆÃ¡92âSQÃ¡Ä”Œ”¡ÄŒ”Œ¼¡ÄŒ¼¼¡Ä¼”âÇÆÃ¡'´âCLKÁÊËÃ¡ÄZ)‘)ÆÃÃ¡Ä\~”~ÆÃÃÁÊË¡Ä6NŽN¡ÄŽNŽv¡ÄŽv6v¡Ä6v6NâÇÆÃ¡BnâSEÃ¡ÄY»“»¡Ä“»“ã¡Ä“ãYã¡ÄYãY»âÇÆÃ¡eÛâDÃ¡Ä3»(»¡Ä(»(ã¡Ä(ã3ã¡Ä3ã3»âÇÆÃ¡?Ûâtest_cell²¡Ê™¡þW²There´µareµtwoµimportantµpointsµtoµrememberµwhenµdefiningµaµscan¡þŸcellµsuchµasµtheµoneµFigure 12³1µshows:¡þ$²S¡X$²Pinµnamesµmustµmatchµbetweenµtheµscanµcellµandµtheµtestµcell.¡þ˜²S¡X˜²Theµscanµcellµandµtheµtestµcellµmustµcontainµtheµsameµfunctional¡XÞoutputs.’ÏD“I501ileaf_page_string1:12-5¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿ¤12³5¡þÉ²Syntax¡þB²Following´µisµtheµsyntaxµofµaµtest_cellµgroupµthatµcontainsµpins:µ¡þÈ²library´µ(²(lib_name²)µ{¡þ¡…cellµ(²(cell_name²)µ{¡þC¡…C¡Cscan_groupµ:µ²(string¡þ²¡…¡test_cellµ()µ{¡þ¾¡…¾¡¾¡“¾...µtestµcellµdescriptionµ...¡þü¡…ü¡ü¡“üpinµ(²(µname²µ)µ{¡þ9²(¡…9¡9¡“9¡9²...µpinµdescriptionµ...¡þw¡…w¡w¡“w}¡þ´¡…´¡´¡“´pinµ(²(µname²µ)µ{¡þò²(¡…ò¡ò¡“ò¡ò²...µpinµdescriptionµ...¡þ/¡…/¡/}¡þm¡…m}¡þª}¡þI²Using´µtheµdefinedµstringµvalueµofµtheµscan_groupµattribute³
which¡þ‘indicatesµdriveµstrength³
TestµCompilerµfindsµtheµstringµthat¡þÚmatchesµtoµmakeµsureµtheµsameµdriveµstrengthµisµmaintainedµinµthe¡þ#testµcell.µForµaµdescriptionµofµtheµscan_groupµattribute,µseeµChapter¡þk8,µDefiningµCoreµCells."¡þYouµdoµnotµneedµtoµgiveµtheµtest_cellµgroupµaµnameµbecauseµthe¡þ]testµcellµtakesµtheµcell_nameµofµtheµcellµbeingµdefined.µTheµtest_cell¡þ¦groupµcanµcontainµff,µff_bank,µlatch,µorµlatch_bankµdeclarationsµand¡þîpinµgroups.¡þ	Ý²Pins´µinµtheµtest_cellµGroup¡þ
ƒ²Both´µtestµpinsµandµnontestµpinsµappearµinµpinµgroupsµwithinµa¡þ
Ìtest_cellµgroup.µTheseµgroupsµareµlikeµpinµgroupsµinµaµcellµgroupµbut¡þmustµadhereµtoµtheµfollowingµrules:µµµµ’pD“I501ileaf_page_string1:12-6¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³6¡þÉ²²S¡XÉ²Each´µpinµdefinedµinµtheµcellµgroupµmustµhaveµaµcorresponding¡Xpinµdefinedµatµtheµtest_cellµgroupµlevelµwithµtheµsameµname.µ¡þ€²S¡X€²Theµpinµgroupµcanµcontainµonlyµdirection,µfunction,¡XÆtest_output_only,µandµsignal_typeµattributeµstatements.µTheµpin¡Xgroupµcannotµcontainµtiming,µcapacitance,µfanout,µorµload¡XSinformation.µµµ¡þÃ²S¡XÃ²Theµfunctionµattributesµcanµreflectµonlyµtheµnontestµbehaviorµof¡X
theµcell.¡þz²S¡Xz²Inputµpinsµmustµbeµreferencedµinµanµff,µff_bank,µlatch,µor¡XÀlatch_bankµdeclarationµorµhaveµaµsignal_typeµattributeµassigned¡Xtoµthem.¡þw²S¡Xw²Anµoutputµpinµmustµhaveµeitherµaµfunctionµattribute,µaµsignal_type¡X½attribute,µorµboth.µ¡þIExample 12³1µshowsµaµlibraryµmodelµforµaµmultiplexedµDµflip³flop¡þ’scanµcellµwithµmultipleµtest_cellµgroups.¡,;²&Example 12³1³MultiplexedµDµFlip³FlopµScanµCell¡þÌ²cell(SDFF1)´µ{¡þµµareaµ:µ9;¡þDµµscan_groupµ:µlow";¡þµµpin(D)µ{¡þ½µµµµdirectionµ:µinput;¡þùµµµµcapacitanceµ:µ1;¡þ	5µµµµtiming()µ{¡þ	qµµµµµµtiming_typeµ:µsetup_rising;¡þ	­µµµµµµintrinsic_riseµ:µ1.0;¡þ	êµµµµµµintrinsic_fallµ:µ1.0;¡þ
&µµµµµµrelated_pinµ:µ"CLK";¡þ
bµµµµ}¡þ
žµµµµtiming()µ{¡þ
Úµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµintrinsic_riseµ:µ1.0;’pJD“I501ileaf_page_string1:12-7¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿ¤12³7¡þÃ²´µµµµµµintrinsic_fallµ:µ1.0;¡þÿµµµµµµrelated_pinµ:µ"CLK";¡þ:µµµµ}¡þvµµ}¡þ²µµpin(CLK)µ{¡þíµµµµdirectionµ:µinput;¡þ)µµµµcapacitanceµ:µ1;¡þeµµ}¡þ µµpin(SI)µ{¡þÜµµµµdirectionµ:µinput;¡þµµµµcapacitanceµ:µ1;¡þSµµµµprefer_tiedµ:µ"0";¡þµµµµtiming()µ{¡þËµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµintrinsic_riseµ:µ1.0;¡þBµµµµµµintrinsic_fallµ:µ1.0;¡þ~µµµµµµrelated_pinµ:µ"CLK";¡þºµµµµ}¡þõµµµµtiming()µ{¡þ1µµµµµµtiming_typeµ:µhold_rising;¡þmµµµµµµintrinsic_riseµ:µ1.0;¡þ¨µµµµµµintrinsic_fallµ:µ1.0;¡þäµµµµµµrelated_pinµ:µ"CLK";¡þ µµµµ}¡þ[µµ}¡þ—µµpin(SE)µ{¡þÓµµµµdirectionµ:µinput;¡þµµµµcapacitanceµ:µ1;¡þJµµµµtiming()µ{¡þ†µµµµµµtiming_typeµ:µsetup_rising;¡þÁµµµµµµintrinsic_riseµ:µ1.0;¡þýµµµµµµintrinsic_fallµ:µ1.0;¡þ	9µµµµµµrelated_pinµ:µ"CLK";¡þ	uµµµµ}¡þ	°µµµµtiming()µ{¡þ	ìµµµµµµtiming_typeµ:µhold_rising;¡þ
(µµµµµµintrinsic_riseµ:µ1.0;¡þ
cµµµµµµintrinsic_fallµ:µ1.0;¡þ
Ÿµµµµµµrelated_pinµ:µ"CLK";¡þ
Ûµµµµ}¡þµµ}’JªD“I501ileaf_page_string1:12-8¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³8¡þÃ²´µµff("IQ","IQN")µ{¡þýµµµµnext_stateµ:µ"(Dµ&µ!SE)µ|µ(SIµ&µSE)";¡þ7µµµµclocked_onµ:µ"CLK";¡þrµµ}¡þ¬µµpin(Q)µ{¡þæµµµµdirectionµ:µoutput;¡þ µµµµfunctionµ:µ"IQ"¡þZµµµµtiming()µ{¡þ•µµµµµµtiming_typeµ:µrising_edge;¡þÏµµµµµµintrinsic_riseµ:µ1.0;¡þ	µµµµµµintrinsic_fallµ:µ1.0;¡þCµµµµµµrise_resistanceµ:µ0.1;¡þ~µµµµµµfall_resistanceµ:µ0.1;¡þ¸µµµµµµrelated_pinµ:µ"CLK";¡þòµµµµ}¡þ,µµ}¡þgµµpin(QN)µ{¡þ¡µµµµdirectionµ:µoutput;¡þÛµµµµfunctionµ:µ"IQN"¡þµµµµtiming()µ{¡þOµµµµµµtiming_typeµ:µrising_edge;¡þŠµµµµµµintrinsic_riseµ:µ1.0;¡þÄµµµµµµintrinsic_fallµ:µ1.0;¡þþµµµµµµrise_resistanceµ:µ0.1;¡þ8µµµµµµfall_resistanceµ:µ0.1;¡þsµµµµµµrelated_pinµ:µ"CLK";¡þ­µµµµ}¡þçµµ}¡þ!µµµµµµ/*µfirstµtest_cellµgroupµdefinesµnontest¡þ\µµµµµµµµµbehaviorµwithµbothµQµandµQNµ*/¡þ–µµtest_cell()µ{¡þÐµµµµpin(D,CLK)µ{¡þ	
µµµµµµdirectionµ:µinput;¡þ	Eµµµµ}¡þ	µµµµpin(SI)µ{¡þ	¹µµµµµµdirectionµ:µinput;¡þ	óµµµµµµsignal_typeµ:µ"test_scan_in";¡þ
-µµµµ}¡þ
hµµµµpin(SE)µ{¡þ
¢µµµµµµdirectionµ:µinput;¡þ
Üµµµµµµsignal_typeµ:µ"test_scan_enable";¡þµµµµ}’ª“D“I501ileaf_page_string1:12-9¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿ¤12³9¡þÃ²´µµµµffµ("IQ","IQN")µ{¡þÿµµµµµµnext_stateµ:µ"D";¡þ:µµµµµµclocked_onµ:µ"CLK";¡þvµµµµ}¡þ²µµµµpin(Q)µ{¡þíµµµµµµdirectionµ:µoutput;¡þ)µµµµµµfunctionµ:µ"IQ";¡þeµµµµµµsignal_typeµ:µ"test_scan_out";¡þ µµµµ}¡þÜµµµµpin(QN)µ{¡þµµµµµµdirectionµ:µoutput;¡þSµµµµµµfunctionµ:µ"IQN";¡þµµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þËµµµµ}¡þµµ}¡þBµµµµµµµ/*µsecondµtest_cellµgroupµdefinesµnontest¡þ~µµµµµµµµµµbehaviorµwithµonlyµQµµ*/¡þºµµtest_cell()µ{¡þõµµµµpin(D,CLK)µ{¡þ1µµµµµµdirectionµ:µinput;¡þmµµµµ}¡þ¨µµµµpin(SI)µ{¡þäµµµµµµdirectionµ:µinput;¡þ µµµµµµsignal_typeµ:µ"test_scan_in";¡þ[µµµµ}¡þ—µµµµpin(SE)µ{¡þÓµµµµµµdirectionµ:µinput;¡þµµµµµµsignal_typeµ:µ"test_scan_enable";¡þJµµµµ}¡þ†µµµµffµ("IQ","IQN")µ{¡þÁµµµµµµnext_stateµ:µ"D";¡þýµµµµµµclocked_onµ:µ"CLK";¡þ	9µµµµ}¡þ	uµµµµpin(Q)µ{¡þ	°µµµµµµdirectionµ:µoutput;¡þ	ìµµµµµµfunctionµ:µ"IQ";¡þ
(µµµµµµsignal_typeµ:µ"test_scan_out";¡þ
cµµµµ}¡þ
Ÿµµµµpin(QN)µ{¡þ
Ûµµµµµµdirectionµ:µoutput;¡þµµµµµµ/*µnoticeµnoµfunctionµattributeµforµQNµpinµ*/’“wD“I501ileaf_page_string1:12-10¥	öäÃËÁâÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³10¡þÃ²´µµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þµµµµ}¡þ=µµ}¡þz}¡þX²signal_type´µAttribute¡þù²Defined´µinµaµtest_cellµgroup,µthisµattributeµidentifiesµtheµtypeµofµtest¡þApin.µ¡þ"²Example¡þn²signal_type´µ:µtest_scan_inµ;¡þ	²If´µanµinputµpinµisµusedµinµbothµtestµandµnontestµmodesµ(suchµasµthe¡þRclockµinputµinµtheµmultiplexedµflip³flopµmethodology),µdoµnotµinclude¡þ›aµsignal_typeµstatementµforµthatµpinµinµtheµtest_cellµpinµdefinition.¡þ?Ifµanµinputµpinµisµusedµonlyµinµnontestµmodeµandµdoesµnotµexistµon¡þ‡theµcellµwhichµitµwillµscanµreplace,µyouµmustµincludeµaµsignal_type¡þÐstatementµforµthatµpinµinµtheµtest_cellµpinµdefinition.¡þtIfµanµoutputµpinµisµusedµinµnontestµmode,µitµshouldµhaveµaµfunction¡þ¼statement.µµTheµsignal_typeµstatementµisµusedµtoµidentifyµanµoutput¡þ	pinµasµaµscan³outµpin.µInµaµtest_cellµgroup,µtheµpinµgroupµforµan¡þ	Noutputµpinµcanµcontainµaµfunctionµstatement,µaµsignal_typeµattribute,¡þ	–orµboth.¡þ
:Note:²¡X
ƒ²Youµdoµnotµhaveµtoµdefineµaµfunctionµorµsignal_typeµattributeµin¡X
Ìtheµpinµgroupµifµtheµpinµhasµbeenµdefinedµinµaµpreviousµtest_cell¡Xgroupµforµtheµsameµcell.’wsD“I501ileaf_page_string1:12-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿŠ12³11¡,Õ²Describing´µaµMultibitµScanµCell¡þ”²You´µcanµmodelµaµmultibitµscanµcellµusingµtheµff_bankµorµlatch_bank¡þÝgroupµinµtheµtest_cellµdescription.µAµtypeµofµmultibitµscanµcellµisµa¡þ%four³bitµflip³flop.µFigure 12³2µillustratesµaµtwo³bitµpieceµofµaµfour³bitµD¡þnflip³flopµwithµscanµandµenable.¡, ²&Figure 12³2³MultibitµScanµCellµwithµtest_cellµGroup¡,a²¥	öäÃÁÊË¡ÄÎ3Î¡Ä3Î3º¡Ä3ºº¡ÄºÎÆÃÃ¡Ä£Ï¡ÄÏÏ¡ÄÏ£¡Ä££ÆÃÃ¡Ä‘½¡Ä½½¡Ä½‘¡Ä‘‘ÆÃ²$¡26SI¡9ŽQ1¡\ŠQ0¡ôƒÃÁ¡ÄàDî¡ÄîûD¡ÄûDîD¡ÄîDàDãÇÆÃÁÊËÃ¡ÄîuîDÆÃÃÁÊË¡ÄÎDÜ¡ÄÜéD¡ÄéDÜD¡ÄÜDÎDÇÆÃÁÊËÃ¡ÄÜuÜDÆÃ¡$D0¡QC1¡·ŒQC0ÃÁÊË¡ÄvÃ„“¡Ä„“‘Ã¡Ä‘Ã„Ã¡Ä„ÃvÃÇÆÃÁÊËÃ¡Ä„„ÃÆÃÃÁÊË¡Äd¿r¡Är¿¡Ä¿r¿¡Är¿d¿ÇÆÃÁÊËÃ¡Ärr¿ÆÃÃÁÊË¡ÄÎ¿Ü¡ÄÜé¿¡Äé¿Ü¿¡ÄÜ¿Î¿ÇÆÃÁÊËÃ¡ÄÜÜ¿ÆÃÃÁÊË¡Äà¿î¡Äîû¿¡Äû¿î¿¡Äî¿à¿ÇÆÃÁÊËÃ¡Äîî¿ÆÃÃ¡ÄUrUÆÃÃÁÊË¡ÄdDr¡ÄrD¡ÄDrD¡ÄrDdDÇÆÃÁÊËÃ¡ÄrUrDÆÃÃÁÊË¡ÄvD„¡Ä„‘D¡Ä‘D„D¡Ä„DvDÇÆÃÁÊËÃ¡Ä„U„DÆÃÃ¡Ä^„ôÆÃÃ¡Ä„ô©ÆÃÃ¡ÄLrôÆÃÃ¡Ärô—ÆÃ¡”ÌSM¡Ä7TÃÊË¡ÄkuLu¡ÄLuL÷¡ÄL÷k÷¡Äk÷kuÆÃÃ¡Ä}u^u¡Ä^u^÷¡Ä^÷}÷¡Ä}÷}uÆÃÊËÃ¡Ä„ð°ðÆÃÃ¡Ä°ð°yÆÃÃÁÊË¡Ä¨'¶÷¡Ä¶÷Ä'¡ÄÄ'¶'¡Ä¶'¨'ÇÆÃÁÊËÃ¡Ä¶'¶yÆÃÃ¡Ä°y¶yÆÃÃ¡Ä,ûÈûÆÃÃÁÊË¡Äº'È÷¡ÄÈ÷Ö'¡ÄÖ'È'¡ÄÈ'º'ÇÆÃÁÊËÃ¡ÄÈûÈ'ÆÃÃÁÊË¡Ä'÷¡Ä÷!'¡Ä!''¡Ä''ÇÆÃÁÊËÃ¡Äû'ÆÃÃÁÊË¡Äó'÷¡Ä÷'¡Ä''¡Ä'ó'ÇÆÃÁÊËÃ¡Äû'ÆÃÃ¡Ä·VÆÃÃ¡Äû·ûYÆÃÃ¡Ä&YûYÆÃÃÁÊË¡Ä;©k·¡Äk·;Ä¡Ä;Ä;·¡Ä;·;©ÇÆÃÁÊËÃ¡Äû·;·ÆÃÃÁÊË¡ÄM©}·¡Ä}·MÄ¡ÄMÄM·¡ÄM·M©ÇÆÃÁÊËÃ¡Ä"·M·ÆÃ¡³®MUX¡¬±MUX¡pDQ¡^AQ¡iæCP¡OìCP¡ŽFSX2²_¡»í1¡ð0¡¥ó1¡ùó0¡}²$¡‡*TI¡u#TI¡þ+D1²_¡^²$¡9+D¡ %D¡ŸTE¡2¢TE¡Ð>QN¡¾>QNÃÊË¡ÄPN¡ÄNK¡ÄKH¡ÄHF¡ÄFC¡ÄCA¡ÄA>¡Ä><¡Ä<:¡Ä:7¡Ä75¡Ä53¡Ä31¡Ä1/¡Ä/-¡Ä-+¡Ä+	*¡Ä	*(¡Ä(&¡Ä&%¡Ä%#¡Ä#ý"¡Äý"û!¡Äû!ø ¡Äø õ¡Äõò¡Äòð¡Äðí¡Äíê¡Äêç¡Äçä¡ÄäáâÇÆÃÃâ¡Äß•â”¡Äâ”æ”¡Äæ”é”¡Äé”ì“¡Äì“ï’¡Äï’ò’¡Äò’õ‘¡Äõ‘ø¡ÄøúŽ¡ÄúŽý¡Äý‹¡Ä‹Š¡ÄŠˆ¡Äˆ†¡Ä†	„¡Ä	„‚¡Ä‚€¡Ä€}¡Ä}{¡Ä{y¡Äyv¡Ävs¡Äsp¡Äpn¡Änk¡Äkh¡Ähe¡Äeb¡Äb^¡Ä^\¡Ä\X¡ÄXUâÇÆÃâÊËÃ¡ÄèšÆÃÃ¡Äè”š”ÆÃÃ¡Äšš”ÆÃÃ¡ÄGlßlÆÃÃ¡ÄI·á·ÆÃ¡˜tENÃ¡Ä™-ß-ÆÃÃ¡Ä$[$·ÆÃÃÁÊË¡Ìÿÿÿÿÿÿó’ÿÿÿÿÿÿñÅÿÿÿÿÿÿí»ÿÿÿÿÿúXËAËuº›’½S›’ÆÃÃ¡Ìÿÿÿÿÿÿó’;ÿÿÿÿÿÿí»ÿÿÿÿÿút8Ë¥½Ò›’ujAYYAYÆÃÃ¡ÌÿÿÿÿÿÿÚŒÿÿÿÿÿÿñÉÿÿÿÿÿúUú|±AYU’AË|tAËÆÃ²¡Êa¡þ	²Figure 12³3µshowsµtheµtest_cellµgroupµ(theµnontestµmode)µofµtheµcell¡þ	ginµFigure 12³2.’s¦D“I501ileaf_page_string1:12-12¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³12¡,É²&Figure 12³3³test_cell´µGroupµofµMultibitµScanµCell¡,è²¥	öäÃËÁÊË¡ÄEgïg¡ÄïgïT¡ÄïTET¡ÄETEgÆÃÃ¡Äª@ª¡Ä@ª@®¡Ä@®®¡Ä®ªÆÃÃ¡Äª.ª¡Ä.ª.®¡Ä.®®¡Ä®ªÆÃ²_¡£Ð²$¡ª'Q1¡Í$Q0²_¡e²$¡ÈD0¡'QC1¡(%QC0ÃÁ¡Äç\õ,¡Äõ,\¡Ä\õ\¡Äõ\ç\ãÇÆÃÁÊËÃ¡Äõªõ\ÆÃÃÁÊË¡ÄÕYã(¡Äã(ðY¡ÄðYãY¡ÄãYÕYÇÆÃÁÊËÃ¡ÄãªãYÆÃÃÁÊË¡Ä?YM(¡ÄM(ZY¡ÄZYMY¡ÄMY?YÇÆÃÁÊËÃ¡ÄMªMYÆÃÃÁÊË¡ÄQY_(¡Ä_(lY¡ÄlY_Y¡Ä_YQYÇÆÃÁÊËÃ¡Ä_ª_YÆÃÃ¡ÄïãïÆÃÃÁÊË¡ÄÕÞã®¡Äã®ðÞ¡ÄðÞãÞ¡ÄãÞÕÞÇÆÃÁÊËÃ¡ÄãïãÞÆÃÃÁÊË¡ÄçÞõ®¡Äõ®Þ¡ÄÞõÞ¡ÄõÞçÞÇÆÃÁÊËÃ¡ÄõïõÞÆÃÃ¡ÄÏ®õÆÃÃ¡Äõ®ÆÃÃ¡Ä½®ãÆÃÃ¡Äã®ÆÃ²_¡+²$¡ë/TÃÁÊË¡ÄQÞ_®¡Ä_®lÞ¡ÄlÞ_Þ¡Ä_ÞQÞÇÆÃÁÊËÃ¡Ä_µ_ÞÆÃÃÁÊË¡ÄAãO³¡ÄO³]ã¡Ä]ãOã¡ÄOãAãÇÆÃÁÊËÃ¡ÄO²OãÆÃ¡àÞQ¡ÎÛQ¡ÚCP¡Á…CP¡UFSX2¡ÓD1²_¡œ1¡±4²$¡A×QN¡/×QNÃ¡Ä~ÆÃÃ¡Ä}ÈÈÆÃ¡Ñ×ENÃÊË¡Äýæýã¡Äýãýá¡ÄýáüÞ¡ÄüÞüÜ¡ÄüÜûÙ¡ÄûÙúÖ¡ÄúÖúÔ¡ÄúÔøÒ¡ÄøÒ÷Ï¡Ä÷ÏöÍ¡ÄöÍõË¡ÄõËóÉ¡ÄóÉñÇ¡ÄñÇïÅ¡ÄïÅîÃ¡ÄîÃìÁ¡ÄìÁê¿¡Äê¿ç¾¡Äç¾å¼¡Äå¼ã»¡Äã»á¹¡Äá¹Þ¸¡ÄÞ¸Ü·¡ÄÜ·Ù¶¡ÄÙ¶Öµ¡ÄÖµÓ´¡ÄÓ´Ñ³¡ÄÑ³Î³¡ÄÎ³Ë²¡ÄË²È²¡ÄÈ²Å²¡ÄÅ²Â²âÇÆÃÃâ¡ÄÀ*Ä*¡ÄÄ*Ç*¡ÄÇ*Ê)¡ÄÊ)Í)¡ÄÍ)Ð(¡ÄÐ(Ó'¡ÄÓ'Ö&¡ÄÖ&Ù%¡ÄÙ%Û$¡ÄÛ$Þ#¡ÄÞ#à!¡Äà!ã¡Äãå¡Äåè¡Äèê¡Äêì¡Äìî¡Äîð¡Äðò¡Äòô¡Äôö¡Äö÷	¡Ä÷	ø¡Äøú¡Äúú¡Äúüþ¡Äüþüú¡Äüúý÷¡Äý÷þô¡Äþôþñ¡Äþñþî¡ÄþîÿëâÇÆÃâÊËÃ¡ÄÉ±|±ÆÃÃ¡ÄÉ)|)ÆÃÃ¡Ä|±|)ÆÃ²¡Êè¡þ‘²Toµcreateµaµmultibitµscanµcell,µuseµstatetableµinµtheµfullµcell¡þÙdescription,µasµshownµinµExample 12³2.¡,y²&Example 12³2³StatetableµinµFull³CellµDescription¡,Å²-cell´µ(FSX2)µ{µ...¡,úµµbundleµ(D)µ{µmemberµ(D0,µD1);µ...}¡,0µµbundleµ(Q)µ{µmemberµ(Q0,µQ1);µ...¡,eµµµµpinµ(Q0)µ{µinput_mapµ:µD0µTµSIµSM";µ...}¡,šµµµµpinµ(Q1)µ{µinput_mapµ:µD1µTµQ0µSM";µ...}¡,Ïµµ}¡,µµpinµ(SI)µ{...}pinµ(SM)µ{...}pinµ(T)µ{...}pinµ(EN)µ{...}¡,9µµstatetableµ(µDµCPµTIµTEµEN",µQµQN")µ{¡,nµµµµµµµµµµµµµµµµµ/*DµµµCPµµTIµµµTEµµENµµQµµQNµµQ+µµµQN+µ*/¡,¤µµµµµµµµµµtableµ:µ-µµµ~Rµµ-µµµµ-µµµ-:µµ-µµ-:µµNµµµµN,\¡,Ùµµµµµµµµµµµµµµµµµµµ-µµµ-µµµ-µµµµLµµµL:µµ-µµ-:µµNµµµµN,\¡,	µµµµµµµµµµµµµµµµµµµ-µµµRµµµH/LµµHµµµ-:µµ-µµ-:µµH/LµµL/H,\¡,	CµµµµµµµµµµµµµµµµµµH/LµµRµµµ-µµµµLµµµH:µµ-µµ-:µµH/LµµL/Hµ¡,	xµµ}¡,	­}¡þ
:²Here´µstatetableµdescribesµtheµbehaviorµofµaµsingleµsliceµofµtheµcell.¡þ
ƒTheµinput_mapµstatementsµonµpinµQ0µandµpinµQ1µindicateµthe¡þ
Ìinterconnectionµofµtheµdifferentµslicesµofµtheµcell³
forµexample,µthe¡þfactµthatµQµofµbitµ0µgoesµtoµTIµofµbitµ1.’¦eD“I501ileaf_page_string1:12-13¥	öäÃËÁâÊË¡Ä,ë,Õ¡Ä,Õ	cÕ¡Ä	cÕ	cë¡Ä	cë,ëÆÃÁÊËÃ¡Ä,ÕÊÕÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿŠ12³13¡þÉ²Example 12³3´µshowsµtheµtest_cellµdescriptionµforµmultibitµpins,µusing¡þtheµff_bankµandµbundleµgroupµattributes.¡,Ê²&Example 12³3³test_cellµDescriptionµforµMultibitµScanµCells¡,²-cell´µ(FSX2)µ{...¡,Tµµbundleµ(D)µ{µmemberµ(D0,µD1);µ...}¡,‹µµbundleµ(Q)µ{µmemberµ(Q0,µQ1);µ...}¡,Ãµµpin(SI){...}µµpin(SM){...}µµpin(T){...}µµpin(EN)µ{...}¡,úµµstatetableµ(...)µ{...}¡,1²Cµµtest_cellµ²-{¡,hµµµµff_bank(IQ,IQN,2){next_stateµ:µD;clocked_on:µTµ&µEN";¡, µµµµ}¡,×µµµµbundleµ(D)µ{µmemberµ(D0,µD1);µ...}¡,µµµµbundleµ(Q)µ{µmemberµ(Q0,µQ1);¡,Eµµµµµµfunctionµ:µIQ;¡“E¡Esignal_typeµ:µtest_scan_out;¡,}µµµµ}¡,´µµµµbundle(QC)µ{µmemberµ(QC0,µQC1);¡,ëµµµµµµfunctionµ:µIQN;¡“ëignal_typeµ:µtest_scan_out_inverted;¡,"µµµµ}¡,Zµµµµpinµ(SI)µ{µsignal_typeµ:µtest_scan_in;µ...}¡,‘µµµµpinµ(SM)µ{µsignal_typeµ:µtest_scan_enable;µ...}¡,Èµµµµpinµ(T)µ{...}¡,ÿµµ}¡,7}¡þÎ²For´µaµcompleteµdescriptionµofµmultibitµscanµcells,µseeµExample 12³7¡þlaterµinµthisµchapter.µµ¡,	+²Verifying´µScanµCellµModels¡þ	ò²To´µverifyµthatµtheµscanµcellsµhaveµbeenµcorrectlyµmodeledµforµscan¡þ
:substitution,µuseµtheµcheck_testµandµinsert_scanµcommands.µTo¡þ
ƒverifyµscanµcellµmodels,µcheckµtheµfunctionµandµtimingµofµtheµcellsµas¡þ
Ìdescribedµinµtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ1².¡þThen,µcreateµtestµcasesµandµverifyµscannableµequivalents.µµµµµ’e`D“I501ileaf_page_string1:12-14¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,>,(¡Ä,(	c(¡Ä	c(	c>¡Ä	c>,>ÆÃÁÊËÃ¡Äþ(Ê(ÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³14¡þÏ²Creating´µTestµCases¡þ}²For´µeachµtestµmethodµrepresentedµinµtheµtechnologyµlibrary,µcreateµa¡þÆtestµcircuitµthatµincludesµaµsingleµinstanceµofµeachµnonscanµcellµthat¡þhasµaµscannableµequivalentµinµthatµmethod.µFigure 12³5µshowsµan¡þWexampleµofµaµtestµcircuitµforµtheµmultiplexedµflip³flopµmethodµinµwhich¡þ theµtechnologyµlibraryµcontainsµfourµnonscanµcells:µDFF1µ(simpleµD¡þéflip³flop),µDFF2µ(Dµflip³flopµwithµasynchronousµclear),µDFF3µ(D¡þ1flip³flopµwithµasynchronousµsetµandµclear),µandµDFF4µ(Dµflip³flopµwith¡þzasynchronousµset).µ¡þx²Verifying´µScannableµEquivalents¡þ'²Verify´µthatµallµscan/nonscanµpairsµinµtheµtechnologyµlibraryµare¡þpmodeledµsoµTestµCompilerµcanµrecognizeµtheirµequivalency.µIfµTest¡þ¸Compilerµcannotµfindµaµscannableµequivalentµforµaµsequential¡þelement,µthatµcellµisµnotµincludedµinµtheµscanµchain,µwhichµresultsµin¡þJloweredµfaultµcoverage.µ¡þüDoµnotµuseµtheµstatetableµformatµinµaµtestµcellµgroupµbecauseµthe¡þELibraryµCompilerµprogramµdoesµnotµissueµwarningsµorµerrorsµor¡þverifyµtheµmodel.µAlso,µTestµCompilerµcannotµuseµtheµstatetable¡þÖmodelµforµscanµinsertionµorµfaultµsimulation.µTestµCompilerµrequires¡þ	theµff/latchµformatµforµscanµsubstitutionµandµfaultµsimulation.¡þ	ÑTheµfollowingµsectionsµshowµtheµrecommendedµsequenceµofµTest¡þ
Compilerµcommandsµtoµverifyµtheµscanµcellµmodelsµforµequivalency.¡þ
ÌFigure 12³4µshowsµaµnonscan/scanµequivalentµpairµinµwhichµthe¡þscanµcellµhasµanµasynchronousµpinµandµtheµnonscanµcellµdoesµnot.’`ÐD“I501ileaf_page_string1:12-15¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³15¡,É²&Figure 12³4³Scannable´µEquivalentµPairµ(ScanµCellµhasµAsynchronousµPin)¡,²¥	öäÃËÁÊË¡Ä{I{Z¡Ä{ZÉZ¡ÄÉZÉI¡ÄÉI{IâãÇÆÃâÊËÃ¡Ä{ÝMÝÆÃÃ¡ÄwRÆÃÃ¡ÄÍ	ò	ÆÃ²i¡	q/scan_out²¡’êqb¡˜d²i¡˜¾scan_in¡˜Gscan_enable²¡©îclkÃÊË¡ÄŒMŒf¡ÄŒf;f¡Ä;f;M¡Ä;MŒMâÇÆÃÃâ¡Ä;`Ý¡Ä`Ý;·¡Ä;·;âÇÆÃâÊËÃ¡Ä;ÝÝÆÃÃ¡Ä;üüÆÃÃ¡ÄŒü²üÆÃÃ¡ÄŒÝ²ÝÆÃ¡cq¡Jéqb¡Xd¡mòclkÃÊË¡Ä{¸¡Ý¡Ä¡Ý{ÆÃ¡…cdÊËÃ¡Ä++SÆÃÃ¡ÄÉ×ê×ÆÃÃ¡ÄR=|=ÆÃÃ¡ÄR¯|¯ÆÃÃÁÊË¡ÌÿÿÿÿÿÿÙ©ÿÿÿÿÿÿÿm?t?e"eÜe8eÜeâÇÆÃ²Qâ¡D1ff("IQ","IQN")  {¡DY  next_state : "d";¡D  clocked_on : "clk";¡D©}¡@ff("IQ","IQN")  {¡@E  next_state : "d";¡@m  clocked_on : "clk";¡@Ñ}²¡DÍNonscan Cell Function¡@Ítest_cell Function²Q¡@•  clear : "cd";Ã¡ÌÿÿÿÿÿÿÙ©ÿÿÿÿÿÿÿmHKH<+=å=A=å=âÇÆÃ²â¡Ê¡þ²Selecting´µtheµScanµImplementation¡þµ²Declare´µtheµscanµstyleµyouµwantµtoµuseµwithµyourµdesign:µ¡þ7²dc_shell>´µ²)set_scan_configurationµ³scan_style¡þÒ²Figure 12³5´µshowsµaµsampleµtestµcircuitµforµmultiplexedµflip³flops.’ÐpD“I501ileaf_page_string1:12-16¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³16¡,É²&Figure 12³5³Sample´µTestµCircuitµforµMultiplexedµFlip³Flop¡þë²¥	öäÃËÁÊË¡ÄþŽþõ¡ÄþõŸõ¡ÄŸõŸŽ¡ÄŸŽþŽâãÇÆÃÃâ¡Äu¡Ä†¡Ä††u¡Ä†uuâÇÆÃâÒÓÐnf$Ì%Í)ûÈüüüüüüüüüüüüüüü¤ÐäüßäääääääÏŽÐäüÇüÛäääääääüü?ä’âãü>y‘ÈÁÈüãÍ‘ßáÎüÃ
ÀÎ’ÉÌ2ü$1È’Àæ:üd[Î’ÀÏyüÅKÀœ’ÊÀ1ÚÈü>cäääÈ?ääää
æÕü‰ÀcäääÈ?ääääüˆÁÀŒ’ÉÍüˆÊÍ’ËÏü>ÀcÏ’À3àÀÐüÛc“ÀÌÁÕÚüäÀŒ‘ßäÍüˆÍ“ÇüäÏ‘ääÈ)üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü¤ÊÀÐü¤ÊÀÐüüüü¥ÀYüüüüü¤ÊÀ‰ü¤ÊÀÐüšâãˆÉÀÔüšÈÁÈOÀÔüšßáÇäüÌMÍ2äüÊ;Ì:LÀ–üöÈÈ3züËÎÇ]ÏAüÉÌÉÀ1Úøü‹ÁäÈÀÈ6ßäääÕpüŒäÈÀÈ6ßäääüÉÌÉÍüËÎÇ]ÏÕÀÐüöÈG3ÁÕÚçüÊ?ÌüÌŒßäÍüœÇOÀ–üšääÈ)üüÛäääääääÐäü¤ÐÀïüâäääääääÏŽÐÀeü¤ÐÀåü¥À†ü¥Àü¥Àü¤ÉÈüüüüüüüüüü¤ÉÀ–üü¤ÂÀgü¤ÂÀgüüŠÐãäääääÏüŠÉãäääääÈüü?äü>yüãÍü
ÀÎüˆÀ1ÈüˆËÎü×ÀKÀœšÐäü<ßÀcÞ™Ðäü×cáü>ÛÀŒü,ÁÁSÍü<ßÊcÏü×ÉcüäÀŒüˆÍüäÏüüüüüÉÀ°’ÉÀ¾üÃì’ÃïüÁÀ´ü¤Ðäü÷ü÷ü¤ÐÀrüßääÀùÀóäääÏŽÐÀrüÇ–ÐÀrüÛäääääääÐÀrü¤Ðäü¤ÉÀäü¤ÃÄü¥Âü¥Áü¤ÃÀ3ü¤ÃÀ3ü¥Áü¥öüŠÐãäÈ?äãüŠÉãäÈ?äáÅü¥Åü?ä’âãü>y‘ÈÁÈˆõüãÍ‘ßáÇˆõüÛ
ÀŒ’ÉÍðüc“ÀÌ	ÞüˆÌÏ’À3ˆÅüÅSÍ’ËÀÁÀñü>ÑÀŒ’ÉÍÕÙücÞŒÁääxü,cáŒÉää
æÁ.üˆÉÀœ’ÊÍü>Ñ[Î’ÀÏÀáÞüÛ1È’ÀæÁÕÚüäÀÎ‘ßäÌˆõüˆÍ“ÎˆÀüäÏ‘ääÈ)üüüüüüüüüüüüüüü¤Ðäü¤ÐäüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüÅüË;üÀÈü‹ÊÕËÈÇüŒÈÂÎü‹ÂÏÁÀ˜6üŒÀ_Èì6ßãü‹ÂÀŸÈÀÈ?áüŒÈÉÌÇü?äSÕËÎGãü>yÈ?DÁÈüãÍTŒßáÎü[Å
ÀÎdÉÌ	Þü#1ÈQÕÀæðüˆËÎBÀÏÁü>	KÀœÏÛäääääääWÀ1ÚøücäÀú‹Áää
æÕÔÔücäÀúäääääääÏIääpüÀŒÏÉÍÁüUÍBËÏü<ÀÉcÏQÕÀ3áÞü×öc“ÀÌÁÕÚçüäÀŒ‘ßäÍüˆÍ“ÇüäÏ‘ääÈ)üüüüüüü¤ÊÀÐü¤ÊÀÐüüüüßäääääääÏÀYüÇüÛäääääääüü?ä’âãü>y‘ÈÁÈWÀ‰üãÍ‘ßáÇWÀÐüÛ
ÀŒ’ÉÍðLÀÔüc“ÀÌ	ÞLÀÔüˆÌÏ’À3äü,SÍ’ËÏÁäü>ÉÀŒ’ÉÀ1ÚÌLÀ–üÊcäãäÈ?ääääÕÍü‰ÀcäãäÈ?ääää
æqüKÀœ’ÊÍÈüÀ[Î’ÀÏÀáÔü?Û1È’ÀæÁÀáÞüäÀÎ‘ßäÌüˆÍ“ÎüäÏ‘ääÈ)üüü¤ÉÀ–üüü¤Ðäü¤ÐÀïü¤ÐÀeü¤ÐÀåü¥À†ü¥Àü¥Àü¤ÉÈüüüüüüüüüü¤ÉÀ–üü¤ÂÀgü¤ÂÀgüüüüüüüüüüü¤Ðäü¤Ðäüüüüüüüüüüüüü¤ÉÀ¾ü¤Ãïüü¤Ðäüüü¤ÐÀrü¤ÐÀrü¤ÐÀrü¤ÐÀrü¤Ðäü¤ÉÀäü¤ÃÄü¥Âü¥Áü¤ÃÀ3ü¤ÃÀ3ü¥Áü¥öüšâãüšÈÁÈˆÅüÌ?áÎˆÅüÊ;MÌðüöÈÈæ	ÞüËÎÇÏüÉÌÊÀ1ÀñÌÞüŒäÈÀÈ6ßäää
æÕÍÔü‹ÁäÈì6ßäääq-üÁÀ˜ÉÍ!üÂÎÇ]ÏyüËÈG3áÙüÀ?ÌÁÀáÚç,üËŒßäÍüÅŽÇˆùüšääÈ)ü¥õüÛäääääääÀü¥ÀüâääÞÀGäääÏüÁÀ´üü÷ü÷üüÁÀôüÃÄüÉÀ°üüüüüü¤Ðäü¤Ðäüüüüüüüü?äü>yüãÍü[ÀŒü#cüˆÌÏüSÍü<ÀŒü	cäääääääÈü‰ÀcäääääääÏüˆÉÀœüÀ\Îü>×Å1ÈüäÀÎüˆÍüäÏüüüüüüüüüüüüüÿ²¡u!DFF1¡u	DFF3¡u€DFF2²¡¢ë¡þ¶²Verifying´µtheµExistenceµofµScannableµEquivalents¡þ	<²Use´µtheµcheck_testµcommandµtoµverifyµthatµaµscannableµequivalent¡þ	…existsµforµeachµcellµinµyourµtestµcircuit:µµµ¡þ	õ²dc_shell>´µ²)check_test¡þ
ƒ²Example 12³4´µshowsµtheµresultsµofµtheµcheck_testµcommandµwhen¡þ
Ìtheµtechnologyµlibraryµdoesµnotµcontainµaµscannableµequivalentµfor¡þtheµDFF1µcellµinµtheµtestµcircuit.’ptD“I501ileaf_page_string1:12-17¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³17¡þÉ²Example 12³5´µshowsµtheµresultsµofµtheµcheck_testµcommandµwhen¡þtheµtechnologyµlibraryµcontainsµaµscannableµequivalentµforµeachµcell¡þZinµtheµtestµcircuit.¡,²&Example 12³4³check_testµResults³
ScannableµEquivalentsµDoµNotµExist¡,]²-dc_shell>´µ²Ccheck_test¡,”²-¡þ”Loadingµtargetµlibraryµ'lsi_10k'¡,Ê¡þÊLoadingµdesignµ'test'¡,/Information:µStartingµtestµdesignµruleµchecking.µ(TEST³222)¡,e¡þe ...fullµscanµrulesµenabled...¡,œ¡þœ ...basicµchecks...¡,Ó¡þÓ ...basicµsequentialµcellµchecks...¡,	Warning:µNoµscanµequivalentµexistsµforµcellµu3µ(DFF3).µ(TEST³120)¡,@Warning:µNoµscanµequivalentµexistsµforµcellµu1µ(DFF1).µ(TEST³120)¡,wWarning:µNoµscanµequivalentµexistsµforµcellµu2µ(DFF2).µ(TEST³120)¡,­¡þ­ ...checkingµforµcombinationalµfeedbackµloops...¡,ä¡þä ...inferringµtestµprotocol...¡,Information:µInferredµunusedµclockµportµclkµ(45.0,µ55.0).µ(TEST³260)¡,Q¡þQ ...simulatingµparallelµvector...¡,ˆ¡þˆ ...simulatingµparallelµvector...¡,¿¡þ¿ ...simulatingµserialµscan³in...¡,õ¡þõ ...simulatingµparallelµvector...¡,,¡þ, ...bindingµscan³inµstate...¡,c¡þc ...simulatingµparallelµvector...¡,š¡þš ...creatingµcaptureµclockµgroups...¡,Ð¡þÐ ...bindingµscan³outµstate...¡,¡þ ...simulatingµserialµscan³out...¡,>¡þ> ...simulatingµparallelµvector...¡,tInformation:µThereµareµ3µblackµboxµsequentialµcells.µ(TEST³295)¡,«¡þ«Information:µTestµdesignµruleµcheckingµcompletedµwithµ3µwarning(s)¡,Ùandµ0µerror(s).µ(TEST³123)’tüD“I501ileaf_page_string1:12-18¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³18¡,É²&Example 12³5³check_test´µResults³
ScannableµEquivalentµExists¡,)²-dc_shell>´µ²Ccheck_test¡,d²-¡þdLoadingµtargetµlibraryµ`lsi_10k'¡, ¡þ Loadingµdesignµ`test'¡,Information:µStartingµtestµdesignµruleµchecking.µ(TEST³222)¡,S¡þS ...fullµscanµrulesµenabled...¡,Ž¡þŽ ...basicµchecks...¡,Ê¡þÊ ...basicµsequentialµcellµchecks...¡,¡þ ...checkingµforµcombinationalµfeedbackµloops...¡,A¡þA ...inferringµtestµprotocol...¡,}Information:µInferredµsystem/testµclockµportµclkµ(45.0,µ55.0).µ(TEST³260)¡,¸Information:µInferredµactiveµlowµasynchronousµcontrolµportµclr.µ(TEST³261)¡,ô¡þô ...simulatingµparallelµvector...¡,/¡þ/ ...simulatingµparallelµvector...¡,k¡þk ...simulatingµserialµscan³in...¡,§¡þ§ ...simulatingµparallelµvector...¡,â¡þâ ...bindingµscan³inµstate...¡,¡þ ...simulatingµparallelµvector...¡,Y¡þY ...simulatingµcaptureµclockµrisingµedgeµatµportµclk...¡,•¡þ• ...checkingµclockµusedµasµdata...¡,Ñ¡þÑ ...simulatingµdataµcapture...¡,¡þ ...checkingµforµillegalµpathsµactiveµonµthisµedge...¡,H¡þH ...simulatingµcaptureµclockµfallingµedgeµatµportµclk...¡,ƒ¡þƒ ...simulatingµdataµcapture...¡,¿¡þ¿ ...creatingµcaptureµclockµgroups...¡,ûInformation:µInferredµcaptureµclockµgroupµ:µclk.µ(TEST³262)¡,6¡þ6 ...bindingµscan³outµstate...¡,r¡þr ...simulatingµserialµscan³out...¡,­¡þ­ ...simulatingµparallelµvector...¡,éInformation:µThereµareµ3µscannableµsequentialµcells.µ(TEST³295)¡,	%Information:µTestµdesignµruleµcheckingµcompletedµwithµ0µwarning(s)µandµ0¡,	Rerror(s).µ(TEST³123)¡þ	ò²If´µcheck_testµreportsµthatµnoµscannableµequivalentµexistsµforµaµcell¡þ
:thatµdoesµhaveµaµscannableµequivalentµinµtheµtechnologyµlibrary,µthe¡þ
ƒscanµcellµisµprobablyµnotµmodeledµcorrectly.µInµrareµcasesµinµwhich¡þ
Ìtheµnonscanµcellµisµveryµcomplex,µitµmightµnotµbeµpossibleµtoµmodelµa¡þscannableµequivalent.’üšD“I501ileaf_page_string1:12-19¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³19¡þÏ²Verifying´µSubstitutionµandµRouting¡þn²After´µconfirmingµthatµallµsequentialµcellsµhaveµscannable¡þ¶equivalents,µuseµtheµinsert_scanµcommandµtoµinsertµandµrouteµthe¡þÿscanµchainµorµchains.µViewµtheµresultingµschematicµtoµconfirmµthe¡þHcorrectµsubstitutionµandµrouting.¡þêMakeµeachµcellµinµtheµtestµcircuitµaµseparateµscanµchainµtoµsimplify¡þ3theµvisualµverification:¡þ´²dc_shell>´µ²)set_scan_configurationµ³insert_scan²¡þO²Figure 12³6´µshowsµtheµscannableµcircuitµthatµresultsµfromµthe¡þ˜insert_scanµcommand.’šJD“I501ileaf_page_string1:12-20¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³20¡,É²&Figure 12³6³Scannable´µTestµCircuit¡þÿ²¥	öäÃËÁâÊË¡Äf¦fd¡ÄfdÐd¡ÄÐdÐ¦¡ÄÐ¦f¦ãÇÆÃÃ¡Ä¢©¢f¡Ä¢fêf¡Äêfê©¡Äê©¢©ÇÆÃÃ¡Ä6ã¡Äã‹ã¡Ä‹ã‹6¡Ä‹66ÇÆÃÃ¡Ä'¶'Z¡Ä'Z‘Z¡Ä‘Z‘¶¡Ä‘¶'¶ÇÆÃÃ¡ÄÁ~¡Ä~‘~¡Ä‘~‘Á¡Ä‘ÁÁÇÆÃÃ¡ÄllÏ¡ÄlÏÇÏ¡ÄÇÏÇ¡ÄÇlÇÆÃÃ¡Äccâ¡Äcâ¹â¡Ä¹â¹¡Ä¹cÇÆÃÃ¡Ä33Ô¡Ä3Ô‰Ô¡Ä‰Ô‰¡Ä‰3ÇÆÃÃ¡Äþ¡þa¡Äþa‰a¡Ä‰a‰¡¡Ä‰¡þ¡ÇÆÃÃ¡Äpœp$¡Äp$Þ$¡ÄÞ$Þœ¡ÄÞœpœÇÆÃÃâ¡Ä§¿§a¡Ä§aa¡Äa¿¡Ä¿§¿ÆÃÃ¡Ä§p§ö¡Ä§öö¡Äöp¡Äp§pÆÃÃ¡Ä¡r¡õ¡Ä¡õ…õ¡Ä…õ…r¡Ä…r¡rÆÃÃ¡Äßþß"¡Äß""¡Ä"6¡Ä6ý¡ÄýßþÆÃÃ¡ÄÝ*ÝO¡ÄÝOO¡ÄO3=¡Ä3=*¡Ä*Ý*ÆÃÃ¡Äß¥ßÉ¡ÄßÉÉ¡ÄÉ6¸¡Ä6¸¥¡Ä¥ß¥ÆÃÃ¡ÄÝöÝ¡ÄÝ¡Ä3	¡Ä3	ö¡ÄöÝöÆÃÃ¡ÄÝ ÝE¡ÄÝEE¡ÄE33¡Ä33 ¡Ä Ý ÆÃÃ¡Äßß£¡Äß££¡Ä£6’¡Ä6’¡ÄßÆÃÃ¡Äß1ßS¡ÄßSS¡ÄS6B¡Ä6B1¡Ä1ß1ÆÃÃ¡ÄÝºÝÞ¡ÄÝÞÞ¡ÄÞ3Ì¡Ä3Ìº¡ÄºÝºÆÃÃ¡ÄÝrÝ–¡ÄÝ––¡Ä–3„¡Ä3„q¡ÄqÝrÆÃÃ¡Ä××'¡Ä×''¡Ä'-¡Ä-¡Ä×ÆÃÃ¡ÄVrV–¡ÄV––¡Ä–­„¡Ä­„‘q¡Ä‘qVrÆÃÃ¡ÄY…Y©¡ÄY©“©¡Ä“©¯—¡Ä¯—”„¡Ä”„Y…ÆÃÃ¡ÄVVB¡ÄVBB¡ÄB­0¡Ä­0‘¡Ä‘VÆÃÃ¡ÄVV9¡ÄV99¡Ä9­'¡Ä­'‘¡Ä‘VÆÃÃ¡ÄYY;¡ÄY;“;¡Ä“;¯*¡Ä¯*”¡Ä”YÆÃÃ¡ÄVVC¡ÄVCC¡ÄC­1¡Ä­1‘¡Ä‘VÆÃÊËÃ¡ÄXˆ“ˆÆÃÃ¡Ä^˜¦˜ÆÃÃ¡Ä[11ÆÃÃ¡ÄS((ÆÃÃ¡ÄU*…*ÆÃÃ¡ÄU2…2ÆÃ²¡ÎSDFF3¡Ð¾SDFF2¡ÈÆSDFF1ÃÊË¡Å£©˜˜ÆÃÃ¡Å3©((âÇÆÃÃâ¡Å…'…=ž'…2…2âÇÆÃÃâ¡ÅKa)KVVâÇÆÃâÊËÃ¡Ä2…§…ÆÃÃ¡Ä8ÍªÐÆÃÃ¡Ä8BªBÆÃÃ¡Ä8’§’ÆÃÃ¡Ä53ª3ÆÃÃ¡Ä5	¤	ÆÃÃ¡Ä8>¤>ÆÃÃ¡Ä5¡ÆÃÃÊË¡Ä=¸¸¡Ä¸†ÆÃÃ¡Ås‰$s~~âÇÆÃÃâ¡Ä€Ê€u¡Ä€u¡uÆÃÃ¡ÄN’NF¡ÄNF¡FÆÃÃ¡ÄxØxÈ¡ÄxÈˆÈ¡ÄˆÈˆØ¡ÄˆØxØÇÆÃÃ¡ÄC›CŠ¡ÄCŠSŠ¡ÄSŠS›¡ÄS›C›ÇÆÃÃ¡ÄFFF6¡ÄF6V6¡ÄV6VF¡ÄVFFFÇÆÃÊËÃ¡ÄF>§>ÆÃÃÊË¡Ä¡e½x¡Ä½xž‰ÆÃÃ¡ÄªcÅv¡ÄÅv§‡ÆÃÃ¡Äª¿ÅÓ¡ÄÅÓ§ãÆÃÊËÃ¡Ä§v€vÆÃÃÊË¡Äx~xn¡Äxnˆn¡Äˆnˆ~¡Äˆ~x~ÇÆÃÊËÃ¡ÄFKKÆÃÃÊË¡Ä2¡ÄKÆÃ²C¡gd3¡IÛclk¡@[t_sf3¡;˜st_se¡Q<d2¡>	t_sf2¡b¾clr¡bId1¡Ct_sf1¡Yset¡¿Šq3¡Â q3n¡¼<q2¡Â0q2n¡Ê3q1¡Â8q1n²¡ÿ’JËD“I501ileaf_page_string1:12-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿŠ12³21¡,Õ²Sequential´µMapping³BasedµScanµInsertion¡þ•²Sequential´µmapping³basedµscanµinsertionµisµaµnewµcapability.µRefer¡þÞtoµtheµ²&TestµCompilerµReferenceµManual²µforµdetails.µScanµinsertion¡þ&usesµtheµsequentialµmappingµalgorithmsµofµDesignµCompilerµtoµfind¡þoscanµequivalentµcells.µThisµprocedureµcanµbeµcalledµforµany¡þ¸sequentialµcellµthatµisµedge³triggeredµinµnormalµmodeµoperation.¡þ[Theµsequentialµmapping³basedµscanµinsertionµprocedureµcannot¡þ¤supportµallµscanµcells.µItµcanµsupportµaµcellµifµatµleastµoneµtest_cellµin¡þìtheµscanµcellµhasµtheseµcharacteristics:¡þr²S¡Xr²Showsµnontestµmodeµoperationµasµedge³triggered¡þæ²S¡Xæ²Hasµaµfunctionµstatementµforµallµoutputs¡þxMostµscanµcellsµthatµcanµuseµsequentialµmapping³basedµscan¡þÀinsertionµcanµalsoµuseµidenticalµfunction³basedµscanµinsertion.µThe¡þ	identicalµfunction³basedµscanµinsertionµwillµnotµworkµinµsomeµcases,¡þRbutµisµgenerallyµfaster.µSynopsysµstronglyµrecommendsµthatµyou¡þšalwaysµsupportµtheµidenticalµfunction³basedµscanµinsertion¡þãprocedureµwhereµpossible.¡þ†Thereµareµconflictingµrequirementsµforµsequentialµmapping³based¡þÏscanµinsertionµasµopposedµtoµidenticalµfunction³basedµscanµinsertion¡þ	forµscanµcellsµwithµdedicatedµscanµoutputs.µIdenticalµfunction³based¡þ	`scanµinsertionµrequiresµthatµdedicatedµscanµoutputsµdoµnotµhave¡þ	©functionµstatementsµevenµifµitµisµpossibleµtoµdescribeµthem.µTheyµcan¡þ	òhaveµonlyµsignal_typeµattributes.µSequentialµmapping³basedµscan¡þ
:insertionµrequiresµthatµdedicatedµscanµoutputsµhaveµaµfunction¡þ
ƒstatementµasµwellµasµaµsignal_typeµattribute.µµTheseµconflicting¡þ
Ìrequirementsµcanµbeµsatisfiedµbyµwritingµtwoµtest_cellsµasµshownµin¡þtheµfollowingµexample.’ËzD“I501ileaf_page_string1:12-22¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³22¡þÉ²Example¡þ6²To´µsupportµtheµidenticalµfunctionµprocedureµinµtheµfirstµtest_cell,¡þ~theseµareµtheµstatementsµforµdedicatedµscanµoutput:¡þ²pin´µ(SO)µ{¡þ<¡…<directionµ:µoutput;¡þy¡…ysignal_typeµ:µ"test_scan_out";¡þ¶}¡þQ²To´µsupportµtheµsequentialµmappingµprocedureµinµtheµsecond¡þštest_cell,µtheseµareµtheµstatementsµforµdedicatedµscanµoutput:¡þ²pin´µ(SO)µ{¡þX¡…Xdirectionµ:µoutput;¡þ•¡…•signal_typeµ:µ"test_scan_out";¡þÒ¡…Òfunctionµ:µ"IQ";¡þ¡…test_output_onlyµ:µtrue;¡þL}¡…L¡þç²The´µfunctionµstatementµinµtheµexampleµaboveµmeetsµtheµsequential¡þ/mappingµproceduresµrequirementµthatµallµoutputsµhaveµaµfunction¡þxstatement,µwhileµtheµtest_output_onlyµattributeµpreventsµitµbeing¡þÁusedµasµaµnontestµoutput.’z‰D“I501ileaf_page_string1:12-23¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Æ,°¡Ä,°	c°¡Ä	c°	cÆ¡Ä	cÆ,ÆÆÃÁÊËÃ¡Äþ°Ê°ÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿŠ12³23¡,Õ²Scan´µCellµModelingµExamples¡þ™²This´µsectionµcontainsµmodelingµexamplesµforµtheseµtestµcells:¡þ ²S¡X ²SimpleµmultiplexedµDµflip³flop¡þ–²S¡X–²Levelµsensitiveµscanµdeviceµ(LSSD)µelement¡þ²S¡X²Clockedµscan¡þ²S¡X²ScanµDµflip³flopµwithµauxiliaryµclock¡þEachµexampleµcontainsµaµcompleteµcellµdescription.¡þ²Simple´µMultiplexedµDµFlip³Flop¡þ£²Example 12³6´µshowsµhowµtoµmodelµaµsimpleµmultiplexedµDµflip³flop¡þìtestµcell.¡,¢²&Example 12³6³SimpleµMultiplexedµDµFlip³FlopµScanµCell¡þ7²cell(SDFF1)´µ{¡þtµareaµ:µ9;¡þ²µscan_groupµ:µlow";¡þïµpin(D)µ{¡þ	,µµµµdirectionµ:µinput;¡þ	jµµµµcapacitanceµ:µ1;¡þ	§µµµµtiming()µ{...}¡þ	äµ}¡þ
!µpin(CP)µ{¡þ
_µµµµdirectionµ:µinput;¡þ
œµµµµcapacitanceµ:µ1;¡þ
Ùµµµµtiming()µ{...}¡þµ}’‰ÅD“I501ileaf_page_string1:12-24¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³24¡þÃ²´µpin(TI)µ{¡þµµµµdirectionµ:µinput;¡þ=µµµµcapacitanceµ:µ1;¡þ{µµµµtiming()µ{...}¡þ¸µ}¡þõµpin(TE)µ{¡þ2µµµµdirectionµ:µinput;¡þoµµµµcapacitanceµ:µ2;¡þ­µµµµtiming()µ{...}¡þêµ}¡þ'µff(IQ,IQN)µ{¡þdµµµµ/*µmodelµfullµbehaviorµ(ifµpossible):µ*/¡þ¡µµµµnext_stateµ:µ"DµTE'µ+µTIµTEµ";¡þßµµµµclocked_onµ:µ"CP";¡þµ}¡þYµpin(Q)µ{¡þ–µµµµdirectionµ:µoutput;¡þÔµµµµfunctionµ:µ"IQ";¡þµµµµtiming()µ{...}¡þNµ}¡þ‹µpin(QN)µ{¡þÈµµµµdirectionµ:µoutput;¡þµµµµfunctionµ:µ"IQN";¡þCµµµµtiming()µ{...}¡þ€µ}¡þ½µtest_cell()µ{¡þûµµµµpin(D)µ{¡þ8µµµµµµdirectionµ:µinput¡þuµµµµ}¡þ²µµµµpin(CP){¡þïµµµµµµdirectionµ:µinput¡þ	-µµµµ}¡þ	jµµµµpin(TI)µ{¡þ	§µµµµµµdirectionµ:µinput;¡þ	äµµµµµµsignal_typeµ:µtest_scan_in;¡þ
!µµµµ}¡þ
_µµµµpin(TE)µ{¡þ
œµµµµµµdirectionµ:µinput;¡þ
Ùµµµµµµsignal_typeµ:µtest_scan_enable;¡þµµµµ}’ÅçD“I501ileaf_page_string1:12-25¥	öäÃËÁâÊË¡Ä,í,×¡Ä,×	c×¡Ä	c×	cí¡Ä	cí,íÆÃÁÊËÃ¡Äþ×Ê×ÆÃ¥	öä¥	öä¡:Á²Defining´µTestµCells¡Ô¤ÿŠ12³25¡þÃ²´µµµµff(IQ,IQN)µ{¡þÿµµµµµµµ/*µjustµmodelµnon³testµoperationµbehaviorµ*/¡þ<µµµµµµnext_stateµ:µ"D";¡þxµµµµµµclocked_onµ:µ"CP";¡þµµµµµ}¡þòµµµµpin(Q)µ{¡þ.µµµµµµdirectionµ:µoutput;¡þkµµµµµµfunctionµ:µ"IQ";¡þ§µµµµµµsignal_typeµ:µtest_scan_out;¡þäµµµµ}¡þ µµµµpin(QN)µ{¡þ]µµµµµµdirectionµ:µoutput;¡þ™µµµµµµfunctionµ:µ"IQN";¡þÖµµµµµµsignal_typeµ:µtest_scan_out_inverted;¡þµµµµ}¡þOµ}¡þ'²Multibit´µCellsµwithµMultiplexedµDµFlip³FlopµandµEnable¡þÃ²Example 12³7´µcontainsµcompleteµdescriptionsµofµmultibitµscanµcells.¡,q²&Example 12³7³MultibitµScanµCellsµwithµMultiplexedµDµFlip³FlopµandµEnable¡þÇ²library(banktest)´µ{¡þdefault_inout_pin_capµµµµµµµµ:µµ1.0;¡þ7default_inout_pin_fall_resµµµ:µµ0.0;¡þkdefault_inout_pin_rise_resµµµ:µµ0.0;¡þŸdefault_input_pin_capµµµµµµµµ:µµ1.0;¡þÓdefault_intrinsic_fallµµµµµµµ:µµ1.0;¡þ	default_intrinsic_riseµµµµµµµ:µµ1.0;¡þ	;default_output_pin_capµµµµµµµ:µµ0.0;¡þ	odefault_output_pin_fall_resµµ:µµ0.0;¡þ	¢default_output_pin_rise_resµµ:µµ0.0;¡þ	Ödefault_slope_fallµµµµµµµµµµµ:µµ0.0;¡þ

default_slope_riseµµµµµµµµµµµ:µµ0.0;¡þ
>default_fanout_loadµµµµµµµµµµ:µµ1.0;¡þ
{time_unitµ:µ"1ns";¡þ
¯voltage_unitµ:µ"1V";¡þ
âcurrent_unitµ:µ"1uA";¡þpulling_resistance_unitµ:µ"1kohm";’çÕD“I501ileaf_page_string1:12-26¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³26¡þÃ²capacitive_load_unit´µ(0.1,ff);¡þtypeµ(bus4)µ{¡þEµµbase_typeµ:µarray;¡þyµµdata_typeµ:µbit;¡þ­µµbit_widthµ:µ4;¡þáµµbit_fromµ:µ0;¡þµµbit_toµµµ:µ3;¡þH}¡þ–cell(FDSX4)µ{¡þÊµµareaµ:µ36;¡þþµµbus(D)µ{¡þ2µµµµbus_typeµ:µbus4;¡þfµµµµdirectionµ:µinput;¡þšµµµµcapacitanceµ:µ1;¡þÎµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µsetup_rising;¡þ6µµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þiµµµµµµrelated_pinµ:µ"CP";¡þµµµµ}¡þÑµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µhold_rising;¡þ9µµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þmµµµµµµrelated_pinµ:µ"CP";¡þ¡µµµµ}¡þÕµµ}¡þ	µµpin(CP)µ{¡þ<µµµµdirectionµ:µinput;¡þpµµµµcapacitanceµ:µ1;¡þ¤µµ}¡þØµµpin(TI)µ{¡þµµµµdirectionµ:µinput;¡þ@µµµµcapacitanceµ:µ1;¡þtµµµµtiming()µ{¡þ¨µµµµµµtiming_typeµ:µsetup_rising;¡þÜµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ	µµµµµµrelated_pinµ:µ"CP";¡þ	Cµµµµ}¡þ	wµµµµtiming()µ{¡þ	«µµµµµµtiming_typeµ:µhold_rising;¡þ	ßµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þ
µµµµµµrelated_pinµ:µ"CP";¡þ
Gµµµµ}¡þ
{µµ}¡þ
¯µµpin(TE)µ{¡þ
âµµµµdirectionµ:µinput;¡þµµµµcapacitanceµ:µ2;’ÕÜD“I501ileaf_page_string1:12-27¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³27¡þÃ²´µµµµtiming()µ{¡þ÷µµµµµµtiming_typeµ:µsetup_rising;¡þ+µµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ_µµµµµµrelated_pinµ:µ"CP";¡þ’µµµµ}¡þÆµµµµtiming()µ{¡þúµµµµµµtiming_typeµ:µhold_rising;¡þ.µµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þbµµµµµµrelated_pinµ:µ"CP";¡þ–µµµµ}¡þÊµµ}¡þþµµstatetableµ(µ"µDµµµCPµµTIµµµTEµµ",µ"µQµµµQN")µ{¡þ2µµµµµtableµµ:µ"µµ-µµ~Rµµµ-µµµµ-µµµµµµ:µ-µµµ-µ:µNµµµµN,µµµ\¡þeµµµµµµµµµµµµµµµµµ-µµµRµµH/LµµµHµµµµµµ:µ-µµµ-µ:µH/LµµL/H,µ\¡þ™µµµµµµµµµµµµµµµµH/LµµRµµµ-µµµµLµµµµµµ:µ-µµµ-µ:µH/LµµL/H"µ;¡þÍµµ}¡þµµbus(Q)µ{¡þ5µµµµbus_typeµ:µbus4;¡þiµµµµdirectionµ:µoutput;¡þµµµµinverted_outputµ:µfalse;¡þÑµµµµinternal_nodeµ:µ"Q";¡þµµµµtiming()µ{¡þ8µµµµµµtiming_typeµ:µrising_edge;¡þlµµµµµµintrinsic_riseµ:µ1.09;µintrinsic_fallµ:µ1.37;¡þ µµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þÔµµµµµµrelated_pinµ:µ"CP";¡þµµµµ}¡þ<µµµµpin(Q[0])µ{¡þpµµµµµµinput_mapµ:µ"D[0]µCPµTIµµµTE";¡þ¤µµµµ}¡þØµµµµpin(Q[1])µ{¡þµµµµµµinput_mapµ:µ"D[1]µCPµQ[0]µTE";¡þ?µµµµ}¡þsµµµµpin(Q[2])µ{¡þ§µµµµµµinput_mapµ:µ"D[2]µCPµQ[1]µTE";¡þÛµµµµ}¡þ	µµµµpin(Q[3])µ{¡þ	Cµµµµµµinput_mapµ:µ"D[3]µCPµQ[2]µTE";¡þ	wµµµµ}¡þ	«µµ}¡þ	Þµµbus(QN)µ{¡þ
µµµµbus_typeµ:µbus4;¡þ
Fµµµµdirectionµ:µoutput;¡þ
zµµµµinverted_outputµ:µtrue;¡þ
®µµµµinternal_nodeµ:µ"QN";¡þ
âµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µrising_edge;’ÜëD“I501ileaf_page_string1:12-28¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³28¡þÃ²´µµµµµµintrinsic_riseµ:µ1.59;µintrinsic_fallµ:µ1.57;¡þ÷µµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þ+µµµµµµrelated_pinµ:µ"CP";¡þ_µµµµ}¡þ’µµµµpin(QN[0])µ{¡þÆµµµµµµinput_mapµ:µ"D[0]µCPµTIµµµTE";¡þúµµµµ}¡þ.µµµµpin(QN[1])µ{¡þbµµµµµµinput_mapµ:µ"D[1]µCPµQ[0]µTE";¡þ–µµµµ}¡þÊµµµµpin(QN[2])µ{¡þþµµµµµµinput_mapµ:µ"D[2]µCPµQ[1]µTE";¡þ2µµµµ}¡þeµµµµpin(QN[3])µ{¡þ™µµµµµµinput_mapµ:µ"D[3]µCPµQ[2]µTE";¡þÍµµµµ}¡þµµ}¡þ5µµ¡þiµµtest_cell()µ{¡þµµµµbusµ(D)µ{¡þÑµµµµµµbus_typeµ:µbus4;¡þµµµµµµdirectionµ:µinput;¡þ8µµµµ}¡þlµµµµpin(CP)µ{¡þ µµµµµµdirectionµ:µinput;¡þÔµµµµ}¡þµµµµpin(TI)µ{¡þ<µµµµµµdirectionµ:µinput;¡þpµµµµµµsignal_typeµ:µ"test_scan_in";¡þ¤µµµµ}¡þØµµµµpin(TE)µ{¡þµµµµµµdirectionµ:µinput;¡þ?µµµµµµsignal_typeµ:µ"test_scan_enable";¡þsµµµµ}¡þ§µµµµff_bank("IQ","IQN",µ4)µ{¡þÛµµµµµµnext_stateµ:µ"D";¡þ	µµµµµµclocked_onµ:µ"CP";¡þ	Cµµµµ}¡þ	wµµµµbus(Q)µ{¡þ	«µµµµµµbus_typeµ:µbus4;¡þ	Þµµµµµµdirectionµ:µoutput;¡þ
µµµµµµfunctionµ:µ"IQ";¡þ
Fµµµµµµsignal_typeµ:µ"test_scan_out";¡þ
zµµµµ}¡þ
®µµµµbus(QN)µ{¡þ
âµµµµµµbus_typeµ:µbus4;¡þµµµµµµdirectionµ:µoutput;’ëD“I501ileaf_page_string1:12-29¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³29¡þÃ²´µµµµµµfunctionµ:µ"IQN";¡þ÷µµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þ+µµµµ}¡þ_µµ}¡þ­}¡þûcell(SCAN2)µ{¡þ/µµareaµ:µ18;¡þcµµbundle(D)µ{¡þ–µµµµmembers(D0,µD1);¡þÊµµµµdirectionµ:µinput;¡þþµµµµcapacitanceµ:µ1;¡þ2µµµµtiming()µ{¡þfµµµµµµtiming_typeµ:µsetup_rising;¡þšµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þÎµµµµµµrelated_pinµ:µ"T";¡þµµµµ}¡þ6µµµµtiming()µ{¡þiµµµµµµtiming_typeµ:µhold_rising;¡þµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þÑµµµµµµrelated_pinµ:µ"T";¡þµµµµ}¡þ9µµ}¡þmµµpin(T)µ{¡þ¡µµµµdirectionµ:µinput;¡þÕµµµµcapacitanceµ:µ1;¡þ	µµ}¡þ<µµpin(EN)µ{¡þpµµµµdirectionµ:µinput;¡þ¤µµµµcapacitanceµ:µ2;¡þØµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µsetup_rising;¡þ@µµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þtµµµµµµrelated_pinµ:µ"T";¡þ¨µµµµ}¡þÜµµµµtiming()µ{¡þ	µµµµµµtiming_typeµ:µhold_rising;¡þ	Cµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þ	wµµµµµµrelated_pinµ:µ"T";¡þ	«µµµµ}¡þ	ßµµ}¡þ
µµpin(SI)µ{¡þ
Gµµµµdirectionµ:µinput;¡þ
{µµµµcapacitanceµ:µ1;¡þ
¯µµµµtiming()µ{¡þ
âµµµµµµtiming_typeµ:µsetup_rising;¡þµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;’éD“I501ileaf_page_string1:12-30¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³30¡þÃ²´µµµµµµrelated_pinµ:µ"T";¡þ÷µµµµ}¡þ+µµµµtiming()µ{¡þ_µµµµµµtiming_typeµ:µhold_rising;¡þ’µµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þÆµµµµµµrelated_pinµ:µ"T";¡þúµµµµ}¡þ.µµ}¡þbµµpin(SM)µ{¡þ–µµµµdirectionµ:µinput;¡þÊµµµµcapacitanceµ:µ2;¡þþµµµµtiming()µ{¡þ2µµµµµµtiming_typeµ:µsetup_rising;¡þeµµµµµµintrinsic_riseµ:µ1.3;µintrinsic_fallµ:µ1.3;¡þ™µµµµµµrelated_pinµ:µ"T";¡þÍµµµµ}¡þµµµµtiming()µ{¡þ5µµµµµµtiming_typeµ:µhold_rising;¡þiµµµµµµintrinsic_riseµ:µ0.3;µintrinsic_fallµ:µ0.3;¡þµµµµµµrelated_pinµ:µ"T";¡þÑµµµµ}¡þµµ}¡þ8µµstatetableµ(µ"µTµµµDµµµENµµµSIµµSM",µµµµµµµµ"µQµµµQN")µ{¡þlµµµµµtableµµ:µ"µ~Rµµµ-µµµ-µµµµ-µµµ-µµµ:µ-µµµ-µ:µNµµµµNµ,µ\¡þ µµµµµµµµµµµµµµµµµ-µµµ-µµµLµµµµ-µµµLµµµ:µ-µµµ-µ:µNµµµµNµ,µ\¡þÔµµµµµµµµµµµµµµµµµRµµH/LµµHµµµµ-µµµLµµµ:µ-µµµ-µ:µH/LµµL/H,\¡þµµµµµµµµµµµµµµµµµRµµµ-µµµ-µµµH/LµµHµµµ:µ-µµµ-µ:µH/LµµL/H";¡þ<µµ}¡þpµµbundle(Q)µ{¡þ¤µµµµmembers(Q0,µQ1);¡þØµµµµdirectionµ:µoutput;¡þµµµµinverted_outputµ:µfalse;¡þ?µµµµinternal_nodeµ:µ"Q";¡þsµµµµtiming()µ{¡þ§µµµµµµtiming_typeµ:µrising_edge;¡þÛµµµµµµintrinsic_riseµ:µ1.09;µintrinsic_fallµ:µ1.37;¡þ	µµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þ	Cµµµµµµrelated_pinµ:µ"T";¡þ	wµµµµ}¡þ	«µµµµpin(Q0)µ{¡þ	Þµµµµµµinput_mapµ:µ"TµD0µENµSIµSM";¡þ
µµµµ}¡þ
Fµµµµpin(Q1)µ{¡þ
zµµµµµµinput_mapµ:µ"TµD1µENµQ0µSM";¡þ
®µµµµ}¡þ
âµµ}¡þµµbundle(QN)µ{’éùD“I501ileaf_page_string1:12-31¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³31¡þÃ²´µµµµmembers(Q0N,µQ1N);¡þ÷µµµµdirectionµ:µoutput;¡þ+µµµµinverted_outputµ:µtrue;¡þ_µµµµinternal_nodeµ:µ"QN";¡þ’µµµµtiming()µ{¡þÆµµµµµµtiming_typeµ:µrising_edge;¡þúµµµµµµintrinsic_riseµ:µ1.59;µintrinsic_fallµ:µ1.57;¡þ.µµµµµµrise_resistanceµ:µ0.1458;µfall_resistanceµ:µ0.0523;¡þbµµµµµµrelated_pinµ:µ"T";¡þ–µµµµ}¡þÊµµµµpin(Q0N)µ{¡þþµµµµµµinput_mapµ:µ"TµD0µENµSIµSM";¡þ2µµµµ}¡þeµµµµpin(Q1N)µ{¡þ™µµµµµµinput_mapµ:µ"TµD1µENµQ0µSM";¡þÍµµµµ}¡þµµ}¡þ5µµ¡þiµµtest_cell()µ{¡þµµµµbundleµ(D)µ{¡þÑµµµµµµmembers(D0,µD1);¡þµµµµµµdirectionµ:µinput;¡þ8µµµµ}¡þlµµµµpin(T)µ{¡þ µµµµµµdirectionµ:µinput;¡þÔµµµµ}¡þµµµµpin(EN)µ{¡þ<µµµµµµdirectionµ:µinput;¡þpµµµµ}¡þ¤µµµµpin(SI)µ{¡þØµµµµµµdirectionµ:µinput;¡þµµµµµµsignal_typeµ:µ"test_scan_in";¡þ?µµµµ}¡þsµµµµpin(SM)µ{¡þ§µµµµµµdirectionµ:µinput;¡þÛµµµµµµsignal_typeµ:µ"test_scan_enable";¡þ	µµµµ}¡þ	Cµµµµff_bank("IQ","IQN",µ2)µ{¡þ	wµµµµµµnext_stateµ:µ"D";¡þ	«µµµµµµclocked_onµ:µ"TµEN";¡þ	Þµµµµ}¡þ
µµµµbundle(Q)µ{¡þ
Fµµµµµµmembers(Q0,µQ1);¡þ
zµµµµµµdirectionµ:µoutput;¡þ
®µµµµµµfunctionµ:µ"IQ";¡þ
âµµµµµµsignal_typeµ:µ"test_scan_out";¡þµµµµ}’ùºD“I501ileaf_page_string1:12-32¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³32¡þÃ²´µµµµbundle(QN)µ{¡þ÷µµµµµµmembers(Q0N,µQ1N);¡þ+µµµµµµdirectionµ:µoutput;¡þ_µµµµµµfunctionµ:µ"IQN";¡þ’µµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þÆµµµµ}¡þúµµ}¡þ.}¡þÏ²LSSD´µScanµCell¡þo²Example 12³8´µshowsµhowµtoµmodelµaµlevel³sensitiveµscanµdevice¡þ·(LSSD)µelement.µForµlatch³basedµdesigns,µthisµformµofµscanµcellµhas¡þtwoµtest_cellµgroupsµsoµthatµitµcanµbeµusedµinµeitherµsingle³latchµor¡þIdouble³latchµmode.¡,û²&Example 12³8³LSSDµScanµCell¡þ²cell(LSSD)´µ{¡þÍµµareaµ:µ12;¡þ
µµpin(D)µ{¡þGµµµµdirectionµ:µinput;¡þ„µµµµcapacitanceµ:µ1;¡þÁµµµµtiming()µ{¡þþµµµµµµtiming_typeµ:µsetup_falling;¡þ;µµµµµµintrinsic_riseµ:µ1.0;¡þxµµµµµµintrinsic_fallµ:µ1.0;¡þµµµµµµµrelated_pinµ:µ"MCLK";¡þòµµµµ}¡þ	/µµµµtiming()µ{¡þ	lµµµµµµtiming_typeµ:µhold_falling;¡þ	©µµµµµµintrinsic_riseµ:µ1.0;¡þ	åµµµµµµintrinsic_fallµ:µ1.0;¡þ
"µµµµµµrelated_pinµ:µ"MCLK";¡þ
_µµµµ}¡þ
œµµ}¡þ
Ùµµpin(SI)µ{¡þµµµµdirectionµ:µinput;’ºµD“I501ileaf_page_string1:12-33¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³33¡þÃ²´µµµµcapacitanceµ:µ1;¡þÿµµµµprefer_tiedµ:µ"0";¡þ:µµµµtiming()µ{¡þvµµµµµµtiming_typeµ:µsetup_falling;¡þ²µµµµµµintrinsic_riseµ:µ1.0;¡þíµµµµµµintrinsic_fallµ:µ1.0;¡þ)µµµµµµrelated_pinµ:µ"ACLK";¡þeµµµµ}¡þ µµµµtiming()µ{¡þÜµµµµµµtiming_typeµ:µhold_falling;¡þµµµµµµintrinsic_riseµ:µ1.0;¡þSµµµµµµintrinsic_fallµ:µ1.0;¡þµµµµµµrelated_pinµ:µ"ACLK";¡þËµµµµ}¡þµµ}¡þBµµpin(MCLK,ACLK,SCLK)µ{¡þ~µµµµdirectionµ:µinput;¡þºµµµµcapacitanceµ:µ1;¡þõµµ}¡þ1µµpin(Q1)µ{¡þmµµµµdirectionµ:µoutput;¡þ¨µµµµinternal_nodeµ:µ"Q1";¡þäµµµµtiming()µ{¡þ µµµµµµtiming_typeµ:µrising_edge;¡þ[µµµµµµintrinsic_riseµ:µ1.0;¡þ—µµµµµµintrinsic_fallµ:µ1.0;¡þÓµµµµµµrise_resistanceµ:µ0.1;¡þµµµµµµfall_resistanceµ:µ0.1;¡þJµµµµµµrelated_pinµ:µ"MCLK";¡þ†µµµµ}¡þÁµµµµtiming()µ{¡þýµµµµµµtiming_typeµ:µrising_edge;¡þ	9µµµµµµintrinsic_riseµ:µ1.0;¡þ	uµµµµµµintrinsic_fallµ:µ1.0;¡þ	°µµµµµµrise_resistanceµ:µ0.1;¡þ	ìµµµµµµfall_resistanceµ:µ0.1;¡þ
(µµµµµµrelated_pinµ:µ"ACLK";¡þ
cµµµµ}¡þ
Ÿµµµµtiming()µ{¡þ
Ûµµµµµµintrinsic_riseµ:µ1.0;¡þµµµµµµintrinsic_fallµ:µ1.0;’µÁD“I501ileaf_page_string1:12-34¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³34¡þÃ²´µµµµµµrise_resistanceµ:µ0.1;¡þÿµµµµµµfall_resistanceµ:µ0.1;¡þ:µµµµµµrelated_pinµ:µ"D";¡þvµµµµ}¡þ²µµµµtiming()µ{¡þíµµµµµµintrinsic_riseµ:µ1.0;¡þ)µµµµµµintrinsic_fallµ:µ1.0;¡þeµµµµµµrise_resistanceµ:µ0.1;¡þ µµµµµµfall_resistanceµ:µ0.1;¡þÜµµµµµµrelated_pinµ:µ"SI";¡þµµµµ}¡þSµµ}¡þµµpin(Q1N)µ{¡þËµµµµdirectionµ:µoutput;¡þµµµµstate_functionµ:µ"Q1'";¡þBµµµµtiming()µ{¡þ~µµµµµµtiming_typeµ:µµrising_edge;¡þºµµµµµµintrinsic_riseµ:µ1.0;¡þõµµµµµµintrinsic_fallµ:µ1.0;¡þ1µµµµµµrise_resistanceµ:µ0.1;¡þmµµµµµµfall_resistanceµ:µ0.1;¡þ¨µµµµµµrelated_pinµ:µ"MCLK";¡þäµµµµ}¡þ µµµµtiming()µ{¡þ[µµµµµµtiming_typeµ:µrising_edge;¡þ—µµµµµµintrinsic_riseµ:µ1.0;¡þÓµµµµµµintrinsic_fallµ:µ1.0;¡þµµµµµµrise_resistanceµ:µ0.1;¡þJµµµµµµfall_resistanceµ:µ0.1;¡þ†µµµµµµrelated_pinµ:µ"ACLK";¡þÁµµµµ}¡þýµµµµtiming()µ{¡þ	9µµµµµµintrinsic_riseµ:µ1.0;¡þ	uµµµµµµintrinsic_fallµ:µ1.0;¡þ	°µµµµrise_resistanceµ:µ0.1;¡þ	ìµµµµµµfall_resistanceµ:µ0.1;¡þ
(µµµµµµrelated_pinµ:µ"D";¡þ
cµµµµ}¡þ
Ÿµµµµtiming()µ{¡þ
Ûµµµµµµintrinsic_riseµ:µ1.0;¡þµµµµµµintrinsic_fallµ:µ1.0;’Á„D“I501ileaf_page_string1:12-35¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³35¡þÃ²´µµµµµµrise_resistanceµ:µ0.1;¡þþµµµµµµfall_resistanceµ:µ0.1;¡þ:µµµµµµrelated_pinµ:µ"SI";¡þuµµµµ}¡þ±µµ}¡þíµµpin(Q2)µ{¡þ(µµµµdirectionµ:µoutput;¡þdµµµµinternal_nodeµ:µ"Q2";¡þŸµµµµtiming()µ{¡þÛµµµµµµtiming_typeµ:µrising_edge;¡þµµµµµµintrinsic_riseµ:µ1.0;¡þRµµµµµµintrinsic_fallµ:µ1.0;¡þµµµµµµrise_resistanceµ:µ0.1;¡þÉµµµµµµfall_resistanceµ:µ0.1;¡þµµµµµµrelated_pinµ:µ"SCLK";¡þ@µµµµ}¡þ{µµ}¡þ·µµpin(Q2N)µ{¡þóµµµµdirectionµ:µoutput;¡þ.µµµµstate_functionµ:µ"Q2'";¡þjµµµµtiming()µ{¡þ¥µµµµµµtiming_typeµ:µrising_edge;¡þáµµµµµµintrinsic_riseµ:µ1.0;¡þµµµµµµintrinsic_fallµ:µ1.0;¡þXµµµµµµrise_resistanceµ:µ0.1;¡þ“µµµµµµfall_resistanceµ:µ0.1;¡þÏµµµµµµrelated_pinµ:µ"SCLK";¡þ
µµµµ}¡þFµµ}¡þµµstatetable("MCLKµDµµµACLKµSCLKµSI",µµµµµµµµµ"Q1µµµQ2")µ{¡þµµµµµtableµ:µµµ"µLµµ-µµµµLµµµ-µµµµµ-µµ:µ-µµµ-µ:µµNµµµµ-µ,µ\¡þéµµµµµµµµµµµµµµµµHµµL/HµµLµµµ-µµµµµ-µµ:µ-µµµ-µ:µL/Hµµµ-µ,µ\¡þ	µµµµµµµµµµµµµµµµLµµ-µµµµHµµµ-µµµµL/Hµ:µ-µµµ-µ:µL/Hµµµ-µ,µ\¡þ	QµµµµµµµµµµµµµµµµHµµ-µµµµHµµµ-µµµµµ-µµ:µ-µµµ-µ:µµXµµµµ-µ,µ\¡þ	…µµµµµµµµµµµµµµµµ-µµ-µµµµ-µµµLµµµµµ-µµ:µ-µµµ-µ:µµ-µµµµNµ,µ\¡þ	¹µµµµµµµµµµµµµµµµ-µµ-µµµµ-µµµHµµµµµ-µµ:µL/Hµ-µ:µµ-µµµµL/H";¡þ	íµµµµ}¡þ
(test_cell()µ{µµ/*µforµDLATCHµ*/¡þ
dµµpin(D,MCLK)µ{¡þ
Ÿµµµµdirectionµ:µinput;¡þ
Ûµµ}¡þµµpin(SI)µ{’„.D“I501ileaf_page_string1:12-36¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³36¡þÃ²´µµµµdirectionµ:µinput;¡þÿµµµµµµsignal_typeµ:µ"test_scan_in";¡þ:µµ}¡þvµµpin(ACLK)µ{¡þ²µµµµdirectionµ:µinput;¡þíµµµµsignal_typeµ:µ"test_scan_clock_a";¡þ)µµ}¡þeµµpin(SCLK)µ{¡þ µµµµdirectionµ:µinput;¡þÜµµµµsignal_typeµ:µ"test_scan_clock_b";¡þµµ}¡þSµµlatchµ("IQ","IQN")µ{¡þµµµµdata_inµ:µ"D";¡þËµµµµenableµ:µ"MCLK";¡þµµ}¡þBµµµµpin(Q1)µ{¡þ~µµµµµµdirectionµ:µoutput;¡þºµµµµµµfunctionµ:µ"IQ";¡þõµµµµ}¡þ1µµµµpin(Q1N)µ{¡þmµµµµµµdirectionµ:µoutput;¡þ¨µµµµµµfunctionµ:µ"IQN";¡þäµµµµ}¡þ µµµµpin(Q2)µ{¡þ[µµµµµµdirectionµ:µoutput;¡þ—µµµµµµsignal_typeµ:µ"test_scan_out";¡þÓµµµµ}¡þµµµµpin(Q2N)µ{¡þJµµµµµµdirectionµ:µoutput;¡þ†µµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þÁµµµµ}¡þýµµ}¡þ	9µµtest_cell()µ{µµ/*µforµMSFF1µ*/¡þ	uµµµµpin(D,MCLK,SCLK)µ{¡þ	°µµµµµµdirectionµ:µinput;¡þ	ìµµµµ}¡þ
(µµµµpin(SI)µ{¡þ
cµµµµµµdirectionµ:µinput;¡þ
Ÿµµµµµµsignal_typeµ:µ"test_scan_in";¡þ
Ûµµµµ}¡þµµµµpin(ACLK)µ{’.ŸD“I501ileaf_page_string1:12-37¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³37¡þÃ²´µµµµµµdirectionµ:µinput;¡þµµµµµµsignal_typeµ:µ"test_scan_clock_a";¡þ=µµµµ}¡þzµµµµffµ("IQ","IQN")µ{¡þ¶µµµµµµnext_stateµ:µ"D";¡þóµµµµµµclocked_onµ:µ"MCLK";¡þ0µµµµµµclocked_on_alsoµ:µ"SCLK";¡þmµµµµ}¡þªµµµµpin(Q1,Q1N)µ{¡þçµµµµµµdirectionµ:µoutput;¡þ$µµµµ}¡þaµµµµpin(Q2)µ{¡þžµµµµµµdirectionµ:µoutput;¡þÚµµµµµµfunctionµ:µ"IQ";¡þµµµµµµsignal_typeµ:µ"test_scan_out";¡þTµµµµ}¡þ‘µµµµpin(Q2N)µ{¡þÎµµµµµµdirectionµ:µoutput;¡þµµµµµµfunctionµ:µ"IQN";¡þHµµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þ…µµµµ}¡þÂµµ}¡þþ}’ŸÞD“I501ileaf_page_string1:12-38¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³38¡þÏ²Clocked³Scan´µTestµCell¡þj²Example 12³9´µshowsµhowµtoµmodelµaµlevel³sensitiveµlatchµwith¡þ³separateµscanµclocking.µThisµexampleµshowsµtheµscanµcellµusedµin¡þûclocked³scanµimplementation.µ¡,©²&Example 12³9³Clocked³ScanµTestµCell¡þ;²cell(SC_DLATCH)´µ{¡þxµµareaµ:µ12;¡þ´µµpin(D)µ{¡þñµµµµdirectionµ:µinput;¡þ-µµµµcapacitanceµ:µ1;¡þjµµµµtiming()µ{¡þ¦µµµµµµtiming_typeµ:µsetup_falling;¡þãµµµµµµintrinsic_riseµ:µ1.0;¡þµµµµµµintrinsic_fallµ:µ1.0;¡þ\µµµµµµrelated_pinµ:µ"G";¡þ™µµµµ}¡þÕµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µhold_falling;¡þNµµµµµµintrinsic_riseµ:µ1.0;¡þ‹µµµµµµintrinsic_fallµ:µ1.0;¡þÇµµµµµµrelated_pinµ:µ"G";¡þµµµµ}¡þ@µµ}¡þ}µµpin(SI)µ{¡þ¹µµµµdirectionµ:µinput;¡þöµµµµcapacitanceµ:µ1;¡þ	2µµµµprefer_tiedµ:µ"0";¡þ	oµµµµtiming()µ{¡þ	«µµµµµµtiming_typeµ:µsetup_rising;¡þ	èµµµµµµintrinsic_riseµ:µ1.0;¡þ
$µµµµµµintrinsic_fallµ:µ1.0;¡þ
aµµµµµµrelated_pinµ:µ"ScanClock";¡þ
µµµµ}¡þ
Úµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µhold_rising;’Þ(D“I501ileaf_page_string1:12-39¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³39¡þÃ²´µµµµµµintrinsic_riseµ:µ1.0;¡þÿµµµµµµintrinsic_fallµ:µ1.0;¡þ:µµµµµµrelated_pinµ:µ"ScanClock";¡þvµµµµ}¡þ²µµ}¡þíµµpin(G,ScanClock)µ{¡þ)µµµµdirectionµ:µinput;¡þeµµµµcapacitanceµ:µ1;¡þ µµ}¡þÜµµstatetable(µ"DµµµµSIµµµGµScanClock",µµµµµµ"µQµµµµQN"µ)µ{¡þµµµµtableµ:µµµ"L/Hµµ³µµµµHµµµµµLµµµ:µ³µµµ³µ:µL/HµµµH/L,\¡þSµµµµµµµµµµµµµµµµ³µµµL/HµµLµµµµµRµµµ:µ³µµµ³µ:µL/HµµµH/L,\¡þµµµµµµµµµµµµµµµµ³µµµ³µµµµLµµµµ~Rµµµ:µ³µµµ³µ:µNµµµµµµN";¡þËµµ}¡þµµpin(Q)µ{¡þBµµµµdirectionµ:µoutput;¡þ~µµµµinternal_nodeµ:µ"Q";¡þºµµµµtiming()µ{¡þõµµµµµµtiming_typeµ:µrising_edge;¡þ1µµµµµµintrinsic_riseµ:µ1.0;¡þmµµµµµµintrinsic_fallµ:µ1.0;¡þ¨µµµµµµrise_resistanceµ:µ0.1;¡þäµµµµµµfall_resistanceµ:µ0.1;¡þ µµµµµµrelated_pinµ:µ"G";¡þ[µµµµ}¡þ—µµµµtiming()µ{¡þÓµµµµµµintrinsic_riseµ:µ1.0;¡þµµµµµµintrinsic_fallµ:µ1.0;¡þJµµµµµµrise_resistanceµ:µ0.1;¡þ†µµµµµµfall_resistanceµ:µ0.1;¡þÁµµµµµµrelated_pinµ:µ"D";¡þýµµµµ}¡þ	9µµµµtiming()µ{¡þ	uµµµµµµtiming_typeµ:µrising_edge;¡þ	°µµµµµµintrinsic_riseµ:µ1.0;¡þ	ìµµµµµµintrinsic_fallµ:µ1.0;¡þ
(µµµµµµrise_resistanceµ:µ0.1;¡þ
cµµµµµµfall_resistanceµ:µ0.1;¡þ
Ÿµµµµµµrelated_pinµ:µ"ScanClock";¡þ
Ûµµµµ}¡þµµ}’(ÌD“I501ileaf_page_string1:12-40¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³40¡þÃ²´µµpin(QN)µ{¡þÿµµµµdirectionµ:µoutput;¡þ:µµµµinternal_nodeµ:µ"QN";¡þvµµµµtiming()µ{¡þ²µµµµµµtiming_typeµ:µrising_edge;¡þíµµµµµµintrinsic_riseµ:µ1.0;¡þ)µµµµµµintrinsic_fallµ:µ1.0;¡þeµµµµµµrise_resistanceµ:µ0.1;¡þ µµµµµµfall_resistanceµ:µ0.1;¡þÜµµµµµµrelated_pinµ:µ"G";¡þµµµµ}¡þSµµµµtiming()µ{¡þµµµµµµintrinsic_riseµ:µ1.0;¡þËµµµµµµintrinsic_fallµ:µ1.0;¡þµµµµµµrise_resistanceµ:µ0.1;¡þBµµµµµµfall_resistanceµ:µ0.1;¡þ~µµµµµµrelated_pinµ:µ"D";¡þºµµµµ}¡þõµµµµtiming()µ{¡þ1µµµµµµtiming_typeµ:µrising_edge;¡þmµµµµµµintrinsic_riseµ:µ1.0;¡þ¨µµµµµµintrinsic_fallµ:µ1.0;¡þäµµµµµµrise_resistanceµ:µ0.1;¡þ µµµµµµfall_resistanceµ:µ0.1;¡þ[µµµµµµrelated_pinµ:µ"ScanClock";¡þ—µµµµtiming()µ{¡þÓµµµµµµtiming_typeµ:µrising_edge;¡þµµµµµµintrinsic_riseµ:µ1.0;¡þJµµµµµµintrinsic_fallµ:µ1.0;¡þ†µµµµµµrise_resistanceµ:µ0.1;¡þÁµµµµµµfall_resistanceµ:µ0.1;¡þýµµµµµµrelated_pinµ:µ"ScanClock";¡þ	9µµµµ}¡þ	uµµ}¡þ	°µµtest_cell()µ{¡þ	ìµµµµpin(D,G)µ{¡þ
(µµµµµµdirectionµ:µinput;¡þ
cµµµµ}¡þ
Ÿµµµµpin(SI)µ{¡þ
Ûµµµµµµdirectionµ:µinput;¡þµµµµµµsignal_typeµ:µ"test_scan_in";’ÌºD“I501ileaf_page_string1:12-41¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³41¡þÃ²´µµµµ}¡þµµµµpin(ScanClock)µ{¡þ=µµµµµµdirectionµ:µinput;¡þzµµµµµµsignal_typeµ:µ"test_scan_clock";¡þ¶µµµµ}¡þóµµµµpin(SE)µ{¡þ0µµµµµµdirectionµ:µinput;¡þmµµµµµµsignal_typeµ:µ"test_scan_enable";¡þªµµµµ}¡þçµµµµlatchµ("IQ","IQN")µ{¡þ$µµµµµµdata_inµ:µ"D";¡þaµµµµµµenableµ:µ"G";¡þžµµµµ}¡þÚµµµµpin(Q)µ{¡þµµµµµµdirectionµ:µoutput;¡þTµµµµµµfunctionµ:µ"IQ";¡þ‘µµµµµµsignal_typeµ:µ"test_scan_out";¡þÎµµµµ}¡þµµµµpin(QN)µ{¡þHµµµµµµdirectionµ:µoutput;¡þ…µµµµµµfunctionµ:µ"IQN";¡þÂµµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡þþµµµµ}¡þ;µµ}¡þx}’º<D“I501ileaf_page_string1:12-42¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Defining´µTestµCells¡.12³42¡þÏ²Scan´µFlip³FlopµwithµAuxiliaryµClock¡þi²Example 12³10´µshowsµhowµtoµmodelµaµscanµDµflip³flopµwithµone¡þ²inputµandµanµauxiliaryµclock.¡,_²&Example 12³10³ScanµDµFlip³FlopµwithµAuxiliaryµClock¡,ä²-´µcell(AUX_DFF1)µ{¡,µµµareaµ:µ12;¡,Qµµµpin(D)µ{¡,‡µµµµµdirectionµ:µinput;¡,½µµµµµcapacitanceµ:µ1;¡,ôµµµµµtiming()µ{¡,*µµµµµµµtiming_typeµ:µsetup_rising;¡,`µµµµµµµintrinsic_riseµ:µ1.0;¡,–µµµµµµµintrinsic_fallµ:µ1.0;¡,Íµµµµµµµrelated_pinµ:µ"CK";¡,µµµµµ}¡,9µµµµµtiming()µ{¡,oµµµµµµµtiming_typeµ:µhold_rising;¡,¥µµµµµµµintrinsic_riseµ:µ1.0;¡,Üµµµµµµµintrinsic_fallµ:µ1.0;¡,µµµµµµµrelated_pinµ:µ"CK";¡,Hµµµµµ}¡,~µµµµµtiming()µ{¡,µµµµµµµµtiming_typeµ:µsetup_rising;¡,ëµµµµµµµintrinsic_riseµ:µ1.0;¡,!µµµµµµµintrinsic_fallµ:µ1.0;¡,Wµµµµµµµrelated_pinµ:µ"IH";¡,Žµµµµµ}¡,Äµµµµµtiming()µ{¡,úµµµµµµµtiming_typeµ:µhold_rising;¡,	0µµµµµµµintrinsic_riseµ:µ1.0;¡,	gµµµµµµµintrinsic_fallµ:µ1.0;¡,	µµµµµµµrelated_pinµ:µ"IH";¡,	Óµµµµµ}¡,
	µµµµ}¡,
?µµµpin(CK,IH,A,B)µ{¡,
vµµµµµdirectionµ:µinput;¡,
¬µµµµµcapacitanceµ:µ1;¡,
âµµµ}¡,µµµpin(SI)µ{’<,D“I501ileaf_page_string1:12-43¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³43¡,½²-´µµµµµdirectionµ:µinput;¡,óµµµµµcapacitanceµ:µ1;¡,*µµµµµprefer_tiedµ:µ"0";¡,`µµµµµtiming()µ{¡,–µµµµµµµtiming_typeµ:µsetup_falling;¡,Íµµµµµµµintrinsic_riseµ:µ1.0;¡,µµµµµµµintrinsic_fallµ:µ1.0;¡,:µµµµµµµrelated_pinµ:µ"A";¡,pµµµµµ}¡,§µµµµµtiming()µ{¡,Ýµµµµµµµtiming_typeµ:µhold_falling;¡,µµµµµµµintrinsic_riseµ:µ1.0;¡,Jµµµµµµµintrinsic_fallµ:µ1.0;¡,€µµµµµµµrelated_pinµ:µ"A";¡,·µµµµµ}¡,íµµµ}¡,$µpin(Q)µ{¡,Zµµµµdirectionµ:µoutput;¡,‘µµµµtiming()µ{¡,Çµµµµµµµtiming_typeµ:µrising_edge;¡,þµµµµµµµintrinsic_riseµ:µ1.0;¡,4µµµµµµµintrinsic_fallµ:µ1.0;¡,kµµµµµµµrise_resistanceµ:µ0.1;¡,¡µµµµµµµfall_resistanceµ:µ0.1;¡,×µµµµµµµrelated_pinµ:µ"CKµIH";¡,µµµµ}¡,Dµµµµtiming()µ{¡,{µµµµµµtiming_typeµ:µrising_edge;¡,±µµµµµµintrinsic_riseµ:µ1.0;¡,èµµµµµµintrinsic_fallµ:µ1.0;¡,µµµµµµrise_resistanceµ:µ0.1;¡,Uµµµµµµfall_resistanceµ:µ0.1;¡,‹µµµµµµrelated_pinµ:µ"B";¡,Áµµµµ}¡,øµµ}¡,	.µµpin(QN)µ{¡,	eµµµµdirectionµ:µoutput;¡,	›µµµµtiming()µ{¡,	Òµµµµµµtiming_typeµ:µrising_edge;¡,
µµµµµµintrinsic_riseµ:µ1.0;¡,
?µµµµµµintrinsic_fallµ:µ1.0;¡,
uµµµµµµrise_resistanceµ:µ0.1;¡,
¬µµµµµµfall_resistanceµ:µ0.1;¡,
âµµµµµµrelated_pinµ:µ"CKµIH";¡,µµµµ}’,OD“I501ileaf_page_string1:12-44¥	öä¥	öä¡8Á²âDefining´µTestµCells¡.12³44¡,½²-´µµµµtiming()µ{¡,óµµµµµµtiming_typeµ:µrising_edge;¡,*µµµµµµintrinsic_riseµ:µ1.0;¡,aµµµµµµintrinsic_fallµ:µ1.0;¡,—µµµµµµrise_resistanceµ:µ0.1;¡,Îµµµµµµfall_resistanceµ:µ0.1;¡,µµµµµµrelated_pinµ:µ"B";¡,;µµµµ}¡,rµµ}¡,©µµstatetable(µ"CµµTCµµDµµAµµBµµSI",µµ"IQ1µµIQ2"µ)µ{¡,ßµµµµµµµµtableµµ:µµµµµ"\¡,µµ/*µµµCµµTCµµDµµµAµµµBµµµSIµµµµµµµµµµµIQ1µµIQ2µµµ*/µ\¡,LµµµµµµµHµµ-µµ-µµµLµµ-µµµ-µµ:µ-µµµ-µ:µµNµµµ-,µµ/*µmastµholdµ*/\¡,ƒµµµµµµµ-µµHµµ-µµµLµµ-µµµ-µµ:µ-µµµ-µ:µµNµµµ-,µµ/*µmastµholdµ*/\¡,ºµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ\¡,ðµµµµµµµHµµ-µµ-µµµHµµ-µµL/Hµ:µ-µµµ-µ:µL/Hµµ-,µµ/*µscanµmastµ*/\¡,'µµµµµµµ-µµHµµ-µµµHµµ-µµL/Hµ:µ-µµµ-µ:µL/Hµµ-,µµ/*µscanµmastµ*/\¡,^µµµµµµµLµµLµL/HµµLµµ-µµµ-µµ:µ-µµµ-µ:µL/Hµµ-,µµ/*µDµinµmastµ*/\¡,‹µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ\¡,ÂµµµµµµµLµµLµµ-µµµHµµ-µµµ-µµ:µ-µµµ-µ:µµXµµµ-,µµ/*µbothµactiveµ*/\¡,ùµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ\¡,/µµµµµµµHµµ-µµ-µµµ-µµLµµµ-µµ:µL/Hµ-µ:µµ-µµL/H,µ/*µslaveµloadsµ*/\¡,fµµµµµµµ-µµHµµ-µµµ-µµLµµµ-µµ:µL/Hµ-µ:µµ-µµL/H,µ/*µslaveµloadsµ*/\¡,µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ\¡,ÓµµµµµµµLµµLµµ-µµµ-µµ-µµµ-µµ:µµ-µµ-µ:µµ-µµµN,µµ/*µslaveµloadsµ*/\¡,
µµµµµµµ-µµ-µµ-µµµ-µµHµµµ-µµ:µµ-µµ-µ:µµ-µµµN";µ/*µslaveµloadsµ*/}¡,Atest_cell(){¡,wµµpin(D,CK){¡,®µµµµdirectionµ:µinput¡,åµµ}¡,µµµµpin(IH){¡,Rµµµµµµdirectionµ:µinput;¡,‰µµµµµµsignal_typeµ:µ"test_clock";¡,¿µµµµ}¡,öµµµµpin(SI){¡,	-µµµµµµdirectionµ:µinput;¡,	cµµµµµµsignal_typeµ:µ"test_scan_in";¡,	šµµµµ}¡,	Ñµµµµpin(A){¡,
µµµµµµdirectionµ:µinput;¡,
>µµµµµµsignal_typeµ:µ"test_scan_clock_a";¡,
tµµµµ}¡,
«µµµµpin(B){¡,
âµµµµµµdirectionµ:µinput;¡,µµµµµµsignal_typeµ:µ"test_scan_clock_b";’OâD“I501ileaf_page_string1:12-45¥	öä¥	öä¡:Á²âDefining´µTestµCells¡Ô¤ÿŠ12³45¡,½²-´µµµµ}¡,óµµµµffµ("IQ","IQN"){¡,*µµµµµµnext_stateµ:µ"D";¡,aµµµµµµclocked_onµ:µ"CK";¡,—µµµµ}¡,Îµµµµpin(Q){¡,µµµµµµdirectionµ:µoutput;¡,;µµµµµµfunctionµ:µ"IQ";¡,rµµµµµµsignal_typeµ:µ"test_scan_out";¡,©µµµµpin(QB){¡,ßµµµµµµdirectionµ:µoutput;¡,µµµµµµfunctionµ:µ"IQN";¡,Mµµµµµµsignal_typeµ:µ"test_scan_out_inverted";¡,ƒµµµµ}¡,ºµµ}¡,ñ}’âÐOPS m:m:D€‚Document:13powerÿ‚Last saved on:Tue, Dec 9, 1997 17:53:21ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Bwst:courps8±B:!°Fwst:courps9.5i±F:(°Gwst:courps9.5±G:(°Owst:timsps14±O:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0-!!!!5*''*# ***#4** *' #**7**#-*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%******4'####%******%*****%%'%%%%%:%%:%%%%%%%%%%%%%%%:
%%%%%%%%%%%%%%%%%%%4%%%*°Qwst:courps10.5±Q:,°Swst:helvps13±S:""""""""""""""""""""""""""""""""0$    7$$''$!*'$-'*$*'$!'$3$$!-' """""""""""""""""""""""""""""""""""""""""""""""""!$$$$$$6'$$$$"'*****"*''''""!0""!"""6""6"""""""""""""""6	"""""""""""""""""""6"""3°Xwst:dutch10±X¿ '"#####) """( "" " )  *"*##!!!      ," """""#"""""  #**9 %.%   """"""""    """   """""")  °Ywst:dutch10i±Y¿ '#####) "!%  %*"*##!!!(      # #**

9',!  """"!!   %°Zwst:dutch6i±Z¿

	
	






				

"					

				



°[wst:dutch6±[¿




	




"












°\eqm:bsmth10±\5******************************	********************************************************************************  *******************************  ************     ******1        ***************#*	***********************    ****************		





*********	**  *******************°^eqm:bsmth14±^5%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:%::::::%::::%%%:%:%::%%:::::%::!::::::%::::::%::%::::%::%:%%:::::::::::::::::::::::::::::::::::::::::%%%%%%%%%%::::::::%%::::::%%%%::%%:::%%%:%%::::::,,%%%%%%:%::%::%%%::::::%%%%%%:::%%::::::::%%%%%%%%%%::::::::%%:%%,,::: %:::::%::::-----:%%:::::C%%%%,,,,,,,,:::::::::::%&%::::0:  %%%%%%%%
::::::::%%%%%%::::::::%:::::::,%,,,%::::::::%%%%::::::::%%%%%%%%%%%::::::!%%%::%%%::%%%%%%% %%%%:%%%,,*&)#::::::::::::%:::::::°beqm:bsmth12±b5                                2 222222 2222   2 2 22  22222 22222222 222222 22 2222 22 2  22222222222222222222222222222222222222222          22222222  222222    22  222   2  222222&&      2 22 22   222222      222  22222222          22222222  2  &&222 22222 2222'''''2  22222:    &&&&&&&&22222222222 ! 2222*2        	22222222      22222222 2222222& &&& 22222222    22222222           222222   22   22           2   &&$!$222222222222 2222222°cgrk:dutchbs12±c1                                &/)*****1&"!##') %&/&)() !& (&)$2  #!2                                 !)   ) *  &39#7(66                        &                     &#  2  2                 D                °feqm:bsmth20±f544444444444444444444444444444444S4SSSSSS4SSSS444S4S4SS44SSSSS4SS/SSSSSS4SS*SS*SS4S*S4SSSS4SS4S44SSSSSSSSSSS**SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS4444444444SSSSSSSS44SSSSSS4444SS44**SSS*444S44SSSSSS>>444444S4SS4SS444SSSSSS444444S***SS44SSSSSSSS444455*4444SSSSSSSS44S***44>>SSS**-4SSSSS4SSSS@@@@@S44SSSSS`4444>>>>>>>>SSSSS*SSSS**SS474SSSS**E S..$&44444444

SSSSSSSS444444SSSSSSSS4SSSSSSS>4>>>4**SSSSS**SSS4444SSSSSSSS4***4444444444SSSSSS**/444S&&,S444S*S(4444444.4444S*4*54?(@<'7;2*SSSSSSSSS-SSS**4,,,,,,,,SSSSSSS,,,,,°rwst:helvps8.7±r:

 




%
"




	
$



 




$$$$"°twst:helvps9.5±t:$	)!&				!
($((((&°„wst:helvps14bi±„:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°’eqm:bsmth16±’5********************************C*CCCCCC*CCCC***C*C*CC**CCCCC*CC&CCCCCC*CC"CC"CC*C"C*CCCC*CC*C**CCCCCCCCCCC""CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC**********CCCCCCCC**CCCCCC****CC**""CCC"***C**CCCCCC22******C*CC*CC***CCCCCC******C"""CC**CCCCCCCC****++"****CCCCCCCC**C"""**22CCC""%*CCCCC*CCCC44444C**CCCCCN****22222222CCCCC"CCCC""CC*,*CCCC""8C%%********CCCCCCCC******CCCCCCCC*CCCCCCC2*222*""CCCCC""CCC****CCCCCCCC*"""**********CCCCCC""&***C#C***C"C *******%****C"*"+*3 30 ,0("CCCCCCC
CC$CCC""*########CCCCCCC#####°˜wst:helvps6±˜:
		°™eqm:bsmth9±™5%%%%%%%%%%%%%%%%%%%%%%	%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%				



	
		

		

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%°šeqm:bsmth21.6±š599999999999999999999999999999999Z9ZZZZZZ9ZZZZ999Z9Z9ZZ99ZZZZZ9ZZ3ZZZZZZ9ZZ-ZZ-"ZZ9Z-Z9ZZZZ9ZZ9Z99ZZZZZZZZZZZ--ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ9999999999ZZZZZZZZ99ZZZZZZ9999ZZ99--ZZZ-999Z99ZZZZZZDD999999Z9ZZ9ZZ999ZZZZZZ999999Z---ZZ99ZZZZZZZZ99999:-9"999ZZZZZZZZ99Z---99DDZZZ--19ZZZZZ9ZZZZFFFFFZ99ZZZZZh9999DDDDDDDDZZZZZ-ZZZZ--ZZ9;9ZZZZ --K#Z 22')99999999ZZZZZZZZ999999ZZZZZZZZ9ZZZZZZZD9DDD9--ZZZZZ--ZZZ9999ZZZZZZZZ9---9999999999ZZZZZZ--3999Z))0Z999Z-Z+999999929999Z-9-99E+EA*;@6-ZZZZZZZZZ1ZZZ--900000000ZZZZZZZ00000°›wst:helvps20±›:44444444444444444444444444444444..J7 0...........000.T77<<73A<*7.E<A7A<73<7N773'...*....*E....*.*<***0444444444444444444444444444444444....4.4.444444444-44.4443777777S<77774<AAAAA4A<<<<443......J*....4......43....44*4.*S.44S444444444..444444S444444444444444.4444S444N°œwst:helvps16±œ:********************************%%<-'%%%%%%%%%%%'''%D--00-)40"-%804-40-)0-?--)%%%"%%%%"8%%%%"%"0"""'*********************************%%%%*%*%*********$**%***)------C0----*044444*40000**)%%%%%%<"%%%%*%%%%%%*)%%%%**"*%"C%**C*********%%******C***************%****C***?°eqm:bsmth13±5""""""""""""""""""""""""""""""""6"666666"6666"""6"6"66""66666"66666666"666666"66"6666"66"6""66666666666666666666666666666666666666666""""""""""66666666""666666""""66""666"""6""666666))""""""6"66"66"""666666""""""666""66666666"""""#""""66666666""6""))666"66666"6666*****6""66666>""""))))))))66666666666"$"6666-6""""""""
66666666""""""66666666"6666666)")))"66666666""""66666666"""""""""""666666"""66"""66"""""""""""6"""))'$'!666666666666"6666666°žwst:courps6.5±ž:ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåå®åšåÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»å³3áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’ ØÄD“I501ileaf_page_string1:13-1¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿ¤13³1¡,m²².13â²/¥	öä¡`m²â¡,v²	Modeling´µPower¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡This´µchapterµprovidesµanµoverviewµofµmodelingµstaticµandµdynamic¡þépowerµforµCMOSµtechnology.µForµadditionalµinformationµand¡þ2definitionsµofµattributesµusedµinµmodelingµstaticµandµdynamicµpower¡þzseeµChapterµ7,µBuildingµaµTechnologyµLibrary"µandµChapterµ17,¡þÃBuildingµEnvironments."¡þfToµmodelµCMOSµstaticµandµdynamicµpower,µyouµmustµknowµabout¡þ®theµfollowing:¡þ	3²S¡X	3²Terminology¡þ	§²S¡X	§²Switchingµactivity¡þ
²S¡X
²Modelingµcellsµforµpower’Ä„D“I501ileaf_page_string1:13-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Û,Å¡Ä,Å	cÅ¡Ä	cÅ	cÛ¡Ä	cÛ,ÛÆÃÁÊËÃ¡ÄþÅÊÅÆÃ¥	öäÃÁÊË¡Ä,¹,£¡Ä,£	c£¡Ä	c£	c¹¡Ä	c¹,¹ÆÃÁÊËÃ¡Äþ£Ê£ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³2¡,Õ²Terminology¡þ{²The´µpowerµaµcircuitµdissipatesµfallsµintoµtwoµbroadµcategories:¡þó²S¡Xó²Staticµpower¡þ^²S¡X^²Dynamicµpower¡þ²Static´µPowerµµ¡þ¡²Static´µpowerµisµtheµpowerµdissipatedµbyµaµgateµwhenµitµisµnot¡þêswitching,µthatµis,µwhenµitµisµinactiveµorµstatic.¡þzStaticµpowerµisµdissipatedµinµaµnumberµofµways.µTheµlargest¡þÃpercentageµofµstaticµpowerµresultsµfromµsource³to³drain¡þsubthresholdµleakage.µThisµleakageµisµcausedµbyµreducedµthreshold¡þTvoltagesµthatµpreventµtheµgateµfromµturningµoffµcompletely.µStatic¡þœpowerµalsoµresultsµwhenµcurrentµleaksµbetweenµtheµdiffusionµlayers¡þåandµsubstrate.µForµthisµreason,µstaticµpowerµisµoftenµcalledµleakage¡þ.power.¡þó²Dynamic´µPowerµµ¡þ²Dynamic´µpowerµisµtheµpowerµdissipatedµwhenµaµcircuitµisµactive.µA¡þÈcircuitµisµactiveµanyµtimeµtheµvoltageµonµaµnetµchangesµdueµtoµsome¡þ	stimulusµappliedµtoµtheµcircuit.µBecauseµvoltageµonµaµnetµcanµchange¡þ	Ywithoutµnecessarilyµresultingµinµaµlogicµtransition,µdynamicµpower¡þ	¢canµresultµevenµwhenµaµnetµdoesµnotµchangeµitsµlogicµstate.¡þ
2Theµdynamicµpowerµofµaµcircuitµisµcomposedµof¡þ
ª²S¡X
ª²Internalµpower¡þ²S¡X²Switchingµpower’„D“I501ileaf_page_string1:13-3¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿ¤13³3¡þÏ²Internal´µPowerµ¡þ‚²During´µswitching,µaµcircuitµdissipatesµinternalµpowerµbyµtheµcharging¡þÊorµdischargingµofµanyµexistingµcapacitancesµinternalµtoµtheµcell.µThe¡þdefinitionµofµinternalµpowerµincludesµpowerµdissipatedµbyµa¡þ\momentaryµshort³circuitµbetweenµtheµPµandµNµtransistorsµofµaµgate,¡þ¤calledµshort³circuitµpower.¡þ[Figure 13³1µillustratesµcomponentsµofµpowerµdissipationµandµshows¡þ¤theµcauseµofµshort³circuitµpower.µInµthisµfigure,µthereµisµaµslowµrising¡þìsignalµatµtheµgateµinputµIN.µAsµtheµsignalµmakesµaµtransitionµfromµlow¡þ5toµhigh,µtheµNµtypeµtransistorµturnsµonµandµtheµPµtypeµtransistorµturns¡þ~off.µHowever,µduringµsignalµtransition,µbothµtheµPµandµNµtype¡þÆtransistorsµcanµbeµonµsimultaneouslyµforµaµshortµtime.µDuringµthis¡þtime,µcurrentµflowsµfromµV²¤d¤ÿô¤d¤ÿô²µtoµGND,µresultingµinµshort³circuitµpower.¡,Ø²&Figure 13³1³ComponentsµofµPowerµDissipation¡,²¥	öäÃËÁÊË¡Ä?Q?ç¡Ä?çôç¡ÄôçôX¡ÄôX?X¡Ä?X?	9¡Ä?	9ô	9¡Äô	9ô	©¡Äô	©?	©¡Ä?	©?
?ÆÃÊËÃ¡ÄÎçÎXÆÃÃ¡ÄÎ	©Î	9ÆÃÃÊË¡Å©©2Î©©ÆÃÊËÃ¡Ä©"8"ÆÃÃ¡ÄÎ	t8	tÆÃÃ¡Ä8#8	tÆÃÃ¡Ä:ÅÊÅÆÃÃ¡Ä?Ä©ÂÆÃÃ¡ÄkÈk	„ÆÃÃ¡ÄE	„	„ÆÃÃ¡ÄE	©	©ÆÃÃ¡Äk	©k
?ÆÃÃ¡Ìÿÿÿÿÿÿ±áÿÿÿÿÿÿ±á[2îŠîô	 	„ Ü 	„ÆÃÃÊË¡Ä+	s*	œ¡Ä*	œ	v¡Ä	v	t¡Ä	t+	sãÇÆÃÃ¡ÄŠþbò¡Äbòà¡ÄàŒï¡ÄŒïŠþÇÆÃÃ¡Ä?	­	¡Ä­	­	\ÆÃÊËÃ¡ÄŒ	X×	XÆÃÃ¡Ä­	‚­
=ÆÃÃ¡Ä?
?¶
?ÆÃÃ¡Ä¶
?¶
ŠÆÃÃÊË¡Ä¨
~½
Z¡Ä½
ZÃ
Š¡ÄÃ
Š¶
„¡Ä¶
„¨
~ÇÆÃÊËÃ¡Ä?Q?,ÆÃÃÊË¡Ä1H2¡Ä2OE¡ÄOE@F¡Ä@F1HÇÆÃÃ¡ÄÅ	7 	7¡Ä 	76Æ¡Ä6ÆÆÆÃÊËÃ¡ÄÅ	7[	7ÆÃÃÊË¡Ä?	)i	*¡Äi	*B	G¡ÄB	GA	8¡ÄA	8?	)ÇÆÃÊËÃ¡Ä 	7 ¡ÆÃÃÊË¡Äº›’¡Ä›’®¿¡Ä®¿Ÿ¼¡ÄŸ¼ºÇÆÃ²¡Ò	oTime¡
÷VoltageÊËÃ¡Ä}	ÆÃÃÊË¡Ä)ú	"¡Ä	"õ¡Äõø¡Äø)úÇÆÃ¡‘
´GND¡¤HRising signalÃ¡Ä­	‚Ó	‚¡ÄÓ	‚­	\¡Ä­	\ˆ	‚¡Äˆ	‚­	‚ÇÆÃÊËÃ¡Äm	Am	×ÆÃÃÊË¡Ä}	¾q	æ¡Äq	æ_	¹¡Ä_	¹n	¼¡Än	¼}	¾ÇÆÃ²¡³§IN²¡…¬OUT²¡	„N¡2P¡z
]I²¤l¤ÿø¤k¤ÿø¡
]²Leakage´µcurrent¡z
l²¤s¤ÿø¤c¤ÿø¡
²Short³circuitµcurrent¡z
Çl²¤s¤ÿø¤w¤ÿø¡
Ç²SwitchingµcurrentÃÁÊË¡ÅÀ»Ô»ÀÏÊ»Ê»ÇÆÃÃ¡ÅŸ¸³¸ŸÌ©¸©¸ÇÆÃ¡ý	I²¤s¤ÿø¤w¤ÿø¡áG²V²r¤	d¤ÿ÷¤	d¤ÿ÷¡Ó»²I²t¤
s¤ÿö¤
c¤ÿö¡c
²I²t¤
l¤ÿö¤
k¤ÿöÁÊËÃ¡Äi¯iEÆÃÃÊË¡Äy-mT¡ÄmT[(¡Ä[(j*¡Äj*y-ÇÆÃ¡_€²I²t¤
l¤ÿö¤
k¤ÿö²¡¤tat INÊËÃ¡Ä·	?u	?ÆÃÃÊË¡ÄR	0†	/¡Ä†	/U	S¡ÄU	SS	A¡ÄS	AR	0ÇÆÃÊËÃ¡Äº	=º§ÆÃÃÊË¡ÄªÀµ˜¡Äµ˜ÈÅ¡ÄÈÅ¹Â¡Ä¹ÂªÀÇÆÃ¡ì	uTime¡$ýVoltageÁÊËÃ¡ÄÌÁêÁÆÃÃ¡ÄêÁ*	ÆÃÃ¡Ä*	[	ÆÃ¡®	¯C²¤l¤ÿø¤o¤ÿø¤a¤ÿø¤d¤ÿø²¡˜OFalling signal ¡yat OUT¡y
ÿC²¤l¤ÿø¤o¤ÿø¤a¤ÿø¤d¤ÿø²¡
ÿCapacitanceµpower²¡Ê’cD“I501ileaf_page_string1:13-4¥	öä¥	öä¡8Á²âModeling´µPower¡.13³4¡þÉ²Short³circuit´µpowerµvariesµaccordingµtoµtheµcircuit.µForµcircuitsµwith¡þtransitionµtimes,µshort³circuitµpowerµcanµbeµsmall.µForµcircuitsµwith¡þZslowµtransitionµtimes,µshort³circuitµpowerµcanµaccountµforµupµtoµ30¡þ£percentµofµtheµtotalµpowerµdissipated.µShort³circuitµpowerµisµalso¡þìaffectedµbyµtheµdimensionsµofµtheµtransistorsµandµtheµload¡þ4capacitanceµatµtheµoutputµofµtheµgate.¡þ×Inµmostµsimpleµlibraryµcells,µinternalµpowerµisµdueµprimarilyµto¡þ short³circuitµpower.µForµthisµreason,µtheµtermsµinternalµpowerµand¡þhshort³circuitµpowerµareµoftenµconsideredµsynonymous.¡þL²Switching´µPowerµ¡þì²The´µswitchingµpowerµorµcapacitanceµpowerµofµaµdrivingµcellµisµthe¡þ4powerµdissipatedµbyµtheµchargingµandµdischargingµofµtheµload¡þ}capacitanceµatµtheµoutputµofµtheµcell.µTheµtotalµloadµcapacitanceµat¡þÆtheµoutputµofµaµdrivingµcellµisµtheµsumµofµtheµnetµandµgate¡þcapacitancesµonµtheµdriver.µBecauseµsuchµchargingµandµdischarging¡þWisµtheµresultµofµtheµlogicµtransitionsµatµtheµoutputµofµtheµcell,µasµlogic¡þ transitionsµincrease,µswitchingµpowerµincreases.µTheµswitching¡þèpowerµofµaµcellµisµtheµfunctionµofµbothµtheµtotalµloadµcapacitanceµat¡þ1theµcellµoutputµandµtheµrateµofµlogicµtransitions.¡þÓFigure 13³1µshowsµhowµtheµcapacitanceµ(C²¤l¤ÿô¤o¤ÿô¤a¤ÿô¤d¤ÿô²)µisµchargedµand¡þ	dischargedµasµtheµNµorµtheµPµtransistorµturnsµon.¡þ	¿Switchingµpowerµaccountsµforµ70µtoµ90µpercentµofµtheµpower¡þ
dissipationµofµanµactiveµCMOSµcircuit.’cD“I501ileaf_page_string1:13-5¥	öäÃËÁâÊË¡Ä,,õ¡Ä,õ	cõ¡Ä	cõ	c¡Ä	c,ÆÃÁÊËÃ¡Ä,õÊõÆÃ¥	öäÃÁÊË¡Ä,“,}¡Ä,}	c}¡Ä	c}	c“¡Ä	c“,“ÆÃÁÊËÃ¡Ä,}Ê}ÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿ¤13³5¡þÉ²There´µareµtwoµmeasuresµofµpowerµdissipationµthatµareµusefulµto¡þdesigners:µaverageµpowerµandµpeakµpower.µAverageµpowerµisµthe¡þZpowerµdissipatedµbyµaµcircuitµoverµaµrepresentativeµsetµofµinput¡þ£stimuli.µPeakµpowerµisµtheµmaximumµpowerµdissipatedµbyµaµcircuit¡þìoverµallµtheµinputµstimuli.µPeakµpowerµisµnormallyµassociatedµwithµa¡þ4particularµstimulus.¡,L²Switching´µActivityµ¡þ²Switching´µactivityµisµaµmetricµusedµtoµmeasureµtheµnumberµof¡þ^transitionsµ(0³to³1µandµ1³to³0)µforµeveryµnetµinµaµcircuitµwhenµinput¡þ¦stimuliµareµapplied.µSwitchingµactivityµisµtheµaverageµactivityµofµthe¡þïcircuitµwithµaµsetµofµinputµstimuli.¡þ™Aµcircuitµwithµhigherµswitchingµactivityµisµlikelyµtoµdissipateµmore¡þâpowerµthanµaµcircuitµwithµlowerµswitchingµactivity.µSwitchingµactivity¡þ*alsoµhasµaµcorrelationµtoµrandom³patternµtestabilityµofµtheµcircuit.µA¡þscircuitµwithµhigherµswitchingµactivityµimpliesµthatµaµrandomlyµselected¡þ»inputµpatternµmightµhaveµbetterµcoverage.¡,Ó²Modeling´µCellsµforµPowerµµ¡þ	œ²These´µareµtheµthreeµcomponentsµofµpowerµdissipation:¡þ
&²S¡X
&²Leakageµpower¡þ
²S¡X
²Internalµ(short³circuit)µpower¡þ²S¡X²Switchingµpower’		D“I501ileaf_page_string1:13-6¥	öä¥	öä¡8Á²âModeling´µPower¡.13³6¡þÉ²As´µthisµequationµshows,µleakageµpowerµisµsummedµoverµallµcellsµin¡þtheµdesignµtoµyieldµtheµdesign'sµtotalµleakageµpowerµ(totalµstatic¡þZpowerµdissipation):¡,¥*už¦ãÊ²¡zÖP²$¡çL¡²çe¡Çça¡Üçk¡ïça¡çg¡çe¡.çT¡Eço¡Zçt¡dça¡yçl²b¡Ö+²š¡ðÒ³²™¡Ï³ô²$¡çc¡úe¡l¡l¡s¡2(¡>i¡F)²¡ZÖP²$¡}çC¡˜çe¡­çl¡µçl¡½çL¡Òçe¡çça¡üçk¡ça¡$çg¡9çe²˜¡Oði¡‹²P²¤L¤ÿø¤e¤ÿø¤a¤ÿø¤k¤ÿø¤a¤ÿø¤g¤ÿø¤e¤ÿø¤T¤ÿø¤ÿüo¤ÿø¤t¤ÿø¤a¤ÿø¤l¤ÿø²¡¦‹T¤ÿûotal´µleakageµpowerµdissipationµofµtheµdesign¡ÔP²¤C¤ÿø¤e¤ÿø¤l¤ÿø¤l¤ÿø¤L¤ÿø¤e¤ÿø¤a¤ÿø¤k¤ÿø¤a¤ÿø¤g¤ÿø¤e¤ÿø²¡¦ÔLeakageµpowerµdissipationµofµeachµcell¥	öä²¡Ê¡þ¾As´µtheµfollowingµequationµshows,µtheµinternalµpowerµofµtheµcellsµand¡þtheµswitchingµpowerµofµtheµnetsµareµusedµtoµcomputeµtheµdesign's¡þOtotalµdynamicµpowerµdissipation:¡,w¥*iž²¡„ëP²$¡§ûD¡Âûy¡Õûn¡êûa¡ÿûm¡ûi¡&ûc²b¡Gë+²š¡¨ç³²™¡‡(³ô²$¡Ÿ(c¡²(e¡Ç(l¡Ï(l¡×(s¡ê'(¡ö(i¡þ')²f¡
å³Ò²¡ ëP²$¡CûC¡^ûe¡sûl¡{ûl¡ƒûI¡ûn¡¢ût¡¬ûe¡Áûr¡Íûn¡âûa¡÷ûl²˜¡i²b¡ë ²¡NëE²$¡qûi²f¡yå³Ó²b¡šë)²¡×½V²$¡ú¯2¡úÔd¡Ôd²¡ð2ÁÃ¡Ä×Þ$ÞÆ²š¡Lç³²™¡-(³ô²$¡E(n¡Z(e¡o(t¡y(s¡Œ'(¡˜(i¡ ')²f¡¬å³Ò²¡ÂëC²$¡èûL¡ýûo¡ûa¡'ûd²˜¡=i²b¡Në ²¡‹ëE²$¡®ûi²f¡¶å³ÓÁÊËÃ¡Ät;tcÆÃËÃ¡Ätc|cÆÃËÃ¡Ä|c|;ÆÃËÃ¡ÄÌ;ÌcÆÃËÃ¡ÄÌc˜cÆÃËÃ¡Ä˜c˜;ÆÃ²¡ØŸInternal Power¡ŸSwitching Power¡Ÿ_²P²¤D¤ÿø¤y¤ÿø¤n¤ÿø¤a¤ÿø¤m¤ÿø¤i¤ÿø¤c¤ÿø²¡Æ_T¤ÿûotal´µdynamicµpowerµdissipationµofµtheµdesign¡Ÿ¨P²¤C¤ÿø¤e¤ÿø¤l¤ÿø¤l¤ÿø¤I¤ÿø¤n¤ÿø¤t¤ÿø¤e¤ÿø¤r¤ÿø¤n¤ÿø¤a¤ÿø¤l¤ÿø²¡Æ¨Internalµpowerµofµeachµcell¡ŸñV²¤d¤ÿø¤d¤ÿø²¡-ñ¡ÆñSupplyµvoltage¡Ÿ;C²¤L¤ÿø¤o¤ÿø¤a¤ÿø¤d¤ÿø¡-;²¡Æ;Capacitiveµloadµofµeachµnet¥	öä²¡Êw’		mD“I501ileaf_page_string1:13-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,ï¡Ä,ï	cï¡Ä	cï	c¡Ä	c,ÆÃÁÊËÃ¡ÄþïÊïÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿ¤13³7¡,Õ²Modeling´µforµLeakageµPowerµ¡þ•²Regardless´µofµtheµphysicalµreasonsµforµleakageµpower,µlibrary¡þÝdevelopersµcanµannotateµgatesµwithµtheµapproximateµtotalµleakage¡þ&powerµdissipatedµbyµtheµgate.¡þÉNormally,µleakageµpowerµisµonlyµaµveryµsmallµcomponentµofµtheµtotal¡þpowerµ(typically,µmuchµlessµthanµ1µpercent),µbutµitµisµimportantµto¡þZmodelµforµdesignsµthatµareµinµanµidleµstateµmostµofµtheµtime.¡þ?²Using´µtheµcell_leakage_powerµAttributeµ¡þß²Represent´µleakageµpowerµinformationµinµLibraryµCompilerµsyntax¡þ'withµtheµcell³levelµcell_leakage_powerµattributeµandµassociated¡þplibrary³levelµattributesµthatµspecifyµscalingµfactors,µunits,µandµa¡þ¹defaultµvalue.¡þ\Leakageµpowerµcanµsometimesµdependµonµtheµlogicalµconditionµof¡þ¤theµcell.µSuchµleakageµpowerµisµstate³dependentµleakageµpower.¡þíYouµcanµmodelµstate³dependentµleakageµpowerµinµtheµtechnology¡þ6libraryµbyµdefiningµtheµwhenµattributeµinµtheµleakage_powerµgroup,¡þ~asµshownµinµtheµfollowingµexample:µµµ¡þ	^²Example¡þ	©²library(power_sample)´µ{¡þ	æ¡…	æleakage_power_unitµ:µ1nW;¡þ
#¡…
#default_cell_leakage_powerµ:µ0.1;¡þ
`¡…
`k_volt_cell_leakage_powerµ:µ0.000000;¡þ
¡…
k_temp_cell_leakage_powerµ:µ0.000000;¡þ
Ù¡…
Ùk_process_cell_leakage_powerµ:µ0.000000;¡þ¡…...’m)D“I501ileaf_page_string1:13-8¥	öäÃËÁâÊË¡Ä,B,,¡Ä,,	c,¡Ä	c,	cB¡Ä	cB,BÆÃÁÊËÃ¡Ä,,Ê,ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³8¡þÃ²¡…Ãcell(AN2)´µ{¡þ¡…¡...¡þ>¡…>¡>cell_leakage_powerµ:µ0.2;¡þ|¡…|¡|...¡þº¡…º¡ºleakage_powerµ()µ{¡þø¡…ø¡ø¡“øwhenµ:µ"A"µ;¡þ6¡…6¡6¡“6valuesµ("2.0")µ;¡þs¡…s¡s}¡þ±¡…±}¡þï}¡þŽ²See´µtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µforµthe¡þ×syntaxµofµtheµcell_leakage_powerµattribute.µSeeµChapterµ17,¡þ BuildingµEnvironments,"µforµinformationµaboutµscalingµfactors,µunits,¡þhandµdefaultµvalues.¡,ƒ²Modeling´µforµInternalµandµSwitchingµPowerµµ¡þN²These´µareµtwoµcompatibleµdefinitionsµofµinternalµorµshort³circuit¡þ—power:¡þ!²S¡X!²Short³circuitµpowerµisµtheµpowerµdissipatedµbyµtheµinstantaneous¡Xhshort³circuitµconnectionµbetweenµV²¤d¤ÿô¤d¤ÿô²µandµGNDµwhileµtheµgateµis¡X®inµtransition.¡þ	&²S¡X	&²Internalµpowerµisµallµpowerµdissipatedµwithinµtheµboundaryµofµthe¡X	mgate.µThisµdefinitionµdoesµnotµdistinguishµbetweenµtheµcell's¡X	³short³circuitµpowerµandµtheµcomponentµofµswitchingµpowerµthatµis¡X	úbeingµdissipatedµinternallyµtoµtheµcellµasµaµresultµofµthe¡X
Adrain³to³substrateµcapacitanceµthatµisµbeingµchargedµand¡X
‡discharged.µInµthisµdefinition,µtheµinterconnectµswitchingµpowerµis¡X
Îtheµpowerµdissipatedµbecauseµofµlumpedµwireµcapacitanceµand¡Xinputµpinµcapacitances,µbutµnotµtheµoutputµpinµcapacitance.’)ÊD“I501ileaf_page_string1:13-9¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿ¤13³9¡þÉ²Library´µdevelopersµmustµchooseµoneµofµtheseµdefinitionsµandµspecify¡þinternalµpowerµandµcapacitanceµnumbersµaccordingly.µLibrary¡þZdevelopersµcanµchooseµoneµofµtheµfollowing:µ¡þß²S¡Xß²Toµincludeµtheµeffectµofµtheµoutputµcapacitanceµinµthe¡X&internal_powerµattribute,µwhichµgivesµtheµoutputµpinsµzero¡Xlcapacitance¡þà²S¡Xà²Toµgiveµtheµoutputµpinsµaµrealµcapacitance,µwhichµcausesµthem¡X&toµbeµincludedµinµtheµswitchingµpower,µandµmodelµonly¡Xmshort³circuitµpowerµasµtheµcell'sµinternalµpower¡þþTogether,µinternalµpowerµandµswitchingµpowerµcontributeµtoµtheµtotal¡þGdynamicµpowerµdissipation.µLikeµswitchingµpower,µinternalµpowerµis¡þdissipatedµwheneverµanµoutputµpinµmakesµaµtransition.¡þ2Thisµdescriptionµisµnotµentirelyµaccurateµbecauseµsomeµpowerµis¡þ{dissipatedµasµaµresultµofµinternalµtransitionsµthatµdoµnotµcauseµoutput¡þÄtransitions.µHowever,µthoseµareµrelativelyµminorµinµcomparisonµ(they¡þconsumeµmuchµlessµpower)µandµshouldµbeµignored.¡þ¯Figure 13³2µshowsµtwoµexamplesµofµanµinputµtransitionµthatµdoesµnot¡þøcauseµaµcorrespondingµoutputµtransition.’Ê
ŸD“I501ileaf_page_string1:13-10¥	öäÃËÁâÊË¡Ä,	,	¡Ä,		c	¡Ä	c		c	¡Ä	c	,	ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³10¡,É²&Figure 13³2³Complex´µGateµExample¡,ý²¥	öäÃÁÊË¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥F Sšàòà\ˆPˆ¨ˆPãâÇÆÃÃâ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥ÿÿÿÿÿËûˆùˆQ\ òÁšÁòÁâÇÆÃâÃ¡ÄîàîÁÆÃÃ¡ÌÿÿÿÿÿÿÓUÿÿÿÿÿÿ¯›F:‹óãóMycy»ycâÇÆÃÃâ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥ÿÿÿÿÿËÂyydM³ãÔ‹ÔãÔâÇÆÃÃâ¡ÌÿÿÿÿÿÿÏÑÿÿÿÿÿÿùeÏ ‰òáòþ
c
»
cÆÃÃ¡ÌÿÿÿÿÿÿÑ‘ÿÿÿÿÿÿùdÿÿÿÿÿðâ8

eþ³áÓ‰ÓáÓÆÃÃ¡ÄòÆÃÃ¡ÄòœœÆÃ²¡üA¡ü¯B¡\ý0¡Š0³
>1Ã¡Ä®QQÆÃ¡PaZÃ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥F S7\\ù}%Í%%%ÍâÇÆÃÃâ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥ÿÿÿÿÿËÂ%u%Íù>7>>âÇÆÃâÃ¡ÄŒ\Œ=ÆÃÃ¡Ä‚‚ÆÃÃ¡ÄÆÃ¡šA¡š+BÃ¡Ä%Í–ÍÆÃ¡îÞXÃ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥F &7‡‡ù¨%ø%P%øâÇÆÃÃâ¡ÌÿÿÿÿÿÿÒÍÿÿÿÿÿÿ¯¥ÿÿÿÿÿËÂ%¡%ùùHi7iiâÇÆÃâÃ¡ÄŒ‡ŒhÆÃÃ¡Ä®®ÆÃÃ¡ÄDDÆÃ¡šºC¡šVDÃ¡Ä%ù–ùÆÃ¡î	YÃÊË¡Ä–Í–=¡Ä–==ÆÃÃ¡Ä–ù–ˆ¡Ä–ˆˆÆÃ¡HE¡›F¡OiZÊËÃ¡ÄçcwcÆÃ¡ùy1¡ù1¡ù¥1¡»11->0¡ËT1¡F0ÃÊË¡ÄDD7¡ÄD7œ7¡Äœ7œ¡ÄœDÆÃÃ¡Ä§ç§»¡Ä§»Ó»¡ÄÓ»Óç¡ÄÓç§çÆÃ¡è•NAND2¡:AO22¡K?1³
>0Ã¡Å‡?‡d¬?‡Q‡QÆÃ¡Ñò²Case´µ1¡OòCaseµ2²¡Êý¡þ©²In´µCaseµ1,µinputµBµofµtheµNAND2µgateµundergoesµaµ0³to³1µtransition¡þòbutµtheµoutputµremainsµstableµatµ0.µThisµmightµconsumeµaµsmall¡þ:amountµofµpowerµasµoneµofµtheµN³transistorsµopens,µbutµtheµcurrent¡þƒflowµwillµbeµveryµsmall.¡þInµCaseµ2,µinputµDµofµtheµmultilevelµgateµAO22µundergoesµaµ1³to³0¡þatransitionµcausingµaµ1³to³0µtransitionµatµinternalµpinµY.µHowever,¡þªoutputµZµremainsµstableµatµ1.µTheµsignificanceµofµtheµpower¡þòdissipationµinµthisµcaseµdependsµonµtheµloadµofµtheµinternalµwire¡þ;connectedµtoµY.µInµCaseµ1,µpowerµdissipationµisµnegligible,µbutµin¡þ„Caseµ2,µpowerµdissipationµmayµresultµinµsomeµinaccuracy.¡þ	R²Using´µtheµinternal_powerµGroupµµ¡þ	å²Represent´µinternalµpowerµinformationµwith¡þ
a²S¡X
a²Theµinternal_powerµgroupµinµaµpinµgroupµwithinµaµcell¡þ
Î²S¡X
Î²Theµassociatedµlibrary³levelµattributesµthatµspecifyµscalingµfactors¡Xandµaµdefaultµvalue’
ŸQD“I501ileaf_page_string1:13-11¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³11¡þÉ²The´µlibraryµgroupµsupportsµaµone³,µtwo³,µorµthree³dimensional¡þinternal_powerµlookupµtableµindexedµbyµtheµtotalµoutputµload¡þZcapacitancesµ(bestµmodel),µtheµinputµtransitionµtime,µorµboth.µThe¡þ£internalµpowerµlookupµtableµusesµtheµsameµsyntaxµasµtheµnonlinear¡þìlookupµtableµforµdelay.µSeeµChapterµ7,µBuildingµaµTechnology¡þ4Library,"µforµaµdescriptionµofµtheµpowerµlookupµtableµtemplates.¡þ×Youµcanµsetµinternal_powerµattributesµforµinputµpins,µwhichµare¡þ indexedµbyµinputµtransitionµtime.µInµthisµway,µyouµcanµmodelµgate¡þhAO22µinµFigure 13³3µor,µmoreµimportantly,µtheµpowerµconsumedµby¡þ±flip³flopµclockµorµresetµpins.¡þTNote:²¡Xœ²Theµinputµpinµpowerµisµaddedµtoµtheµoutputµpinµpower.µWhenµyou¡Xåmodelµtheµlibrary,µavoidµdoubleµcounting.¡þ‡Figure 13³3µshowsµhowµtoµcalculateµtheµinputµpinµpowerµinformation¡þÐforµtheµone³dimensionalµlookupµtableµdescribingµinternalµcellµU1.¡þFigure 13³4µshowsµtheµsameµthingµforµinternalµcellµU2.’Q&D“I501ileaf_page_string1:13-12¥	öä¥	öä¡8Á²âModeling´µPower¡.13³12¡,É²&Figure 13³3³Internal´µPowerµforµCellµU1¡,	²¥	öäÃÁÊË¡Ìÿÿÿÿÿÿ³ýÿÿÿÿÿÿ‰;‹/*Ø0´>ë¨ëë¨ãâÇÆÃÃâ¡Ìÿÿÿÿÿÿ³ýÿÿÿÿÿÿ‰;ÿÿÿÿÿ§íGíŸ¶	15Ù515âÇÆÃâÃ¡Ä--6ÆÃÃ¡ÄíŸOŸÆÃ²¡?aA¡B÷B¡ª¬ZÃ¡ÄŠ]ŠûÆÃ²¡$0¡Õ$1¡$10²¡]Ù(in units of fJ)²¡YInput Transition TimeÊËÃ¡Äû9ÆÃËÃ¡ÄØûØ]ÆÃÁÊËÃ¡Ä”T*TÆÃÃ¡Ä”ê*êÆÃ¡n Internal Power Table for Inputs A and BÊ¡ÜýP²$¡ÿI¡	n¡t²b¡6ý+²^¡võ³Ò²¡…ýE²$¡¨Z²b¡Êý ²¡ýA¡(ýF²$¡IZ²^¡`õ³Ó²b¡zý)²^¡·õ³Ò²¡ÆýE²$¡éA²b¡ý ²¡JýA¡kýF²$¡ŒA²^¡¥õ³Ó²b¡¿ý)²^¡üõ³Ò²¡ýE²$¡.B²b¡Rý ²¡ýA¡°ýF²$¡ÑB²^¡êõ³ÓÁÊËÃ¡Ä­û@SÆÃÃÊË¡ÄP=z:¡Äz:VZ¡ÄVZSK¡ÄSKP=ÇÆÃ²¡\ÝU1¡9“E²¤I¤ÿø¤n¤ÿø¤t¤ÿø´	µ²/²´µ²Transition¡¡ŒCalculating the internal power for cell U1,ÁÊËÃ¡ÄŠûúÆÃ¡è†²P²¤i¤ÿø¤n¤ÿø¤t¤ÿø²¡v†T¤ÿûotalµinternalµpowerµforµtheµcell¡èÀE¡vÀInternalµenergyµforµtheµpin¡èþAF¡vþActivityµfactorÁâÊËÃ¡Ä†á^ÝÆÃÃÁâÊË¡Ä_á_áÁâÊË¡Ä_áWÕ¡ÄWÕ†á¡Ä†áWí¡ÄWí_áâÇÆÃÁÊËÃ¡Ä†á†áÆÃÁÃ¡Ä†á^ÝÆÃÃÁÊË¡Ä_á_áÁ¡Ä_áWÕ¡ÄWÕ†á¡Ä†áWí¡ÄWí_áÇÆÃÁÊËÃ¡Ä†á†áÆÃÁâÊËÃ¡Äˆ[a]ÆÃÃÁâÊË¡Äa[a[ÁâÊË¡Äa[ZO¡ÄZOˆ[¡Äˆ[Zh¡ÄZha[âÇÆÃÁÊËÃ¡Äˆ[ˆ[ÆÃÁÃ¡Äˆ[a]ÆÃÃÁÊË¡Äa[a[Á¡Äa[ZO¡ÄZOˆ[¡Äˆ[Zh¡ÄZha[ÇÆÃÁÊËÃ¡Äˆ[ˆ[ÆÃÃÁÊË¡Ìÿÿÿÿÿÿ×Y7*ÿÿÿÿÿÿ=&ÿÿÿÿÿþ¤mÿÿÿÿÿcþO4ß\ãÃsØ«sÆÃËÃ¡ÄZYa]ÆÃ²¡Ê	’&¨D“I501ileaf_page_string1:13-13¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³13¡,É²&Figure 13³4³Internal´µPowerµforµCellµU2¡,a²¥*ûžfÃËÁÊË¡ÄØ‘Ø¡ÄØ¡Ä‘¡Ä‘Ø‘ÆÃÊËÃ¡ÄØt#OÆÃÃ¡ÄÚ(%NÆÃ²¡È‹Q¡1CLK¡økDÃ¡Ä‚u‚ÆÃÃ¡ÄØ\h\ÆÃÃ¡ÄØRhRÆÃÁÊËÃ¡Ä¨}¨&ÆÃÃ¡Ä¨&û&ÆÃ²¡ O0¡øQ1²¡,ý(in units of fJoules)²¡l‚Input Transition TimeÊËÃ¡Äü&ü}ÆÃ¡TGInternal Power Table for Input CLKÊËÃ¡Ä§Ù¯ÆÃÃÊË¡Äù¢#¦¡Ä#¦úÁ¡ÄúÁú²¡Äú²ù¢ãÇÆÃÊ¡ªlP²$¡Í|I¡×|n¡ì|t²b¡l+²’¡De³Ò²¡VlE²$¡y|Q²b¡¡l ²¡ÞlA¡ÿlF²$¡ |Q²’¡=e³Ó²b¡Zl)²’¡—e³Ò²¡©lE²$¡Ì|C¡ç|L¡ü|K²b¡ l ²¡]lA¡~lF²$¡Ÿ|C¡º|L¡Ï|K²’¡èe³Ó¡U¹²E²¤I¤ÿø¤n¤ÿø¤t¤ÿø´	µ²/²´µ²Transition¡GäU2¡X	Calculating the internal power for cell U2,¡¶Ü²P²¤i¤ÿø¤n¤ÿø¤t¤ÿø²¡DÜT¤ÿûotalµinternalµpowerµforµtheµcell¡¶E¡DInternalµenergyµforµtheµpin¡¶TAF¡DTActivityµfactorÊËÃ¡Äc7càÆÃÃ¡ÄcààÆÃ²¡[	0¡¢10²¡Á(in units of fJoules)²¡e<Output LoadÊËÃ¡Ä¸à¸7ÆÃ¡Ä"Internal Power Table for Output QÁÊËÃ¡Ä_T¸~ÆÃÃÊË¡Ä¦jÆ„¡ÄÆ„–„¡Ä–„žw¡Äžw¦jÇÆÃ¡
kE²¤I¤ÿø¤n¤ÿø¤t¤ÿø´	µ²/²´µ²TransitionÃÊË¡Ìÿÿÿÿÿþ¸©ÿÿÿÿÿÿÿ­ÿÿÿÿÿþ¹-eUkÿ?hõHe«8Uà8UÆÃÃË¡ÌÿÿÿÿÿÿôTÈÿÿÿÿÿÿ2&^•ÿÿÿÿþ6n;àx“3Ìl&ÌlÆÃÃËÁÊË¡Ä>@eN¡ÄeN7]¡Ä7]:N¡Ä:N>@ÇÆÃÃ¡Ä»ˆ•w¡Ä•wÄk¡ÄÄk¿z¡Ä¿z»ˆÇÆÃ¥	öä²¡Êa¡þ²Figure 13³5´µisµanµexampleµofµtheµtwo³dimensionalµlookupµtableµfor¡þgmodelingµoutputµpinµpowerµinµaµcell.’¨åD“I501ileaf_page_string1:13-14¥	öäÃËÁâÊË¡Ä,š,„¡Ä,„	c„¡Ä	c„	cš¡Ä	cš,šÆÃÁÊËÃ¡Ä,„Ê„ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³14¡,É²&Figure 13³5³Internal´µPowerµTableµforµCellµOutput¡,õ²¥	öäÁÊËÃ¡ÄªÆÃÃÊË¡Äý=¡Äý=÷¡Ä÷¡ÄãÇÆÃÊËÃ¡ÄªÙªÆÃÃÊË¡ÄÌ¸©£¡Ä©£Ù¡ÄÙÒª¡ÄÒªÌ¸ÇÆÃÊËÃ¡ÄªkÆÃÃÊË¡ÄšYÁK¡ÄÁK¨t¡Ä¨t¡f¡Ä¡fšYÇÆÃÊËÃ¡Ä·VÆÃÃ¡Äjk5kÆÃÃ¡Ä8®±ÆÃÃ¡ÄÐ+ç-ÆÃÃ¡ÄjªDKÆÃÃ¡Äÿ³UÆÃÃ¡Ä­ªÈKÆÃÃ¡Ä0ªlKÆÃÃ¡ÄÐª,KÆÃÁÊËÃ¡ÄÏÏÄÆÃÃ¡Ä•k•ÆÃÃ¡Ä(ÿ(ÆÃÃÊË¡Åÿ3ÿ

ÇÆÃÃ¡ÅÄÄÙÄÄÇÆÃÃ¡Åqq‡qqÇÆÃÃ¡ÅûûûûÇÆÃÃ¡Å¥¥»¥¥ÇÆÃÃ¡ÅÛ`Ûvñ`ÛkÛkÇÆÃÃ¡ÅŠ`ŠvŸ`ŠkŠkÇÆÃÃ¡Å;c;yQc;n;nÇÆÃÃ¡ÅÍdÍyãdÍnÍnÇÆÃÃ¡Å|`|v’`|k|kÇÆÃÃ¡Åª¦ª»¿¦ª±ª±ÇÆÃÃ¡Åa¥a»w¥a°a°ÇÆÃÃ¡Å¦»*¦±±ÇÆÃÃ¡Å®¤®¹Ä¤®¯®¯ÇÆÃÃ¡Åb§b¼w§b²b²ÇÆÃÃ¡ÅS!S6i!S+S+ÇÆÃÃ¡Å!73!,,ÇÆÃÃ¡ÅÒ#Ò8è#Ò.Ò.ÇÆÃÃ¡Åp$p9†$p.p.ÇÆÃÃ¡Å4"47I"4,4,ÇÆÃ²¡F0.098¡ôy0.587¡³À1.077¡Y01.566²"¡OR ²¡9ž0.03¡ì0.06¡‡0.09¡›0.12¡¥0.15Á	Ê	ËÃ¡Ä—9T7ÆÃÃ¡ÄU9°«ÆÃÃ¡ÄT7U'ÆÃ²¡gƒx¡¥ëy¡¾&z²"¡j/0.32¡Ng0.05ÃÁÊË¡Ä*¶¼¶¡Ä¼¶¼ò¡Ä¼ò*ò¡Ä*ò*¶âÇÆÃâ²¡Öw(0.098, 0.06, 0.234)¡ê(0.587, 0.06, 0.329)¡ÓÕ(0.098, 0.03, 0.227)¡jg(0.587, 0.03, 0.323)²¡6Energy/¡6;TransitionÁâÊËÃ¡Ä•ïêÆÃÃÁâÊË¡ÄºøºøÁâÊË¡ÄºøÅ¡ÄÅ•¡Ä•¾ê¡Ä¾êºøâÇÆÃÁÊËÃ¡Ä••ÆÃÁÃ¡Ä•ïêÆÃÃÁÊË¡ÄºøºøÁ¡ÄºøÅ¡ÄÅ•¡Ä•¾ê¡Ä¾êºøÇÆÃÁÊËÃ¡Ä••ÆÃÁâÊËÃ¡ÄÏÄÆÃÃÁâÊË¡Äë¨ë¨ÁâÊË¡Äë¨ù¬¡Äù¬ÏÄ¡ÄÏÄçš¡Äçšë¨âÇÆÃÁÊËÃ¡ÄÏÄÏÄÆÃÁÃ¡ÄÏÄÆÃÃÁÊË¡Äë¨ë¨Á¡Äë¨ù¬¡Äù¬ÏÄ¡ÄÏÄçš¡Äçšë¨ÇÆÃÁÊËÃ¡ÄÏÄÏÄÆÃÁâÊËÃ¡Ä(æÛÆÃÃÁâÊË¡ÄÁâÊË¡Äó¡Äó(¡Ä(þ¡ÄþâÇÆÃÁÊËÃ¡Ä((ÆÃÁÃ¡Ä(æÛÆÃÃÁÊË¡ÄÁ¡Äó¡Äó(¡Ä(þ¡ÄþÇÆÃÁÊËÃ¡Ä((ÆÃÁâÊËÃ¡ÄægˆgÆÃÃÁâÊË¡Ä¿g¿gÁâÊË¡Ä¿g·[¡Ä·[æg¡Äæg·t¡Ä·t¿gâÇÆÃÁÊËÃ¡ÄægægÆÃÁÃ¡ÄægˆgÆÃÃÁÊË¡Ä¿g¿gÁ¡Ä¿g·[¡Ä·[æg¡Äæg·t¡Ä·t¿gÇÆÃÁÊËÃ¡ÄægægÆÃÃÁÊË¡Ìÿÿÿÿÿÿä‘ÿÿÿÿÿÿóÿÿÿÿÿÿÎ>ÎJ—p<®žêgAYžÒAYÆÃÃË¡Ìÿÿÿÿÿÿýjÿÿÿÿÿÿÿþÿÿÿÿÿÿ¨%ÿÿÿÿÿý
'ë@&ÀŠ.BÎ„9ÎÆÃÊËÃ¡ÄækægÆÃÃÊË¡Äæg•¡Ä•ÏÄ¡ÄÏÄ(¡Ä(ægãÇÆÃ¡†TInput¡~Transition¡~¦Time¡‰WOutput ¡‹†Capacitance²¡Êõ¡,Ú²Calculating´µSwitchingµPowerµ¡þv²Switching´µ(orµinterconnect)µpowerµisµtheµpowerµdissipatedµbyµthe¡þ¿capacitiveµloadµonµaµnetµwheneverµtheµnetµmakesµaµlogical¡þtransition.µPowerµisµdissipatedµwhenµtheµcapacitiveµloadµisµcharged¡þPorµdischarged.µWithµinternalµpower,µswitchingµpowerµisµusedµto¡þ˜computeµtheµdesign'sµtotalµdynamicµpowerµdissipation.¡þ	!Switchingµpowerµinformationµisµaµfunctionµofµaµnet'sµtoggleµrate,¡þ	icapacitiveµloading,µassociatedµclockµfrequency,µandµtheµsupply¡þ	²voltageµlevelµofµtheµdesign.µExceptµforµtoggleµrate,µtheseµparameters¡þ	ûareµalreadyµsupportedµbyµtheµSynopsysµlibraryµmodel.¡þ
ƒAnµexplicitµunitsµattributeµisµnotµrequiredµforµswitchingµpowerµsince¡þ
Ìtheµunitsµareµimplicitlyµdeterminedµbyµtheµunitsµofµtheµvoltage,µtime,¡þandµcapacitanceµattributes.’å‚D“I501ileaf_page_string1:13-15¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³15¡þÉ²Because´µallµtoggleµratesµareµinternallyµadjustedµtoµaµperiodµdefined¡þbyµtheµlibrary³levelµtime_unitµattribute,µtheµresultingµvalueµof¡þZswitchingµpowerµisµdefinedµinµtermsµofµjoulesµperµsecµ(orµwatts)¡þ£multipliedµbyµtheµappropriateµpowerµofµ10µasµdeterminedµbyµtheµunits¡þìforµtime,µcapacitance,µandµvoltage.µForµexample,µinµaµlibraryµwith¡þ4timeµunitsµofµ1µns,µcapacitiveµunitsµofµ0.1ff,µandµvoltageµunitsµofµ1µV,¡þ}thisµisµtheµcalculationµforµtheµderivedµunitsµforµtheµlibrary'sµswitching¡þÆpower:¡,x¥*àž–ãÊ²¡HJP¡iJo¡…Jw¡©Je¡ÅJr¡ÖJ_¡òJU¡Jn¡2Ji¡=Jt¡KJs²b¡rJ+²¡²³Ò²¡À#1¡Ü#V²$¡ÿ2²¡³Ó²b¡-# ²¡j#0¡†#.¡”#1¡°#f¡¾#f¡i1¡2in¡NisÁÃ¡Ä²<Ì<Æ²b¡ÚJ+²¡J0¡5J.¡CJ1²c¡_Jm²¡zJW¥	öä²¡Êx¡þForµaµsingleµnetµwithµaµtotalµloadµofµ100ff,µaµtoggleµrateµofµ2¡þctransitionsµeveryµ100µns,µandµaµsupplyµvoltageµofµ5µV,µthisµisµthe¡þ¬calculationµofµtheµnet'sµpowerµdissipation:¡,·¥*Çžî²b¡B8+²¡‚82¡ž85²b¡Å8 ²¡8(¡80¡/8.¡=81²c¡Y8m²¡t8W¡£8)²b¡BÀ+²¡‚¨5²$¡ š2²¡à2Ã¡Ä‚²µ²Æ²b¡ÀÀ ²¡ýÀ1¡À0¡5À0²b¡\À ²¡µª2¡™ß1¡µß0¡Ñß0Ã¡Ä™²í²Æ²b¡øÀ ²¡5À(¡FÀ0¡bÀ.¡pÀ1²c¡ŒÀm²¡§ÀW¡ÖÀ)²b¡Bœ+²¡‚œ2¡žœ.¡¬œ5²c¡Èœm²¡ãœW¡^!²TR¡ì!T¤ÿûoggle´µrateµ(numberµofµtogglesµperµunitµtime)¡^]C²¤l¤ÿø¤o¤ÿø¤a¤ÿø¤d¤ÿø²¡ì]Capacitiveµloadµofµeachµnet²¡R4N¡v4e¡’4t¡ 4_¡¼4P¡Ý4o¡ù4w¡4e¡94r²b¡X4+²¡˜V²$¡»ø2¡»d¡Ðd²¡°T2Ã¡Ä˜'å'Æ²š¡0³²™¡íq³ô²$¡qn¡qe¡/qt¡9qs¡Lp(¡Xqi¡`p)²f¡l.³Ò²¡‚4C²$¡¨DL¡½Do¡ÒDa¡çDd²˜¡ýNi²b¡4 ²¡L4T¡k4R²$¡Di²f¡˜.³Ó¥	öä²¡Ê·’‚ÀD“I501ileaf_page_string1:13-16¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,›,…¡Ä,…	c…¡Ä	c…	c›¡Ä	c›,›ÆÃÁÊËÃ¡Äþ…Ê…ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³16¡,Õ²Defining´µInternalµPowerµGroups¡þ~²To´µspecifyµtheµcell'sµinternalµpowerµconsumption,µuseµthe¡þÇinternal_powerµgroupµwithinµtheµpinµgroupµinµtheµcell.µ¡þYNote:²¡X¢²Ifµtheµinternal_powerµgroupµisµnotµpresentµinµaµcell,µitµisµassumed¡Xêthatµtheµcellµdoesµnotµconsumeµanyµinternalµpower.µOptional¡X3complexµattributesµindex_1,µindex_2,µorµindex_3µcanµbeµdefined¡X{inµthisµgroupµtoµoverwriteµtheµindex_1,µindex_2,µorµindex_3¡XÄattributeµdefinedµinµtheµlibrary³levelµpower_lut_templateµtoµwhich¡Xitµrefersµ(seeµExample 13³1µlaterµinµthisµchapter).¡þÕ²internal_power´µGroup¡þd²To´µdefineµanµinternal_powerµgroupµinµaµpinµgroup,µuseµthese¡þ­attributes:¡þ&²S¡X&²equal_or_opposite_output¡þ’²S¡X’²power_level¡þý²S¡Xý²related_pin¡þh²S¡Xh²when¡þÔ²S¡XÔ²fall_powerµgroup¡þ	?²S¡X	?²powerµgroup¡þ	ª²S¡X	ª²rise_powerµgroup¡þ
²equal_or_opposite_outputµSimpleµAttributeµµµ¡þ
ƒ²Thisµattributeµdesignatesµoptionalµoutputµpinµorµpinsµwhose¡þ
ÌcapacitanceµLibraryµCompilerµusesµtoµaccessµaµthree³dimensional¡þtableµinµtheµinternal_powerµgroup.’ÀD“I501ileaf_page_string1:13-17¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³17¡þÉ²Syntax¡þ²equal_or_opposite_output´µ:µ"²(name²µ|µ²(name_list²"µ;¡þë²„name´µ²|²„µname_list¡þX²Nameµofµoutputµpinµorµpins.¡þúNote:²¡XC²Thisµpinµ(orµpins)µhasµtoµbeµfunctionallyµequalµorµoppositeµtoµthe¡XŒpinµnamedµinµtheµsameµpinµgroup.¡þj²Example¡þ¶²equal_or_opposite_output´µ:µ"Q"µ;¡þQ²Note:²¡X™²The´µoutputµcapacitanceµofµthisµpinµ(orµpins)µisµusedµasµthe¡Xâtotal_output2_net_capacitanceµvariableµinµtheµinternalµpower¡X*lookupµtable.¡þ¯²power_levelµSimpleµAttribute¡þ%²Thisµattributeµisµusedµforµmultipleµpowerµsupplyµmodeling.µInµthe¡þminternal_powerµgroupµatµtheµpinµlevel,µyouµcanµspecifyµtheµpower¡þ¶levelµusedµtoµcharacterizeµtheµtables.¡þ	YForµmoreµinformation,µreferµtoµtheµModelingµMultipleµPower¡þ	¡Supplies"µsectionµlaterµinµthisµchapter,µorµtheµInternalµPowerµGroup"¡þ	êsectionµinµ²&LibraryµCompilerµReferenceµManualµI².’‘D“I501ileaf_page_string1:13-18¥	öä¥	öä¡8Á²âModeling´µPower¡.13³18¡þÉ²Syntax¡þ²power_level´µ:µname"µ;¡þä²name¡þM²Name´µofµtheµpowerµrailµdefinedµinµtheµpower_supplyµgroup.¡þ#²Example¡þm²power_level´µ:µVDD1"µ;¡þ²For´µanµoutputµpinµwithinµaµmultipleµpowerµsupplyµcell,µregardlessµof¡þNtheµoutput_signal_levelµvalue,µyouµmustµdefineµinternal_power¡þ–tablesµforµallµtheµrail_connectionµofµtheµcell.¡þk²Example¡þ¶²cell´µ(µcell7µ)µ{¡þòµµareaµ:µ6.000µ;¡þ.µµrail_connection(PV1,µVDD1);¡þkµµrail_connection(PV2,µVDD2);¡þ§µµµµµpinµ(µZµ)µ{¡þãµµµµµµµµµdirectionµ:µoutputµ;¡þ µµµµµµµµµcapacitanceµ:µ0.000µ;¡þ\µµµµµµµµµfunctionµ:µ"(Aµ&µB)";¡þ˜µµµµµµµµµoutput_signal_levelµ:µVDD1;¡þÔµµµµµµµµµinternal_power()µ{¡þ	µµµµµµµµµµµrelated_pinµ:µ"A";¡þ	Mµµµµµµµµµµµpower_levelµ:µVDD1;µµµµ/*µmustµbeµthereµ*/¡þ	‰µµµµµµµµµµµpowerµ(power_load)µ{¡þ	Æµµµµµµµµµµµµµvaluesµ("µ0.111111,µ0.111111,µ0.111111,¡þ	ú0.111111,µ0.111111");¡þ
6µµµµµµµµµµµ}¡þ
rµµµµµµµµµ}¡þ
¯µµµµµµµµµinternal_power()µ{¡þ
âµµµµµµµµµµµrelated_pinµ:µ"A";¡þµµµµµµµµµµµpower_levelµ:µVDD2;µµµµ/*µmustµbeµthereµ*/’‘ÜD“I501ileaf_page_string1:13-19¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³19¡þÃ²´µµµµµµµµµµµpowerµ(power_load)µ{¡þ÷µµµµµµµµµµµµµvaluesµ("µ0.111111,µ0.111111,µ0.111111,¡þ+0.111111,µ0.111111");¡þgµµµµµµµµµµµ}¡þ£µµµµµ}¡þßµµ}¡þµµ...¡þW}¡þí²For´µanµinputµpinµwithinµaµmultipleµpowerµsupplyµcell,µyouµmustµdefine¡þ6anµinternal_powerµtableµtoµmatchµtheµinput_signal_levelµvalue.µThe¡þ~restµofµtheµrailµconnectionsµareµoptional.¡þN²Example¡þ—²cell´µ(µcell1µ)µ{¡þÓµµµµµrail_connection(PV1,µVDD1);¡þµµµµµrail_connection(PV2,µVDD2);¡þKµµµµµrail_connection(PV3,µVDD3);¡þ‡µ¡þÃµµµµµpinµ(µCPµ)µ{¡þÿµµµµµµµµµdirectionµ:µinputµ;¡þ;µµµµµµµµµinput_signal_levelµ:µVDD1;¡þ³µµµµµµinternal_power()µ{¡þïµµµµµµpower_levelµ:µVDD1µ;¡(ï¡¯ï/*µthisµtableµisµaµmustµ*/¡þ+µµµµµµµpowerµ(power_ramp)µ{¡þgµµµµµµµµµµµµµµvaluesµ("1.934150,µ2.148130,µ2.449420,¡þ›3.345050,µ4.305690");¡þ×µµµµµµµµµµµ}¡þ	µµµµµµ}¡þ	‹µµµµµµinternal_power()µ{¡þ	¿µµµµµµµpower_levelµ:µVDD2µ;µµµ/*µthisµtableµisµoptionalµ*/¡þ	ûµµµµµµµpowerµ(power_ramp)µ{¡þ
/µµµµµµµµµµµµµµvaluesµ("1.934150,µ2.148130,µ2.449420,¡þ
b3.345050,µ4.305690");¡þ
žµµµµµµµµµµµ}¡þ
Úµµµµµµ}¡þµµµµµ/*µnoµtableµforµVDD3µ*/’Ü)D“I501ileaf_page_string1:13-20¥	öä¥	öä¡8Á²âModeling´µPower¡.13³20¡þÃ²´µµµµµ}¡þý}¡þw²related_pin´µSimpleµAttributeµµµ¡þá²Thisµattributeµassociatesµtheµinternal_power²O²µgroupµwithµaµspecific¡þ*inputµorµoutputµpin.µIfµrelated_pinµisµanµoutputµpin,µitµmustµbe¡þrfunctionallyµequalµorµoppositeµtoµtheµpinµinµthatµpinµgroup.¡þþIfµtheµrelated_pinµisµanµinputµpinµorµoutputµpin,µtheµpin'sµtransition¡þGtimeµisµusedµasµaµvariableµinµtheµinternalµpowerµlookupµtable.¡þÿ²Syntax¡þG²related_pin´µ:µ"²(name²F´µ²(|²Fµ²(name_list²"´µ²G¤;¤ÿø¡þ²„name´µ²|²„µname_list¡þe²Nameµofµinputµorµoutputµpinµorµpins.¡þ²Example¡þe²related_pin´µ:µ"AµB"µ;¡þõ²The´µpinµorµpinsµinµtheµrelated_pinµattributeµdenoteµtheµpath¡þ=dependencyµforµtheµinternal_powerµgroup.µLibraryµCompiler¡þ†accessesµaµparticularµinternal_powerµgroupµifµthisµinputµpinµorµpins¡þÏcauseµtheµcorrespondingµoutputµpinµnamedµinµtheµpinµgroupµto¡þ	toggle.¡þ	£Ifµyouµwantµtoµdefineµaµtwo³dimensionalµorµthree³dimensionalµtable,¡þ	ìspecifyµallµfunctionallyµrelatedµpinsµinµaµrelated_pinµattribute.¡þ
a²whenµSimpleµAttributeµµµ¡þ
Ì²Thisµattributeµspecifiesµstate³dependentµconditionµthatµdetermines¡þwhetherµthisµpowerµtableµisµaccessed.’)	D“I501ileaf_page_string1:13-21¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³21¡þÉ²You´µcanµuseµtheµwhenµattributeµtoµdefineµone³,µtwo³,µor¡þthree³dimensionalµtablesµinµtheµinternal_powerµgroup.¡þÝ²Syntax¡þ'²when´µ:µ"²(Booleanµexpression²"µ;¡þð²Boolean´µexpression¡þW²Nameµorµnamesµofµinputµandµoutputµpinsµwithµcorresponding¡þ Booleanµoperators.¡þ7Table 13³1µlistsµtheµBooleanµoperatorsµvalidµinµaµwhenµstatement.¡,Ü²&Table 13³1³ValidµBooleanµOperatorsµ¡þE²¥	öä¡e²"OperatorÁã¡ÃÄþ!ÿ!ÿþþ!Ç¡ÃÄþ!)!))þ)þ!Ç²¡*E¥	öä¡Ge²"Description¡ÃÄP!Q!QPP!Ç¡ÃÄ*!Q!Q)*)*!Ç²¡PE¡þµ¥	öä¡Í²'¡ÃÄþ‘ÿ‘ÿðþðþ‘Ç¡ÃÄþ‘)‘)’þ’þ‘Ç²¡*µ¥	öä¡GÍ²invert´µpreviousµexpression¡ÃÄP‘Q‘QðPðP‘Ç¡ÃÄ*‘Q‘Q’*’*‘Ç²¡Pµ¡þ¥	öä¡-²!¡ÃÄþñÿñÿPþPþñÇ²¡*¥	öä¡G-²invertµfollowingµexpression¡ÃÄPñQñQPPPPñÇ²¡P¡þu¥	öä¡²^¡ÃÄþQÿQÿ°þ°þQÇ²¡*u¥	öä¡G²logicalµXOR¡ÃÄPQQQQ°P°PQÇ²¡Pu¡þÕ¥	öä¡í²*¡ÃÄþ±ÿ±ÿþþ±Ç²¡*Õ¥	öä¡Gí²logicalµAND¡ÃÄP±Q±QPP±Ç²¡PÕ¡þ5¥	öä¡M²&¡ÃÄþÿÿpþpþÇ²¡*5¥	öä¡GM²logicalµAND¡ÃÄPQQpPpPÇ²¡P5¡þ•¥	öä¡­²space¡ÃÄþqÿqÿÐþÐþqÇ²¡*•¥	öä¡G­²logicalµAND¡ÃÄPqQqQÐPÐPqÇ²¡P•¡þõ¥	öä¡	²+¡ÃÄþÑÿÑÿ	0þ	0þÑÇ²¡*õ¥	öä¡G	²logicalµOR¡ÃÄPÑQÑQ	0P	0PÑÇ²¡Põ¡þ	U¥	öä¡	m²|¡ÃÄþ	1ÿ	1ÿ	þ	þ	1Ç²¡*	U¥	öä¡G	m²logicalµOR¡ÃÄP	1Q	1Q	P	P	1Ç²¡P	U¡þ	µ¥	öä¡	Í²1¡ÃÄþ	‘ÿ	‘ÿ	ðþ	ðþ	‘Ç²¡*	µ¥	öä¡G	Í²signalµtiedµtoµlogicµ1¡ÃÄP	‘Q	‘Q	ðP	ðP	‘Ç²¡P	µ¡þ
¥	öä¡
-²0¡ÃÄþ	ñÿ	ñÿ
Pþ
Pþ	ñÇ¡ÃÄþ
I)
I)
Qþ
Qþ
IÇ²¡*
¥	öä¡G
-²signalµtiedµtoµlogicµ0¡ÃÄP	ñQ	ñQ
PP
PP	ñÇ¡ÃÄ*
IQ
IQ
Q*
Q*
IÇ²¡P
¡þ
Ì²The´µorderµofµprecedenceµofµtheµoperatorsµisµleftµtoµright,µwith¡þinversionµperformedµfirst,µthenµXOR,µthenµAND,µthenµOR.µ’	;D“I501ileaf_page_string1:13-22¥	öä¥	öä¡8Á²âModeling´µPower¡.13³22¡þÉ²Example¡þ²when´µ:µ"AµB"µ;¡þ’²fall_power´µGroupµµµ¡þ
²Aµfall_powerµgroupµisµdefinedµinµanµinternal_powerµgroupµinµaµpin¡þRgroupµatµtheµcellµlevel,µasµshownµhere:¡þÖ²¡…Öcell´µ(²(name²F¤ÿüs¤ÿø¤ÿüt¤ÿø¤ÿür¤ÿø¤ÿüi¤ÿø¤ÿün¤ÿø¤ÿüg¤ÿø²)µ{¡þ¡…¡pinµ(²(name²F¤ÿüs¤ÿø¤ÿüt¤ÿø¤ÿür¤ÿø¤ÿüi¤ÿø¤ÿün¤ÿø¤ÿüg¤ÿø²)µ{¡þQ¡…Q¡Q¡“Qinternal_powerµ()µ{¡þŽ¡…Ž¡Ž¡“Ž¡Žfall_powerµ(²(templateµname²)µ{¡þË²(¡…Ë¡Ë¡“Ë¡Ë...µfallµpowerµdescriptionµ...¡þ	²¡…	¡	¡“	¡	}¡þF¡…F¡F¡“F}¡þƒ¡…ƒ¡ƒ}¡þÀ¡…À}¡þ›²Complex´µAttributes¡þç²index_1´µ("²(float²,µ...,µ²(float²")µ;¡þ$index_2µ("²(float²,µ...,µ²(float²")µ;¡þbindex_3µ("²(float²,µ...,µ²(float²"µ;¡þŸvaluesµ("²(float²,µ...,µ²(float²")µ;¡þz²float¡þè²Floating³point´µnumbersµthatµidentifyµtheµamountµofµenergyµperµriseµor¡þ	1fallµtransitionµtheµcellµconsumesµinternally.¡þ
²index_1,µindex_2,µindex_3µAttributesµµµµµµ¡þ
ƒ²Theseµattributesµidentifyµinternalµcellµconsumptionµperµtransition.¡þ
ÌDefineµtheµindex_Xµattributeµinµtheµinternal_powerµgroupµorµinµthe¡þlibrary³levelµpower_lut_templateµgroup.’;ÄD“I501ileaf_page_string1:13-23¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³23¡þÉ²values´µAttributeµµ¡þ:²Thisµattributeµdefinesµinternalµcellµconsumptionµperµfallµtransition.¡þåDesignµCompilerµconvertsµtheµvaluesµattributeµinformationµtoµpower¡þ.consumptionµbyµmultiplyingµtheµunitµbyµtheµfactorµtransitionµor¡þvper_unit_time,µasµshownµhere:¡þ²S¡X²nindex_1µfloating³pointµnumbersµifµtheµtableµisµone³dimensional¡þy²S¡Xy²nindex_1µxµnindex_2µfloating³pointµnumbersµifµtheµtableµis¡X¿two³dimensional¡þ7²S¡X7²nindex_1µxµnindex_2µxµnindex_3µfloating³pointµnumbersµifµthe¡X~tableµisµthree³dimensional¡þnindex_1,µnindex_2,µandµnindex_3µareµtheµsizeµofµindex_1,µindex_2,¡þ_andµindex_3µinµthisµgroupµorµinµtheµpower_lut_templateµgroupµit¡þ¨inherits.µQuotationµmarksµ(²Q""²)µencloseµaµgroup.µEachµgroup¡þñrepresentsµaµrowµinµtheµtable.¡þÞ²Example¡þ*²values´µ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,¡þ^¡…^¡^¡“^2.8");¡þþ²Library´µdevelopersµmustµensureµthatµtheµinternalµpowerµunitsµexactly¡þ	Fmatchµtheµderivedµunitsµofµswitchingµpowerµ(CV²¤ÿî2¤²).µThisµisµnecessary¡þ	becauseµDesignµCompilerµaddsµtheµinternal_powerµandµswitching¡þ	Øpowerµtoµgetµtheµdynamicµpowerµconsumptionµwithoutµany¡þ
 considerationµofµunits.¡þ
ÌFallµpowerµisµusedµwhenµtheµpinµhasµaµfallµtransition.µIfµyouµhaveµa¡þfall_powerµgroup,µyouµmustµhaveµaµrise_powerµgroup.’ÄSD“I501ileaf_page_string1:13-24¥	öä¥	öä¡8Á²âModeling´µPower¡.13³24¡þÉ²Example 13³1,´µlaterµinµthisµchapter,µshowsµcellsµthatµcontainµinternal¡þpowerµinformationµinµtheµpinµgroup.¡þ–²powerµGroupµµµ¡þ²Theµpowerµgroupµisµdefinedµwithinµanµinternal_powerµgroupµinµaµpin¡þUgroupµatµtheµcellµlevel,µasµshownµhere:¡þÖ²library´µ(²(name²)µ{¡þ¡…cellµ(²(name²G¤)¤ÿø´µ¤{¤ÿø¡þP²¡…P¡Ppin´µ(²(name²G´µ¤{¤ÿø¡þ²¡…¡¡“internal_power´µ()µ{¡þÊ¡…Ê¡Ê¡“Ê¡Êpowerµ(²(templateµname²)µ{¡þ¡…¡¡“¡...µ²(powerµtemplateµdescription²µ...¡þC¡…C¡C¡“C¡C}¡þ€¡…€¡€¡“€}¡þ½¡…½¡½}¡þú¡…ú}¡þ7}¡þ²Complex´µAttributes¡þY²index_1´µ("²(float²,µ...,µ²(float²")µ;¡þ–index_2µ("²(float²,µ...,µ²(float²")µ;¡þÓindex_3µ("²(float²,µ...,µ²(float²")µ;¡þvaluesµ("²(float²,µ...,µ²(float²")µ;¡þç²float¡þ	S²Floating³point´µnumbersµthatµidentifyµtheµamountµofµenergyµperµfall¡þ	œtransitionµtheµcellµconsumesµinternally.’S,D“I501ileaf_page_string1:13-25¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³25¡þÉ²index_1,´µindex_2,µindex_3µAttributesµµµµµµ¡þ+²Theseµattributesµidentifyµinternalµcellµconsumptionµperµtransition.¡þsDefineµtheµindex_Xµattributeµinµtheµinternal_powerµgroupµorµinµthe¡þ¼library³levelµpower_lut_templateµgroup.¡þs²valuesµAttributeµµ¡þÕ²Thisµattributeµdefinesµinternalµcellµconsumptionµperµriseµorµfall¡þtransition.¡þ©DesignµCompilerµconvertsµtheµvaluesµattributeµinformationµtoµpower¡þñconsumptionµbyµmultiplyingµtheµunitµbyµtheµfactorµtransitionµor¡þ:per_unit_time,µasµshownµhere:¡þ¯²S¡X¯²nindex_1µfloating³pointµnumbersµifµtheµtableµisµone³dimensional¡þ²S¡X²nindex_1µxµnindex_2µfloating³pointµnumbersµifµtheµtableµis¡X]two³dimensional¡þÅ²S¡XÅ²nindex_1µxµnindex_2µxµnindex_3µfloating³pointµnumbersµifµthe¡Xtableµisµthree³dimensional¡þŠnindex_1,µnindex_2,µandµindex_3µareµtheµsizeµofµindex_1,µindex_2,¡þÒandµindex_3µinµthisµgroupµorµinµtheµpower_lut_templateµgroupµit¡þinherits.µQuotationµmarksµ(²Q""²)µencloseµaµgroup.µEachµgroup¡þdrepresentsµaµrowµinµtheµtable.¡þ	²Example¡þ	b²values´µ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,2.8");¡þ	ò²Library´µdevelopersµmustµensureµthatµtheµinternalµpowerµunitsµmatch¡þ
:exactlyµtheµderivedµunitsµofµswitchingµpowerµ(CV²¤ÿî2¤²).µThisµis¡þ
ƒnecessaryµbecauseµDesignµCompilerµaddsµtheµinternal_powerµand¡þ
Ìswitchingµpowerµtoµgetµtheµdynamicµpowerµconsumptionµwithoutµany¡þconsiderationµofµunits.’,äD“I501ileaf_page_string1:13-26¥	öä¥	öä¡8Á²âModeling´µPower¡.13³26¡þÉ²Example 13³1,´µlaterµinµthisµchapter,µshowsµcellsµthatµcontainµinternal¡þpowerµinformationµinµtheµpinµgroup.¡þ¯Thisµpowerµisµaccessedµwhenµtheµpinµhasµaµriseµtransitionµorµfall¡þ÷transition.µTheµvaluesµinµtheµtableµspecifyµtheµaverageµpowerµper¡þ@transition.¡þÝExample 13³1µshowsµcellsµthatµcontainµpowerµinformationµinµthe¡þ&internal_powerµgroupµinµaµpinµgroup.¡þ¦²rise_powerµGroupµµµ¡þ²Aµrise_powerµgroupµisµdefinedµinµanµinternal_powerµgroupµinµaµpin¡þbgroupµatµtheµcellµlevel,µasµshownµhere:¡þß²cell´µ(²(name²)µ{¡þ¡…pinµ(²(name²)µ{¡þX¡…X¡Xinternal_powerµ()µ{¡þ”¡…”¡”¡“”rise_powerµ(²(templateµname²)µ{¡þÑ²(¡…Ñ¡Ñ¡“Ñ...µriseµpowerµdescriptionµ...¡þ²¡…¡¡“}¡þI¡…I¡I}¡þ†¡…†}¡þÂ}¡þ’²Complex´µAttributes¡þÝ²index_1´µ("²(float²,µ...,µ²(float²")µ;¡þ	index_2µ("²(float²,µ...,µ²(float²")µ;¡þ	Uindex_3µ("²(float²,µ...,µ²(float²");¡þ	‘valuesµ("²(float²,µ...,µ²(float²")µ;¡þ
b²float¡þ
Ì²Floating³point´µnumbersµthatµidentifyµtheµamountµofµenergyµperµrise¡þtransitionµtheµcellµconsumesµinternally.’ä%D“I501ileaf_page_string1:13-27¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³27¡þÉ²index_1,´µindex_2,µindex_3µAttributesµµµµµµ¡þ/²Theseµattributesµidentifyµinternalµcellµconsumptionµperµriseµtransition.¡þwDefineµtheµindex_Xµattributeµinµtheµinternal_powerµgroupµorµinµthe¡þÀlibrary³levelµpower_lut_templateµgroup.¡þ†²valuesµAttributeµµ¡þë²Thisµattributeµdefinesµinternalµcellµconsumptionµperµriseµtransition.¡þDesignµCompilerµconvertsµtheµvaluesµattributeµinformationµtoµpower¡þÈconsumptionµbyµmultiplyingµtheµunitµbyµtheµfactorµtransitionµor¡þper_unit_time,µasµshownµhere:¡þ‹²S¡X‹²nindex_1µfloating³pointµnumbersµifµtheµtableµisµone³dimensional¡þ÷²S¡X÷²nindex_1µxµnindex_2µfloating³pointµnumbersµifµtheµtableµis¡X>two³dimensional¡þª²S¡Xª²nindex_1µxµnindex_2µxµnindex_3µfloating³pointµnumbersµifµthe¡Xðtableµisµthree³dimensional¡þvnindex_1,µnindex_2,µandµindex_3µareµtheµsizeµofµindex_1,µindex_2,¡þ¾andµindex_3µinµthisµgroupµorµinµtheµpower_lut_templateµgroupµit¡þinherits.µQuotationµmarksµ(²Q""²)µencloseµaµgroup.µEachµgroup¡þPrepresentsµaµrowµinµtheµtable.¡þ	²Example¡þ	^²values´µ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,2.8");¡þ	ò²Library´µdevelopersµmustµensureµthatµtheµinternalµpowerµunitsµmatch¡þ
:exactlyµtheµderivedµunitsµofµswitchingµpowerµ(CV²¤ÿî2¤²).µThisµis¡þ
ƒnecessaryµbecauseµDesignµCompilerµaddsµtheµinternal_powerµand¡þ
Ìswitchingµpowerµtoµgetµtheµdynamicµpowerµconsumptionµwithoutµany¡þconsiderationµofµunits.’%cD“I501ileaf_page_string1:13-28¥	öä¥	öä¡8Á²âModeling´µPower¡.13³28¡þÉ²Rise´µpowerµisµaccessedµwhenµtheµpinµhasµaµriseµtransition.µIfµyou¡þhaveµaµrise_powerµgroup,µyouµmustµhaveµaµfall_powerµgroup.¡þ¦Example 13³1,µlaterµinµthisµchapter,µshowsµcellsµthatµcontainµinternal¡þïpowerµinformationµinµtheµpinµgroup.¡þ¶²SyntaxµforµOne³Dimensional,µTwo³Dimensional,µandµ¡þùThree³DimensionalµTables¡þ_²Youµcanµdefineµaµone³,µtwo³,µorµthree³dimensionalµtableµinµthe¡þ§internal_powerµgroupµinµeitherµofµtheµfollowingµtwoµways:¡”/Usingµtheµpowerµgroup.µForµtwo³µandµthree³dimensional¡”xtables,µdefineµtheµpowerµgroupµandµtheµrelated_pinµattribute.¡”ç²or¡”U²Usingµaµcombinationµofµtheµrelated_pinµattribute,µthe¡”žfall_powerµgroup,µandµtheµrise_powerµgroup.¡þ²S¡X²Aµone³dimensionalµtableµusingµtheµpowerµgroup:µµµ¡”i²internal_power()´µ{¡”¤¡¤powerµ(²(templateµname²)µ{¡”à¡à¡¢àvalues("²(float²,µ...,µ²(float²")µ;¡”¡}¡”W}¡þÒ²²S¡XÒ²A´µone³dimensionalµtableµusingµfall_powerµandµrise_power:¡”	:²internal_power()´µ{¡”	v¡	vfall_powerµ(²(templateµname²)µ{¡”	±¡	±¡¢	±values(²(float²,µ...,µ²(float²");¡”	í¡	í}¡”
(¡
(rise_powerµ(²(templateµname²)µ{¡”
d¡
d¡¢
dvalues("²(float²,µ...,µ²(float²");¡”
Ÿ¡
Ÿ}¡”
Û}’cµD“I501ileaf_page_string1:13-29¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³29¡þÉ²²S¡XÉ²A´µtwo³dimensionalµtableµusingµtheµpowerµgroupµandµrelated_pin:µ¡Xµ¡”€²internal_power()´µ{¡”½¡½related_pinµ:µ"²(name²F´µ²(|²Fµ²(name_list²"´µ;¡”ú¡úpowerµ(²(templateµname²)µ{¡”7¡7¡¢7values("²(float²,µ...,µ²(float²")µ;¡”t¡t}¡”°}¡þ-²²S¡X-²A´µtwo³dimensionalµtableµusingµrelated_pin,µfall_power,µand¡Xtrise_power:¡”ä²internal_power()´µ{¡”!¡!related_pinµ:µ"²(name²F´µ²(|²Fµ²(name_list²"´µ;¡”^¡^fall_powerµ(²(templateµname²)µ{¡”›¡›¡¢›values(²(float²,µ...,µ²(float²");¡”Ø¡Ø}¡”¡rise_powerµ(²(templateµname²)µ{¡”R¡R¡¢Rvalues("²(float²,µ...,µ²(float²");¡”¡}¡”Ë}¡þH²²S¡XH²A´µthree³dimensionalµtableµusingµtheµpowerµgroupµand¡Xrelated_pin:µµµ¡”ÿ²internal_power()´µ{¡”<¡<related_pinµ:µ"²(name²F´µ²(|²Fµ²(name_list²"´µ;¡”y¡ypowerµ(²(templateµname²)µ{¡”¶¡¶¡¢¶values("²(float²,µ...,µ²(float²")µ;¡”ó¡ó}¡”	0¡	0equal_or_opposite_outputµ:µ"²(nameµ²|µ²(name_list²"µ;¡”	m}’µ™D“I501ileaf_page_string1:13-30¥	öä¥	öä¡8Á²âModeling´µPower¡.13³30¡þÉ²²S¡XÉ²A´µthree³dimensionalµtableµusingµrelated_pin,µfall_power,µand¡Xrise_power:¡”€²internal_power()´µ{¡”½¡½related_pinµ:µ"²(name²F´µ²(|²Fµ²(name_list²"´µ²G¤;¤ÿø¡”ú²¡úfall_powerµ(²(templateµname²)µ{¡”7¡7¡¢7valuesµ("²(float²,µ...,µ²(float²")µ;¡”t¡t}¡”°¡°rise_powerµ(²(templateµname²)µ{¡”í¡í¡¢ívaluesµ("²(float²,µ...,µ²(float²")µ;¡”*¡*}¡”g¡gequal_or_opposite_outputµ:µ"²(nameµ²|µ²(name_list²"µ;¡”¤}¡þ?²Example 13³1´µshowsµcellsµthatµcontainµinternalµpowerµinformationµin¡þˆtheµpinµgroup.¡,9²&Example 13³1³AµLibraryµwithµInternalµPowerµ¡,¿²-library(internal_power_example)´µ{¡,ó¡þó...¡,(¡þ(power_lut_template(output_by_cap_and_trans)µ{¡,]¡þ]¡…]variable_1µ:µtotal_output_net_capacitanceµ;¡,‘¡þ‘¡…‘variable_2µ:µinput_transition_timeµ;¡,Æ¡þÆ¡…Æindex_1µ("0.0,µ5.0,µ20.0");¡,ú¡þú¡…úindex_2µ("0.0,µ1.0,µ20.0");¡,/µµµµ}¡,dµµµµ...¡,˜µµµµcell(AN2)µ{¡,Íµµµµµµµµpin(Z)µ{¡,	µµµµµµµµµµµµdirectionµ:µoutputµ;¡,	6µµµµµµµµµµµµinternal_powerµ{¡,	kµµµµµµµµµµµµµµpower(output_by_cap_and_trans)µ{¡,	Ÿµµµµµµµµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,µ2.8");¡,	Ôµµµµµµµµµµµµµµµµ}¡,
µµµµµµµµµµµµµµµµrelated_pinµ:µ"AµB"µ;¡,
=µµµµµµµµµµµµ}¡,
rµµµµµµµµ}’™TD“I501ileaf_page_string1:13-31¥	öäÃËÁâÊË¡Ä,Å,¯¡Ä,¯	c¯¡Ä	c¯	cÅ¡Ä	cÅ,ÅÆÃÁÊËÃ¡Äþ¯Ê¯ÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿŠ13³31¡,½²-´µµµµµµµµpin(A)µ{¡,ñµµµµµµµµµµµµdirectionµ:µinputµ;¡,&µµµµµµµµµµµµ...¡,Zµµµµµµµµ}¡,µµµµµµµµpin(B)µ{¡,Äµµµµµµµµµµµµdirectionµ:µinputµ;¡,øµµµµµµµµµµµµ...¡,-µµµµµµµµ}¡,aµµµµ}¡þÿ²Internal´µPowerµExamplesµµ¡þž²The´µexamplesµinµthisµsectionµshowµhowµtoµdescribeµtheµinternal¡þçpowerµofµtheµtwo³inputµsequentialµgateµinµFigure 13³6µusingµone³,¡þ/two³,µandµthree³dimensionalµlookupµtables.¡,á²&Figure 13³6³LibraryµCellµwithµinternal_powerµInformation¡,Å²¥	öäÁÊËÃ¡ÄÞsnsÆÃÃ¡ÄÞénéÆÃ²¡{A¡ýBÃ¡Ä¶£'£ÆÃ¡Y­ZÃÊË¡Ä¯ã¡ÄããC¡ÄãC¯C¡Ä¯C¯ÆÃ¡Ãcell_w_2d_powerÊËÃ¡ÄãñsñÆÃÃ¡ÄãgsgÆÃ¡ùD¡{CKÃ¡Ä¼!,!ÆÃ¡T+QÃÊË¡Ä´•è•¡Äè•èÁ¡ÄèÁ´Á¡Ä´Á´•ÆÃ¡+cell_w_1d_power²¡ÊÅ’TŠD“I501ileaf_page_string1:13-32¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³32¡þÏ²One³Dimensional´µPowerµLookupµTableµ¡þb²Example 13³2´µisµtheµlibraryµdescriptionµofµaµcellµwithµa¡þªone³dimensionalµinternal_powerµtableµdefinedµinµtheµpinµgroups.¡,N²&Example 13³2³One³DimensionalµInternalµPowerµTable¡þÝ²library(internal_power_example)´µ{¡þ...¡þT¡…Tpower_lut_template(output_by_cap)µ{¡þ¡…¡variable_1µ:µtotal_output_net_capacitanceµ;¡þË¡…Ë¡Ëindex_1("0.0,µ5.0,µ20.0")µ;¡þ¡…}¡þC...¡þ~¡…~power_lut_template(input_by_trans)µ{¡þº¡…º¡ºvariable_1µ:µinput_transition_timeµ;¡þö¡…ö¡öindex_1µ("0.0,µ1.0,µ2.0")µ;¡þ1¡…1}¡þm...¡þ©¡…©cell(FLOP1)µ{¡þä¡…ä¡äpin(CP)µ{¡þ ¡… ¡ ¡“ directionµ:µinputµ;¡þ\¡…\¡\¡“\internal_power()¡þ—¡…—¡—¡“—¡—powerµ(input_by_trans)µ{¡þÓ¡…Ó¡Ó¡“Ó¡Ó¡¡Óvalues("1.5,µ2.6,µ4.7")µ;¡þ¡…¡¡“¡}¡þJ¡…J¡J¡“J}¡þ†¡…†¡†}¡þÂ...¡þý¡…ý¡ýpin(Q)µ{¡þ	9¡…	9¡	9¡“	9directionµ:µinputµ;¡þ	u¡…	u¡	u¡“	uinternal_power()¡þ	°¡…	°¡	°¡“	°¡	°power(output_by_cap)µ{¡þ	ì¡…	ì¡	ì¡“	ì¡	ì¡¡	ìvalues("9.0,µ5.0,µ2.0")µ;¡þ
(¡…
(¡
(¡“
(¡
(}¡þ
c¡…
c¡
c¡“
c}¡þ
Ÿ¡…
Ÿ¡
Ÿ}¡þ
Û¡…
Û}¡þ}’ŠID“I501ileaf_page_string1:13-33¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³33¡þÉ²In´µExample 13³2,µtheµinputµtransitionµtimeµatµpinµCPµisµ1.0.µThe¡þoutputµloadµatµpinµQµisµ5.0.µTheµtoggleµrateµatµpinµCPµisµ2µtransitions¡þZperµ100µns.µµTheµtoggleµrateµatµpinµQµisµ1µtransitionµperµ100µns.¡þ£Usingµthisµinformationµtoµindexµintoµtheµtable,µyouµgetµtheµfollowing¡þìresults:¡þƒ²ECP´µ=µ2.6¡þÃEQµµ=µ5.0¡þn²If´µtheµtime_unitµattributeµvalueµinµtheµtechnologyµlibraryµisµ1µns,µthis¡þ¶isµtheµtotalµinternalµpowerµconsumedµbyµthisµgate:¡þN²P²G¤i¤ÿø¤n¤ÿø¤t¤ÿø´µ¡…N¤=¤ÿø²´µ(ECPµ*µACP)µ+µ(EQµ*µAQ)¡þŽ¡…Ž¡Ž=µ(2.6µ*µ2µ*µ10-2)µ+µ(5.0µ*µ1µ*µ10-2)¡þÎ¡…Î¡Î=µ0.102¡þl²The´µactivityµfactorsµAFQµandµAFCPµareµadjustedµtoµtheµtime_unit¡þµspecifiedµinµtheµtechnologyµlibrary.µTheµunitµofµPintµdependsµonµthe¡þþunitµofµtheµvoltage_unitµandµcapacitive_load_unitµattributesµinµthe¡þFtechnologyµlibrary.µIfµtheµfollowingµattributesµareµspecifiedµinµthe¡þtechnologyµlibrary,µtheµunitµofµtheµinternal_powerµisµ10³15¡þ×joule/transition.¡þo²voltage_unit´µ:µ1V";¡þ¯capacitive_load_unit(1.0,µff");¡þ	Z²Because´µtheµunitµofµtheµactivityµfactorµisµtransition/ns,µtheµtotal¡þ	¢internalµpowerµdissipationµofµthisµgateµis¡,
3²-´µµµµµµµµµ0.102²B´µ*µ10²ž¤ÿù-¤¤ÿù1¤¤ÿù5¤²-´µjoule/transitionµ*µtransition/10-9secondµ=µ0.102µuW.¡þ
Ì²For´µaµdetailedµexplanationµofµsettingµtoggle_rateµandµinternal_power¡þcalculation,µreferµtoµthe²&µPowerµProductsµReferenceµManual².’I¬D“I501ileaf_page_string1:13-34¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³34¡þÏ²Two³Dimensional´µPowerµLookupµTableµ¡þW²Example 13³3´µisµtheµlibraryµdescriptionµofµaµcellµwithµa¡þŸtwo³dimensionalµinternal_powerµtableµdefinedµinµtheµpinµgroups.¡,6²&Example 13³3³Two³DimensionalµInternalµPowerµTable¡,µ²-library(internal_power_example)´µ{¡,é¡þé...¡,¡þpower_lut_template(output_by_cap_and_trans)µ{¡,R¡þR¡…Rvariable_1µ:µtotal_output_net_capacitanceµ;¡,†¡þ†¡…†variable_2µ:µinput_transition_timeµ;¡,»¡þ»¡…»index_1µ("0.0,µ5.0,µ20.0");¡,ï¡þï¡…ïindex_2µ("0.0,µ1.0,µ20.0");¡,#¡þ#}¡,X¡þX...¡,Œ¡þŒcell(AN2)µ{¡,À¡þÀ¡…Àpin(Z)µ{¡,õ¡þõ¡…õ¡õdirectionµ:µoutputµ;¡,)¡þ)¡…)¡)internal_powerµ{¡,^¡þ^¡…^¡^¡“^power(output_by_cap_and_trans)µ{¡,’¡þ’¡…’¡’¡“’¡’valuesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,¡,À1.5,µ2.8");¡,ô¡þô¡…ô¡ô¡“ô}¡,(¡þ(¡…(¡(¡“(related_pinµ:µ"AµB"µ;¡,]¡þ]¡…]¡]}¡,‘¡þ‘¡…‘}¡,Å¡þÅ¡…Åpin(A)µ{¡,ú¡þú¡…ú¡údirectionµ:µinputµ;¡,.¡þ.¡….¡....¡,c¡þc¡…c}¡,—¡þ—¡…—pin(B)µ{¡,Ë¡þË¡…Ë¡Ëdirectionµ:µinputµ;¡,	¡þ	¡…	¡	...¡,	4¡þ	4¡…	4}¡,	h¡þ	h}¡þ	ò²In´µthisµexample,µtheµinputµtransitionµtimeµatµpinµAµisµ1.25.µInput¡þ
:transitionµtimeµatµpinµBµisµ2.5.µTheµoutputµloadµatµpinµZµisµ5.0.µThe¡þ
ƒtoggleµrateµatµpinµAµisµ2µtransitionsµperµ100µns.µTheµtoggleµrateµatµpin¡þ
ÌBµisµ3µtransitionsµperµ100µns.µTheµtoggleµrateµatµpinµZµisµ1µtransition¡þperµ100µns.’¬rD“I501ileaf_page_string1:13-35¥	öäÃËÁâÊË¡Ä,­,—¡Ä,—	c—¡Ä	c—	c­¡Ä	c­,­ÆÃÁÊËÃ¡Äþ—Ê—ÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿŠ13³35¡þÉ²Using´µthisµinformation,µtheµweightedµinputµtransitionµtimeµis¡þcalculatedµasµfollows.µ(Inµthisµcase,µyouµuseµtheµweightedµinput¡þZtransitionµtimeµbecauseµthereµareµtwoµinputs.)¡,Ø²-´µµµµµµµµµ(1.25µ*µ2µ*µ10-2µ+µ2.5µ*µ3µ*µ10-2)µ/µ(2µ*µ10-2µµ+µ3µ*µ10-2µ)µ=µ2.0¡þf²Using´µtheµweightedµtransitionµtimeµandµtheµloadingµatµpinµZµtoµindex¡þ®intoµtheµtable,µyouµobtainµtheµfollowingµresults:¡þ2²E²G¤z¤ÿø²´µ=µ1.8¡þÏ²If´µtheµtime_unitµinµtheµtechnologyµlibraryµisµ1µns,µthisµisµtheµtotal¡þinternalµpowerµconsumedµbyµthisµgate:¡þœ²P²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²´µ¡…œ=¡œE²G¤z¤ÿø²µ*µAF²G¤z¤ÿø¡þÙ²¡…Ù¡Ù=¡“Ù1.8µ*µ1µ*µ10²G¤ÿô-¤¤ÿô2¤¡þ²¡…¡=¡“0.018¡þ³²The´µactivityµfactorµAFZµisµadjustedµtoµtheµtime_unitµspecifiedµinµthe¡þütechnologyµlibrary.µTheµunitµofµinternal_powerµcanµbeµappliedµhere.¡þç²Three³Dimensional´µPowerµLookupµTableµ¡þŠ²Example 13³4´µisµtheµlibraryµdescriptionµforµaµcellµwithµa¡þÒthree³dimensionalµinternal_powerµtable.¡,	ˆ²&Example 13³4³Three³DimensionalµInternalµPowerµTable¡,
²-library(internal_power_example)´µ{¡,
Eµµµµµ...¡,
zµµµµµpower_lut_template(output_by_cap1_cap2_and_trans)µ{¡,
®µµµµµµµµµµvariable_1µ:µtotal_output1_net_capacitanceµ;¡,
ãµµµµµµµµµµvariable_2µ:µtotal_output2_net_capacitanceµ;¡,µµµµµµµµµµvariable_3µ:µinput_transition_timeµ;’ròD“I501ileaf_page_string1:13-36¥	öä¥	öä¡8Á²âModeling´µPower¡.13³36¡,½²-´µµµµµµµµµµindex_1µ("0.0,µ5.0,µ20.0")µ;¡,ñµµµµµµµµµµindex_2µ("0.0,µ5.0,µ20.0")µ;¡,&µµµµµµµµµµindex_3µ("0.0,µ1.0,µ2.0")µ;¡,Zµµµµµ}¡,µµµµµ...¡,Äµµµµµcell(FLOP1)µ{¡,øµµµµµµµµµµpin(CP)µ{¡,-µµµµµµµµµµµµµµµdirectionµ:µinputµ;¡,aµµµµµµµµµµµµµµµ...¡,–µµµµµµµµµµ}¡,Ëµµµµµµµµµµpin(D)µ{¡,ÿµµµµµµµµµµµµµµµdirectionµ:µinputµ;¡,4µµµµµµµµµµµµµµµ...¡,hµµµµµµµµµµ}¡,µµµµµµµµµµpin(S)µ{¡,Òµµµµµµµµµµµµµµµdirectionµ:µinputµ;¡,µµµµµµµµµµµµµµµ...¡,;µµµµµµµµµµ}¡,oµµµµµµµµµµpin(R)µ{¡,¤µµµµµµµµµµµµµµµdirectionµ:µinputµ;¡,Ùµµµµµµµµµµµµµµµ...¡,µµµµµµµµµµ}¡,Bµµµµµµµµµµpin(Q)µ{¡,vµµµµµµµµµµµµµµµdirectionµ:µoutputµ;¡,«µµµµµµµµµµµµµµµinternal_power()µ{¡,ßµµµµµµµµµµµµµµµµµµµµpower(output_by_cap1_cap2_and_trans)µ{¡,µµµµµµµµµµµµµµµµµµµµvalues("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,µ.8",\¡,Iµµµµµµµµµµµµµµµµµµµµµµµµµµµµ"2.1,µ3.6,µ4.2",µ"1.6,µ2.0,µ3.4",µ"0.9,µ1.5,µ.7"µ\¡,}µµµµµµµµµµµµµµµµµµµµµµµµµµµµ"2.0,µ3.5,µ4.1",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.4,2.6");¡,²µµµµµµµµµµµµµµµµµµµµ}¡,æµµµµµµµµµµµµµµµµµµµµequal_or_opposite_outputµ:µ"QN"µ;¡,µµµµµµµµµµµµµµµµµµµµrelated_pinµ:µ"CP"µ;¡,Pµµµµµµµµµµµµµµµ}¡,„µµµµµµµµµµµµµµµ...¡,¹µµµµµµµµµµ}¡,íµµµµµµµµµµ...¡,	"µµµµµ}¡,	W}¡þ	ç²In´µthisµexample,µtheµinputµtransitionµtimeµatµpinµCPµisµ1.0.µTheµoutput¡þ
0loadµatµpinµQNµisµ5.0.µTheµoutputµloadµatµpinµQµisµ5.0.µTheµtoggle¡þ
yrateµatµpinµQµisµ1µtransitionµperµ100µns.’òôD“I501ileaf_page_string1:13-37¥	öäÃËÁâÊË¡Ä,Þ,È¡Ä,È	cÈ¡Ä	cÈ	cÞ¡Ä	cÞ,ÞÆÃÁÊËÃ¡Ä,ÈÊÈÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿŠ13³37¡þÉ²Using´µtheµtransitionµtimeµandµtheµloadingµatµpinµQµandµQNµtoµindex¡þintoµtheµtable,µyouµgetµtheµfollowingµresults:¡þ‰²E²G¤Q¤ÿø²´µ=µ2.0¡þ²If´µtheµtime_unitµinµtheµtechnologyµlibraryµisµ1µns,µthisµisµtheµtotal¡þfinternalµpowerµconsumedµbyµthisµgate:¡þÞ²P²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²´µ¡…Þ=¡ÞE²G¤Q¤ÿø²µ*µAF²G¤Q¤ÿø¡þ²¡…¡=¡“2.0µ*µ1µ*µ10²G¤ÿô-¤¤ÿô2¤¡þU²¡…U¡U=¡“U0.020¡þé²The´µactivityµfactorµAFQµisµadjustedµtoµtheµtime_unitµspecifiedµinµthe¡þ2technologyµlibrary.µTheµunitµofµinternal_powerµcanµbeµappliedµhere.¡,²Modeling´µLibrariesµwithµMultipleµPowerµSupplies¡þÌ²This´µsectionµdescribesµhowµtoµmodelµmultipleµpowerµsupply¡þtechnologyµlibrariesµwithµLibraryµCompilerµSyntax.µInµmost¡þ]technologies,µfactorsµsuchµasµoperatingµtemperature,µsupply¡þ¥voltage,µandµtheµmanufacturingµprocessµcanµstronglyµaffectµcircuitµ¡þîperformance.µHowever,µtheµpowerµsupplyµforµmanyµnewµprocesses¡þ7hasµswitchedµfromµ5Vµtoµ3.3Vµtoµlowerµtheµpowerµconsumption.¡þTherefore,µtoµsupportµmoreµthanµoneµpowerµsupplyµ(forµexample,¡þÈ3.3Vµandµ5V),µyouµneedµtoµmakeµseveralµchangesµtoµyour¡þ	technologyµlibrary.¡þ	¦Libraryµdevelopersµannotateµtheµlibraryµcellsµwithµeitherµtheµdefault¡þ	îsingleµpowerµsupplyµwithµtheµexistingµsyntaxµorµwithµtwoµorµmore¡þ
7powerµsuppliesµusingµtheµpower_supplyµgroup.¡þ
ÌTheµpower_supplyµgroup,µdefinedµatµtheµlibraryµlevel,µspecifiesµthe¡þvariousµnominalµvoltageµsuppliesµneededµinµthisµlibrary.’ôûD“I501ileaf_page_string1:13-38¥	öäÃËÁâÊË¡Ä,P,:¡Ä,:	c:¡Ä	c:	cP¡Ä	cP,PÆÃÁÊËÃ¡Äþ:Ê:ÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³38¡þÉ²In´µadditionµtoµtheµoperatingµtemperature,µtheµdefaultµvoltageµsupply,¡þandµtheµmanufacturingµprocess,µtheµoperating_conditionsµgroup,¡þZdefinedµatµtheµlibraryµlevel,µspecifiesµvoltageµvaluesµinµnominal¡þ£operatingµconditionsµforµallµpowerµrailsµdefinedµinµtheµpower_supply¡þìgroup.¡þ„Youµcanµmodelµcellsµwithµmultipleµpowerµsuppliesµinµtheµtechnology¡þÌlibraryµbyµdefiningµtheµrail_connectionµattributeµinµtheµcellµgroupµand¡þtheµinput_signal_level/output_signal_levelµinµtheµpinµgroup.¡þ­Youµcanµspecifyµwhichµvoltageµisµusedµtoµcharacterizeµan¡þöinternal_powerµofµaµpinµbyµdefiningµaµpower_levelµattributeµinµthe¡þ?internal_powerµgroup.¡þ×Toµreportµmultipleµpowerµsupplyµinformationµofµtheµtechnology¡þlibrary,µuseµtheµreport_libµ-powerµcommand.¡þ¸µForµmoreµexamples,µreferµtoµsectionsµlaterµinµthisµchapter.¡þŠ²Defining´µPowerµSupplyµGroupsµµ¡þ²To´µspecifyµaµtechnologyµlibraryµwithµmultipleµpowerµsupplies,µuseµthe¡þhpower_supplyµgroupµatµtheµlibraryµlevelµasµshownµhere:¡þâ²¡…âlibrary(name)´µ{¡þ	¡…	¡	power_supply()µ{¡þ	J¡…	J¡	Jµµ...µpowerµsupplyµinformationµ...¡þ	}¡…	}¡	}}¡þ	±¡…	±}¡þ
ƒ²Note:²¡X
Ì²If´µtheµpower_supplyµgroupµisµnotµpresentµinµaµlibrary,µitµis¡Xassumedµthatµtheµlibraryµhasµoneµdefaultµpowerµsupply.’û³D“I501ileaf_page_string1:13-39¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³39¡þÉ²To´µdefineµaµpower_supplyµgroupµinµaµlibrary,µuseµtheseµattributes¡þ7²S¡X7²default_power_rail¡þš²S¡Xš²power_rail¡þ5²default_power_railµSimpleµAttribute¡þ‘²Thisµattributeµdesignatesµbyµdefaultµtheµvalueµofµtheµvoltageµfor¡þÚnominalµoperatingµconditions.¡þH²Syntax¡þ–²default_power_rail´µ:µ²(power_supply_name²F¤ÿüs¤ÿø¤ÿüt¤ÿø¤ÿür¤ÿø¤ÿüi¤ÿø¤ÿün¤ÿø¤ÿüg¤ÿø²µ;¡þ²Example¡þ[²default_power_railµ:µVDD1µ;¡þ
²power_rail´µComplexµAttribute¡þg²Theµpower_supplyµgroupµcanµdefineµoneµorµmoreµpower_rail¡þ¯attributes.µTheµpower_railµattributeµidentifiesµallµpowerµsuppliesµthat¡þøhaveµtheµnominalµoperatingµconditionsµ(definedµinµthe¡þAoperating_conditionsµgroup)µandµtheµnominalµvoltageµvalues.µRefer¡þ‰alsoµtoµtheµDefiningµOperatingµConditions"µsectionµearlierµinµthis¡þÒmanual.¡þ@²Syntax¡þŽ²power_rail´µ²((power_supply_name²F¤ÿüs¤ÿø¤ÿüt¤ÿø¤ÿür¤ÿø¤ÿüi¤ÿø¤ÿün¤ÿø¤ÿüg¤ÿø²(,voltage_value²F¤ÿüf¤ÿø¤ÿül¤ÿø¤ÿüo¤ÿø¤ÿüa¤ÿø¤ÿüt¤ÿø²()¡þ	²&power_supply_name²*¤ÿüs¤ÿô¤ÿüt¤ÿô¤ÿür¤ÿô¤ÿüi¤ÿô¤ÿün¤ÿô¤ÿüg¤ÿô²¡X	NSpecifies´µaµpowerµsupplyµnameµthatµcanµbeµusedµlaterµfor¡X	–reference.µYouµcanµreferµtoµitµbyµassigningµaµstringµtoµtheµrail¡X	ßconnectionµinput_signal_levelµorµoutput_signal_levelµattribute.¡þ
:²&voltage_value²*¤ÿüf¤ÿô¤ÿül¤ÿô¤ÿüo¤ÿô¤ÿüa¤ÿô¤ÿüt¤ÿô²¡X
ƒIdentifiesµtheµvoltageµvalueµassociatedµwithµtheµstring.µTheµvalue¡X
Ìisµinµtheµunitsµyouµdefineµwithinµtheµlibraryµgroupµvoltage_unit¡Xattribute.’³üD“I501ileaf_page_string1:13-40¥	öäÃËÁâÊË¡Ä,å,Ï¡Ä,Ï	cÏ¡Ä	cÏ	cå¡Ä	cå,åÆÃÁÊËÃ¡ÄþÏÊÏÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³40¡þÉ²Example¡þ#²power_rail´µ(VDD1,µ5.0)µ;¡þ²Defining´µCellsµwithµMultipleµPowerµSupplies¡þØ²To´µdefineµaµcellµwithµmultipleµpowerµsupplies,µuseµthe¡þ!rail_connectionµattributes.¡þ2²rail_connection´µComplexµAttribute¡þì²Specifies´µtheµpresenceµofµmultipleµpowerµsuppliesµinµtheµcell.µAµcell¡þ4withµmultipleµpowerµsuppliesµcontainsµtwoµorµmoreµrail_connection¡þ}attributes.µTheµrail_connectionµattributeµdefines¡þ²S¡X²Theµpowerµconnectionµtoµbeµusedµasµtheµvalueµforµthe¡XZpower_levelµattributeµinµtheµinternal_powerµgroupµ(definedµinµthe¡X pinµgroup).¡þ!²S¡X!²Theµnameµofµtheµpowerµsupplyµgroupµalreadyµpredefinedµinµthe¡Xhpower_supplyµgroupµatµtheµlibraryµlevel¡þ	Defineµtheµrail_connectionµattributeµasµshownµhere.¡þ	¦²Syntax¡,	ú²-cell´µ(name)µ{¡,
3¡þ
3...¡,
l¡þ
lrail_connectionµ(connection_name²B¤s¤ÿù¤t¤ÿù¤r¤ÿù¤i¤ÿù¤n¤ÿù¤g¤ÿù²-,µpower_supply_name²B¤s¤ÿù¤t¤ÿù¤r¤ÿù¤i¤ÿù¤n¤ÿù¤g¤ÿù²-)µ;¡,
¦¡þ
¦...¡,
ß}’üD“I501ileaf_page_string1:13-41¥	öäÃËÁâÊË¡Ä,,y¡Ä,y	cy¡Ä	cy	c¡Ä	c,ÆÃÁÊËÃ¡ÄþyÊyÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿŠ13³41¡þÉ²Example 13³5´µshowsµaµcellµwithµrail_connectionµattributes.¡,f²&Example 13³5³cellµwithµrail_connectionµAttributes¡þ¸²cell´µ(IBUF1)µ{¡þó¡…ó...¡þ.¡….rail_connectionµ(PV1,µVDD1)µ;¡þi¡…irail_connectionµ(PV2,µVDD2)µ;¡þ¤¡…¤...¡þß}¡þr²For´µmoreµinformationµaboutµsyntaxµforµmultipleµpowerµsupplies,µsee¡þºchaptersµaboutµlibraryµgroups,µcellµgroups,µandµpinµgroupsµinµthe¡þ²&LibraryµCompilerµReferenceµManualµVolumeµ1².¡þÉ²Defining´µtheµSignalµLevelµPinµAttributes¡þW²At´µtheµpinµlevel,µallµinputµandµinoutµpinsµofµaµcellµthatµhasµmoreµthan¡þŸoneµpowerµsupplyµrequireµanµinput_signal_levelµattributeµandµan¡þèoutput_signal_levelµattributeµtoµdefineµwhichµvoltageµlevelµtoµapplyµto¡þ1theµpins.¡þ÷²input_signal_level,´µoutput_signal_levelµSimple¡þBAttributes¡þÐ²You´µcanµdefineµvariousµvoltageµlevelsµinµtheµpinµgroupµofµaµcellµwith¡þ	multipleµpowerµsupplies.µYouµcanµalsoµdefineµvariousµvoltageµlevels¡þ	ainµtheµpinµgroupµofµaµcellµwithµtheµinput_signal_levelµor¡þ	©output_signal_levelµattribute.µIfµtheµinput_signal_levelµor¡þ	òoutput_signal_levelµisµmissing,µyouµcanµapplyµtheµdefaultµpower¡þ
;supplyµnameµtoµtheµcell.¡þ
ÌTheseµattributesµassignµtheµpower_supply_nameµalreadyµdefined¡þwithµtheµpower_railµattributeµinµtheµpower_supplyµgroup.’iD“I501ileaf_page_string1:13-42¥	öä¥	öä¡8Á²âModeling´µPower¡.13³42¡þÉ²If´µtheµpinµgroupµdoesµnotµcontainµanµinput_signal_levelµattributeµor¡þoutput_signal_levelµattribute,µLibraryµCompilerµappliesµtheµpower¡þZsupplyµnameµalreadyµdefinedµbyµtheµdefault_power_railµattributeµin¡þ£theµpower_supplyµgroupµatµtheµlibraryµlevel.¡þ#²Syntax¡þs²input_signal_level:´µ²(string²µ;¡þÒoutput_signal_level:µ²(string²µ;¡þ8²string¡XName´µofµtheµpowerµsupplyµalreadyµdefinedµatµtheµlibraryµlevel.¡þå²Example¡þ5²input_signal_level:´µVDD1µ;¡þ”output_signal_level:µVDD2µ;¡þ²Example 13³6´µshowsµaµlibraryµwithµaµpower_supplyµgroup,µnominal¡þ^operatingµconditions,µandµanµoperating_conditionsµgroup.¡,²&Example 13³6³LibraryµExampleµwithµpower_supplyµGroupµµ¡þ˜²library´µ(multiple_power_supply)µ{¡þÔ¡…Ôpower_supplyµ(µ)µ{µ/*µDefineµbeforeµoperating¡þ¡…¡¡“¡¡¡¡(conditionsµandµcells.µ*/¡þD¡…D¡Ddefault_power_railµ:µVDD0µ;¡þ¡…¡power_railµ(VDD1,µ5.0)µ;¡þ½¡…½¡½power_railµ(VDD2,µ3.3)µ;¡þù¡…ù¡ù...¡þ	5¡…	5}¡þ	q¡…	qnom_processµ:µ1.0µ;¡þ	­¡…	­nom_temperatureµ:µ25.0µ;¡þ	ê¡…	ênom_voltageµ:µ5.0µ;¡þ
&¡…
&...¡þ
b¡…
boperating_conditionsµ(MPSS)µ{¡þ
ž¡…
ž¡
žprocessµ:µ1.5µ;¡þ
Ú¡…
Ú¡
Útemperatureµ:µ70µ;¡þ¡…¡voltageµ:µ4.75µ;’iœD“I501ileaf_page_string1:13-43¥	öäÃËÁâÊË¡Ä,B,,¡Ä,,	c,¡Ä	c,	cB¡Ä	cB,BÆÃÁÊËÃ¡Äþ,Ê,ÆÃ¥	öä¥	öä¡rÁ²Modeling´µPower¡Ô¤ÿŠ13³43¡þÃ²¡…Ã¡Ãtree_type´µ:µ"worse_case_tree"µ;¡þþ¡…þ¡þpower_railµ(VDD1,µ4.8)µ;¡þ:¡…:¡:power_railµ(VDD2,µ2.9)µ;¡þu¡…u}¡þ±}¡þ|²Multiple´µPowerµSupplyµLibraryµRequirements¡þ²Library´µCompilerµconfirmsµthatµaµlibraryµwithµmultipleµpowerµsupplies¡þUmeetsµtheµfollowingµrequirements:¡þÐ²S¡XÐ²Theµpower_supply²µ²groupµisµdefinedµbeforeµthe¡Xoperating_conditionsµgroupµandµbeforeµtheµcellµgroups.¡þƒ²S¡Xƒ²Theµpower_supplyµnamesµassociatedµwithµthe¡XÉdefault_power_railµandµpower_railµattributesµareµuniqueµwithinµa¡Xlibrary.¡þ|²S¡X|²Aµpower_railµattributeµinµanµoperating_conditionsµgroupµhasµa¡XÃpowerµsupplyµstringµnameµpredefinedµinµtheµpower_supply²¡X	²group.¡þu²S¡Xu²Allµtheµpowerµsupplyµnamesµdefinedµbyµtheµpower_railµattribute¡X¼inµtheµpower_supplyµgroupµexistµinµtheµoperating_conditions¡Xgroup.¡þo²S¡Xo²Anµinput_signal_levelµattributeµandµanµoutput_signal_level¡Xµattributeµinµaµpinµgroupµhaveµpredefinedµpowerµsupplyµstring¡Xünamesµinµtheµpower_supplyµgroup.¡þ	h²S¡X	h²Theµrail_connectionµnamesµwithinµaµcellµareµunique.¡þ	Ô²S¡X	Ô²Aµrail_connectionµattributeµinµaµcellµgroupµhasµaµpredefined¡X
powerµsupplyµstringµnameµinµtheµpower_supplyµgroup.¡þ
‡²S¡X
‡²Inµanyµcellµwithµtwoµorµmoreµpowerµsupplies,µallµtheµpins,µbuses,¡X
Îandµbundlesµhaveµanµinput_signal_levelµforµinputµtypeµandµan¡Xoutput_signal_levelµattributeµforµoutputµtype.’œÈD“I501ileaf_page_string1:13-44¥	öäÃËÁâÊË¡Ä,ë,Õ¡Ä,Õ	cÕ¡Ä	cÕ	cë¡Ä	cë,ëÆÃÁÊËÃ¡ÄþÕÊÕÆÃ¥	öä¥	öä¡8Á²Modeling´µPower¡.13³44¡þÉ²²S¡XÉ²In´µanyµcellµwithµtwoµorµmoreµpowerµsupplies,µallµtheµinoutµpins,¡Xbuses,µandµbundlesµhaveµanµinput_signal_levelµandµan¡XVoutput_signal_levelµattribute.¡þÉ²S¡XÉ²Anµoutputµpinµwithinµaµcellµthatµhasµmultipleµpowerµsupplies¡Xrequiresµinternal_powerµtablesµwithµtheµpower_levelµattributeµfor¡XVallµtheµrail_connectionsµofµtheµcell.¡þÈ²S¡XÈ²Anµinputµpinµwithinµaµcellµthatµhasµmultipleµpowerµsupplies¡Xrequiresµanµinternal_powerµtableµwithµtheµpower_levelµvalue¡XUmatchingµtheµinput_signal_levelµvalue.¡þ%²Example´µLibraryµwithµMultipleµPowerµSupplies¡þÁ²Example 13³7´µshowsµaµlibraryµwithµmultipleµpowerµsuppliesµdefined¡þ
atµtheµlibraryµlevel,µcellµlevel,µandµpinµlevel.¡,¹²&Example 13³7³LibraryµExampleµwithµpower_supplyµGroupµµ¡þ²library(pow)´µ{¡þLµµµµ...¡þ‰µµµµvoltage_unitµ:µ"1V";¡þÅµµµµpower_supply()µ{¡þµµµµµµµµdefault_power_railµ:µVDD0;¡þ?µµµµµµµµpower_rail(VDD1,µ5.0);¡þ{µµµµµµµµpower_rail(VDD2,µ3.3);¡þ¸µµµµ}¡þ	1µµµµoperating_conditions(WCCOM)µ{¡þ	nµµµµµµµµprocessµ:µ1.5µ;¡þ	ªµµµµµµµµtemperatureµ:µ70µ;¡þ	çµµµµµµµµvoltageµ:µ4.75µ;¡þ
$µµµµµµµµtree_typeµ:µ"worst_case_tree"µ;¡þ
`µµµµµµµµpower_rail(VDD1,µ4.8);¡þ
µµµµµµµµpower_rail(VDD2,µ2.9);¡þ
Úµµµµ}’È&D“I501ileaf_page_string1:13-45¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³45¡þÃ²´µµµµcell(IBUF1)µ{¡þµµµµµµµµ...¡þ=µµµµµµµµrail_connection(PV1,µVDD1);¡þzµµµµµµµµrail_connection(PV2,µVDD2);¡þ¶µµµµµµµµpin(A)µ{¡þóµµµµµµµµµµµµdirectionµ:µinput;¡þ0µµµµµµµµµµµµ...¡þmµµµµµµµµµµµµinput_signal_levelµ:µVDD1;¡þªµµµµµµµµ}¡þçµµµµµµµµpin(EN)µ{¡þ$µµµµµµµµµµµµdirectionµ:µinput;¡þaµµµµµµµµµµµµ...¡þžµµµµµµµµµµµµinput_signal_levelµ:µVDD1;¡þÚµµµµµµµµ}¡þµµµµµµµµpin(Z)µ{¡þTµµµµµµµµµµµµdirectionµ:µoutput;¡þ‘µµµµµµµµµµµµoutput_signal_levelµ:µVDD2;¡þÎµµµµµµµµµµµµ...¡þµµµµµµµµ}¡þHµµµµµµµµpin(Z1)µ{¡þ…µµµµµµµµdirectionµ:µinout;¡þÂµµµµµµµµ...¡þþµµµµµµµµinput_signal_levelµ:µVDD1;¡þ;µµµµµµµµoutput_signal_levelµ:µVDD2;¡þxµµµµµ}¡þµµµµ}¡þò}’&[D“I501ileaf_page_string1:13-46¥	öä¥	öä¡8Á²âModeling´µPower¡.13³46¡,É²&Example 13³8³Library´µExampleµDefiningµAllµPowerµSuppliesµwithµNominal¡²OperatingµConditions¡þY²´µµµpower_supply()µµ{¡þµµµµµµµµµµµdefault_power_railµ:µVDD0;¡þÇµµµµµµµµµµµpower_railµ:µ(VDD1,µ5.0);¡þµµµµµµµµµµµpower_railµ:µ(VDD2,µ3.3µ)µ;¡þ:µµµµ}¡þ®µµoperating_conditionsµ(MPSCOM)µ{¡þçµµµµµµµprocessµ:µ1.5;¡þ!µµµµµµµtemperatureµ:µ70;¡þ[µµµµµµµvoltageµ:µ4.75;¡þ•µµµµµµµtree_typeµ:µworst_case_tree;¡þÎµµµµµµµpower_railµ:µµ(VDD1,µµ5.8);¡þµµµµµµµpower_railµµ:µ(VDD2,µµ3.3);¡þBµµ}¡,×²&Example 13³9³Example´µofµCellµwithµDefaultµPowerµSupply¡þ%²´µµcell(with_no_power_supply)µ{¡þ^µµµµµµµµµµareaµ:µ10;¡þ˜µµµµµµµµµµpinµ(A)µ{¡þÒµµµµµµµµµµµµµµµdirection:µinput;¡þµµµµµµµµµµµµµµµµcapacitance:µ1.0;¡þEµµµµµµµµµµ}¡þµµµµµµµµµµpinµ(Z)µ{¡þ¹µµµµµµµµµµµµµµµdirection:µoutput;¡þòµµµµµµµµµµµµµµµµfunctionµ:µ"!A";¡þ,µµµµµµµµµµ}¡þfµµµµµµµ}µ/*µendµcellµ*/¡,û²&Example 13³10³Example´µofµCellµwithµOneµPowerµSupply¡þ	I²´µµcell(with_one_power_supply)µ{¡þ	‚µµµµµµµµµµareaµ:µ10;¡þ	¼µµµµµµµµµµrail_connectionµµ(PV1,µVDD1)µ;¡þ	öµµµµµµµµµµpinµ(A)µ{¡þ
/µµµµµµµµµµµµµµµdirection:µinput;¡þ
iµµµµµµµµµµµµµµµµcapacitance:µ1.0;¡þ
£µµµµµµµµµµ}¡þ
Ýµµµµµµµµµµpinµ(Z)µ{¡þµµµµµµµµµµµµµµµdirection:µoutput;’[£D“I501ileaf_page_string1:13-47¥	öä¥	öä¡rÁ²âModeling´µPower¡Ô¤ÿŠ13³47¡þÃ²´µµµµµµµµµµµµµµµµfunctionµ:µ"!A";¡þÿµµµµµµµµµµ}¡þ<µµµµµµµ}µ/*µendµcellµ*/¡,ä²&Example 13³11³Example´µofµCellµwithµTwoµPowerµSupplies¡þ:²cell(with_2_power_supplies)´µ{¡þwµµµµµµµµµµareaµ:µ0;¡þ´µµµµµµµµµµrail_connectionµµ(PV1,µVDD1)µ;¡þðµµµµµµµµµµrail_connectionµµ(PV2,µVDD2)µ;¡þ-µµµµµµµµµµpinµ(A)µ{¡þiµµµµµµµµµµµµµµµdirection:µinput;¡þ¦µµµµµµµµµµµµµµµµcapacitance:µ1.0;¡þãµµµµµµµµµµµµµµµµinput_signal_level:µVDD1;¡þµµµµµµµµµµ}¡þ\µµµµµµµµµµpinµ(EB)µ{¡þ™µµµµµµµµµµµµµµµdirection:µinput;¡þÕµµµµµµµµµµµµµµµµcapacitance:µ1.0;¡þµµµµµµµµµµµµµµµµinput_signal_level:µVDD1;¡þNµµµµµµµµµµ}¡þ‹µµµµµµµµµµpinµ(Z)µ{¡þÈµµµµµµµµµµµµµµµdirection:µoutput;¡þµµµµµµµµµµµµµµµµfunctionµ:µ"A";¡þAµµµµµµµµµµµµµµµµthree_state:µ"EB";¡þ}µµµµµµµµµµµµµµµµoutput_signal_level:µVDD2;¡þºµµµµµµµµµµ}¡þ÷µµµµµµµ}µ/*µendµcellµ*/¡,Ÿ²&Example 13³12³Example´µofµµCellµwithµTwoµPowerµSuppliesµandµBidirµPin¡þõ²cell(bidir_with_2_power_supplies)´µ{¡þ	2µµµµµµµµµµareaµ:µ0¡þ	nµµµµµµµµµµrail_connectionµµ(PV1,µVDD1)µ;¡þ	«µµµµµµµµµµrail_connectionµµ(PV2,µVDD2)µ;¡þ	çµµµµµµµµµµµpin(PAD)µ{¡þ
$µµµµµµµµµµµµµµµµdirectionµ:µinout;¡þ
aµµµµµµµµµµµµµµµµfunctionµ:µ"A";¡þ
µµµµµµµµµµµµµµµµthree_stateµ:µ"EN";¡þ
Úµµµµµµµµµµµµµµµµinput_signal_level:µVDD1;¡þµµµµµµµµµµµµµµµµoutput_signal_level:µµVDD2;’£HD“I501ileaf_page_string1:13-48¥	öä¥	öä¡8Á²âModeling´µPower¡.13³48¡þÃ²´µµµµµµµµµµµ}µµµµµµµµµµµpin(A)µ{¡þµµµµµµµµµµµµµµµdirectionµ:µinput;¡þ=µµµµµµµµµµµµµµµcapacitanceµ:µ3;¡þzµµµµµµµµµµµµµµµµinput_signal_level:µVDD1;¡þ¶µµµµµµµµµµ}¡þóµµµµµµµµµµpin(EN)µ{¡þ0µµµµµµµµµµµµµµdirectionµ:µinput;¡þmµµµµµµµµµµµµµµcapacitanceµ:µ3;¡þªµµµµµµµµµµµµµµinput_signal_level:µVDD1;¡þçµµµµ}¡þ$µµµµpin(X)µ{¡þaµµµµµµµµµdirectionµ:µoutput;¡þžµµµµµµµµµµfunctionµ:µ"PAD";¡þÚµµµµµµµµµµoutput_signal_level:µVDD2;¡þµµµµ}¡þTµ}µ/*µendµcellµ*/’HÐOPS m:m:D€‚Document:14arcsÿ‚Last saved on:Tue, Dec 9, 1997 17:53:22ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:newcsps10±:#"	!!#!("!!")	%!*"!!!!!!""""!****#°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Bwst:courps8±B:!°Qwst:courps10.5±Q:,°Rwst:timsps12b±R:                                2*/$!$$!'''!/$''$!$$2$$!*$                                                 $$$$$$2$!!!! $''''' '$$$$  $     2  2               2                   2   $ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåå®åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’U0D“I501ileaf_page_string1:14-1¥	öä²-â¡°¡Ï°¡ž°¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿ¤14³1¡,m²².14â²/¥	öä¡`m²â¡,ˆ²	Timing´µArcs¡²¥	öäÁÊËÃ¡Ä,ëÊëÆÃ¡	ö¡þÉTiming´µisµdividedµintoµtwoµmajorµareas:µdescribingµdelayµ(theµactual¡þcircuitµtiming)µandµspecifyingµconstraintsµ(boundaries).µThisµchapter¡þZdiscussesµtimingµconceptsµandµdescribesµtheµtimingµgroupµattributes¡þ£forµsettingµconstraintsµandµdefiningµdelayµwithµtheµdifferentµdelay¡þëmodels.¡þœToµdescribeµdelay,µseeµtheseµsections:µ¡þ	*²S¡X	*²UnderstandingµTimingµArcs¡þ	¤²S¡X	¤²ModelingµMethodµAlternatives¡þ
²S¡X
²DefiningµTimingµGroups¡þ
š²S¡X
š²DescribingµThree³StateµTimingµArcs¡þ²S¡X²DescribingµEdge³SensitiveµTimingµArcs’0D“I501ileaf_page_string1:14-2¥	öäÃËÁâÊË¡Ä,–,€¡Ä,€	c€¡Ä	c€	c–¡Ä	c–,–ÆÃÁÊËÃ¡Ä,€Ê€ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³2¡þÉ²²S¡XÉ²Describing´µPresetµandµClearµTimingµArcs¡þD²S¡XD²DescribingµIntrinsicµDelay¡þ¿²S¡X¿²DescribingµTransitionµDelay¡þ:²S¡X:²ModelingµLoadµDependency¡þµ²S¡Xµ²DescribingµSlopeµSensitivity¡þ0²S¡X0²DescribingµState³DependentµDelays¡þÎToµsetµconstraints,µseeµtheseµsections:µ¡þ]²S¡X]²SettingµSetupµandµHoldµConstraints¡þ×²S¡X×²SettingµNonsequentialµTimingµConstraints¡þR²S¡XR²SettingµRecoveryµandµRemovalµConstraints¡þÍ²S¡XÍ²SettingµNo³ChangeµTimingµConstraints¡þH²S¡XH²SettingµSkewµConstraint¡þÃ²S¡XÃ²SettingµConditionalµTimingµConstraints¡,Ö²Understanding´µTimingµArcs¡þ	©²Timing´µarcs,µalongµwithµnetlistµinterconnectµinformation,µareµthe¡þ	òpathsµfollowedµbyµtheµpathµtracerµduringµpathµanalysis.µEachµtiming¡þ
:arcµhasµaµstartpointµandµanµendpoint.µTheµstartpointµcanµbeµanµinput,¡þ
ƒoutput,µorµinoutµpin.µTheµendpointµisµalwaysµanµoutputµpinµorµanµinout¡þ
Ìpin.µTheµonlyµexceptionµisµaµconstraintµtimingµarc,µsuchµasµaµsetupµor¡þholdµconstraintµbetweenµtwoµinputµpins.’òD“I501ileaf_page_string1:14-3¥	öäÃËÁâÊË¡Ä,f,P¡Ä,P	cP¡Ä	cP	cf¡Ä	cf,fÆÃÁÊËÃ¡Ä,PÊPÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿ¤14³3¡þÉ²Figure 14³1´µshowsµtimingµarcsµACµandµBCµforµanµANDµgate.µAll¡þdelayµinformationµinµaµlibraryµrefersµtoµanµinput³to³outputµpinµpairµor¡þZanµoutput³to³outputµpinµpair.µ¡,â²&Figure 14³1³TimingµArcs¡,_²¥	öäÁÊËÃ¡Ä„ß„ÆÃÃÊË¡ÄJHäH¡ÄäHä¡ÄäJÆÃÃÊË¡ÌÿÿÿÿÿÿàiÿÿÿÿÿÿàÎl‹÷HOHc«¤«ü«¤ÆÃÃ¡ÌÿÿÿÿÿÿàùÿÿÿÿÿÿÜÿÿÿÿÿè,½«U«­ŽíHðHÆÃÃ¡Ä¬¬™¬ÆÃÃ¡ÄÔãÔÆÃ²¡.jA¡.B¡CœCÃÊË¡Äd[d
¡Äd
*
¡Ä*
*[¡Ä*[d[ÆÃÃÁÊË¡Ìÿÿÿÿÿÿæ5ÿÿÿÿÿÿS“,ViÛiƒªFF-ž-F-ÆÃÃË¡ÌÿÿÿÿÿÿÎ\ÿÿÿÿÿÿX¢žê-B-ßQ ¦ þ ¦ÆÃÃËÊË¡Ä"v!¨¡Ä!¨}¡Ä}y¡Äy"vãÇÆÃÃÊË¡ÌÿÿÿÿÿÿæÕÿÿÿÿÿÿWÄÿÿÿÿÿ‘?¦›.C.¨iÚi‚iÚÆÃÃË¡ÌÿÿÿÿÿÿÎ\ÿÿÿÿÿÿX¢ÿÿÿÿÿ©óŒ^¶Û>.æ.>.ÆÃÃËÊË¡ÄÚ!¯¡Ä!¯"á¡Ä"áÝ¡ÄÝÚÇÆÃ²¡Ê_¡þë²Youµmustµdistinguishµbetweenµcombinationalµandµsequentialµtiming¡þ4typesµbecauseµtheyµserveµdifferentµpurposes.¡þ³DesignµCompilerµusesµcombinationalµtimingµarcµinformationµto¡þücalculateµtheµphysicalµdelaysµinµtimingµpropagationµandµtoµtrace¡þDpaths.µTheµtimingµanalyzerµusesµpath³tracingµarcsµforµcircuitµtiming¡þanalysis.µµ¡þDesignµCompilerµusesµsequentialµtimingµarcµinformationµto¡þTdetermineµrule³basedµdesignµoptimizationµconstraints.µSeeµthe²&¡þDesignµCompilerµReferenceµManual²µsetµforµmoreµinformationµon¡þæoptimizationµconstraints²&.²µ¡,¦²Combinational´µTimingµArcsµ¡þ	6²A´µcombinationalµtimingµarcµdescribesµtheµtimingµcharacteristicsµofµa¡þ	~combinationalµelement.µTheµtimingµarcµisµattachedµtoµanµoutputµpin¡þ	Çandµtheµrelatedµpinµisµeitherµanµinputµorµanµoutput.¡þ
FAµcombinationalµtimingµarcµisµoneµofµtheµfollowingµtypes:¡þ
³²S¡X
³²Combinational¡þ²S¡X²Three³stateµdisableµorµthree³stateµenable’òWD“I501ileaf_page_string1:14-4¥	öäÃËÁâÊË¡Ä,Ú,Ä¡Ä,Ä	cÄ¡Ä	cÄ	cÚ¡Ä	cÚ,ÚÆÃÁÊËÃ¡Ä,ÄÊÄÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³4¡þÉ²To´µdescribeµcombinationalµtimingµtypes,µseeµTimingµGroup¡þAttributes"µlaterµinµthisµchapter.¡,²Sequential´µTimingµArcsµ¡þÙ²Sequential´µtimingµarcsµdescribeµtheµtimingµcharacteristicsµof¡þ"sequentialµelements.µWhenµdescribingµtheµrelationshipµbetweenµa¡þkclockµtransitionµandµdataµoutputµ(inputµtoµoutput),µtheµtimingµarcµis¡þ³consideredµaµ²&delay²µarc.µWhenµdescribingµtheµrelationshipµbetweenµa¡þüclockµtransitionµandµdataµinputµ(inputµtoµinput),µtheµtimingµarcµis¡þEconsideredµaµ²&constraintµ²arc.µµ¡þçAµsequentialµtimingµarcµisµoneµofµtheµfollowingµtypes:µ¡þl²S¡Xl²Edge³sensitiveµ(rising_edgeµorµfalling_edge)¡þà²S¡Xà²Presetµorµclear¡þS²S¡XS²Setupµorµholdµ(setup_rising,µsetup_falling,µhold_rising,µor¡Xšhold_falling)¡þ²S¡X²Nonsequentialµsetupµorµholdµ(non_seq_setup_rising,¡XTnon_seq_setup_falling,µnon_seq_hold_rising,¡Xšnon_seq_hold_falling)¡þ	²S¡X	²Recoveryµorµremovalµ(recovery_risingµ,µrecovery_falling,¡X	Tremoval_rising,µorµremoval_falling)¡þ	È²S¡X	È²Noµchangeµ(nochange_high_high,µnochange_high_low,¡X
nochange_low_high,µnochange_low_low)’W—D“I501ileaf_page_string1:14-5¥	öäÃËÁâÊË¡Ä,5,¡Ä,	c¡Ä	c	c5¡Ä	c5,5ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿ¤14³5¡XÉ²If´µyouµuseµLibraryµCompilerµsoftwareµtoµgenerateµVHDL¡Xsimulationµmodels,µaµsequentialµtimingµarcµcanµalsoµbeµthisµtype:¡þ’²S¡X’²Skewµ(skew_risingµorµskew_falling)¡þ$Toµdescribeµsequentialµtimingµtypes,µseeµTimingµGroupµAttributes"¡þllaterµinµthisµchapter.¡,u²Modeling´µMethodµAlternatives¡þ4²Timing´µinformationµforµcombinationalµcellsµsuchµasµtheµoneµin¡þ}Figure 14³2µcanµbeµmodeledµinµoneµofµtwoµdifferentµways,µas¡þÅFigure 14³3µshows.¡,w²&Figure 14³2³Two³InverterµCell¡,3²¥	öäÃÁÊË¡ÄsÐsk¡Äskè¡ÄèsÐÆÃÃ¡Åèè$ýèèâãÇÆÃÃâ¡Äasa	¡Äa	Öº¡ÄÖºasÆÃÃ¡ÅÖ±ÖÆê±Ö¼Ö¼âÇÆÃâÊËÃ¡Äý)ÆÃÃ¡Äêº)ºÆÃÃÊË¡Ä¾¡Ä¾a¾ÆÃÊËÃ¡Ä9 s ÆÃÃÊË¡ÄJ.J«¡ÄJ««¡Ä«.¡Ä.J.ÆÃ²¡0A¡>$Y¡>ËZ²¡Ê3¡þñ²InµFigure 14³3,µModelµAµdefinesµtwoµtimingµarcs.µTheµfirstµtimingµarc¡þ	9startsµatµprimaryµinputµpinµAµandµendsµatµprimaryµoutputµpinµY.µThe¡þ	‚secondµtimingµarcµstartsµatµprimaryµinputµpinµAµandµendsµatµprimary¡þ	ËoutputµpinµZ.µThisµisµtheµsimpleµcase.’—ÌD“I501ileaf_page_string1:14-6¥	öäÃËÁâÊË¡Ä,V,@¡Ä,@	c@¡Ä	c@	cV¡Ä	cV,VÆÃÁÊËÃ¡Ä,@Ê@ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³6¡,É²&Figure 14³3³Two´µModelingµTechniquesµforµTwo³InverterµCell¡,Ï²¥	öäÃÁâÊË¡ÄÀÉÀ¡ÄÀ‡¡Ä‡‡É¡Ä‡ÉÀÉãÇÆÃÃâÊË¡ÌÿÿÿÿÿÿâœÿÿÿÿÿÿHLƒµ	?çE¸ùQùÆÃÃ¡ÌÿÿÿÿÿÿÐCÿÿÿÿÿÿÎ‚,N*	?ç•¿sshsÆÃÃ¡Ìÿÿÿÿÿÿõ·ÿÿÿÿÿÿÖÛ^üs¸s‘5ÛD	3DÛDÆÃÃ¡ÄãüÆÃÃÊË¡Äî•ü¡Äüî¦ÆÃÊËÃ¡ÄÊDDÆÃÃÊË¡Äò<D¡ÄDòLÆÃÊËÃ¡Ä¬òòÆÃÃÊË¡Äþ°þ>¡Äþ>>¡Ä>°¡Ä°þ°ÆÃÃÊË¡ÌÿÿÿÿÿÿÛçÿÿÿÿÿÿP ‹Ýñ{•#•„³BûBSBûÆÃÃ¡ÌÿÿÿÿÿÿêÞÿÿÿÿÿÿE0%×‡B›Bó…)'@@'@ÆÃÃ¡Ä•@•ÆÃÃÊË¡Ä2@•¡Ä@•2ÆÃÊËÃ¡Ä@@@ÆÃÃÊË¡Ä28@@¡Ä@@2HÆÃÃ¡Ä>¤>1¡Ä>1@1¡Ä@1@¤¡Ä@¤>¤ÆÃÊËÃ¡Ä@•n•ÆÃÃ¡ÄD@n@ÆÃ²¡ÒA¡‡¢Y¡‡YZÃ¡Äò?òÆÃÃ¡Ä;ÆÃÃ¡ÄD;DÆÃ¡pA¡PYZ¡P²Y¡f´µModelµB¡ fModelµA²¡ÊÏ¡þ°²Model´µBµforµthisµcellµalsoµhasµtwoµarcsµbutµisµmoreµaccurateµthan¡þøModelµA.µTheµfirstµarcµstartsµatµpinµAµandµendsµatµpinµY.µThisµarcµis¡þAmodeledµlikeµtheµAYµarcµinµModelµA.µTheµsecondµarcµisµdifferent;µit¡þŠstartsµwithµprimaryµoutputµYµandµendsµwithµprimaryµoutputµZ,¡þÒmodelingµtheµeffectµtheµloadµonµYµhasµonµtheµdelayµonµZ.¡þOutput³to³outputµtimingµarcsµcanµbeµusedµinµeitherµcombinationalµor¡þdsequentialµcells.¡,–²Defining´µTimingµGroups¡þr²Timing´µgroupsµcontainµtheµinformationµthatµDesignµCompilerµneeds¡þºtoµmodelµtimingµarcsµandµtraceµpaths.µTimingµgroupsµdefineµthe¡þ	timingµarcsµthroughµaµcellµandµtheµrelationshipsµbetweenµclockµand¡þ	Ldataµinputµsignals.¡þ
Timingµgroupsµdescribeµ¡þ
–²S¡X
–²Timingµrelationshipsµbetweenµanµinputµpinµandµanµoutputµpin¡þ²S¡X²Timingµrelationshipsµbetweenµtwoµoutputµpins’Ì?D“I501ileaf_page_string1:14-7¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿ¤14³7¡þÉ²²S¡XÉ²Timing´µarcsµthroughµaµnoncombinationalµelement¡þG²S¡XG²Setupµandµholdµtimesµonµflip³flopµorµlatchµinput¡þêTimingµgroupsµdescribeµsetupµandµholdµinformationµwhenµthe¡þ3constraintµinformationµrefersµtoµanµinput³to³inputµpinµpair.µBeµcareful¡þ{whenµyouµplaceµaµtimingµarcµbetweenµpinsµthatµareµnotµtracedµas¡þÄdirectµpaths,µsuchµasµbetweenµanµasynchronousµresetµpinµandµan¡þoutputµpin.¡þÄAµtimingµgroupµisµdefinedµinµpinµgroups.µThisµisµtheµsyntax:µ¡þT²library´µ(²(lib_name²)µ{¡þ“µcellµ(²(cell_name²)µ{¡þÒµµµµpinµ(²(pin_name²)µ{¡þµµµµµµtimingµ()µ{¡þPµµµµµµ...µ²(timingµdescriptionµ²...¡þµµµµµµ}¡þÎµµµµ}¡þµ}¡þL}¡þñ²The´µnameµofµaµtimingµgroupµisµalwaysµnull.¡þ©Defineµtheµtimingµgroupµinµtheµpinµgroupµofµtheµendpointµofµtheµtiming¡þòarc,µasµillustratedµbyµPin²µ²CµinµFigure 14³1µearlierµinµthisµchapter.¡þ	©Note:²¡X	ò²LibraryµCompilerµallowsµyouµtoµdefineµmultipleµtimingµarcs¡X
:betweenµtwoµpins.µHowever,µotherµtoolsµmayµhaveµdifficulty¡X
ƒinterpretingµmultipleµtimingµarcsµforµpinµpairs.µTheµVHDLµlibrary¡X
Ìgeneratorµsupportsµoneµtimingµarcµonly.µIfµyouµspecifyµmultiple¡Xarcs,µtheµVHDLµlibraryµgeneratorµusesµtheµworstµcase.µ’?9D“I501ileaf_page_string1:14-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³8¡þÏ²Delay´µModelsµµµ¡þm²Cell´µdelaysµareµoftenµmodeledµinµaµsynthesisµtechnologyµlibrary¡þ¶usingµanµassortmentµofµdelayµmodels.µSynthesisµtoolsµuseµthese¡þþmodelsµtoµpredictµcellµdelaysµduringµandµafterµoptimization.µNet¡þGdelaysµareµestimatedµduringµsynthesisµonµtheµbasisµofµtheµwireµload¡þmodelsµprovidedµinµtheµtechnologyµlibrary.¡þ1Theseµareµtheµsupportedµdelayµmodels:¡þ¶²S¡X¶²CMOSµlinearµdelayµmodel¡X)Thisµisµtheµstandardµdelayµmodel.¡þ«²S¡X«²CMOSµpiecewiseµlinearµdelayµmodel¡XTheµequationsµthisµmodelµusesµtoµcalculateµtimingµdelays¡Xdconsiderµtheµdelayµeffectµofµdifferentµwireµlengths.¡þæ²S¡Xæ²CMOSµnonlinearµdelayµmodel¡XZTheµnonlinearµdelayµmodelµisµcharacterizedµbyµtablesµthatµdefine¡X theµtimingµarcs.µToµdescribeµdelayµorµconstraintµarcsµwithµthis¡Xçmodel,¡Xi1.µUseµtheµlibrary³levelµlu_table_templateµgroupµtoµdefine¡X¯µµµµtemplatesµofµcommonµinformationµtoµuseµinµlookupµtables.¡X	12.µUseµtheµtemplatesµandµtheµtimingµgroupsµdescribedµinµthis¡X	xµµµµchapterµtoµcreateµlookupµtables.µ¡X	úLookupµtablesµandµtheirµcorrespondingµtemplatesµcanµbe¡X
Aone³dimensional,µtwo³dimensional,µorµthree³dimensional.µDelay¡X
‡arcsµallowµaµmaximumµofµtwoµdimensions.µDeviceµdegradation¡X
Îconstraintµtablesµallowµonlyµoneµdimension.µLoad³dependent¡Xconstraintµmodelingµrequiresµthreeµdimensions.’9D“I501ileaf_page_string1:14-9¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿ¤14³9¡þÏ²Defining´µtheµCMOSµNonlinearµDelayµModelµTemplateµ¡þn²Table´µtemplatesµstoreµcommonµtableµinformationµthatµmultiple¡þ¶lookupµtablesµcanµuse.µAµtableµtemplateµspecifiesµtheµtable¡þÿparametersµandµtheµbreakpointsµforµeachµaxis.µAssignµeachµtemplate¡þHaµnameµsoµthatµlookupµtablesµcanµreferµtoµit.¡þ&²lu_table_templateµGroup¡þ“²Thisµisµtheµsyntaxµofµtheµlu_table_templateµgroup:µµ¡þ²lu_table_template(²(name²)´µ{¡þQµµvariable_1µ:µ²(value²;¡þŽµµvariable_2µ:µ²(value²;¡þËµµvariable_3µ:µ²(value²;¡þµµindex_1µ("²(float²,µ...,µ²(float²");¡þEµµindex_2µ("²(float²,µ...,µ²(float²");¡þ‚µµindex_3µ("²(float²,µ...,µ²(float²");¡þ¿}¡þZ²The´µLibraryµCompilerµsoftwareµincludesµaµpredefinedµlookupµtable¡þ¢templateµnamedµscalarµforµtablesµhavingµaµsingleµvalue.¡þ²TemplateµVariablesµ¡þí²Theµtemplateµforµspecifyingµtimingµdelaysµusesµtwoµassociated¡þ	6variables:µvariable_1µandµvariable_2.µTheseµvariablesµindicateµthe¡þ	parametersµusedµtoµindexµintoµtheµlookupµtableµalongµtheµfirstµand¡þ	Çsecondµtableµaxes.µTheµparametersµareµtheµinputµtransitionµtimeµofµa¡þ
constrainedµpinµandµaµrelatedµpin.’D“I501ileaf_page_string1:14-10¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³10¡þÉ²These´µareµvalidµvaluesµforµvariable_1µandµvariable_2:¡þN²S¡XN²input_net_transition¡þÁ²S¡XÁ²total_output_net_capacitance¡þ5²S¡X5²output_net_length¡þ¨²S¡X¨²output_net_wire_cap¡þ²S¡X²output_net_pin_cap¡þ²S¡X²constrained_pin_transition¡þ²S¡X²related_pin_transition¡þ•Theµtemplateµforµspecifyingµload³dependentµconstraintsµusesµaµthird¡þÝvariable,µvariable_3,µtoµindicateµtheµparameterµusedµtoµindexµintoµthe¡þ&lookupµtableµalongµtheµthirdµtableµaxis.µTheµthirdµparameterµisµa¡þorelatedµpinµforµoutputµloading.µInµadditionµtoµtheµvaluesµforµvariable_1¡þ·andµvariable_2µlistedµpreviously,µvalidµvariableµvaluesµin¡þthree³dimensionalµtableµtemplatesµincludeµtheµfollowing:¡þ…²S¡X…²related_out_total_output_net_capacitance¡þø²S¡Xø²related_out_output_net_length¡þl²S¡Xl²related_out_output_net_wire_cap¡þß²S¡Xß²related_out_output_net_pin_cap’9D“I501ileaf_page_string1:14-11¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³11¡þÉ²Template´µBreakpointsµ¡þ3²Theµindexµstatementsµdefineµtheµbreakpointsµforµanµaxis.µThe¡þ|breakpointsµdefinedµbyµindex_1µbreakpointµcorrespondµtoµthe¡þÄparameterµvaluesµindicatedµbyµvariable_1.µTheµbreakpointsµdefined¡þbyµindex_2µcorrespondµtoµtheµparameterµvaluesµindicatedµby¡þVvariable_2.µTheµbreakpointsµdefinedµbyµindex_3µµcorrespondµtoµthe¡þžparameterµvaluesµindicatedµbyµvariable_3.¡þ;Theµindexµvaluesµareµlistsµofµfloating³pointµnumbersµgreaterµthanµor¡þ„equalµtoµ0.0.µTheµvaluesµinµtheµlistµmustµbeµinµincreasingµorder.µThe¡þÌsizeµofµeachµdimensionµisµdeterminedµbyµtheµnumberµof¡þfloating³pointµnumbersµinµtheµindexes.¡þ²Youµmustµdefineµatµleastµoneµindex_1µinµtheµlu_table_template¡þûgroup.µForµaµone³dimensionalµtable,µuseµonlyµvariable_1.¡þÖ²Creating´µLookupµTables¡þo²The´µrulesµforµspecifyingµlookupµtablesµapplyµtoµbothµdelayµarcsµand¡þ¸constraints.µSeeµDescribingµIntrinsicµDelay"µandµDescribing¡þTransitionµDelay"µlaterµinµthisµchapterµforµtheµgroupsµtoµuseµasµdelay¡þIlookupµtables.µSeeµtheµsectionsµonµtheµdifferentµconstraintsµforµthe¡þ’groupsµtoµuseµasµconstraintµlookupµtables.µ¡þ	/Thisµisµtheµsyntaxµforµlookupµtableµgroups:µ¡þ	¬²(lu_table²(²(name)²´µ{¡þ	éµµindex_1µ("²(float²,µ...,µ²(float²");¡þ
%µµindex_2µ("²(float²,µ...,µ²(float²");¡þ
aµµindex_3µ("²(float²,µ...,µ²(float²");¡þ
žµµvalues("²(float²,µ...,µ²(float²",µ...,µ"²(float²,µ...,µ²(float²");¡þ
Ú}’9lD“I501ileaf_page_string1:14-12¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³12¡þÉ²These´µrulesµapplyµtoµlookupµtableµgroups:¡þN²S¡XN²Eachµlookupµtableµhasµanµassociatedµstringµnameµforµthe¡X”lu_table_templateµitµuses.µTheµnameµofµtheµtemplateµmustµbe¡XÛidenticalµtoµtheµnameµdefinedµinµaµlibraryµlu_table_template¡X!group.¡þ•²S¡X•²Youµcanµoverwriteµanyµorµallµofµtheµindexesµinµaµlookupµtable¡XÜtemplate,µbutµtheµoverwriteµmustµoccurµbeforeµactualµdefinitionµof¡X"values.¡þ–²S¡X–²Theµdelayµvalueµofµtheµtableµisµstoredµinµaµvaluesµattribute.¡X	³¡”	Transitionµandµcellµtableµdelayµvaluesµmustµbeµ0.0µorµgreater.¡”PPropagationµtablesµcanµcontainµnegativeµdelayµvalues.¡XÃ³¡”ÃInµaµone³dimensionalµtable,µrepresentµtheµdelayµvalueµasµaµlist¡”
ofµnindex_1²´µ²floating³point´µnumbers.¡X~³¡”~Inµaµtwo³dimensionalµorµthree³dimensionalµtable,µrepresentµthe¡”Ädelayµvalueµasµnindex_1µxµnindex_2µfloating³pointµnumbers.¡X8³¡”8Ifµaµtableµcontainsµonlyµoneµvalue,µyouµcanµuseµaµpredefined¡”~scalarµtableµtemplateµasµtheµtemplateµforµthatµtimingµarc.µTo¡”Åuseµtheµscalarµtableµtemplate,µplaceµtheµstringµscalarµinµyour¡”lookupµtableµgroupµstatementµasµshownµinµExample 14³3µlater¡”Rinµthisµchapter.¡þÆ²S¡XÆ²Eachµgroupµofµfloating³pointµnumbersµenclosedµinµdoubleµquotes¡X	("")µrepresentsµaµrowµinµtheµtable.¡X	€³¡”	€Theµnumberµofµfloating³pointµnumbersµinµaµgroupµmustµequal¡”	Ænindex_2,µandµtheµnumberµofµgroupsµinµtheµvaluesµattribute¡”
mustµequalµnindex_1.¡X
€³¡”
€Inµaµone³dimensionalµtable,µnindex_2µisµ"1".’l>D“I501ileaf_page_string1:14-13¥	öäÃËÁâÊË¡Ä,	?,	)¡Ä,	)	c	)¡Ä	c	)	c	?¡Ä	c	?,	?ÆÃÁÊËÃ¡Äþ	)Ê	)ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³13¡XÉ²³¡”ÉIn´µaµthree³dimensionalµtable,µtheµtotalµnumberµofµgroupsµis¡”nindex_1µxµnindex_2µandµeachµgroupµcontainsµtheµsame¡”Vnumberµofµfloating³pointµnumbersµasµµnindex_3.¡XÛ³¡”ÛInµaµthree³dimensionalµtable,µtheµfirstµgroupµrepresentsµthe¡”"valueµindexedµbyµtheµ(1,µ1,µ1)µtoµtheµ(1,µ1,µnindex_3)µpointsµin¡”htheµindex.µTheµfirstµnindex_2µgroupsµrepresentµtheµvalue¡”¯indexedµbyµtheµ(1,µ1,µ1)µtoµtheµ(1,µnindex_2,µnindex_3)µpoints¡”õinµtheµindex.µTheµrestµofµtheµgroupsµareµgroupedµinµtheµsame¡”<order.¡þêExample 14³3,µlaterµinµthisµchapter,µshowsµaµlibraryµusingµtheµCMOS¡þ3nonlinearµdelayµmodelµtoµdescribeµdelay.¡þP²delay_model´µAttributeµ¡þ²To´µspecifyµtheµdelayµmodel,µuseµtheµtheµdelay_modelµattributeµinµthe¡þZlibraryµgroup.¡þô²library´µ(demo)µ{¡þ4µµµdelay_modelµ:µtable_lookup;¡þt}¡þ	y²Timing´µGroupµAttributesµ¡þ
:²The´µdelayµmodelµyouµuseµdeterminesµwhichµsetµofµattributesµfor¡þ
ƒdelayµcalculationµyouµspecifyµinµaµtimingµgroup.µTable 14³1µshows¡þ
Ìtheµavailableµdelayµmodelsµandµtheµsupportedµtimingµgroup¡þattributesµforµeach.’>¹D“I501ileaf_page_string1:14-14¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³14¡,É²&Table 14³1³Timing´µGroupµAttributesµinµtheµDelayµModelsµ¡,9²¥	öä¡<T²"PurposeÁã¡ÃÄ,--„,„,Ç¡ÃÄ,çç,,Ç²¡è9¥	öä¡Y²CMOS´µLinear¡ÃÄèëë„è„èÇ¡ÃÄè‹‹èèÇ²¡Œ9¥	öä¡©Y²CMOSµPiecewiseµLinear¡ÃÄŒ„Œ„ŒÇ¡ÃÄŒ»»ŒŒÇ²¡¼9¥	öä¡ÙY²CMOSµNonlinear¡ÃÄ¼¿¿„¼„¼Ç¡ÃÄ	`	a	a„	`„	`Ç¡ÃÄ¼	a	a¼¼Ç²¡	`9¡,©¥.ºf¡<°²T¤ÿûo¶identify¶timing¶arc¶startpoint.¥	öä¡ÃÄ,…-…-ä,ä,…Ç¡ÃÄ,…ç…ç†,†,…Ç²¡è©¥	öä¡Á²related_pin¡ÃÄè…ë…ëäèäè…Ç¡ÃÄè…‹…‹†è†è…Ç²¡Œ©¥	öä¡©Á²related_pin¡ÃÄŒ……äŒäŒ…Ç¡ÃÄŒ…»…»†Œ†Œ…Ç²¡¼©¥	öä¡ÙÁ²related_pin¡ÃÄ¼…¿…¿ä¼ä¼…Ç¡ÃÄ	`…	a…	aä	`ä	`…Ç¡ÃÄ¼…	a…	a†¼†¼…Ç²¡	`©¡,	¥.×º¢¡<°²T¤ÿûo¶identify¶timing¶arc¶startpoint.¥	öä¡ÃÄ,å-å-x,x,åÇ²¡è	¥	öä¡!²related_¡Wbus_pin¡ÃÄèåëåëxèxèåÇ¡ÃÄèå‹å‹èèèèåÇ²¡Œ	¥	öä¡©!²related_bus_pin¡ÃÄŒååxŒxŒåÇ¡ÃÄŒå»å»èŒèŒåÇ²¡¼	¥	öä¡Ù!²related_¡ÙWbus_pin¡ÃÄ¼å¿å¿x¼x¼åÇ¡ÃÄ	`å	aå	ax	`x	`åÇ¡ÃÄ¼å	aå	aè¼è¼åÇ²¡	`	¡,¥	öä¡<¤²T¤ÿûo¶describe¶logical¶ef¤ÿÿfect¶of¡<Úinput¶pin¶on¶output¶pin.¡ÃÄ,y-y-ì,ì,yÇ¡ÃÄ,yçyç|,|,yÇ²¡è¥	öä¡µ²timing_sense¡ÃÄèyëyëìèìèyÇ¡ÃÄèy‹y‹|è|èyÇ²¡Œ¥	öä¡©µ²timing_sense¡ÃÄŒyyìŒìŒyÇ¡ÃÄŒy»y»|Œ|ŒyÇ²¡¼¥	öä¡Ùµ²timing_sense¡ÃÄ¼y¿y¿ì¼ì¼yÇ¡ÃÄ	`y	ay	aì	`ì	`yÇ¡ÃÄ¼y	ay	a|¼|¼yÇ²¡	`¡,¥	öä¡<²T¤ÿûo¶identify¶an¶arc¶as¡<Ncombinational¶or¶sequential.¡ÃÄ,í-í-`,`,íÇ¡ÃÄ,íçíçð,ð,íÇ²¡è¥	öä¡)²timing_type¡ÃÄèíëíë`è`èíÇ¡ÃÄèí‹í‹ðèðèíÇ²¡Œ¥	öä¡©)²timing_type¡ÃÄŒíí`Œ`ŒíÇ¡ÃÄŒí»í»ðŒðŒíÇ²¡¼¥	öä¡Ù)²timing_type¡ÃÄ¼í¿í¿`¼`¼íÇ¡ÃÄ	`í	aí	a`	``	`íÇ¡ÃÄ¼í	aí	að¼ð¼íÇ²¡	`¡,…¥.[ºR¡<Œ²T¤ÿûo¶describe¶intrinsic¶delay¶on¶an¡<Âoutput¶pin.¥	öä¡ÃÄ,a-a-¬,¬,aÇ¡ÃÄ,açaçd,d,aÇ²¡è…¥ê[¢R¡²intrinsic_rise¶¡Óintrinsic_fall¶¥	öä¡ÃÄèaëaë¬è¬èaÇ¡ÃÄèa‹a‹dèdèaÇ²¡Œ…¥Ž[.R¡©²intrinsic_rise¡©Óintrinsic_fall¥	öä¡ÃÄŒaa¬Œ¬ŒaÇ¡ÃÄŒa»a»dŒdŒaÇ²¡¼…¥¾[¢R¡Ù²(²*inherent²)¥	öä¡ÃÄ¼a¿a¿¬¼¬¼aÇ¡ÃÄ	`a	aa	a¬	`¬	`aÇ¡ÃÄ¼a	aa	ad¼d¼aÇ²¡	`…¡,Ñ¥.ŸºZ¡<Œ²T¤ÿûo¶describe¶intrinsic¶delay¶on¶an¡<Âoutput¶pin.¥	öä¡ÃÄ,­-­-ø,ø,­Ç²¡èÑ¥êŸ¢Z¡²intrinsic_rise¶¡Óintrinsic_fall¶¥	öä¡ÃÄè­ë­ëøèøè­Ç²¡ŒÑ¥ŽŸ.Z¡©²intrinsic_rise¡©Óintrinsic_fall¥	öä¡ÃÄŒ­­øŒøŒ­Ç²¡¼Ñ¥¾Ÿ¢Z¡Ù²(²*inherent²)¥	öä¡ÃÄ¼­¿­¿ø¼ø¼­Ç¡ÃÄ	`­	a­	aø	`ø	`­Ç²¡	`Ñ¡,¥.óºš¡<$²T¤ÿûo¶specify¶transition¶delay¤ÿý.¶Used¡<Zwith¶propagation¶delay¶in¶CMOS¡<nonlinear¶delay¶model.¥	öä¡ÃÄ,ù-ù-Œ,Œ,ùÇ¡ÃÄ,ùçùçü,ü,ùÇ²¡è¥	öä¡5²rise_¡kresistance¶¡ÃÄèùëùëŒèŒèùÇ¡ÃÄèù‹ù‹üèüèùÇ²¡Œ¥	öä¡©5²rise_pin_resistance¶¡©krise_delay_intercept¶¡ÃÄŒùùŒŒŒŒùÇ¡ÃÄŒù»ù»üŒüŒùÇ²¡¼¥	öä¡Ù5²rise_transition¶¡ÃÄ¼ù¿ù¿Œ¼Œ¼ùÇ¡ÃÄ	`ù	aù	aŒ	`Œ	`ùÇ¡ÃÄ¼ù	aù	aü¼ü¼ùÇ²¡	`¡,±¥.º¢¡<$²T¤ÿûo¶specify¶transition¶delay¤ÿý.¶Used¡<Zwith¶propagation¶delay¶in¶CMOS¡<nonlinear¶delay¶model.¥	öä¡ÃÄ,-- , ,Ç²¡è±¥	öä¡É²fall_resistance¡ÃÄèëë è èÇ¡ÃÄè‹‹èèÇ²¡Œ±¥	öä¡©É²fall_pin_resistance¶¡©ÿfall_delay_intercept¡ÃÄŒ Œ ŒÇ¡ÃÄŒ»»ŒŒÇ²¡¼±¥	öä¡ÙÉ²fall_transition¶¡ÃÄ¼¿¿ ¼ ¼Ç¡ÃÄ	`	a	a 	` 	`Ç¡ÃÄ¼	a	a¼¼Ç²¡	`±¡,E¥.º†¡<L²T¤ÿûo¶specify¶propagation¶delay¶in¡<‚total¶cell¶delay¤ÿý.¶Used¶with¡<¸transition¶delay¶in¶CMOS¡<înonlinear¶delay¶model.¥	öä¡ÃÄ,!-!- , ,!Ç¡ÃÄ,!ç!ç$,$,!Ç²¡èE¥ê¢†¥	öä¡ÃÄè!ë!ë è è!Ç¡ÃÄè!‹!‹$è$è!Ç¡ŒE¥Ž.†¥	öä¡ÃÄŒ!! Œ Œ!Ç¡ÃÄŒ!»!»$Œ$Œ!Ç¡¼E¥¾¢†¡Ù]²rise_¡Ù“propagation¡ÙÉfall_¡Ùÿpropagation¥	öä¡ÃÄ¼!¿!¿ ¼ ¼!Ç¡ÃÄ	`!	a!	a 	` 	`!Ç¡ÃÄ¼!	a!	a$¼$¼!Ç²¡	`E¡,Å¥.“ºŽ¡<L²T¤ÿûo¶specify¶propagation¶delay¶in¡<‚total¶cell¶delay¤ÿý.¶Used¶with¡<¸transition¶delay¶in¶CMOS¡<înonlinear¶delay¶model.¥	öä¡ÃÄ,¡-¡- , ,¡Ç²¡èÅ¥ê“¢Ž¥	öä¡ÃÄè¡ë¡ë è è¡Ç¡ŒÅ¥Ž“.Ž¥	öä¡ÃÄŒ¡¡ Œ Œ¡Ç¡¼Å¥¾“¢Ž¡Ù]²rise_¡Ù“propagation¡ÙÉfall_¡Ùÿpropagation¥	öä¡ÃÄ¼¡¿¡¿ ¼ ¼¡Ç¡ÃÄ	`¡	a¡	a 	` 	`¡Ç²¡	`Å¡,E¥.ºR¡<L²T¤ÿûo¶specify¶cell¶delay¡<‚independent¶of¶transition¶delay¤ÿý.¥	öä¡ÃÄ,!-!-l,l,!Ç¡ÃÄ,!ç!ç$,$,!Ç²¡èE¥ê¢R¥	öä¡ÃÄè!ë!ëlèlè!Ç¡ÃÄè!‹!‹$è$è!Ç¡ŒE¥Ž.R¥	öä¡ÃÄŒ!!lŒlŒ!Ç¡ÃÄŒ!»!»$Œ$Œ!Ç¡¼E¥¾¢R¡Ù]²cell_rise¶¡Ù“cell_fall¶¶¥	öä¡ÃÄ¼!¿!¿l¼l¼!Ç¡ÃÄ	`!	a!	al	`l	`!Ç¡ÃÄ¼!	a!	a$¼$¼!Ç²¡	`E¡,‘¥._ºZ¡<L²T¤ÿûo¶specify¶cell¶delay¡<‚independent¶of¶transition¶delay¤ÿý.¥	öä¡ÃÄ,m-m-¸,¸,mÇ²¡è‘¥ê_¢Z¥	öä¡ÃÄèmëmë¸è¸èmÇ¡Œ‘¥Ž_.Z¥	öä¡ÃÄŒmm¸Œ¸ŒmÇ¡¼‘¥¾_¢Z¡Ù]²cell_rise¶¡Ù“cell_fall¶¶¥	öä¡ÃÄ¼m¿m¿¸¼¸¼mÇ¡ÃÄ	`m	am	a¸	`¸	`mÇ²¡	`‘¡,Ý¥.³º^¡<ä²T¤ÿûo¶describe¶incremental¶delay¡<added¶to¶slope¶of¶input¡<Pwaveform.¥	öä¡ÃÄ,¹-¹-,,¹Ç¡ÃÄ,¹ç¹ç¼,¼,¹Ç²¡èÝ¥ê³¢^¡õ²slope_rise¶¡+slope_fall¶¥	öä¡ÃÄè¹ë¹ëèè¹Ç¡ÃÄè¹‹¹‹¼è¼è¹Ç²¡ŒÝ¥Ž³.^¡©õ²slope_rise¶¡©+slope_fall¶¥	öä¡ÃÄŒ¹¹ŒŒ¹Ç¡ÃÄŒ¹»¹»¼Œ¼Œ¹Ç²¡¼Ý¥¾³¢^¥	öä¡ÃÄ¼¹¿¹¿¼¼¹Ç¡ÃÄ	`¹	a¹	a	`	`¹Ç¡ÃÄ¼¹	a¹	a¼¼¼¼¹Ç¡	`Ý¡,5¥.ºf¡<ä²T¤ÿûo¶describe¶incremental¶delay¡<added¶to¶slope¶of¶input¡<Pwaveform.¥	öä¡ÃÄ,--h,h,Ç²¡è5¥ê¢f¡õ²slope_rise¶¡+slope_fall¶¥	öä¡ÃÄèëëhèhèÇ²¡Œ5¥Ž.f¡©õ²slope_rise¶¡©+slope_fall¶¥	öä¡ÃÄŒhŒhŒÇ²¡¼5¥¾¢f¥	öä¡ÃÄ¼¿¿h¼h¼Ç¡ÃÄ	`	a	ah	`h	`Ç¡	`5¡,¥	öä¡<”²T¤ÿûo¶specify¶output¶pin¶for¡<Êload³dependency¶model.¡ÃÄ,i-i-ü,ü,iÇ¡ÃÄ,õçõçý,ý,õÇ²¡è¥	öä¡ÃÄèiëiëüèüèiÇ¡ÃÄèi‹i‹lèlèiÇ¡ÃÄèõ‹õ‹ýèýèõÇ¡Œ¥	öä¡ÃÄŒiiüŒüŒiÇ¡ÃÄŒi»i»lŒlŒiÇ¡ÃÄŒõ»õ»ýŒýŒõÇ¡¼¥	öä¡Ù¥²related_output_pi¡ÙÛn¶¡ÃÄ¼i¿i¿ü¼ü¼iÇ¡ÃÄ	`i	ai	aü	`ü	`iÇ¡ÃÄ¼i	ai	al¼l¼iÇ¡ÃÄ¼õ	aõ	aý¼ý¼õÇ²¡	`’¹D“I501ileaf_page_string1:14-15¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³15¡þÏ²related_pin´µAttributeµ¡þn²The´µrelated_pinµattributeµdefinesµtheµpinµorµpinsµthatµareµthe¡þ¶startpointµofµtheµtimingµarc.µTheµprimaryµuseµofµrelated_pinµisµfor¡þÿmultipleµsignalsµinµganged³logicµtiming.µThisµattributeµisµaµrequired¡þHcomponentµofµallµtimingµgroups.¡þ&²Example¡þr²pin´µ(B){¡þ¯µµdirectionµ:µoutputµ;¡þëµµfunctionµ:µ"A'";¡þ(µµtimingµ()µ{¡þeµµµµrelated_pinµ:µ"A"µ;¡þ¢µµµµ...¡þßµµ}¡þ}¡þ·²You´µcanµuseµtheµrelated_pinµattributeµstatementµasµaµshortcutµfor¡þdefiningµtwoµidenticalµtimingµarcsµforµaµcell.µForµexample,µforµa¡þHtwo³inputµNANDµgateµwithµidenticalµdelaysµfromµbothµinputµpinsµto¡þ‘theµoutputµpin,µyouµneedµtoµdefineµonlyµoneµtimingµarcµwithµtwo¡þÙrelatedµpinsµasµshownµbelow.¡þ[²pin´µ(Z)µ{¡þ˜µµdirectionµ:µoutput;¡þÕµµfunctionµ:µ"(Aµ*µB)'"µ;¡þ	µµtimingµ()µ{¡þ	Nµµµµrelated_pinµ:µ"AµB"µ;¡þ	‹µµµµ...µ²(timingµinformationµ...¡þ	È²µµ}¡þ
}’¿D“I501ileaf_page_string1:14-16¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³16¡þÉ²When´µyouµuseµaµbusµnameµinµaµrelated_pinµattributeµstatement,µthe¡þbusµmembers,µorµrangeµofµmembers,µareµdistributedµacrossµall¡þZmembersµofµtheµparentµbus.µInµtheµfollowingµexample,µtheµtiming¡þ£arcsµdescribedµareµfromµeachµelementµinµbusµAµtoµeachµelementµin¡þìbusµB:µA(1)µtoµB(1)andµA(2)µtoµB(2).¡þƒTheµwidthµofµtheµbusµorµrangeµmustµbeµtheµsameµasµtheµwidthµofµthe¡þÌparentµbus.¡þE²bus´µ(A)µ{¡þµµbus_typeµ:µbus2;¡þ½µµ...¡þù}¡þ4busµ(B)µ{¡þpµµbus_typeµ:µbus2;¡þ¬µµdirectionµ:µoutput;¡þèµµfunctionµ:µA'";¡þ#µµtimingµ()µ{¡þ_µµµµrelated_pinµ:µ"A"µ;¡þ›µµµµ...µ²(timingµinformationµ...¡þ×²µµ}¡þ}¡þâ²related_bus_pins´µAttributeµ¡þv²The´µrelated_bus_pinsµattributeµdefinesµtheµpinµorµpinsµthatµareµthe¡þ¿startpointµofµtheµtimingµarc.µTheµprimaryµuseµofµrelated_bus_pinsµis¡þ	forµmoduleµgenerators.¡þ	Ó²Example¡þ
:²Inµthisµexample,µtheµtimingµarcsµdescribedµareµfromµeachµelementµ¡þ
ƒinµbusµAµtoµeachµelementµinµbusµB:µA(1)µtoµB(1),µA(1)µtoµB(2),µA(1)µ¡þ
ÌtoµB(3),µandµsoµon.µTheµwidthsµofµbusµAµandµbusµBµdoµnotµneedµtoµ¡þbeµidentical.’¿ÓD“I501ileaf_page_string1:14-17¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³17¡þÃ²bus´µ(A){¡þµµbus_typeµ:µbus2;¡þ=µµ...¡þz}¡þ¶busµ(B){¡þóµµbus_typeµ:µbus4;¡þ0µµdirectionµ:µoutputµ;¡þmµµfunctionµ:µ"A'";¡þªµµtimingµ()µ{¡þçµµµµrelated_bus_pinsµ:µ"A"µ;¡þ$µµµµ...µ²(timingµinformationµ...¡þa²µ}¡þž}¡þz²timing_sense´µAttributeµ¡þ²The´µtiming_senseµattributeµdescribesµtheµwayµanµinputµpinµlogically¡þbaffectsµanµoutputµpin.µTheµDesignµCompilerµtimingµanalyzerµuses¡þ«thisµattributeµtoµtrackµtheµpolarityµtransitionµofµanµelementµduringµpath¡þóanalysis.¡þÒ²Example¡þ²´µµtimingµ()µ{¡þQµµµµtiming_senseµ:µpositive_unate;¡þ…µµ}¡þ	 ²The´µtiming_senseµvalueµisµtypicallyµderivedµbyµDesignµCompiler¡þ	ifromµtheµpin'sµlogicµfunction.µForµexample,µtheµvalueµderivedµforµan¡þ	±ANDµgateµisµpositive_unate,µtheµvalueµforµNANDµgateµis¡þ	únegative_unate,µandµtheµvalueµforµanµXORµgateµisµnon_unate.’ÓìD“I501ileaf_page_string1:14-18¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³18¡þÉ²A´µfunctionµisµsaidµtoµbeµ²&unate²µifµaµrisingµ(orµfalling)µchangeµonµa¡þpositiveµ(orµnegative)µunateµinputµvariableµcausesµtheµoutput¡þZfunctionµvariableµtoµriseµ(orµfall)µorµnotµchange.µForµaµnonunate¡þ£variable,µfurtherµstateµinformationµisµrequiredµtoµdetermineµthe¡þìeffectsµofµaµparticularµstateµtransition.¡þ‹Doµnotµdefineµtheµtiming_senseµofµaµpinµexceptµwhenµyouµmust¡þÓoverrideµtheµderivedµvalueµorµyouµareµcharacterizingµa¡þnoncombinationalµgateµsuchµasµaµthree³stateµcomponent.²&µ²For¡þeexample,µyouµmightµdefineµtheµtimingµsenseµmanuallyµwhenµyou¡þ­modelµmultipleµpathsµbetweenµanµinputµpinµandµanµoutputµpinµasµin¡þöanµXORµgate.¡þ•Itµisµpossibleµthatµoneµpathµisµpositiveµunateµwhileµanotherµis¡þÝnegativeµunate.µInµthisµcase,µtheµfirstµtimingµarcµisµgivenµthe¡þ&positive_unateµdesignation,µandµtheµsecondµisµgivenµa¡þonegative_unateµdesignation.¡þNote:²¡XV²Whenµtiming_senseµdescribesµtheµtransitionµedgeµusedµto¡XŸcalculateµdelayµforµtheµthree_state_enableµor¡Xèthree_state_disableµpin,µitµhasµaµmeaningµdifferentµfromµits¡X0traditionalµone.µIfµaµ1µvalueµonµtheµcontrolµpinµofµaµthree³stateµcell¡XycausesµaµZµvalueµonµtheµoutputµpin,µtiming_senseµis¡XÁpositive_unateµforµtheµthree_state_disableµtimingµarcµand¡X	
negative_unateµforµtheµthree_state_enableµtimingµarc.µIfµaµ0¡X	Svalueµonµtheµcontrolµpinµofµaµthree³stateµcellµcausesµaµZµvalueµon¡X	›theµoutputµpin,µtiming_senseµisµnegative_unateµforµthe¡X	äthree_state_disableµtimingµarcµandµpositive_unateµforµthe¡X
-three_state_enableµtimingµarc.¡þ
ÌIfµaµrelated_pinµisµanµoutputµpin,µyouµmustµdefineµtiming_senseµfor¡þthatµpin.’ì¬D“I501ileaf_page_string1:14-19¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³19¡þÏ²timing_type´µAttributeµ¡þn²The´µtiming_typeµattributeµdistinguishesµbetweenµcombinationalµand¡þ¶sequentialµcellsµbyµdefiningµtheµtypeµofµtimingµarc.µIfµthisµattributeµis¡þÿnotµassigned,µtheµcellµisµconsideredµcombinational.¡þÞ²Example¡þ)²´µµtimingµ()µ{¡þfµµµµtiming_typeµ:µrising_edge;¡þ£µµ}’¬·D“I501ileaf_page_string1:14-20¥	öäÃËÁâÊË¡Ä,	%,	¡Ä,		c	¡Ä	c		c	%¡Ä	c	%,	%ÆÃÁÊËÃ¡Ä,	Ê	ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³20¡þÉ²These´µareµvalidµvaluesµforµtheµtiming_typeµattribute:µ¡,G²¥	öä¡I_²"ValueÁã¡ÃÄ,#-#-,,#Ç¡ÃÄ,#•#•+,+,#Ç²¡–G¥	öä¡³_²"Cells´µWhereµUsed¡ÃÄ–#™#™––#Ç¡ÃÄ–#ƒ#ƒ+–+–#Ç²¡„G¥	öä¡¡_²"Description¡ÃÄ„#‡#‡„„#Ç¡ÃÄ	`#	a#	a	`	`#Ç¡ÃÄ„#	a#	a+„+„#Ç²¡	`G¡,§¥	öä¡I¿²combinational¡ÃÄ,ƒ-ƒ-,,ƒÇ¡ÃÄ,ƒ•ƒ•†,†,ƒÇ²¡–§¥	öä¡³¿²combinational¡ÃÄ–ƒ™ƒ™––ƒÇ¡ÃÄ–ƒƒƒƒ†–†–ƒÇ²¡„§¥	öä¡¡¿²Useµthisµtimingµtypeµtoµdescribeµ1³to³0µor¡¡õ0³to³1µtimingµarcs.µThisµisµtheµdefaultµwhen¡¡+thereµisµnoµtiming_typeµattributeµinµtheµtiming¡¡agroup.¡ÃÄ„ƒ‡ƒ‡„„ƒÇ¡ÃÄ	`ƒ	aƒ	a	`	`ƒÇ¡ÃÄ„ƒ	aƒ	a†„†„ƒÇ²¡	`§¡,§¥	öä¡I¿²three_state_disable¡Iõthree_state_enable¡ÃÄ,ƒ-ƒ-,,ƒÇ¡ÃÄ,ƒ•ƒ•†,†,ƒÇ²¡–§¥	öä¡³¿²combinational¡ÃÄ–ƒ™ƒ™––ƒÇ¡ÃÄ–ƒƒƒƒ†–†–ƒÇ²¡„§¥	öä¡¡¿²Useµtheseµtimingµtypesµtoµdescribe¡¡õthree³stateµoutputµpins.¡ÃÄ„ƒ‡ƒ‡„„ƒÇ¡ÃÄ	`ƒ	aƒ	a	`	`ƒÇ¡ÃÄ„ƒ	aƒ	a†„†„ƒÇ²¡	`§¡,;¥	öä¡IS²rising_edge¡I‰falling_edge¡ÃÄ,--á,á,Ç¡ÃÄ,••,,Ç²¡–;¥	öä¡³S²sequential¡ÃÄ–™™á–á–Ç¡ÃÄ–ƒƒ––Ç²¡„;¥	öä¡¡S²Useµtheseµtypesµtoµspecifyµwhichµedgeµofµthe¡¡‰inputµsignalµcausesµaµtransitionµonµtheµoutput¡¡¿pin.¡ÃÄ„‡‡á„á„Ç¡ÃÄ	`	a	aá	`á	`Ç¡ÃÄ„	a	a„„Ç²¡	`;¡,¥	öä¡I²preset¡IUclear¡ÃÄ,ã-ã-u,u,ãÇ¡ÃÄ,ã•ã•æ,æ,ãÇ²¡–¥	öä¡³²sequential¡ÃÄ–ã™ã™u–u–ãÇ¡ÃÄ–ãƒãƒæ–æ–ãÇ²¡„¥	öä¡¡²Useµtheseµtypesµtoµaf¤ÿÿfectµfallµorµriseµarrival¡¡Utimeµonµaµtimingµarc'¤ÿÿsµendpointµpin.¡ÃÄ„ã‡ã‡u„u„ãÇ¡ÃÄ	`ã	aã	au	`u	`ãÇ¡ÃÄ„ã	aã	aæ„æ„ãÇ²¡	`¡,›¥	öä¡I³²nochange_high_high¡Iénochange_high_low¡Inochange_low_high¡IUnochange_low_low¡ÃÄ,w-w-u,u,wÇ¡ÃÄ,w•w•z,z,wÇ²¡–›¥	öä¡³³²sequential¡ÃÄ–w™w™u–u–wÇ¡ÃÄ–wƒwƒz–z–wÇ²¡„›¥	öä¡¡³²Useµtheseµtypesµtoµspecifyµno³change¡¡éconstraintsµonµsignalµpulsesµwithµrelationµto¡¡clockµpulses.¡ÃÄ„w‡w‡u„u„wÇ¡ÃÄ	`w	aw	au	`u	`wÇ¡ÃÄ„w	aw	az„z„wÇ²¡	`›¡,›¥	öä¡I³²skew_rising¡Iéskew_falling¡ÃÄ,w-w-u,u,wÇ¡ÃÄ,w•w•z,z,wÇ²¡–›¥	öä¡³³²sequential¡ÃÄ–w™w™u–u–wÇ¡ÃÄ–wƒwƒz–z–wÇ²¡„›¥	öä¡¡³²Useµtheseµtypesµtoµspecifyµconstraintsµ¡¡édefiningµtheµmaximumµseparationµbetweenµ2¡¡clockµsignals.µUseµskewµtypesµforµsimulation¡¡Uonlyµ(notµforµVIT¤ÿýALµmodels).¡ÃÄ„w‡w‡u„u„wÇ¡ÃÄ	`w	aw	au	`u	`wÇ¡ÃÄ„w	aw	az„z„wÇ²¡	`›¡,›¥	öä¡I³²non_seq_setup_rising¡Iénon_seq_setup_falling¡Inon_seq_hold_rising¡IUnon_seq_hold_falling¡ÃÄ,w-w-v,v,wÇ¡ÃÄ,w•w•z,z,wÇ¡ÃÄ,o•o•w,w,oÇ²¡–›¥	öä¡³³²combinationalµor¡³ésequential¡ÃÄ–w™w™v–v–wÇ¡ÃÄ–wƒwƒz–z–wÇ¡ÃÄ–oƒoƒw–w–oÇ²¡„›¥	öä¡¡³²Useµtheseµtypesµtoµspecifyµsetupµandµhold¡¡éconstraintsµonµdataµarrivalµthatµareµnotµ¡¡relatedµtoµclockµsignals.¡ÃÄ„w‡w‡v„v„wÇ¡ÃÄ	`w	aw	av	`v	`wÇ¡ÃÄ„w	aw	az„z„wÇ¡ÃÄ„o	ao	aw„w„oÇ²¡	`›¡,	e²Describing´µThree³StateµTimingµArcs¡þ	ý²Three³state´µarcsµdescribeµaµthree³stateµoutputµpinµinµaµcell.¡þ
ƒDesignµCompilerµsupportsµonlyµthree_state_enableµtimingµarcs.µThe¡þ
ÌVHDLµlibraryµgeneratorµusesµtheµthree_state_disableµand¡þthree_state_enableµtiming_typeµattributeµvaluesµforµsimulation.’·ÐD“I501ileaf_page_string1:14-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³21¡þÏ²Describing´µThree³StateµDisableµTimingµArcsµ¡þp²To´µdesignateµaµthree³stateµdisableµtimingµarcµwhenµdefiningµa¡þ¹three³stateµpin:¡þ?1.¡X?Assignµrelated_pinµtoµtheµenableµpinµofµtheµthree³stateµfunction.¡þ´2.¡X´Defineµtheµ0³to³Zµpropagationµtimeµwithµtheµintrinsic_rise¡Xûstatement.¡þp3.¡XpDefineµtheµ1³to³Zµpropagationµtimeµwithµtheµintrinsic_fall¡X¶statement.¡þ+4.¡X+Includeµtheµtiming_typeµ:µthree_state_disableµstatement.¡þü²Example¡þj²Thisµexampleµdescribesµaµthree³stateµdisableµtimingµarcµforµa¡þ³three³stateµpin:¡þ6²timing´µ()µ{¡þsµµµµµµrelated_pinµ:µ"OE"µ;¡þ°µµµµµµtiming_typeµ:µthree_state_disableµ;¡þíµµµµµµintrinsic_riseµ:µ1.0µ;µ/*µ0µtoµZµtimeµ*/¡þ*µµµµµµintrinsic_fallµ:µ1.0µ;µ/*µ1µtoµZµtimeµ*/¡þhµµµµ}¡þ	²The´µtiming_senseµattributeµthatµdescribesµtheµtransitionµedgeµused¡þ	Mtoµcalculateµdelayµforµaµtimingµarcµhasµaµnontraditionalµmeaning¡þ	•whenµitµisµincludedµinµaµtimingµgroupµthatµalsoµcontainsµa¡þ	Þthree_state_disableµattribute.µReferµtoµtheµdescriptionµofµthe¡þ
&timing_senseµattributeµforµmoreµinformation.¡þ
ÌExample 14³1µdescribesµtheµtimingµmodelµforµanµinverterµwithµa¡þthree³stateµoutputµandµactive³highµenableµinµaµCMOSµlinearµµlibrary.’Ð=D“I501ileaf_page_string1:14-22¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³22¡þÏ²Describing´µThree³StateµEnableµTimingµArcsµ¡þŠ²To´µdesignateµaµthree³stateµenableµtimingµarcµwhenµdefiningµa¡þÓthree³stateµpin,¡þj1.¡XjAssignµrelated_pinµtoµtheµenableµpinµofµtheµthree³stateµfunction.¡þë2.¡XëDefineµtheµZ³to³1µpropagationµtimeµwithµtheµintrinsic_rise¡X2statement.¡þ´3.¡X´DefineµtheµZ³to³0µpropagationµtimeµwithµtheµintrinsic_fall¡Xústatement.¡þ|4.¡X|Includeµtheµtiming_typeµ:µthree_state_enableµstatement.¡þs²Example¡þí²Thisµexampleµshowsµaµthree³stateµenableµtimingµarcµforµaµthree³state¡þ6pin:¡þË²timing´µ()µ{¡þ
µµµµµµrelated_pinµ:µ"OE"µ;¡þJµµµµµµtiming_typeµ:µthree_state_enableµ;¡þŠµµµµµµintrinsic_riseµ:µ1.0µ;µ/*µZ³to³1µtimeµ*/¡þÉµµµµµµintrinsic_fallµ:µ1.0µ;µ/*µZ³to³0µtimeµ*/¡þ		µµµµ}¡þ	I}¡þ	ò²The´µtiming_senseµattributeµthatµdescribesµtheµtransitionµedgeµused¡þ
:toµcalculateµdelayµforµaµtimingµarcµhasµaµnontraditionalµmeaning¡þ
ƒwhenµitµisµincludedµinµaµtimingµgroupµthatµalsoµcontainsµa¡þ
Ìthree_state_enableµattribute.µReferµtoµtheµdescriptionµofµthe¡þtiming_senseµattributeµforµmoreµinformation.’=uD“I501ileaf_page_string1:14-23¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³23¡,É²&Example 14³1³Three³State´µCellµwithµDisableµandµEnableµTimingµArcs¡þ#²library(example){¡þadate´µ:µ"Januaryµ14,µ1997";¡þŸrevisionµ:µ1997.01;¡þÝtechnologyµ(cmos);¡þ...¡þYcell(TRI_INV2)µ{¡þ—µµareaµ:µ3;¡þÕµµpin(A)µ{¡þµµµµdirectionµ:µinput;¡þQµµµµcapacitanceµ:µ2;¡þµµ}¡þÌµµpin(E)µ{¡þ
µµµµdirectionµ:µinput;¡þHµµµµcapacitanceµ:µ2;¡þ†µµ}¡þÄµµpin(Z)µ{¡þµµµµdirectionµ:µoutput;¡þ@µµµµfunctionµ:µ"A'";¡þ~µµµµthree_stateµ:µ"E'";µ¡þ¼µµµµtiming()µ{¡þúµµµµµµintrinsic_riseµ:µ0.39;¡þ8µµµµµµintrinsic_fallµ:µ0.75;¡þvµµµµµµrise_resistanceµ:µ0.15;¡þ´µµµµµµfall_resistanceµ:µ0.06;¡þñµµµµµµrelated_pinµ:µ"A";¡þ/µµµµ}¡þmµµµµtiming()µ{¡þ«µµµµµµtiming_typeµ:µthree_state_enable;¡þéµµµµµµintrinsic_riseµ:µ0.39;¡þ	'µµµµµµintrinsic_fallµ:µ0.75;¡þ	eµµµµµµrise_resistanceµ:µ0.15;¡þ	£µµµµµµfall_resistanceµ:µ0.06;¡þ	áµµµµµµrelated_pinµ:µ"E";¡þ
µµµµ}¡þ
]µµµµtiming()µ{¡þ
›µµµµµµtiming_typeµ:µthree_state_disable;¡þ
Øµµµµµµintrinsic_riseµ:µ0.25;¡þµµµµµµintrinsic_fallµ:µ0.35;’uÞD“I501ileaf_page_string1:14-24¥	öäÃËÁâÊË¡Ä,:,$¡Ä,$	c$¡Ä	c$	c:¡Ä	c:,:ÆÃÁÊËÃ¡Ä,$Ê$ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³24¡þÃ²´µµµµµµrelated_pinµ:µ"E";¡þµµµµ}¡þ=µµ}¡þz}¡,z²Describing´µEdge³SensitiveµTimingµArcs¡þ:²Edge³sensitive´µtimingµarcs,µsuchµasµtheµarcµfromµtheµclockµonµa¡þ‚flip³flop,µareµidentifiedµbyµtheµfollowingµvaluesµtoµtheµtiming_type¡þËattributeµinµtheµtimingµgroup.µµ¡þPrising_edge¡X˜Identifiesµaµtimingµarcµwhoseµoutputµpinµisµsensitiveµtoµaµrising¡Xásignalµatµtheµinputµpin.¡þGfalling_edge¡XIdentifiesµaµtimingµarcµwhoseµoutputµpinµisµsensitiveµtoµaµfalling¡XÙsignalµatµtheµinputµpin.¡þ]Theseµarcsµareµpath³traced;µtheµpath³tracerµpropagatesµonlyµthe¡þ¦activeµedgeµ(riseµorµfall)µpathµvaluesµalongµtheµtimingµarc.¡þISeeµDefiningµTimingµGroups"µearlierµinµthisµchapterµforµinformation¡þ‘aboutµtheµtiming_typeµattribute.’ÞD“I501ileaf_page_string1:14-25¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³25¡þÉ²The´µfollowingµexampleµshowsµtheµtimingµarcµforµtheµQNµpinµinµaµJK¡þflip³flopµinµaµCMOSµlibraryµusingµaµCMOSµlinearµdelayµmodel.¡þ“²´µµpin(QN)µ{¡þÐµµµµdirectionµ:µoutputµ;¡þµµµµfunctionµ:µ"IQN"µ;¡þJµµµµtiming()µ{¡þ‡µµµµµµrelated_pinµ:µ"CP"µ;¡þÄµµµµµµtiming_typeµ:µrising_edgeµ;¡þµµµµµµintrinsic_riseµ:µ1.29µ;¡þ=µµµµµµintrinsic_fallµ:µ1.61µ;¡þzµµµµµµrise_resistanceµ:µ0.1723µ;¡þ·µµµµµµfall_resistanceµ:µ0.0553µ;¡þôµµµµ}¡þ1µµ}¡þÌ²The´µQNµpinµmakesµaµtransitionµafterµtheµclockµsignalµrises.µThe¡þvaluesµofµintrinsic_riseµandµrise_resistanceµdetermineµtheµamountµof¡þ]delayµbetweenµtheµclockµandµQNµpinµtransitions.’¤D“I501ileaf_page_string1:14-26¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,o,Y¡Ä,Y	cY¡Ä	cY	co¡Ä	co,oÆÃÁÊËÃ¡ÄþYÊYÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³26¡,Õ²Describing´µPresetµandµClearµTimingµArcs¡þ”²Preset´µandµclearµtimingµarcsµaffectµonlyµtheµriseµorµfallµarrivalµtimeµon¡þÝtheµarc'sµendpointµpin.µYouµcanµuseµtheseµtimingµarcsµforµan¡þ%asynchronousµresetµpinµonµaµflip³flop.µ¡þÈIncludeµtimingµinformationµonµallµotherµpathsµthroughµtheµcellµfor¡þwhichµyouµareµassigningµclearµorµpresetµtimingµarcs.µTheseµarcsµare¡þYpath³traced.µIfµallµtimingµarcsµassociatedµwithµaµpinµareµclearµarcs,¡þ¢theµpinµhasµuninitializedµriseµarrivalµtimes.µSimilarµproblemsµcan¡þëoccurµwithµaµpinµthatµisµassociatedµonlyµwithµpresetµtimingµarcs.µIfµthe¡þ3riseµorµfallµtimingµisµabsent,µDesignµCompilerµhasµproblems¡þ|calculatingµtimingµarcs.µWhenµthisµoccurs,µDesignµCompilerµdoesµnot¡þÅissueµaµwarningµmessage.¡þ©²Describing´µPresetµArcs¡þH²Preset´µarcsµaffectµonlyµtheµriseµarrivalµtimeµofµtheµarc'sµendpointµpin.¡þ‘Aµpresetµarcµmeansµthatµyouµareµassertingµaµlogicµ1µonµtheµoutput¡þÙpinµwhenµtheµdesignatedµrelated_pinµisµasserted.µ¡þ|Toµdesignateµaµpresetµarc,¡þ	1.¡X	Selectµtheµpresetµvalueµforµtheµtiming_typeµattribute.µ’¤MD“I501ileaf_page_string1:14-27¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³27¡þÉ²Example¡þ²timing_type´µ:µpreset;¡þ‘²2.¡X‘Assign´µtheµappropriateµvalueµtoµtheµtiming_senseµattribute.¡XØTheseµareµvalidµvalues:¡þKpositive_unateµ¡X”Indicatesµthatµtheµriseµarrivalµtimeµofµtheµarc'sµsourceµpinµisµused¡XÝtoµcalculateµtheµarc'sµdelay.µThisµcalculationµproducesµtheµrise¡X%arrivalµtimeµonµtheµarc'sµendpointµpin.µInµtheµcaseµofµslope¡Xndelays,µtheµsourceµpin'sµriseµtransitionµtimeµisµaddedµtoµtheµarc's¡X·delay.µTheµsourceµpinµisµactiveµhigh.¡þnegative_unateµµ¡XfIndicatesµthatµtheµfallµarrivalµtimeµofµtheµarc'sµsourceµpinµisµused¡X¯toµcalculateµtheµarc'sµdelay.µThisµcalculationµproducesµtheµrise¡X÷arrivalµtimeµonµtheµarc'sµendpointµpin.µInµtheµcaseµofµslope¡X@delays,µtheµsourceµpin'sµfallµtransitionµtimeµisµaddedµtoµtheµarc's¡X‰delay.µTheµsourceµpinµisµactiveµlow.¡þïnon_unateµµ¡X8Indicatesµthatµtheµmaximumµofµtheµriseµandµfallµarrivalµtimesµof¡X€theµarc'sµsourceµpinµisµusedµtoµcalculateµtheµarc'sµdelay.µThis¡XÉcalculationµproducesµtheµmaximumµarrivalµtimeµonµtheµarc's¡Xendpointµpin.µInµtheµcaseµofµslopeµdelays,µtheµmaximumµofµthe¡XZsourceµpin'sµriseµandµfallµtransitionµtimesµareµaddedµtoµtheµarc's¡X£delay.¡þ	d²Example¡þ	¯²timing_sense´µ:µnegative_unate;’M|D“I501ileaf_page_string1:14-28¥	öäÃËÁâÊË¡Ä,,ù¡Ä,ù	cù¡Ä	cù	c¡Ä	c,ÆÃÁÊËÃ¡ÄþùÊùÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³28¡þÉ²In´µadditionµtoµtheµtiming_typeµandµtiming_senseµattributes,µyouµcan¡þassignµtheµfollowingµattributesµifµyouµareµusingµaµstandardµCMOS¡þZtimingµdelayµmodel:¡þÕ²S¡XÕ²intrinsic_riseµ¡þB²S¡XB²rise_resistance¡þ®²S¡X®²slope_rise¡þ4Example 14³7µandµExample 14³8µnearµtheµendµofµthisµchapter¡þ}containµexamplesµofµpresetµarcs.¡þI²Describing´µClearµArcs¡þÚ²Clear´µarcsµaffectµonlyµtheµfallµarrivalµtimeµofµtheµarc'sµendpointµpin.µA¡þ"clearµarcµmeansµthatµyouµareµassertingµaµlogicµ0µonµtheµoutputµpin¡þkwhenµtheµdesignatedµrelated_pinµisµasserted.µ¡þÿToµdesignateµaµclearµarc,¡þ{1.¡X{Selectµtheµclearµvalueµforµtheµtiming_typeµattribute.µ¡þ3²Example¡þ{²timing_type´µ:µclear;¡þö²2.¡XöAssign´µtheµappropriateµvalueµtoµtheµtiming_senseµattribute.¡X	=Theseµareµvalidµvalues:¡þ	©positive_unateµ¡X	òIndicatesµthatµtheµfallµarrivalµtimeµofµtheµarc'sµsourceµpinµisµused¡X
:toµcalculateµtheµarc'sµdelay.µThisµcalculationµproducesµtheµfall¡X
ƒarrivalµtimeµonµtheµarc'sµendpointµpin.µInµtheµcaseµofµslope¡X
Ìdelays,µtheµsourceµpin'sµfallµtransitionµtimeµisµaddedµtoµtheµarc's¡Xdelay.µTheµsourceµpinµisµactiveµlow.’|0D“I501ileaf_page_string1:14-29¥	öäÃËÁâÊË¡Ä,ñ,Û¡Ä,Û	cÛ¡Ä	cÛ	cñ¡Ä	cñ,ñÆÃÁÊËÃ¡Ä,ÛÊÛÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³29¡þÉ²negative_unate´µ¡XIndicatesµthatµtheµriseµarrivalµtimeµofµtheµarc'sµsourceµpinµisµused¡XZtoµcalculateµtheµarc'sµdelay.µThisµcalculationµproducesµtheµfall¡X£arrivalµtimeµonµtheµarc'sµendpointµpin.µInµtheµcaseµofµslope¡Xìdelays,µtheµsourceµpin'sµriseµtransitionµtimeµisµaddedµtoµtheµarc's¡X4delay.µTheµsourceµpinµisµactiveµhigh.¡þžnon_unateµµ¡XçIndicatesµthatµtheµmaximumµofµtheµriseµandµfallµarrivalµtimesµof¡X/theµarc'sµsourceµpinµareµusedµinµcalculatingµtheµarc'sµdelay.µThis¡Xxcalculationµproducesµtheµmaximumµfallµarrivalµtimeµonµtheµarc's¡XÁendpointµpin.µInµtheµcaseµofµslopeµdelays,µtheµmaximumµofµthe¡X	sourceµpin'sµriseµandµfallµtransitionµtimesµisµaddedµtoµtheµarc's¡XRdelay.¡þ²Example¡þl²timing_sense´µ:µpositive_unate;¡þÎ²Example 14³7´µandµExample 14³8µnearµtheµendµofµthisµchapter¡þcontainµexamplesµofµclearµarcs.¡,1²Describing´µIntrinsicµDelay¡þý²The´µintrinsicµdelayµofµanµelementµisµtheµzero³loadµ(fixed)µcomponent¡þ	Fofµtheµtotalµdelayµequation.µIntrinsicµdelayµattributesµhaveµdifferent¡þ	Žmeaningsµdependingµuponµwhetherµtheyµareµforµanµinputµorµan¡þ	×outputµpin.µ¡þ
ƒWhenµdescribingµanµoutputµpin,µtheµintrinsicµdelayµattributesµdefine¡þ
Ìtheµfixedµdelayµfromµinputµtoµoutputµpin.µTheseµvaluesµareµusedµto¡þcalculateµtheµintrinsicµdelayµofµtheµtotalµdelayµequation.µ’0²D“I501ileaf_page_string1:14-30¥	öäÃËÁâÊË¡Ä,c,M¡Ä,M	cM¡Ä	cM	cc¡Ä	cc,cÆÃÁÊËÃ¡ÄþMÊMÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³30¡þÉ²When´µdescribingµanµinputµpin,µsuchµasµinµaµsetupµorµholdµtimingµarc,¡þintrinsicµattributesµdescribeµtheµtimingµrequirementsµforµthatµpin.µPin¡þZDµinµExample 14³7µnearµtheµendµofµthisµchapterµillustratesµthe¡þ£intrinsicµdelayµattributesµusedµasµtimingµconstraints.µTiming¡þìconstraintsµareµnotµusedµinµtheµdelayµequation.µ¡þ²In´µtheµCMOSµLinearµDelayµModelµ¡þ²The´µintrinsic_riseµandµintrinsic_fallµattributesµdescribeµtheµintrinsic¡þgdelayµofµaµpinµwhenµyouµuseµtheµCMOSµlinearµdelayµmodel.¡þ²intrinsic_rise´µAttributeµµ¡þš²On´µanµoutputµpin,µthisµvalueµdefinesµtheµ0³to³1µpropagationµtimeµfor¡þâaµcombinationalµcell.µOnµanµoutputµpin,µthisµvalueµdefinesµtheµ0³to³Z¡þ+propagationµtimeµforµaµthree³stateµdisableµtimingµtype,µandµaµZ³to³1¡þtpropagationµtimeµforµaµthree³stateµenableµtimingµtype.¡þøOnµanµinputµpin,µthisµvalueµdefinesµaµsetup,µhold,µorµrecoveryµtiming¡þArequirementµforµaµlogicµ0³to³1µtransition.¡þí²Example¡þ3²intrinsic_rise´µ:µ1.0;¡þì²intrinsic_fall´µAttributeµµµ¡þ	m²On´µanµoutputµpin,µthisµvalueµdefinesµtheµ1³to³0µpropagationµtimeµfor¡þ	¶aµcombinationalµcell.µOnµanµoutputµpin,µthisµvalueµdefinesµtheµ1³to³Z¡þ	ÿpropagationµtimeµforµaµthree³stateµdisableµtimingµtype,µandµaµZ³to³0¡þ
Gpropagationµtimeµforµthree³stateµenableµtimingµtype.¡þ
ÌOnµanµinputµpin,µthisµvalueµdefinesµaµsetup,µhold,µorµrecoveryµtiming¡þrequirementµforµaµlogicµ1³to³0µtransition.’²ÔD“I501ileaf_page_string1:14-31¥	öäÃËÁâÊË¡Ä,Æ,°¡Ä,°	c°¡Ä	c°	cÆ¡Ä	cÆ,ÆÆÃÁÊËÃ¡Äþ°Ê°ÆÃ¥	öäÃÁÊË¡Ä,’,|¡Ä,|	c|¡Ä	c|	c’¡Ä	c’,’ÆÃÁÊËÃ¡Äþ|Ê|ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³31¡þÉ²Example¡þ6²This´µexampleµshowsµtheµtimingµgroupµforµaµtwo³inputµNAND²´µ²gate¡þ~with´µanµintrinsicµriseµdelayµofµ0.58µandµintrinsicµfallµdelayµofµ0.69.¡þ²pin´µ(Z)µ{¡þ<µdirectionµ:µoutputµ;¡þyµfunctionµ:µ"(Aµ*µB)'"µ;¡þ¶µtimingµ()µ{¡þóµµµµrelated_pinµ:µ"AµB"µ;¡þ0µµµµintrinsic_riseµ:µ0.58µ;¡þmµµµµintrinsic_fallµ:µ0.69µ;¡þªµµµµ...¡þçµ}¡þ$}¡þ²In´µtheµCMOSµPiecewiseµLinearµDelayµModelµ¡þŸ²See´µtheµintrinsic_riseµandµintrinsic_fallµattributesµinµtheµpreceding¡þèsectionµdescribingµtheµCMOSµlinearµdelayµmodel.¡þÌ²In´µtheµCMOSµNonlinearµDelayµModelµ¡þk²Description´µofµintrinsicµdelayµisµinherentµinµtheµlookupµtablesµthatµyou¡þ´createµforµthisµdelayµmodel.µSeeµDefiningµTimingµGroups"µearlierµin¡þýthisµchapterµforµtheµwayµtoµcreateµandµuseµtemplatesµforµlookup¡þ	EtablesµinµaµlibraryµusingµtheµCMOSµnonlinearµdelayµmodel.’ÔÏD“I501ileaf_page_string1:14-32¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,Ù,Ã¡Ä,Ã	cÃ¡Ä	cÃ	cÙ¡Ä	cÙ,ÙÆÃÁÊËÃ¡ÄþÃÊÃÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³32¡,Õ²Describing´µTransitionµDelayµ¡þ†²The´µtransitionµdelayµofµanµelementµisµtheµtimeµitµtakesµtheµdrivingµpin¡þÎtoµchangeµstate.µTransitionµdelayµattributesµrepresentµtheµresistance¡þencounteredµinµmakingµlogicµtransitions.¡þ¯Theµcomponentsµofµtheµtotalµdelayµcalculationµdependµuponµthe¡þøtimingµdelayµmodelµused.µIncludeµtheµtransitionµdelayµattributesµthat¡þ@applyµtoµtheµdelayµmodelµyouµareµusing.¡þ²In´µtheµCMOSµLinearµDelayµModelµ¡þ§²Use´µtheµfollowingµtimingµgroupµattributesµexclusivelyµforµlinear¡þð(standard)µdelayµmodels.µInµtheµattributeµstatements,µtheµvalueµisµa¡þ8positiveµfloating³pointµnumberµforµtheµdelayµtimeµperµloadµunit.¡þ²rise_resistance´µAttributeµµµ¡þŸ²This´µvalueµrepresentsµtheµoutputµresistance,µorµdriveµcapability,µforµa¡þèlogicµ0³to³1µtransition.¡þº²fall_resistance´µAttributeµµµµµ¡þ	O²This´µvalueµrepresentsµtheµoutputµresistance,µorµdriveµcapability,µforµa¡þ	—logicµ1³to³0µtransition.¡þ
d²Example¡þ
Ì²Thisµexampleµisµaµcombinationalµtimingµdescriptionµofµa²´µ²NAND´µgate¡þinµaµlibraryµthatµusesµaµstandardµCMOSµlinearµdelayµmodel.’Ï,D“I501ileaf_page_string1:14-33¥	öäÃËÁâÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³33¡þÃ²´µcellµ(NAND2)µ{¡þµµµµareaµ:µ1µ;¡þ=µµµµpin(A,µB)µ{¡þzµµµµµµµµdirectionµµµ:µinputµ;¡þ¶µµµµµµµµcapacitanceµ:µ1µ;¡þóµµµµ}¡þ0µµµµpin(Z)µ{¡þmµµµµµµµµdirectionµ:µoutputµ;¡þªµµµµµµµµfunctionµ:µ"(Aµ*µB)'"µ;¡þçµµµµµµµµtiming()µ{¡þ$µµµµµµµµµµintrinsic_riseµ:µ0.17µ;¡þaµµµµµµµµµµintrinsic_fallµ:µ0.10µ;¡þžµµµµµµµµµµrise_resistanceµ:µ0.65µ;¡þÚµµµµµµµµµµfall_resistanceµ:µ0.18µ;¡þµµµµµµµµµµrelated_pinµµµµµ:µ"A"µ;¡þTµµµµµµµµ}¡þ‘µµµµµµµµtiming()µ{¡þÎµµµµµµµµµµintrinsic_riseµ:µ0.21µ;¡þµµµµµµµµµµintrinsic_fallµ:µ0.12µ;¡þHµµµµµµµµµµrise_resistanceµ:µ0.65µ;¡þ…µµµµµµµµµµfall_resistanceµ:µ0.18µ;¡þÂµµµµµµµµµµrelated_pinµµµµµ:µ"B"µ;¡þþµµµµµµµµ}¡þ;µµµµµ}¡þxµ}¡þU²In´µtheµCMOSµPiecewiseµLinearµDelayµModelµ¡þô²When´µusingµaµpiecewiseµlinearµdelayµmodel,µyouµmustµincludeµthe¡þ	=piece_defineµand,µoptionally,µtheµpiece_typeµattributeµstatementsµin¡þ	…theµlibraryµgroupµ(seeµChapterµ7,µBuildingµaµTechnologyµLibrary").¡þ	ÎReferµtoµtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µforµthe¡þ
delayµequationsµusedµbyµaµCMOSµpiecewiseµlinearµmodel.’,zD“I501ileaf_page_string1:14-34¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³34¡þÉ²Transition´µdelayµforµpiecewiseµlinearµequationsµisµmodeledµwith¡þdelay³interceptµattributesµandµpin³resistanceµattributes.¡þZDelay³interceptµattributesµdefineµtheµinterceptµforµvendorsµwhoµuse¡þ£slopeµorµintercept³typeµtimingµequations.µPin³resistanceµattributes¡þìdescribeµtheµresistanceµencounteredµinµmakingµlogicµtransitions.¡þ¹²Syntax¡þ!²Thisµisµtheµsyntaxµforµtheµfollowingµtimingµgroupµattributeµstatements¡þiinµwhichµpieceµisµanµintegerµdefiningµtheµsegmentµofµwireµin¡þ²accordanceµwithµtheµpiece_defineµstatementµandµvalueµisµa¡þúfloating³pointµnumber.¡þu²attribute_name´µ(piece,µ"value");¡þE²rise_delay_intercept´µAttributeµµ¡þÚ²This´µattributeµdefinesµtheµinterceptµforµvendorsµusingµslopeµor¡þ"intercept³typeµtimingµequations.µTheµvalueµofµthisµattributeµisµadded¡þktoµtheµrisingµedgeµinµtheµdelayµequation.¡þ>²fall_delay_intercept´µAttributeµµµ¡þÓ²This´µattributeµdefinesµtheµinterceptµforµvendorsµusingµslopeµor¡þ	intercept³typeµtimingµequations.µTheµvalueµofµthisµattributeµisµadded¡þ	dtoµtheµfallingµedgeµinµtheµdelayµequation.¡þ
7²rise_pin_resistance´µAttributeµµ¡þ
Ì²This´µattributeµdefinesµtheµdriveµresistanceµappliedµtoµpinµloadsµinµthe¡þrisingµedgeµinµtheµtransitionµdelayµequation.’zýD“I501ileaf_page_string1:14-35¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³35¡þÏ²fall_pin_resistance´µAttributeµµ¡þx²This´µattributeµdefinesµtheµdriveµresistanceµappliedµtoµpinµloadsµinµthe¡þÀfallingµedgeµinµtheµtransitionµdelayµequation.¡þmExample 14³2µshowsµhowµtoµdefineµa²´µ²NOR´µgateµinµaµlibraryµthat¡þ¶usesµaµCMOSµpiecewiseµlinearµdelayµmodel.¡,s²&Example 14³2³CombinationalµTimingµDescriptionµ(PiecewiseµLinearµDelay)¡þÍ²library´µ(example)µ{¡þdateµ:µ"Januaryµ14,µ1997"µ;¡þIrevisionµ:µ1997.01;¡þ‡piece_defineµ(µ"0µ15µ40"µ)µ;¡þÅcell(NOR2)µ{¡þµµµµareaµ:µ1;¡þAµµµµpin(A,µB)µ{¡þ~µµµµµµdirectionµ:µinput;¡þ¼µµµµµµcapacitanceµ:µ1;¡þúµµµµ}¡þ8µµµµpin(Z)µ{¡þvµµµµµµdirectionµ:µoutput;¡þ´µµµµµµfunctionµ:µ"(A+B)'";¡þòµµµµµµtiming()µ{¡þ0µµµµµµµµintrinsic_riseµ:µ0.38;¡þnµµµµµµµµintrinsic_fallµ:µ0.15;¡þ«µµµµµµµµrise_delay_intercept(0,"1.0");µµ/*µpieceµ0µ*/¡þéµµµµµµµµrise_delay_intercept(1,"0.0");µµ/*µpieceµ1µ*/¡þ	'µµµµµµµµrise_delay_intercept(2,"-1.0");µ/*µpieceµ2µ*/¡þ	eµµµµµµµµfall_delay_intercept(0,"1.0");µµ/*µpieceµ0µ*/¡þ	£µµµµµµµµfall_delay_intercept(1,"0.0");µµ/*µpieceµ1µ*/¡þ	áµµµµµµµµfall_delay_intercept(2,"-1.0");µ/*µpieceµ2µ*/¡þ
µµµµµµµµrise_pin_resistance(0,"0.25");µµ/*µpieceµ0µ*/¡þ
]µµµµµµµµrise_pin_resistance(1,"0.50");µµ/*µpieceµ1µ*/¡þ
›µµµµµµµµrise_pin_resistance(2,"1.00");µµ/*µpieceµ2µ*/¡þ
Øµµµµµµµµfall_pin_resistance(0,"0.25");µµ/*µpieceµ0µ*/¡þµµµµµµµµfall_pin_resistance(1,"0.50");µµ/*µpieceµ1µ*/’ýåD“I501ileaf_page_string1:14-36¥	öäÃËÁâÊË¡Ä,Y,C¡Ä,C	cC¡Ä	cC	cY¡Ä	cY,YÆÃÁÊËÃ¡ÄþCÊCÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³36¡þÃ²´µµµµµµµµfall_pin_resistance(2,"1.00");µµ/*µpieceµ2µ*/¡þµµµµµµµµrelated_pinµ:µ"AµB";¡þ=µµµµµµ}¡þzµµµµ}¡þ¶}¡þ“²In´µtheµCMOSµNonlinearµDelayµModelµ¡þ2²Transition´µtimeµisµtheµtimeµitµtakesµforµanµinputµsignalµtoµmakeµa¡þ{transitionµbetweenµtheµhighµandµlowµlogicµstates.µWithµnonlinear¡þÃdelayµmodels,µitµisµcomputedµbyµtableµlookupµandµinterpolation.¡þTransitionµdelayµisµaµfunctionµofµcapacitanceµatµtheµoutputµpinµand¡þUinputµtransitionµtime.¡þ9²Defining´µDelayµArcsµwithµLookupµTables¡þØ²These´µgroupsµareµvalidµlookupµtablesµforµdelayµarcs:¡þ]²S¡X]²rise_transitionµ¡þÐ²S¡XÐ²fall_transitionµ¡þD²S¡XD²cell_riseµ¡þ·²S¡X·²cell_fallµ¡þ	+²S¡X	+²rise_propagationµ¡þ	Ÿ²S¡X	Ÿ²fall_propagationµ’å<D“I501ileaf_page_string1:14-37¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³37¡þÉ²Note:²¡X²For´µtimingµgroupsµwithµtiming_typeµclear,µonlyµfallµgroupsµare¡XZvalid.µForµtimingµgroupsµwithµtiming_typeµpreset,µonlyµriseµgroups¡X£areµvalid.¡þIThereµareµtwoµmethodsµforµdefiningµdelayµarcs.µChooseµtheµmethod¡þ’thatµbestµfitsµyourµlibraryµdataµcharacterization.µSeeµtheµ²&Library¡þÚCompilerµReferenceµManualµVolumeµ1²µforµdetailsµaboutµtheµway¡þ#delaysµareµcomputedµusingµtheµlookupµtables.¡þ²Methodµ1¡þu²Toµspecifyµcellµdelayµindependentlyµofµtransitionµdelay,µuseµoneµof¡þ¾theseµtimingµgroupµattributesµasµyourµlookupµtable:¡þE²S¡XE²rise_transition¡þº²S¡Xº²fall_transition¡þ/²S¡X/²cell_rise¡þ¤²S¡X¤²cell_fall¡þw²Methodµ2¡þå²Toµspecifyµtransitionµdelayµasµaµtermµinµtheµtotalµcellµdelay,µuseµone¡þ	.ofµtheseµtimingµgroupµattributesµasµyourµlookupµtable:¡þ	µ²S¡X	µ²rise_transition¡þ
*²S¡X
*²fall_transition¡þ
Ÿ²S¡X
Ÿ²rise_propagation¡þ²S¡X²fall_propagation’<ÑD“I501ileaf_page_string1:14-38¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³38¡þÏ²rise_transition´µandµfall_transitionµGroupsµµ¡þa²Transition´µtimeµisµtheµtimeµitµtakesµforµanµinputµsignalµtoµmakeµa¡þªtransitionµbetweenµtheµhighµandµlowµlogicµstates.µTransitionµdelayµis¡þóaµfunctionµofµcapacitanceµatµtheµoutputµpinµandµinputµtransitionµtime.¡þk²´µpin(Q)µ{¡þŸµµµµdirectionµ:µoutputµ;¡þÓµµµµ...¡þµµµµtiming()µ{¡þ;µµµµµµtiming_typeµ:µrising_edgeµ;¡þoµµµµµµ...¡þ£µµµµµµrise_transition(trans_template)µ{¡þ×µµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡þµµµµµµ}¡þ>µµµµµµfall_transitionµ(trans_template)µ{¡þrµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡þ¦µµµµµµ}¡þÚµµµµµµrelated_pinµ:µ"CP"µ;¡þµµµµ}¡þBµµ}¡þ×²For´µpinsµwithµnon³unateµrelationshipµandµwhoseµlookupµtable¡þtemplateµvariableµincludesµinput_net_transition,µtheµtimingµverifier¡þhusesµtheµmaximumµinputµtransitionµtimeµforµbothµrisingµandµfalling¡þ±edgesµtoµindexµintoµtheµtableµforµnon_unateµtimingµarcs.µYouµgetµless¡þùaccurateµresultsµwhenµnon_unateµarcsµareµdefined.¡þÉ²cell_rise´µandµcell_fallµGroupsµµ¡þ	[²Cell´µdelayµisµusuallyµaµfunctionµofµbothµoutputµloadingµandµinput¡þ	¤transitionµtime.¡þ
:Theseµgroupsµdefineµcellµdelayµlookupµtablesµ(independentlyµof¡þ
ƒtransitionµdelay)µinµCMOSµnonlinearµtimingµmodels.µIfµyouµdefineµcell¡þ
Ìdelayµtablesµforµaµtimingµarc,µyouµcannotµspecifyµpropagationµdelay¡þtablesµforµthatµarc.’ÑD“I501ileaf_page_string1:14-39¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³39¡þÉ²Example¡,²-cell´µ(general)µ{¡,Eµµµpin(a)µ{¡,|µµµµµµdirection:µoutput;¡,³µµµµµµtiming()µ{¡,éµµµµµµµµµcell_rise(basic_template)µ{¡, µµµµµµµµµµµvaluesµ("0.0,²B´µ²-0.13,²Bµ²-0.17,²Bµ²-0.19",²Bµ²-"0.21,²Bµ²-0.23,²Bµ²-0.30,´µ\¡,Wµµµµµµµµµµµµµµµµµµµ²B´µ²-0.41",²Bµ²-"0.22,´µ0.31,µ0.35,µ0.47",µ"0.33,µ\¡,Žµµµµµµµµµµµµµµµµµµµµ0.37,µ0.45,µ0.50");¡,Åµµµµµµµµµ}¡,ûµµµµ}¡,2}¡þ²rise_propagation´µandµfall_propagationµGroupsµµµ¡þ¡²Propagation´µdelayµisµtheµdelayµbetweenµtheµthresholdsµinµthe¡þêtransitionµatµtheµinputµofµaµgateµandµtheµstartµofµtheµoutputµtransition¡þ2asµshownµinµFigure 14³4.¡þÖIfµyouµdefineµpropagationµdelayµtablesµforµaµtimingµarc,µyouµcannot¡þspecifyµcellµdelayµtablesµforµthatµarc.¡,Ò²&Figure 14³4³PropagationµDelayµTimeµWaveforms¡,²¥	öäÁÊËÃ¡Äž	*	ÆÃÃ¡Ä*	z·ÆÃÃ¡Äz·¯·ÆÃÃ¡Ä	½	½ÆÃÃ¡Ä	½A	YÆÃÃ¡ÄA	Yg	YÆÃ¡	'²Input¡	ÉOutputÊËÃ¡ÄjËj
IÆÃËÃ¡Ä)5*	ÆÃËÃ¡Äy5z·ÆÃ¡û%transition¡¡
?tPLH¡9sthresholdÊËÃ¡Ä¯·ù	ÆÃÃ¡Äù	ˆ	ÆÃÃ¡Äg	Y˜	®ÆÃÃ¡Ä˜	±„	±ÆÃÁâÊËÃ¡Ä‹	þÞ	ùÆÃÃÁâÊË¡Äd	þd	þÁâÊË¡Äd	þ]	ñ¡Ä]	ñ‹	þ¡Ä‹	þ]

¡Ä]

d	þâãÇÆÃÁÊËÃ¡Ä‹	þ‹	þÆÃÃÊË¡Ä	ù	ùÁâÊË¡Ä	ù
¡Ä
Þ	ù¡ÄÞ	ù	í¡Ä	í	ùâÇÆÃÁÊËÃ¡ÄÞ	ùÞ	ùÆÃÁÃ¡Ä‹	þÞ	ùÆÃÃÁÊË¡Äd	þd	þÁ¡Äd	þ]	ñ¡Ä]	ñ‹	þ¡Ä‹	þ]

¡Ä]

d	þÇÆÃÁÊËÃ¡Ä‹	þ‹	þÆÃÃÊË¡Ä	ù	ùÁ¡Ä	ù
¡Ä
Þ	ù¡ÄÞ	ù	í¡Ä	í	ùÇÆÃÁÊËÃ¡ÄÞ	ùÞ	ùÆÃ¡
?tPLH¡a
ËtPLH´µ-µpropagationµdelayµtimeµforµaµlow-to-highµtransition¡btPHLµ-µpropagationµdelayµtimeµforµaµhigh-to-lowµtransitionÁÃ¡Ä	–²	•ÆÃÃÁÊË¡Ä·	–·	–Á¡Ä·	–¾	¢¡Ä¾	¢	–¡Ä	–¾	‰¡Ä¾	‰·	–ÇÆÃÁÊËÃ¡Ä	–	–ÆÃÃÁÊË¡Ìÿÿÿÿÿÿ»°ÿÿÿÿÿÿÿÇÿÿÿÿÿÿ9»‚dD7õÏúÖm{,k³,kÆÃÃË¡ÌÿÿÿÿÿþõÙÿÿÿÿÿÿÿíÿÿÿÿÿÿ…PýDÿÿÿÿþèª´®	WÆ	•U	J–«:–ÆÃÁâÊËÃ¡ÄæêúÖÆÃÃÁâÊË¡ÄÏÏÁâÊË¡ÄÏÒ¡ÄÒæê¡ÄæêþÁ¡ÄþÁÏâÇÆÃÁÊËÃ¡ÄæêæêÆÃÁÃ¡ÄæêúÖÆÃÃÁÊË¡ÄÏÏÁ¡ÄÏÒ¡ÄÒæê¡ÄæêþÁ¡ÄþÁÏÇÆÃÁÊËÃ¡ÄæêæêÆÃÁÊËÃ¡Äù-û	ÆÃËÃ¡Ä°-±¯ÆÃ¡›%transitionËÃ¡ÄÞñÞ
]ÆÃËÃ¡Ä9	p9
3ÆÃÁâÊËÃ¡Ä9	ûl	ýÆÃÃÁâÊË¡Ä	û	ûÁâÊË¡Ä	û	ï¡Ä	ï9	û¡Ä9	û
¡Ä
	ûâÇÆÃÁÊËÃ¡Ä9	û9	ûÆÃÃÊË¡Ä“	ý“	ýÁâÊË¡Ä“	ýš
	¡Äš
	l	ý¡Äl	ýš	ñ¡Äš	ñ“	ýâÇÆÃÁÊËÃ¡Äl	ýl	ýÆÃÁÃ¡Ä9	ûl	ýÆÃÃÁÊË¡Ä	û	ûÁ¡Ä	û	ï¡Ä	ï9	û¡Ä9	û
¡Ä
	ûÇÆÃÁÊËÃ¡Ä9	û9	ûÆÃÃÊË¡Ä“	ý“	ýÁ¡Ä“	ýš
	¡Äš
	l	ý¡Äl	ýš	ñ¡Äš	ñ“	ýÇÆÃÁÊËÃ¡Äl	ýl	ýÆÃÁÊËÃ¡Ä‹	˜Œ
[ÆÃ²¡Ê’­D“I501ileaf_page_string1:14-40¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³40¡þÉ²Example¡þ²´µpin(Z)µ{¡þQµµµ...¡þŽµµµtiming()µ{¡þËµµµµµ...¡þÿµµµµµrise_propagation(scalar)µ{¡þ3µµµµµµµµvaluesµ("0.12");¡þgµµµµµ}¡þ¤µµµµµfall_propagation(scalar)µ{¡þ×µµµµµµµµvaluesµ("0.12");¡þµµµµµ}¡þHµµµµµrise_transition(trans_template)µ{¡þ|µµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡þ°µµµµµ}¡þíµµµµµfall_transitionµ(trans_template)µ{¡þ!µµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡þUµµµµµ}¡þ’µµµµµrelated_pinµ:µ"AµB"µ;¡þÅµµµ}¡þ`²See´µChapterµ17,µBuildingµEnvironments,"µforµinformationµabout¡þ©calculatingµdelayµfactors,µandµ²&LibraryµCompilerµReferenceµManual¡þòVolumeµ1²µforµinformationµaboutµincludingµpropagationµdelayµinµtotal¡þ:cellµdelayµcalculations.¡þÝExample 14³3µshowsµusingµlookupµtablesµandµtemplatesµtoµdescribe¡þ&transitionµdelayµwithµtheµnonlinearµdelayµmodel.’­˜D“I501ileaf_page_string1:14-41¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³41¡,É²&Example 14³3³Using´µTemplatesµinµtheµCMOSµNonlinearµTimingµModel¡þ#²library(´µvendor_aµ)µ{¡þaµ¡þŸµµ/*µUseµCMOSµnonlinearµtimingµmodelµ*/¡þµµdelay_modelµ:µtable_lookup;¡þYµ¡þ—µµ.µ.µ.¡þÕµ¡þµµ/*µDefineµtemplateµofµsizeµ4µxµ4*/¡þµµlu_table_template(basic_template)µ{¡þÌµµµµµvariable_1µ:µinput_net_transition;¡þ
µµµµµvariable_2µ:µtotal_output_net_capacitance;¡þHµµµµµindex_1µ("0.0,µ0.5,µ1.5,µ2.0");¡þ†µµµµµindex_2µ("0.0,µ2.0,µ4.0,µ6.0");¡þÄµµ}¡þ@µµ/*µDefineµlibrary³levelµone³dimensionalµlu_tableµofµsizeµ4µ*/¡þ¼µµlu_table_template(one_dimensional)µ{¡þúµµµµµvariable_1µ:µinput_net_transition;¡þ8µµµµµindex_1µ("0.0,µ0.5,µ1.5,µ2.0");¡þvµµ}¡þ´µµ.µ.µ.¡þñµ¡þ/µµ/*µDefineµaµcellµwithµpinsµcontainingµlu_tableµgroupsµthatµ*/¡þmµµ/*µinheritµtheµlibraryµlevelµtemplateµinformationµ*/¡þéµµcellµ(general)µ{¡þ	'µµµµµ.µ.µ.¡þ	eµµµµµpin(a)µ{¡þ	£µµµµµµµµdirection:µoutput;¡þ	áµµµµµµµµtiming()µ{¡þ
µµµµµµµµµµµ.µ.µ.¡þ
›µµµµµµµµµµµ/*µInheritµtheµ`basic_template'µtemplateµ*/¡þµµµµµµµµµµµcell_rise(basic_template)µ{’˜D“I501ileaf_page_string1:14-42¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³42¡þ²´µµµµµµµµµµµµµ/*µSpecifyµallµtheµvaluesµ*/¡þ{µµµµµµµµµµµµµvaluesµ("0.0,²B´µ²0.13,²Bµ²0.17,²Bµ²0.19",²Bµ²"0.21,²Bµ²0.23,²Bµ²0.30,´µ\¡þ¸µµµµµµµµµµµµµµµµµµµµµ²B´µ²0.41",²Bµ²"0.22,´µ0.31,µ0.35,µ0.47",µ"0.33,µ\¡þõµµµµµµµµµµµµµµµµµµµµµµ0.37,µ0.45,µ0.50");¡þ2µµµµµµµµµµµ}¡þoµµµµµµµµ}¡þ­µµµµµµµµ.µ.µ.¡þêµµµµµ}¡þ'µµµµµµpin(b)µ{¡þdµµµµµµµµdirection:µoutput;¡þ¡µµµµµµµµtiming()µ{¡þßµµµµµµµµµµµ.µ.µ.¡þµµµµµµµµµµ/*µInheritµtheµ`one³dimensional'µtemplateµ*/¡þ–µµµµµµµµµµµcell_rise(one_dimensional)µ{¡þµµµµµµµµµµ/*Specifyµallµtheµvaluesµ(enclosedµinµaµpairµofµ"")*/¡þ‹µµµµµµµµµµµvaluesµ("0.1,µ0.15,µ0.20,µ0.29");¡þÈµµµµµµµµµµµ}¡þµµµµµµµ}¡þCµµµµµµµ.µ.µ.¡þ€µµµµ}¡þ½µµµµpin(c)µ{¡þûµµµµµµµdirection:µoutput;¡þ8µµµµµµµtiming()µ{¡þu²´µ²´µµµµµµµµµµ.µ.µ.¡þ²µµµµµµµµµµ/*µUseµtheµpredefinedµ`scalar'µtemplateµ*/¡þ	-µµµµµµµµµµcell_rise(scalar)µ{¡þ	§µµµµµµµµµµµµµ/*µSpecifyµtheµvalueµ*/¡þ
!µµµµµµµµµµµµµvaluesµ("0.12");¡þ
_µµµµµµµµµµ}¡þ
œµµµµµµµ}¡þ
Ùµµµµµµµ.µ.µ.¡þµµµµµ}’éD“I501ileaf_page_string1:14-43¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³43¡þÃ²´µµµ.µ.µ.¡þµµ}¡þ=µ¡þzµµ/*µTheµrestµofµtheµlibrary.µ*/¡þ¶µµµ.µ.µ.¡þó}¡þ0µ¡þÐ²Modeling´µTransitionµTimeµDegradationµµ¡þo²Current´µnonlinearµdelayµmodelsµareµbasedµonµtheµassumptionµthat¡þ¸theµtransitionµtimeµatµtheµloadµpinµisµtheµsameµasµtheµtransitionµtime¡þcreatedµatµtheµdriverµpin.µInµreality,µtheµnetµactsµasµaµlow³passµfilter¡þIandµtheµtransitionµflattensµoutµasµitµpropagatesµfromµtheµdriverµofµthe¡þ’netµtoµeachµloadµasµshownµinµFigure 14³5.µTheµhigherµthe¡þÚinterconnectµload,µtheµgreaterµtheµflatteningµeffectµandµtheµgreater¡þ#theµtransitionµdelay.¡þÆToµmodelµtheµdegradationµofµtheµtransitionµtimeµasµitµpropagates¡þfromµanµoutputµpinµoverµtheµnetµtoµtheµnextµinputµpin,µincludeµthese¡þWlibrary³levelµgroupsµinµyourµlibrary:¡þÜ²S¡XÜ²rise_transition_degradationµgroupµ¡þO²S¡XO²fall_transition_degradationµgroupµ’é#ËD“I501ileaf_page_string1:14-44¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³44¡,É²&Figure 14³5³Transition´µTimeµDegradation¡þE²¥	öäÒÓÐôŠH¼•½–ûÈ¶üüüüüü·ü·ü·ü·ü·ü·Kü·ü·ü·ü·Kü·ü·ü·ü·Kü·ü·üüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüüü·ü·üüüüü·Kü·Küüüüüüüüüüüüüü–äääääääääääääÞü–jü–:üü–Büü•
ÐäääääääääääääÞüü•Äü•ü–*ü•"Æüü•*Çüü•2Èüü•Aü•B¡ü•¡	ü”
Ã¡Qüü”Äüü”Åüü”"Æü”*ü•:ü”2Èüü”A¢ü·ü”‚üü“
Ãü“ü”"ü“Å>üü“"Æ9üü“*Çüü“2ÈBü“:	ü“
;ü“‚üü’
Ã3ü•ü’Ä+Ÿü•"¡ü’Å#ü’"*ü“2ü’*Çü•2ü’2Èü•:ü’Aü—
ü’‚Bü‘
Fü’	¢ü‘Ä=žü”ü‘Åü˜2ü‘"Æü˜*ü‘*Ç!ü‘2ü’B%ü‘A*ü˜ü‘‚2ü˜ü
Ã:üüÄüCü‘*Gü"Æ	ü·ü*Ç?ü“Áü2ÈKà1ü“aüAtüBKÈzü[8ü
ÃÔSÎü”BÈüÄüüÅü·ü"Æ¦ü*ü:ü2ÈüüAüü‚üüŽ
ÃüŽü"üŽÅüüŽ"ÆüüŽ*ÇüüŽ2ÈüŽ:¨üŽ
¨üŽ‚üü
Ãü·üÄ¨üüÅü"üŽ2ü*Çüü2È¨ü·üAüü‚©üŒ
ªüüŒÄü­
äääääääääääääääääääüŒÅ³áü­R“ÉÏüŒ"Æ´Óü‚üŒ*Ç ßäääääääääääääääääáàüŒ2³ÉÚaüB³ÖQüŒAµÕÁÈü‚qüŒ‚µÉÈÌüƒsÊü‹
Ã¶ÌÁ²ÉüƒSy±Ãü‹Ä¶ÁÈÆü‹¸ÎÌ±ÐüŒ*·ÅÃü‹"Æ·ËÂü„Áü‹*Ç·ÁÈÈü…;Îü‹2È¸ÆÅü…+Äü‹A¹ËÃü‹B¹ÂÂü‹¹ÁÁ°ÐüŠ
ÃºÈÈ¯Ðü†;ÇüŠÄºÆÆü†+ÅüŠÅºÄü†ÄüŠ"ÆºÂÃüŠ*»ÁÂü‹:»ÁüŠ2È»Èü‡;ÈüŠA¼ÆÇü‡+üŠ‚½Æü‡#Åü‰
Ã¼Ãü‰¾ÄüŠ"¼Âü‰Å¼ÁÃüˆ®Ðü‰"Æ½È®Ðüˆü‰*Ç½Çü‰Cü§äääääääääääääääääääääääääääääääääÕâäääääääääääÀÁääääääääääääääääääääääÞšÆ®Ðü‰;­Ðü§a )üˆ#ü‰3ü¨ÿäääääääääääääääääääääääääääääääãÐääääääääääääÀÁääääääääääääääääääääääÞüˆÅüˆÄüˆÄ­ÐüˆÅ­üˆ"¿Áü‰2¿Ãüˆ*Çü‰Cüˆ2È¿ÂüüˆA€9ü‰üˆ‚ü‡
üˆ€1ü‡ÄüŠCü‡Åü‰+ü‡"ÆüŠ;ü‡*Çü‡2¯üˆB€!ü‡Aü·ü‡‚ü·ü†
Ã‚1¬Ðüü†Äü†‚ü‡*ü†"Æüü†*Ç¯ü·ü†2Èüü†Aü†Bü†ü…
Ãüü…Äüü…Å°Iü·Kü…"Æü…*ü†:‚ü…2ÈüŠ3ü…Aüü…‚±ü·ü„
Ãƒ!ü„ü…"ü„Å„9¬Ðü·ü„"Æü‰+ü„*ÇüŠCü„2Èü„:„1ü„
²ü„‚„	­Ðü‰;üƒ
Ãü‰üƒÄ„Aüƒü„*„üƒ"„	ü„2üƒ*ÇƒÄ­Ðüüƒ2È„)­ÐüˆüƒAüƒB„!Æüƒü‚
…)Çüƒü‚Ä„1Èüˆ;®Ðü‚Å„	üˆCü‚"Æ„ü‚*„	üƒ:ƒÃü‚2…!üƒBƒü‚A„!Åüˆ3ü‚‚„)ü‡3Çü
Ã…Aü…9ü‚"„ü„	Âü‚*ƒÃü"Æƒü´ääääääääääääääÏƒ"Ä¯Ãü³Á)ÇÖÈ)Å¯Ãü³Â)‚1Æü2Èƒ9Çü³Ã9:AÈü
1	Áü´ßäääääääääääääÏ¾È2€Âü³Ä9Ãü€
Ãƒ!Äü´Ç)€iÅü³ÅŒÄA9Æü„"¿ÁÈÇü´È‹ÅÁÁÈ°Ðü³ÆŒ!ƒÂü2¿ÌÃ±Ðü³ÁŒ)qÄü³Ç9¾ÁÈÍ±Ðü€2ÈÃ€Q9ü³Â	¾ÌÁÈü³ÈŒA!€qÊü‚ÈÄü³ÃŒ‚D¼Ñiü²ÁŒ	*¿Úyü€<»ÐIü³Ä‹2½ÁÞü²Â!­ßäääääääääääääääääãrü¿Å92¼ÉÈü³ÅŽ<ü²ÃŒ!Æ,§Ê“ÁÏü‚B¾àü³Æ‹)Ç$¹ÐäÈü²ÄŒ1	«ÁäääääääääääääääääÞü€Bü³Ç‹9ü²ÅŒ	ü¿‚ü³Èü²Æ‹	ÃüÖääääääääääääääääääÞŸÉÕ¼äääääääääääääã"ü“ÐÕÁŒ!üÍ“ÒÇ)‘Aü”ÉÏÃ‹))ü•ÓœÂŒq>üÁääääääääääääääääääÏQœÈ!¼ääääääääääääääÈ1ü“ß	ÏœÄü”Úi›Ã‘1ü”ÖYšÁ)9ü•ÕÉ¯)ü•ÌAšÄÆÂŒA)³ü•Êq™Â‘qÎü•ÁÏÌœÁ‹	IÈÒ!ü–ÆÃšÅÇŽYI²ü–ÌÉ™ÃCŒiàü–ÊAšÈ	Ïbü–ÁÈÎ™ÆŽQü—ÇÅ˜Ä;Š	Þøü—ÍÄ™Áü—ÄÃ™Ç2ü—ÊÂ˜ÅÂü—ÁÁœÅü˜ÈÏ˜èü˜ÇÆ—Æ…ü˜ÆÅ›Äü˜Ì˜ÁÄü˜ÃÄ—Çü˜ÂÃ˜Åü˜ÁÂ—Âü™ê—Èü™ÇÈ—Æü™ÆÇ–ÃüšÆ•Á9ü™ÅœÈü™ÄÅ–ÄÈü™ÃÄ•Âü¶Çü™ÂÃ–öü™ÁÂ•Ã5üšÈ–ÂüšÁ–ÆüšÇÈ”Ä-üšÆ–Ãü›Ç•Ç$€üšÅ•ÅÄ…üšÄÆšÃü›Å•æüšÃ•Æü›Ä—ÃÌ€üšÂ•ÁÆ8Ê‚ü›Ã”ÇÇyÁÏÁüšÁ—Ðjü›È”Âaü›Â”Èà
Èü±Àswü›ï”ÃË$ü¯Á‡ü›ÆÈšü°Äü›Å“ÂüœÇü°Åü›Ä“ÃüœÆü°Æ†ü›Ã“ÄüœÅü°Çü›Â“Åü·üœÄ“Èü¯Æü›Á›ü¯Á‡üœÃ’ÇüüœÈ’Â‡ü¯È‡üü¯Ãü®ÁüœÂü¯ÄüœÇ‘Âüü¯Åü®Ãüü¯ÆüœÁ‘Äüü¯Çü®Åüü¯Èü®ÆˆüâääääääääääääääääÏääääáÛääääääääääääääääääääääääääääääääääääääääääääääääääÕüœÆüœÆüüüâääääääääääääääääÉääääáÛääääääääääääääääääääääääääääääääääääääääääääääääääÕüü®Ãü­ÁüüœÁ‘Äü­Âüü®ÅˆüœÇÃ‰üüœÂ‘Æü­Äüü®Ç”È‘Üü­ÅüœÈüœÃ‘Èü­Æüü›Á‘Áü­ÇüœÄü›Â‘Âü­ÈüœÅü›Ã‘Ã‰ü¬ÁŠüü›ÄÆÄü¬Âüü›ÅÇÅ’	äääÚŒÚxü¬Ãü›ÆÈü­Æ¤Èü›ÁÄ“	äÕäÚü›Çµðxü­Çü›éÅüüšÁÃ‘È˜ðÁäÈIÚÚÚ?œü¬Æ—	ÀãqÖÒÑpÑðÙÝÙiËñÏÕ›üšÂÄ©Y))1ÁAÁ~É)üšÃ‘Áš1!9BBÃ!ü›ÅÇ˜)Úïã‡ÕÚÇÐÕÇÄàüšÄªIQÁèaÌîÅÄxÝbÌ	êèü›ÆÂ˜A912ÃÆÃÆÂüšÅ‘È˜!!;Ã‰ÇÂ9üšÆÇ³IÏü›ÈÃ˜)ðCj&*ÄüšÇÁœ	ÏÑGÁüšê­þÕüšÂ‘Äšü™Á‘Â›1~ÁÈü™ÂÃ¬9ÐÏ89ü™ÃÄ‘ÅšÞÈü™ÄÅÃ›QxÆü†
ÄFÁÅü™ÅÆ‘Æš)ÈÂ%ü™ÆÇÄ9<ˆÂü™ÇÈ®A>ü™ê’Çš)Á51ÆÃÆü˜Á’Åš	ËÑeË;bÌÇü˜ÂÂ­IÚÀCÐÚÇ<ÐÕü˜ÃÃ’ÈšA BBžü˜ÄÄ‘Æ›9ÉEÁ{ÉŸü˜ÅÅ­iÒÀpÑkÒü˜ÎÆ‘Á–	ÕÕÊÖIÏÖÚðÁáÙÕð<ü˜ÈÇ‘Çü—ÁÁÈü—ÊÂ’Âü—ÄÃ’Èü—ÍÄü—ÇÅ’Ã‹ü–ÁÈÎ‘ÁŒü–ÂAü–ËÁ“Äü–ÍÊ’Âü–ÏÄü•Ði“Åü•Ìy’Ãü•ÕÉü”ÐY”Æü”Ùi“Äü“ÛÈyüÁääääääääääääääääääÕ•Çü•Ó”Åü”ÁÏüÍ“Ñ–Èü“ÉÚ•Æð‰ÐÈü’âáƒàüÖäääääääääääääääääÈ—ÁüªÇ™ÈÁüüªÂ«üªÈ«ü–8üªÃª	Ïü©Á˜ÿÏ?ÏIä¥üiÙÝ|ÍyÁÈÏ¤üªÄ–!!MY11Âiü©Â—)9)Ã!
ãü2ä&Ûêƒá!ÛüªÅ–IÂÙÝtÎYÉÄqÏü©Ã—91-ÈÅêBÅÈÆü!)
)üªÆŒü©Ä—x7AÕ2¦üƒàJÈÂ!üªÇ—ŠÁáü©Å—ÈŠÜü*‹ÇüªÈ–1ÉÕ‰ÈÖÈü©Æ—9á‰ÁÉÚüJ‹Ëü©Á—„îÅ!ü©Ç—!732üƒ2'Cü©Â™9	)ü©È—!A-ÈÅÈÆÂ)ÈÆ¤ü†Ð:tÀaÂÌÒrÏ¤ü©Ã—	ÞóÈØ#ÛÈÕÀ†ÄÛÄü¨Á˜9PÁ	ÇÃ)ü2ÁÈÃLYAÊ1­Öäääääääääääääãü©Ä—aÑËé}ÔqÓÀ2ÁÀÁÀÇÈ¬Åü¨Â˜ÚÉÁáð?ÈÏË>Õ¨Æü€;ü©Å–Bü¨Ã–
Áäääääääääääääãü¿Âü©Æ–ü¨Ä–Äü¿"Åü©Ç•*Æü¨Å–2Çü¿:Èü©È•Bü¨Æ•
Áü¿ü¨Á•Ã·Ðü¨Ç•Ä·Ðü¾"Åü¨Â•*Æü¨È•2Çü¾:ü¨Ã•BÈü§Á–
ü½
Âü¨Ä”Ãü§Â•Äü½"Åü¨Å”*Æü§Ã•2¹Ðü½:Ç¸Ðü¨Æ•Bü§Ä•ü¼
Âü¨Ç“Ãü§Å”Äü¼"Åü¨È“*ü§Æ‘2Æü½:ü§ÁC:ÈCü§Ç2‘3ü«Ç
Â<ü§Â:Ã;ü§È“Äü«Æ"5ü§ÃB*ÅCü¦Á,2,ü©Á‘2Ç
ü§Ä#:È$µÐü¦Â‘·Ðüº
Âü§ÅŽÃü¦Ãü«ÂŽ"Äü§Æ!‘*#ü¦Ä“*Æü©Å	Ž2Ç+	ü§Ç’:Èü¦ÅEGü©Æ
Â4ü§È<ŒˆÇü¦Æ:Ã<·Ðüº"¼Ðü¦Á5Œ"Å7ü¦ÇB*ÆDü¬ÅŒ2Ç/ü¦Â	:Èü¦È’ü¨Â#‹
#ü¦Ã‘Âü¥ÁŒˆÃü¨ÃÄü¦Ä‹"ÅˆÂü¥Â"*Æ$ü—Áäääääääääääääá’2Çü¦Å‹:ÈˆÁü¨ÅB-ü­È‰
ÁŠÈü¦Î15ü—ÁääääääääääääääÈÃü¨Ç<‰Ä=<ü·"Å¾Ðü­Æ‰*ÆŠÆ³Ðü¨ÈŽ2ÇEü­Å‰:‹Åü§ÁàÕ‹BÈàÕü©Éa‹
Oaü§ÂY!ˆ
ÂY!ü©Ôz‰Ãpzü¨ÁÈ8‰ÄÈ8ü¨ÑS‰"ÅS‰âäääääääääääääääääÏü§ÉÚÞˆ*ÆMÚÞšßÚü¶2¨ÖÈü¶:Ç“ÁÈ“Ùü·B¨Ð–Ðü¶ªÕ•Ðüµ
Â•ÖääääääääääääääääääÈaüµÃ¨àüµÄ¨ÁÕyüµ"Å©Òiüµ*ªÉÈÄüµ2ÆªÎÊü¶:ªÒÁÈüµ:ÈªÂ9üµ«ÁÈÍü´
Â¬ÎÄü´Ã¬ÌÊü´Ä¬ÃÁü´"­ÉAü´*Å­ÈÇüµ2­ÎÍü´2Ç­ÅÄü´:È­ÄÃü´®ÊÂü³
Â®ÁÁ’Ðü³Ã¯ÈÈ‘Ðü³°ÇÇü³"Ä¯ÆÆü´*¯ÅÅü³*Æ¯ÄÄü³2Ç¯ÃÃü³:È¯Âü³°ÁÂü²
Â±êü²²ÇÈü²Ã²Çü³"±Æü²"Å±ÅÆÐü²*Æ±ÄÅÐü²2Ç±Ãü²:È²ÄÊü²²ÂÃÊü±
³Áü±Â³Âü²³Èü±Ä³ïü±"Åü±*Æ³ÆÈü±2Çü±:È³ÅÇü±BµÆü°
Á´Äü±ü°Ã´ÃÅü°Äü°"Å´ÂÄü°*Æü°2Ç´ÁÃÐü°:†ü¨ÿäääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÈâääääääääääääääÕääääääääääãü§‚Ðü·ü§a¿9ü§ü§äääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääÚÛäääääääääääääääÕääääääääääãü¯*Æ¶Æü¯2¸Èü¯:Çü°B¶Åü¯ü®
Â¸ÇŽÐü®Ã‡ü®Ä·Äü®"Åü®*¹Æü®2Æü¯:·Ãü®:Èü®ü­
Â¹Åü­Ãü­Äü­"¹Âü­*Åü®2ü­2Çü­:È¹Äü­ü¬
Âü¬Ãü¬Šü¬"Ä‰ü­*¹ÁÊü¬*Æ‰ü¬2Ç‰Iü¬:È‰Iü¬Šü«
ÂŠü«‹IüªÛˆÉÕ¶Ãü¬"Šü«"Åü«*Æü«2ÇºÁÃü«:ÈŠIü«‹Iüª
üªÂ¼ÄŽÉü«‹IüªÄ‹üª"Å‹üª*Æ‹	üª2Ç»ÂÁüª:ÈüªBŒü©
Á½ÅŽÃüªü£âääáŒØ²ÃŒIü©Ä¼ÃÉü©"Å½ÆŽÃü´ÁÕ³)Æü£âÞßá‚2ÇŒü³Ø²9½ÄÐü©BÈŒü©
¾ÇŽÐü¨
Â½Åü¨ØÕüIáNáÏªÃü§ÙÏÉÈÌÉÀÇÉÈÒÉÈØ×Û×YÉ<ÔÓªÄü§É!9Æ9myAÃª!Å½ÆÈü©Ä)1Ç1=1Áª)Æü§ÃØÅâÈ!ÞIáÅÞÅÂÛÈª1ü¨ÏÁÈÀaQÊÅèÂÛRÊrÀaª9Ç½ïü§Á1)!"ÁÄÁÄA¬Aü§Â+Á‰ÅAÁ)ªü²Ú´	Â¾éü§Ã<3ZÂ«Ãü«ÔƒÈ69¬Ä½ÁÃÐüªßÈxµ!ÅŽü©ÐÏ=ÐÈ´)ü©Änq´1Æ½ÂÄü©ÅÁÚ)µ9ü©ÆàÕµ9È½ÃÅü©ÁÈÄ´ü©î6D«	Â¾ÄÆü©ÃÕA®Ãü«Å,‰È«Ä¾ÅÇü«ÆB-­!¿Æü©Ã9$!ÄÁÄ«)Å¿Èü©ÀCÉÈTÉ+RÊÅ¬1¾ÇüªáÅÏáÅÞ¬1Ç¾Áü©Æ(<1=1«9È¾éü©Åy49	ky«¾Áü©ËÐÊÇÉÈBZÐ«	Â¿Ãü¤ÐÏxIÞÁÀƒÏðÉá<×IÞ<§Ã¾Âü¥¿ÃÄü¥"Ä¾ÄÅü¦*ü¥*Æ¾ÅÆÃü¥2Ç¾ÆÇü¥:È¾ÇÈü¥¿Èü¤
Â¿Áü¤¿ÁÂü¤Ã¾ÂÃ‘Ãü¥"¾ÃÄ‘Ãü¤"Å¾ÄÅü¤*Æ¾ÅÆü¤2Ç¾ÆÇü¤:È¾Ïü¤¾ÁA‘Ãü£
¿ÂÁü£Â¾ÃÊ’Áü¤ø¹ÄÄ’Áü£ÄºÍÅ’Ðü£"Å¾ÇÆ’Áü¬Ö
Õ²)Æ¸ÁÈÇ’Éü£2Ç¹ÂA’Áü£:È¸ËÉ“Ðü¦ÁÕ»A¹ÍÃ“Áü¢
Á¾ÏÌ“Éü¯ÁÕ²·Á1“Áü¢Ã$¸Ñy“Ðü¢ÄF¶ÍÉ”Áü¢"Å,·ÁÏÃ”Éü¤ßÚþ
Õ?Ïð¨)Æ¼Ña”Áü£ÁÏË×ÛJÁÈÉÀÆÁÀáÚÈÏÍÁÀã©1Ç>µÔq”Ðü£Âqa	Ä)ÀƒYY©95¶ÖÈÉÈ”Áü£Ã	$)«AÈ6³ÐÚY•Éü£ÄßÏ,Ü!Õ!ÄÛÀÁ)Ú¨	=£ÖäääääääääääääääääÞj•Áü¤ÏÍÀžÛÁÈQBsÆÈÉ¨	Â/µÉÏ•Ðü£Å!!9!-ÈÅ¨ÃE·Òü£Á1)BBÁ!!¨Ä¨ÁÈ’ÁÕ–Áü·Ç©!Å'´à—Éü£×>32ò)¨)Æ¤âääääääääääääääääääÈ—Áü¥Ó)A­1ˆÃŒü¤ÛÏÄÉäáª9Ç	ü£ÉÕŒÅ°A”Iü£ÃŽê®Œ	ü£Äø‹Ä)¬	Â•ü£ÅßîIääÏ¨ÃˆÁŒ	ü¤ÏŒÃ1¬Ä%Iü£ó)³!Å‰È‹ü£Â>$"IÏ¨).ü¥Ä‹Â9Ç¨1Æü¥Å1!ª9‰Çü£Â1!9ÌÈÅÈÅÈ¨9È5ü£óêÏ)ÁÈˆÎÎ©ŠÆ‹Iü¤àÄÎÖ*ÜÅ!Ûê¨	Â>ü£Å$1¨Ãü£ÄqÁ9OšIäääääääääääääáG+‹ü£ÊÉÀƒÆÈJÀƒÀBzÓ©!ü£Ááyâ|IÏÁÕ<?ÏÁÕ§)ŠÄü 2ü zŠÃü‘Jääääääääääääääü·ü«ü¦ü«
ü¦"	ü¨RÊü¦*8ÁÏAü¨ziü§JŒü§
È‹ü§rp‹ü¦ÈÈŠ	ü·üü·ü·üü·Kü·Kü·üü·üü·üü·Sü·ü·Kü·Kü·ü·ü·Küüüüüüüü·ü·ü·üüüüüüüüüüüüüüüü·Küü·üüüüüüüüüü·üüüü·ü·Kü·Küü·ü·üüü·Kü·ü·ü·Kü·Küü·Kü·Küü·Kü·Kü·ü·ü·Kü·Küüü·ü·ü·Kü·Küü·Kü·ü·üüüü©ø–Ûüüüüüü·ü·ü·Kü·ü·Kü·ü·ü·üüüüü¦äääŒÖÈüüü¸xü¦ãÖäü¶Èüüüü«Þ?ÿÿJÚüªÍàÊñÏÕÐàÖÐÀ‡ÀÇÈÉyÖÒÑü«zÁ	)Ä)]i1Áü¬BÃ!Å!-!9Aüª
ÖÃÛÕ!àÿÃ5àÃ‡Õ¶Éü«jqÌÇÁêèóAÀ‡Ï	êÈaÌÇü«:Ä9BB1ü«BA9ˆÃ19Ãüµ<üª
#JG	Aü®4Õ&)¹Ãü­Õ‚ü¬
Ú-ÁÕü¬^aü¬|LÈÃü¬"ÛÈxü­réü¬*È?%ü¬
x1E»Éü®‰Æ¹Áü®"<1»Éü¬
)BB¹Áü¬*ÏÕÈÏ
êè¹Ðü­?ÃÍ3âÃJÏ1àºÁü¬"
,!-!¹Éü¬i$):Zi¹Áü¬JÁÀÁæà2JÁÏ¹Ðü§
ÚþqÚ<ÿÀÇÈþIÏµÁü·Kü·ü·ü·ü·Kü·ü·ü·ü·Küü·ü·ü·ü·Kü·ü·ü·ü·Kü·ü·üü­ŠÙü¼ÿü»JàüªxË)ü»*!ü»2àÃü¼éü»Aü»9ü§áNá?ÚÚC!ü§pÉÐÀ‡Ï[É	ÏËaËü§BAmyÂ1Éü¦
:=1Ã	9Aü¦ÖÚÞÅÄßÏÚü§jËÀ'À‡ÏSÊzÍÈÊËø1ü¦ÄÁÄÅ!ÁÄÂü§:/AÁ+Á=ü½‚ü¦È×Ãü¨6981ASü§ÚŠÛÏgÌü§øŠÉÕˆÎÆ¹Ðü¦
‹Ã‰ÈÏ¹Ãü¦>‰ÄøNÉºÃü¦ÖÏ‰ÅßÃºÉü§j‹Ï'ÌºÉü¦"Ç7Dó3A*Îü§B5Èü¨ˆÈ"A»Âü¨.,)Á»Âü§BÄÄÁÄÂ1ÁÄÂ„»Éü¦"ÎÔTÊÅóêÏQË¿Éü§éÌÉÏÞ~ÄÎêÚÈääü¦>1Å9Á¿Éü¦a9lyÄq1Â¿Áü¦
ÈÕÀÈÆ\ÐQÉÀƒÆÒÒÙ	¼Âü§iÛÏIÞ	áyÉÕ
äää¹Ãü·ü·ü·ÿ¡’E¡þÐ²Theseµgroupsµcontainµtheµvaluesµdescribingµtheµdegradation¡þfunctionsµforµriseµandµfallµtransitionsµinµtheµformµofµlookupµtables.¡þbTheµlookupµtablesµareµindexedµby¡þÎ²S¡XÎ²Transitionµtimeµatµtheµnetµdriver¡þ/²S¡X/²Connectµdelayµbetweenµtheµdriverµandµaµload¡þ¢Theseµareµtheµsupportedµvaluesµforµtransitionµdegradation¡þê(variable_1µandµvariable_2):µ¡þV²S¡XV²output_pin_transition¡þ¸²S¡X¸²connect_delay¡þ	*Youµcanµassignµeitherµconnect_delayµorµoutput_pin_transitionµto¡þ	svariable_1µorµvariable_2µasµlongµasµtheµindexµandµtableµvaluesµare¡þ	¼consistentµwithµtheµassignment.¡þ
9Theµvaluesµyouµuseµinµtheµtableµareµyourµcharacterizedµdelayµvalues.¡þ
·Degradedµtransitionµvaluesµareµcomputedµaccordingµtoµthisµformula:¡,²-degraded_transition´µ=µtable_lookup(f(output_pin_transition,µconnect_delay))’#ËÝD“I501ileaf_page_string1:14-45¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³45¡þÉ²K³factors´µforµprocess,µvoltage,µandµtemperatureµareµnotµsuppliedµfor¡þtheµnewµtables.µTheµoutput_pin_transitionµvalueµandµthe¡þZconnect_delayµvalueµareµcomputedµatµtheµcurrent,µratherµthan¡þ£nominal,µoperatingµconditions.¡þOInµtheµfollowingµexample,µKµisµaµfactorµgeneratedµbyµtheµASIC¡þ˜vendorµasµapplicableµtoµitsµtechnologyµandµdelayµmodel.¡,²-new_rise_transition´µ=µoutput_pin_transitionµ+µKµ*µconnect_delay¡þ´²Design´µCompilerµusesµtransitionµdegradationµtablesµwhenµitµindexes¡þüintoµanyµdelayµtableµinµaµlibraryµthatµusesµtheµtableµparameters¡þEinput_net_transition,µconstrained_pin_transition,µor¡þŽrelated_pin_transitionµinµanµlu_table_templateµgroup.µTransition¡þÖdegradationµtablesµinµaµlibraryµhaveµnoµeffectµonµcomputations¡þrelatedµtoµcellsµfromµotherµlibraries.¡þËExample 14³4µshowsµtheµuseµofµtheµdegradationµtables.µInµthis¡þexample,µtrans_degµisµtheµnameµofµtheµtemplateµforµtheµtransition¡þ]degradation.¡,²&Example 14³4³UsingµDegradationµTables¡þt²library´µ(simple_tlu)µ{¡þ¨delay_modelµ:µtable_lookup;¡þÜ¡þ	/*µdefineµtheµtableµtemplatesµ*/¡þ	C¡þ	wlu_table_template(prop)µ{¡þ	«µµvariable_1µ:µinput_net_transition¡þ	ßµµvariable_2µ:µtotal_output_net_capacitance¡þ
µµindex_1("0,µ1,µ2");¡þ
Gµµindex_2("0,µ1,µ2");¡þ
{}¡þ
¯¡þ
âlu_table_template(tran)µ{¡þµµvariable_1µ:µtotal_output_net_capacitance’ÝŸD“I501ileaf_page_string1:14-46¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³46¡þÃ²´µµvariable_2µ:µinput_net_transition¡þ÷µµindex_1("0,µ1,µ2");¡þ+µµindex_2("0,µ1,µ2");¡þ_}¡þ’¡þÆlu_table_template(constraint)µ{¡þúµµvariable_1µ:µconstrained_pin_transition¡þ.µµindex_1("0,µ1,µ2");¡þbµµvariable_2µ:µrelated_pin_transition¡þ–µµindex_2("0,µ1,µ2");¡þÊ}¡þþ¡þ2lu_table_template(trans_deg)µ{¡þeµµvariable_1µ:µoutput_pin_transition¡þ™µµindex_1("0,µ1");¡þÍµµvariable_2µ:µconnect_delay¡þµµindex_2("0,µ1");¡þ5}¡þi¡þ/*µtheµnewµdegradationµtablesµ*/¡þÑ¡þrise_transition_degradation(trans_deg)µ{¡þ8µµvalues("0.0,µ0.6",µ\¡þlµµµµµµµµµ"1.0,µ1.6");¡þ }¡þÔfall_transition_degradation(trans_deg)µ{¡þµµvalues("0.0,µ0.8",µ\¡þ<µµµµµµµµµ"1.0,µ1.8");¡þp}¡þ¤¡þØ/*µotherµlibraryµlevelµdefaultsµ*/¡þ¡þ?default_inout_pin_capµ:µ1.0;¡þs...¡þ§k_process_fall_transitionµ:µ1.0;¡þÛ...¡þ	¡þ	Cnom_processµ:µ1.0;¡þ	wnom_temperatureµ¡	wµ:µ25.0;¡þ	«nom_voltageµ:µ5.0;¡þ	Þ¡þ
operating_conditions(BASIC_WORST)µ{¡þ
Fµµprocessµ:µ1.5µ;¡þ
zµµtemperatureµ:µ70µ;¡þ
®µµvoltageµ:µ4.75µ;¡þ
âµµtree_typeµ:µ"worst_case_tree"µ;’Ÿ‚D“I501ileaf_page_string1:14-47¥	öäÃËÁâÊË¡Ä,,ö¡Ä,ö	cö¡Ä	cö	c¡Ä	c,ÆÃÁÊËÃ¡Ä,öÊöÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³47¡þÃ²}¡þ÷¡þ+/*´µlistµofµcellµdescriptionsµ*/¡þg¡þ›cell(AN2)µ{¡þÏ....¡þi²In´µExample 14³4,µinputµpinµtransitionsµareµcomputedµusingµthe¡þ²valuesµinµµtheµrise_transition_degradationµtableµaccordingµtoµthe¡þúfollowingµformula:¡,t²-input_pin_transition´µ²=´µ²-output_pin_transition´µ²+²-µ(0.6µxµconnect_delay²)¡þ²Falling´µtransitionsµareµcomputedµaccordingµtoµthisµformula:¡,‚²-input_pin_transition´µ²=²-µoutput_pin_transitionµ²+²-µ(0.8µxµconnect_delay²)¡þ²Any´µlinearµfunctionµofµoutput_pin_transitionµandµconnect_delayµcan¡þ^beµrepresentedµusingµfourµtableµpoints.¡þÿSeeµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µforµmore¡þGinformationµaboutµcalculatingµCMOSµnonlinearµtimingµmodels.¡,L²Modeling´µLoadµDependencyµ¡þ	²The´µprecedingµDescribingµTransitionµDelay"µsectionµdescribesµhow¡þ	Qtoµmodelµtheµtransitionµtimeµdependencyµofµaµconstrainedµpinµandµits¡þ	šrelatedµpinµonµtimingµconstraints.µYouµcanµfurtherµmodelµtheµeffectµof¡þ	âunbufferedµoutputµonµtimingµconstraintsµbyµmodelingµload¡þ
+dependency.¡þ
ÌLoad³dependentµconstraintsµareµallowedµonlyµinµtheµCMOS¡þnonlinearµdelayµmodel.’‚@D“I501ileaf_page_string1:14-48¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³48¡þÏ²In´µtheµCMOSµNonlinearµDelayµModel¡þn²This´µisµtheµprocedureµforµmodelingµloadµdependency.¡þò1.¡XòInµtheµtimingµgroupµofµtheµoutputµpin¡Xf³¡”fSetµtheµtiming_typeµattributeµtoµoneµofµtheµfollowingµvalues:µ¡þð²¥	öä¡÷²Qsetup_rising²¡Vð¥	öä¡f÷²Qsetup_falling²¡®ð¡þ0¥	öä¡7²Qhold_rising²¡V0¥	öä¡f7²Qhold_falling²¡®0¡þp¥	öä¡w²Qremoval_rising²¡Vp¥	öä¡fw²Qremoval_falling²¡®p¡þ°¥	öä¡·²Qrecovery_rising²¡V°¥	öä¡f·²Qrecovery_falling²¡®°¡þð¥	öä¡÷²Qskew_rising²¡Vð¥	öä¡f÷²Qskew_falling²¡®ð¡þ0¥	öä¡7²Qnochange_high_high²¡V0¥	öä¡f7²Qnochange_high_low²¡®0¡þp¥	öä¡w²Qnochange_low_high²¡Vp¥	öä¡fw²Qnochange_low_low²¡®p¡þ°¥	öä¡·²Qnon_seq_setup_rising²¡V°¥	öä¡f·²Qnon_seq_setup_falling²¡®°¡þð¥	öä¡÷²Qnon_seq_hold_rising²¡Vð¥	öä¡f÷²Qnon_seq_hold_falling²¡®ð¡X’²³¡”’Specifyµtheµoutputµpinµusedµtoµfigureµtheµloadµdependencyµwith¡”Øtheµrelated_output_pinµattributeµdescribedµbelow.¡þL2.¡XLCreateµaµthree³dimensionalµtableµtemplateµthatµusesµtwo¡X’variablesµandµindexesµtoµmodelµtransitionµtimeµandµtheµthird¡XÙvariableµandµindexµtoµmodelµload.µTheµvariableµvaluesµfor¡Xrepresentingµoutputµloadingµonµtheµrelated_output_pinµareµ¡X²related_out_total_output_net_capacitance¡XÍrelated_out_output_net_length¡X	
related_out_output_net_wire_cap¡X	Frelated_out_output_net_pin_cap¡X	Ã²SeeµDefiningµtheµCMOSµNonlinearµDelayµModelµTemplate"¡X

earlierµinµthisµchapter.’@D“I501ileaf_page_string1:14-49¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³49¡þÉ²3.¡XÉCreate´µaµthree³dimensionalµlookupµtableµusingµtheµtableµtemplate¡Xandµtheµindex_3µattributeµinµtheµlookupµtableµgroup.µSee¡XVCreatingµLookupµTables"µearlierµinµthisµchapter.µTheµfollowing¡Xgroupsµareµvalidµlookupµtablesµforµoutputµloadµmodeling:µµµ¡X³¡”rise_constraint¡X‰³¡”‰fall_constraint¡þSeeµSettingµSetupµandµHoldµConstraints"µlaterµinµthisµchapterµfor¡þginformationµaboutµtheseµgroups.¡þT²related_output_pin´µAttributeµµ¡þø²The´µrelated_output_pinµattributeµspecifiesµtheµoutputµorµinoutµpin¡þAusedµtoµdescribeµaµload³dependentµconstraint.µThisµisµanµattributeµin¡þ‰theµtimingµgroupµofµtheµoutputµorµinoutµpin.¡þv²Example´µofµaµLoad³DependentµModel¡þ²This´µisµanµexampleµofµaµlibraryµthatµincludesµaµload³dependent¡þcmodel:¡,á²-library(load_dependent)´µ{¡,	delay_modelµ:µtable_lookup;¡,	P...¡,	}lu_table_template(constraint)µ{¡,	«µµvariable_1µ:µµconstrained_pin_transition;¡,	Ùµµvariable_2µ:µµrelated_pin_transition;¡,
µµvariable_3µ:µµrelated_out_total_output_net_capacitance;¡,
4µµindex_1µ("1,µ5,µ10");¡,
bµµindex_2µ("1,µ5,µ10");¡,
µµindex_3µ("1,µ5,µ10");¡,
½}¡,
ëcell(selector)µ{¡,µµ...’©D“I501ileaf_page_string1:14-50¥	öäÃËÁâÊË¡Ä,e,O¡Ä,O	cO¡Ä	cO	ce¡Ä	ce,eÆÃÁÊËÃ¡Ä,OÊOÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³50¡,½²-´µµpin(d)µ{¡,êµµµµdirectionµ:µinputµ;¡,µµµµcapacitanceµ:µ4µ;¡,Fµµµµtiming()µ{¡,sµµµµµµrelated_pinµ:µ"sel";¡,¡µµµµµµrelated_output_pinµ:µ"so";¡,Ïµµµµµµtiming_typeµ:µnon_seq_hold_rising;¡,üµµµµµµrise_constraint(constraint)µ{¡,*µµµµµµµµµµvalues("1.5,µ2.5,µ3.5",µ"1.6,µ2.6,µ3.6",µ"1.7,µ2.7,µ3.7",µ\¡,Xµµµµµµµµµµµµµµµµµ"1.8,µ2.8,µ3.8",µ"1.9,µ2.9,µ3.9",µ"2.0,µ3.0,µ4.0",µ\¡,…µµµµµµµµµµµµµµµµµ"2.1,µ3.1,µ4.1",µ"2.2,µ3.2,µ4.2",µ"2.3,µ3.3,µ4.3");¡,³µµµµµµ}¡,áµµµµµµfall_constraint(constraint)µ{¡,µµµµµµµµµµvalues("1.5,µ2.5,µ3.5",µ"1.6,µ2.6,µ3.6",µ"1.7,µ2.7,µ3.7",µ\¡,<µµµµµµµµµµµµµµµµµ"1.8,µ2.8,µ3.8",µ"1.9,µ2.9,µ3.9",µ"2.0,µ3.0,µ4.0",µ\¡,jµµµµµµµµµµµµµµµµµ"2.1,µ3.1,µ4.1",µ"2.2,µ3.2,µ4.2",µ"2.3,µ3.3,µ4.3");¡,—µµµµµµ}¡,Åµµµµ}¡,ýµµµµ...¡,+µµ}¡,b...¡,š}¡,¥²Describing´µSlopeµSensitivityµ¡þt²The´µslopeµdelayµofµanµelementµisµtheµincrementalµtimeµdelayµdueµto¡þ¼slowingµchangingµinputµsignals.µSlopeµdelayµisµcalculatedµusingµthe¡þtransitionµdelayµatµtheµpreviousµoutputµpinµwithµaµslopeµsensitivity¡þNfactor.¡þûAµslopeµsensitivityµfactorµaccountsµforµtheµtimeµduringµwhichµthe¡þ	Dinputµvoltageµbeginsµtoµriseµbutµhasµnotµreachedµtheµthresholdµlevel¡þ	atµwhichµchannelµconductionµbegins.µItµisµdefinedµinµtheµtimingµgroup¡þ	Õofµtheµdrivingµpin.¡þ
ƒTheµvalueµinµtheµattributeµstatementsµforµslopeµsensitivityµisµa¡þ
Ìpositiveµfloating³pointµnumberµthatµresultsµinµslopeµdelayµwhen¡þmultipliedµbyµtheµtransitionµdelay.’©4D“I501ileaf_page_string1:14-51¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,	,ê¡Ä,ê	cê¡Ä	cê	c	¡Ä	c	,	ÆÃÁÊËÃ¡ÄþêÊêÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³51¡þÏ²In´µtheµCMOSµLinearµDelayµModel¡þn²Use´µtheseµslopeµsensitivityµattributesµforµCMOSµlinearµorµpiecewise¡þ¶linearµtechnologyµonly.¡þ›²slope_rise´µAttributeµ¡þ:²This´µvalueµrepresentsµtheµincrementalµdelayµtoµaddµtoµtheµslopeµof¡þƒtheµinputµwaveformµforµaµlogicµ0³to³1µtransition.¡þa²Example¡þ¬²slope_rise´µ:µ0.0;¡þL²slope_fall´µAttributeµµ¡þë²This´µvalueµrepresentsµtheµincrementalµdelayµtoµaddµtoµtheµslopeµof¡þ4theµinputµwaveformµforµaµlogicµ1³to³0µtransition.¡þ²Example¡þ^²slope_fall:´µ0.0;¡þ	:²In´µtheµCMOSµPiecewiseµLinearµDelayµModel¡þ	Ú²See´µtheµslope_riseµandµslope_fallµattributesµinµtheµprecedingµsection¡þ
"describingµtheµCMOSµlinearµdelayµmodel.’4yD“I501ileaf_page_string1:14-52¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³52¡,Õ²Describing´µState³DependentµDelaysµ¡þ”²These´µtimingµattributesµdescribeµtheµdelayµvaluesµforµspecified¡þÝconditions.¡þInµtheµtimingµgroupµofµaµtechnologyµlibrary,µyouµcanµspecify¡þÈstate³dependentµdelaysµthatµcorrespondµtoµentriesµinµOVIµSDFµ2.1¡þsyntax.µReferµtoµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µfor¡þYsyntaxµinformationµaboutµtheµattributesµusedµtoµdefineµtimingµcheck¡þ¢conditionsµandµedgeµinformation.¡þEToµdefineµaµstate³dependentµtimingµarc,µuseµtheseµattributes:¡þÉ²S¡XÉ²whenµattribute¡þ=²S¡X=²sdf_condµattributeµ¡þÎForµstate³dependentµtiming,µeachµtimingµgroupµrequiresµboth¡þsdf_condµandµwhenµattributes.¡þºYouµmustµdefineµmutually³exclusiveµconditionsµforµstate³dependent¡þtimingµarcs.µ²&Mutually³exclusive²µmeansµnoµmoreµthanµoneµcondition¡þK(definedµinµtheµwhenµattribute)µcanµbeµmetµatµanyµtime.µYouµmust¡þ”alsoµdefineµaµdefaultµtimingµarcµthatµcontainsµnoµwhenµattribute.µThe¡þÜdefaultµtimingµarcµisµusedµifµnoneµofµtheµwhenµconditionsµare¡þ	%satisfied.¡þ	ÈSeeµGeneratingµanµSDFµFile"µlaterµinµthisµchapterµforµinformation¡þ
aboutµconditionalµpathµdelaysµinµanµSDFµfile.’y¡D“I501ileaf_page_string1:14-53¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³53¡þÏ²when´µAttributeµ¡þn²The´µwhenµattributeµisµaµBooleanµexpressionµinµtheµtimingµgroupµthat¡þ¶specifiesµtheµconditionµthatµaµtimingµarcµdependsµonµtoµactivateµa¡þÿpath.µConditionalµtimingµletsµyouµcontrolµtheµoutputµpinµofµaµcellµwith¡þHrespectµtoµtheµvariousµ²&states²µofµtheµinputµpins.¡þêSeeµChapterµ8,µDefiningµCoreµCells"µforµtheµvalidµBoolean¡þ3operators.¡þ²Example¡þ]²when´µ:µ"B";¡þø²Figure 14³6´µshowsµanµXORµgate.¡,ª²&Figure 14³6³XORµGateµwithµState³DependentµTimingµArc¡þf²¥	öä²¡ü¾B¡ü,A¡ÖðoutÃ¡Ä2±ü±ÆÃÃ¡Ä2#ü#ÆÃÃ¡Ätê·êÆÃÃ¡Ìÿÿÿÿÿÿ:6ÿÿÿÿÿÿÙQÿÿÿÿÿýH—"X‹ÿW5Ù|
îØ`¼`Ø`ÆÃÃ¡ÄÔxÕxÆÃÃ¡ÄÔ\Õ\ÆÃÃ¡Í×xƒZ³têÍtêGAM×\ãâÇÆÃâ¡Ìÿÿÿÿÿÿ:6ÿÿÿÿÿÿÙQÿÿÿÿÿýH–"X—þò1tx¥êr[V[r[ÆÃÁÊËÃ¡Ä7[£[ÆÃÃ¡ÌÿÿÿÿÿÿÈ„ÿÿÿÿÿÿ+ÓâB¢[§[W Û : ÛÆÃÃÊË¡Ä«¡©é¡Ä©é}«¡Ä}«”¦¡Ä”¦«¡ÇÆÃ¡.<T¤ÿþiming arc²¡f¡þ	#²Example 14³5µshowsµhowµtoµuseµtheµwhenµattributeµforµanµXOR¡þ	lgate.µInµtheµdescriptionµofµtheµXORµcell,µpinµAµsetsµconditionalµtiming¡þ	µforµtheµoutputµpinµoutµwhenµyouµdefineµtheµtimingµarcµforµrelated_pin¡þ	ýB.µInµthisµexample,µwhenµyouµsetµconditionalµtimingµforµrelated_pinµA¡þ
Fwithµtheµwhenµ:µ"B"µstatement,µtheµoutputµpinµgetsµthe¡þ
Žnegative_unateµvalueµofµAµwhenµtheµconditionµisµB.’¡ÊD“I501ileaf_page_string1:14-54¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³54¡þÏ²Valid´µPinµTypes¡þa²There´µareµlimitationsµonµtheµpinµtypesµthatµcanµbeµusedµwithµdifferent¡þªtypesµofµcellsµwithµtheµwhenµattribute.¡þ?Forµaµcombinationalµcell,µtheseµpinsµareµvalidµwithµtheµwhen¡þˆattribute:¡þ²S¡X²Pinsµinµtheµfunctionµattributeµforµregularµcombinationalµtiming¡XKarcs.¡þ¸²S¡X¸²Pinsµinµtheµthree_stateµattributeµforµtheµendpointµofµtheµtiming¡Xÿarc.¡þ…Forµaµsequentialµcell,µvalidµpinsµorµvariablesµtoµuseµwithµtheµwhen¡þÎattributeµareµdeterminedµbyµtheµtiming_typeµofµtheµarc.¡þJ²S¡XJ²Forµtiming_typeµ:µrising_edgeµandµtiming_typeµ:µfalling_edge,¡X‘pinsµinµtheseµattributesµareµallowedµinµtheµwhenµattribute:¡Xþ³¡”þnext_state¡Xk³¡”kclocked_on¡XØ³¡”Øclocked_on_also¡XE³¡”Eenable¡X³³¡”³data_in¡þ	 ²S¡X	 ²Forµtiming_typeµ:µclear¡X	³¡”	Ifµtheµpin'sµfunctionµisµtheµfirstµstateµvariableµinµtheµflip³flopµor¡”	Ólatchµgroup,µtheµpinµthatµdefinesµtheµclearµconditionµinµthe¡”
flip³flopµorµlatchµgroupµisµallowedµinµtheµwhenµconstruct.¡X
‡³¡”
‡Ifµtheµpin'sµfunctionµisµtheµsecondµstateµvariableµinµtheµflip³flop¡”
Îorµlatchµgroup,µtheµpinµthatµdefinesµtheµpresetµconditionµinµthe¡”flip³flopµorµlatchµgroupµisµallowedµinµtheµwhenµconstruct.’Ê@D“I501ileaf_page_string1:14-55¥	öäÃËÁâÊË¡Ä,™,ƒ¡Ä,ƒ	cƒ¡Ä	cƒ	c™¡Ä	c™,™ÆÃÁÊËÃ¡ÄþƒÊƒÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³55¡þÉ²²S¡XÉ²For´µtiming_typeµ:µpreset¡X+³¡”+Ifµtheµpin'sµfunctionµisµtheµfirstµstateµvariableµinµtheµflip³flopµor¡”qlatchµgroup,µtheµpinµthatµdefinesµtheµpresetµconditionµinµthe¡”¸flip³flopµorµlatchµgroupµisµallowedµinµtheµwhenµconstruct.¡X³¡”Ifµtheµpin'sµfunctionµisµtheµsecondµstateµvariableµinµtheµflip³flop¡”`orµlatchµgroup,µtheµpinµthatµdefinesµtheµclearµconditionµinµthe¡”§flip³flopµorµlatchµgroupµisµallowedµinµtheµwhenµconstruct.¡þSeeµtheµtiming_typeµAttribute"µsectionµearlierµinµthisµchapterµfor¡þcmoreµinformationµonµtiming_type.¡þâAllµinputµpinsµinµaµblackµboxµcellµ(aµcellµwithoutµfunctionµattribute)µare¡þ*allowedµinµtheµwhenµattribute.¡þÓ²sdf_cond´µAttribute¡þN²Defined´µinµtheµstate³dependentµtimingµgroup,µtheµsdf_condµattribute¡þ—supportsµStandardµDelayµFormatµ(SDF)µfileµgenerationµandµcondition¡þßmatchingµduringµbackµannotation.µ¡þ‚²Example¡þÇ²sdf_cond´µ=µ"SEµ==1'B1";¡þP²The´µsdf_condµattributeµshouldµbeµlogicallyµequivalentµtoµtheµwhen¡þ™attributeµinµtheµsameµtimingµarc.µIfµtheseµtwoµBooleanµexpressions¡þâareµnotµequivalent,µbackµannotationµisµnotµperformedµproperly.µThe¡þ	*LibraryµCompilerµproductµdoesµnotµcheckµforµlogicalµequivalency¡þ	sbetweenµtheseµtwoµexpressions.¡þ	òExample 14³5µisµaµtwo³inputµXORµgate.µItµrepresentsµaµcommonly¡þ
:usedµstate³dependentµdelayµcase.µTheµintrinsicµdelayµbetweenµpinµA¡þ
ƒandµpinµOUTµisµ1.3µforµrisingµandµ1.5µforµfallingµwhenµpinµBµ=µ1.¡þ
ÌThereµisµanµadditionalµtimingµarcµbetweenµtheµsameµtwoµpinsµthat¡þhasµintrinsic_riseµ1.4µandµintrinsic_fallµ1.6µwhenµpinµBµ=µ0.’@gD“I501ileaf_page_string1:14-56¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³56¡,É²&Example 14³5³XOR´µCellµwithµState³DependentµTiming¡þ#²cell(XOR)´µ{¡þa¡…apin(A)µ{¡þŸ¡…Ÿ¡Ÿdirectionµ:µinput;¡þÝ¡…Ý...¡þ¡…}¡þY¡…Ypin(B)µ{¡þ—¡…—¡—directionµ:µinput;¡þÕ¡…Õ...¡þ¡…}¡þQ¡…Qpin(out)µ{¡þ¡…¡directionµ:µoutput;¡þÌ¡…Ì¡Ìfunctionµ:µ"Aµ^µB";¡þ
¡…
¡
timing()µ{¡þH¡…H¡H¡“Hrelated_pinµ:µ"A";¡þ†¡…†¡†¡“†timing_senseµ:µnegative_unate;¡þÄ¡…Ä¡Ä¡“Äwhenµ:µ"B";¡þ¡…¡¡“sdf_condµ:µ"µBµ==µ1'B1µ";¡þ@¡…@¡@¡“@intrinsic_riseµ:µ1.3;¡þ~¡…~¡~¡“~intrinsic_fallµ:µ1.5;¡þ¼¡…¼¡¼}¡þú¡…ú¡útiming()µ{¡þ8¡…8¡8¡“8related_pinµ:µ"A";¡þv¡…v¡v¡“vtiming_senseµ:µpositive_unate;¡þ´¡…´¡´¡“´whenµ:µ"!B";¡þñ¡…ñ¡ñ¡“ñsdf_condµ:µ"µBµ==µ1'B0µ";¡þ/¡…/¡/¡“/intrinsic_riseµ:µ1.4;¡þm¡…m¡m¡“mintrinsic_fallµ:µ1.6;¡þ«¡…«¡«}¡þé¡…é¡étiming()µ{¡¡é¡(é/*µdefaultµtimingµarcµ*/¡þ	'¡…	'¡	'¡“	'related_pinµ:µ"A";¡þ	e¡…	e¡	e¡“	etiming_senseµ:µnon_unate;¡þ	£¡…	£¡	£¡“	£intrinsic_riseµ:µ1.4;¡þ	á¡…	á¡	á¡“	áintrinsic_fallµ:µ1.6;¡þ
¡…
¡
}¡þ
]¡…
]¡
]timing()µ{¡þ
›¡…
›¡
›¡“
›related_pinµ:µ"B";¡þ
Ø¡…
Ø¡
Ø¡“
Øtiming_senseµ:µnegative_unate;¡þ¡…¡¡“whenµ:µ"A";’g5D“I501ileaf_page_string1:14-57¥	öäÃËÁâÊË¡Ä,8,"¡Ä,"	c"¡Ä	c"	c8¡Ä	c8,8ÆÃÁÊËÃ¡Ä,"Ê"ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³57¡þÃ²¡…Ã¡Ã¡“Ãsdf_cond´µ:µ"Aµ==µ1'B1µ";¡þ¡…¡¡“intrinsic_riseµ:µ1.3;¡þ?¡…?¡?¡“?intrinsic_fallµ:µ1.5;¡þ~¡…~¡~}¡þ¼¡…¼¡¼timing()µ{¡þú¡…ú¡ú¡“úrelated_pinµ:µ"B";¡þ9¡…9¡9¡“9timing_senseµ:µpositive_unate;¡þw¡…w¡w¡“wwhenµ:µ"!A";¡þµ¡…µ¡µ¡“µsdf_condµ:µ"Aµ==µ1'B0µ";¡þó¡…ó¡ó¡“óintrinsic_riseµ:µ1.4;¡þ2¡…2¡2¡“2intrinsic_fallµ:µ1.6;¡þp¡…p¡p}¡þ®¡…®¡®timing()µ{¡¡®¡(®/*µdefaultµtimingµarcµ*/¡þì¡…ì¡ì¡“ìrelated_pinµ:µ"B";¡þ+¡…+¡+¡“+timing_senseµ:µnon_unate;¡þi¡…i¡i¡“iintrinsic_riseµ:µ1.4;¡þ§¡…§¡§¡“§intrinsic_fallµ:µ1.6;¡þæ¡…æ¡æ}¡þ$¡…$}¡þb}¡,x²Setting´µSetupµandµHoldµConstraints¡þJ²Signals´µarrivingµatµanµinputµpinµhaveµrampµtimes.µTherefore,µyou¡þ’mustµensureµthatµtheµdataµsignalµhasµstabilizedµbeforeµlatchingµits¡þÛvalueµbyµdefiningµsetupµandµholdµarcsµasµtimingµrequirements.µNo¡þ	#pathµtracingµtakesµplaceµalongµtheseµtimingµarcs;µtheyµareµused¡þ	lsolelyµforµconstraintµverification.¡þ	ú²S¡X	ú²Setupµconstraintsµdescribeµtheµminimumµtimeµallowedµbetween¡X
Atheµarrivalµofµtheµdataµandµtheµtransitionµofµtheµclockµsignal.¡X
‡Duringµthisµtime,µtheµdataµsignalµmustµremainµconstant.µIfµthe¡X
Îdataµsignalµmakesµaµtransitionµduringµtheµsetupµtime,µanµincorrect¡Xvalueµmayµbeµlatched.µ’5	ãD“I501ileaf_page_string1:14-58¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³58¡þÉ²²S¡XÉ²Hold´µconstraintsµdescribeµtheµminimumµtimeµallowedµbetween¡Xtheµtransitionµofµtheµclockµsignalµandµtheµlatchingµofµtheµdata.¡XVDuringµthisµtime,µtheµdataµsignalµmustµremainµconstant.µIfµthe¡Xdataµsignalµmakesµaµtransitionµduringµtheµholdµtime,µanµincorrect¡Xãvalueµmayµbeµlatched.¡þuByµcombiningµaµsetupµtimeµandµaµholdµtime,µyouµcanµensureµthe¡þ¾stabilityµofµdataµthatµisµlatched.¡þ`Figure 14³7µshowsµsetupµandµholdµtimingµforµaµpositive¡þ©edge³triggeredµflip³flop.µTheµtimingµchecksµforµflip³flopsµuseµthe¡þòactivatingµedgeµofµtheµclock,µwhichµinµthisµcaseµisµtheµrisingµedge.¡,£²&Figure 14³7³SetupµandµHoldµConstraintsµforµPositiveµEdgeµTriggered¡²æFlip³Flop¡,^²¥	öäÃËÁÊË¡ÄsªLª¡ÄLªL_¡ÄL_}_¡Ä}_}ª¡Ä}ª<ª¡Ä<ª<_¡Ä<_G_ÆÃÃ¡Ävõèõ¡Äèõè@¡Äè@@¡Ä@õ¡Äõõ¡Äõ@¡Ä@®@¡Ä®@®õ¡Ä®õ¶õ¡Ä¶õ¶@¡Ä¶@(@ÆÃÊËÃ¡Äìéì²ÆÃÃ¡Äìžì)ÆÃÃ¡ÄLSL%ÆÃÃ¡ÄL»L/ÆÃÃ¡ÄLQL¹ÆÃÃ¡Ä†U†¹ÆÃÃ¡ÄôSGSÆÃÃÊË¡Ä2FGS¡ÄGS2_¡Ä2_2S¡Ä2S2FãÇÆÃÃ¡Ä
_ôS¡ÄôS
F¡Ä
F
S¡Ä
S
_ÇÆÃÊËÃ¡Äz?zÆÃÃÊË¡Ä)n?z¡Ä?z)‡¡Ä)‡)z¡Ä)z)nÇÆÃÊËÃ¡ÄÄ’ÆÃÃÊË¡Ä¨‹’¡Ä’¨r¡Ä¨r¨¡Ä¨¨‹ÇÆÃ²¡¶lA¡ãB¡ú·Clock¡ýDataÊËÃ¡Ä½M½¬ÆÃÃ¡Ä®™®ÆÃÃ¡Ä;N;ÆÃÃ¡Ä®ä®»ÆÃÃ¡Ä;·;íÆÃÃ¡Ä;;¬ÆÃÃ¡Ä@r½rÆÃÃÊË¡Ä§f½r¡Ä½r§¡Ä§§r¡Ä§r§fÇÆÃÃ¡ÄU@r¡Ä@rUf¡ÄUfUr¡ÄUrUÇÆÃÊËÃ¡Ä®>;>ÆÃÃÊË¡Ä&1;>¡Ä;>&J¡Ä&J&>¡Ä&>&1ÇÆÃÃ¡ÄÃJ®>¡Ä®>Ã1¡ÄÃ1Ã>¡ÄÃ>ÃJÇÆÃ¡xBC¡‹D¡½
A´µ=µdataµlowµsetup´µtime¡½SB´µ=µdataµlowµholdµtime¡
Cµ=µdataµhighµsetupµtime¡SDµ=µdataµhighµholdµtime²¡Ê^¡þ	²Figure 14³8´µillustratesµsetupµandµholdµtimingµforµaµhigh³enableµlatch.¡þ	dTheµtimingµchecksµforµlatchesµgenerallyµuseµtheµdeactivatingµedgeµof¡þ	¬theµenableµsignal,µwhichµinµthisµcaseµisµtheµfallingµedge.µHowever,¡þ	õtheµmethodµusedµdependsµonµtheµvendor.’	ã	aD“I501ileaf_page_string1:14-59¥	öäÃËÁâÊË¡Ä,F,0¡Ä,0	c0¡Ä	c0	cF¡Ä	cF,FÆÃÁÊËÃ¡Äþ0Ê0ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³59¡,É²&Figure 14³8³Setup´µandµHoldµConstraintsµforµHigh³EnableµLatch¡,r²¥	öäÃÁÊË¡Ä|ÄåÄ¡ÄåÄåy¡Äåy˜y¡Ä˜y˜Ä¡Ä˜ÄÔÄ¡ÄÔÄÔy¡ÄÔy×yÆÃÃ¡Ä€#¡Ä##^¡Ä#^ß^¡Äß^ß¡Äß¡Äb¡ÄbŒb¡ÄŒbŒ¡ÄŒC¡ÄCCZ¡ÄCZŠZÆÃ²¡áNA¡¡B¡ïÕEnable¡Data¡ú?C¡œ˜DÃ¡Ä×y×À¡Ä×ÀmÀÆÃÊËÃ¡ÄúŠÆÃÊËÃ¡ÄdÆÃÃ¡ÄdÆÃÃ¡Ä??ÆÃÃÊË¡Äy2?¡Ä?yK¡ÄyKy?¡Äy?y2ãÇÆÃÃ¡Ä4K?¡Ä?42¡Ä424?¡Ä4?4KÇÆÃÊËÃ¡Ä—Ò—CÆÃÊËÃ¡Äk¶ÆÃÃ¡ÄÚkÚ¶ÆÃÃ¡ÄDÆÃÃÊË¡Äy„¡Äy¡Äyy¡Äyy„ÇÆÃÊËÃ¡Ä%ÚÆÃÃÊË¡ÄïÚ¡ÄÚï„¡Äï„ï¡ÄïïÇÆÃÊËÃ¡ÄŒúŒ…ÆÃÊËÃ¡ÄŒdŒÆÃÃ¡Ä×d×ÆÃÊËÃ¡Ä×È×ÆÃÊËÃ¡Ä× ×¡ÆÃÃ¡ÄCfC¥ÆÃÃ¡ÄÛƒ?ƒÆÃÃÊË¡Ä)w?ƒ¡Ä?ƒ)¡Ä))ƒ¡Ä)ƒ)wÇÆÃÃ¡ÄñÛƒ¡ÄÛƒñw¡Äñwñƒ¡ÄñƒñÇÆÃÊËÃ¡Äˆ606ÆÃÃÊË¡Är*ˆ6¡Äˆ6rC¡ÄrCr6¡Är6r*ÇÆÃÊËÃ¡ÄÛ626ÆÃÃÊË¡ÄñCÛ6¡ÄÛ6ñ*¡Äñ*ñ6¡Äñ6ñCÇÆÃ¡ÑA´µ=µdataµlowµsetupµtime¡ÑgBµ=µdataµlowµholdµtime¡(Cµ=µdataµhighµsetupµtime¡(gDµ=µdataµhighµholdµtime²¡Êr¡þ²In´µtheµCMOSµLinearµDelayµModelµ¡þ%²Use´µsetupµandµholdµconstraintsµonlyµbetweenµdataµpinsµandµclock¡þmpins.µ¡þ\²Setup´µConstraintsµµ¡þ²To´µdefineµaµsetupµconstraint,¡þŠ1.¡XŠAssignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattribute:¡þ	setup_risingµ¡X	IDesignatesµtheµrisingµedgeµofµtheµrelatedµpinµforµtheµsetupµcheck.¡þ	²setup_fallingµ¡X	úDesignatesµtheµfallingµedgeµofµtheµrelatedµpinµforµtheµ¡X
Csetupµcheck.¡þ
ÌTheµsetup_risingµandµsetup_fallingµvaluesµdefineµtimingµarcsµthatµare¡þusedµforµsetupµchecksµonµclockedµelements.’	aLD“I501ileaf_page_string1:14-60¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³60¡þÉ²2.¡XÉSpecify´µaµrelatedµpinµinµtheµtimingµgroup.¡X=Theµrelated_pinµattributeµinµaµtimingµarcµwithµaµsetup_risingµor¡Xƒsetup_fallingµtimingµtypeµidentifiesµtheµpinµusedµforµtheµtiming¡XÊcheck.µTheµrisingµorµfallingµdesignationµtellsµDesignµCompiler¡Xwhichµedgeµofµtheµrelatedµpinµisµactiveµforµtheµsetupµcheck.µ¡þí²Example¡þY²Thisµexampleµdescribesµtheµsetupµarcµforµtheµdataµpinµonµaµpositive¡þ¢edge³triggeredµDµflip³flopµshownµinµFigure 14³7.µTheµintrinsic_rise¡þëvalueµrepresentsµsetupµtimeµCµandµtheµintrinsic_fallµvalueµrepresents¡þ3setupµtimeµA.µµTheµsyntaxµshownµassumesµaµlinearµorµpiecewise¡þ|linearµdelayµmodel.¡þý²´µµµµtiming()µ{¡þ:µµµµµµtiming_typeµ:µsetup_risingµ;¡þwµµµµµµintrinsic_riseµ:µ1.5µ;¡þ´µµµµµµintrinsic_fallµ:µ1.5µ;¡þñµµµµµµrelated_pinµ:µ"Clock"µ;¡þ.µµµµµ}¡þÉ²The´µfollowingµexampleµdescribesµtheµsetupµconstraintµforµtheµdata¡þpinµonµaµhigh³enableµlatchµshownµinµFigure 14³8.µTheµintrinsic_rise¡þZvalueµrepresentsµsetupµtimeµCµandµtheµintrinsic_fallµvalueµrepresents¡þ£setupµtimeµA.¡þ	$²´µµµtiming()µ{¡þ	aµµµµµµtiming_typeµ:µsetup_fallingµ;¡þ	žµµµµµµintrinsic_riseµ:µ1.5µ;¡þ	Ûµµµµµµintrinsic_fallµ:µ1.5µ;¡þ
µµµµµµrelated_pinµ:µ"Enable"µ;¡þ
Uµµµµµ}’L‰D“I501ileaf_page_string1:14-61¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³61¡þÉ²Note:²¡X²The´µVHDLµlibraryµgeneratorµacceptsµonlyµoneµsetupµorµhold¡XZvalue.µForµexample,µifµyouµuseµbothµintrinsic_riseµand¡X£intrinsic_fallµattributes,µtheµlibraryµgeneratorµusesµtheµmaximum¡Xìofµtheµtwoµvalues.µµ¡þÐ²Hold´µConstraintsµµµ¡þo²To´µdefineµaµholdµconstraint,¡þô1.¡XôAssignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattribute:¡þghold_rising¡X°Thisµvalueµdesignatesµtheµrisingµedgeµofµtheµrelatedµpinµforµthe¡Xùholdµcheck.¡þ_hold_falling¡X¨Thisµvalueµdesignatesµtheµfallingµedgeµofµtheµrelatedµpinµforµthe¡Xðholdµcheck.¡þuTheµhold_risingµandµhold_fallingµvaluesµofµtheµtiming_typeµattribute¡þ¾defineµtimingµconstraintsµthatµareµusedµforµholdµchecksµonµclocked¡þelements.¡þ‹2.¡X‹Specifyµaµrelatedµpinµinµtheµtimingµgroup.¡XÿTheµrelated_pinµattributeµinµaµtimingµarcµwithµaµhold_risingµor¡X	Ehold_fallingµtimingµtypeµidentifiesµtheµpinµusedµforµtheµtiming¡X	Œcheck.µTheµrisingµorµfallingµdesignationµtellsµDesignµCompiler¡X	Òwhichµedgeµofµtheµrelatedµpinµisµactiveµforµtheµholdµcheck.’‰ªD“I501ileaf_page_string1:14-62¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³62¡þÉ²Example¡þ6²This´µexampleµshowsµtheµholdµconstraintµforµpinµDµonµaµpositive¡þ~edge³triggeredµDµflip³flop.µTheµintrinsic_riseµvalueµrepresentsµhold¡þÇtimeµBµinµFigure 14³7µandµtheµintrinsic_fallµvalueµisµholdµtimeµD.¡þH²´µµtiming()µ{¡þ…µµµµµµtiming_typeµ:µhold_rising;¡þÂµµµµµµintrinsic_riseµ:µ0.5µ;¡þÿµµµµµµintrinsic_fallµ:µ0.5µ;¡þ<µµµµµµrelated_pinµ:µ"Clock"µ;¡þyµµµµ}¡þ²The´µfollowingµexampleµshowsµtheµholdµconstraintµforµtheµdataµpinµon¡þ\aµhigh³enableµlatchµisµdescribed.µTheµintrinsic_riseµvalueµrepresents¡þ¥holdµtimeµBµinµFigure 14³8µandµtheµintrinsic_fallµvalueµrepresents¡þîholdµtimeµD.¡þo²´µµµtiming()µ{¡þ¬µµµµµµtiming_typeµ:µhold_fallingµ;¡þéµµµµµµintrinsic_riseµ:µ1.5µ;¡þ&µµµµµµintrinsic_fallµ:µ1.5µ;¡þcµµµµµµrelated_pinµ:µ"Enable"µ;¡þŸµµµµ}¡þ|²Setup´µandµHoldµTimingµConstraints¡þ	²A´µcompleteµsetupµandµholdµtimingµconstraintµisµdescribedµby¡þ	dcombiningµaµsetupµconstraintµandµaµholdµconstraint.µTheµfollowing¡þ	­exampleµshowsµsetupµandµholdµtimingµconstraintsµonµpinµKµinµaµJK¡þ	õflip³flop.’ªD“I501ileaf_page_string1:14-63¥	öäÃËÁâÊË¡Ä,2,¡Ä,	c¡Ä	c	c2¡Ä	c2,2ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,‚,l¡Ä,l	cl¡Ä	cl	c‚¡Ä	c‚,‚ÆÃÁÊËÃ¡ÄþlÊlÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³63¡þÃ²´µpin(K)µ{¡þµµµµdirectionµ:µinputµ;¡þAµµµµcapacitanceµ:µ1.3µ;¡þ€µµµµtiming()µ{¡þ¿µµµµµµtiming_typeµ:µsetup_risingµ;¡þþµµµµµµintrinsic_riseµ:µ1.5µ;¡þ=µµµµµµintrinsic_fallµ:µ1.5µ;¡þ}µµµµµµrelated_pinµ:µ"CP"µ;¡þ¼µµµµ}¡þûµµµµtiming()µ{¡þ:µµµµµµtiming_typeµ:µhold_risingµ;¡þyµµµµµµintrinsic_riseµ:µ0.0µ;¡þ¸µµµµµµintrinsic_fallµ:µ0.0µ;¡þ÷µµµµµµrelated_pinµ:µ"CP"µ;¡þ6µµµµ}¡þuµ}¡þl²In´µtheµCMOSµPiecewiseµLinearµDelayµModelµµ¡þ!²See´µtheµsetup_rising,µsetup_falling,µhold_rising,µandµhold_falling¡þjattributesµinµtheµprecedingµsectionµdescribingµtheµCMOSµlinearµdelay¡þ²model.¡þ¼²In´µtheµCMOSµNonlinearµDelayµModelµµ¡þ	q²The´µCMOSµnonlinearµtimingµmodelµcanµsupportµtimingµconstraints¡þ	ºthatµareµsensitiveµtoµclockµorµdata³inputµtransitionµtimes.µEach¡þ
constraintµisµdefinedµbyµaµtimingµgroupµwithµtwoµlookupµtables:¡þ
–²S¡X
–²rise_constraintµgroup¡þ²S¡X²fall_constraintµgroup’ªD“I501ileaf_page_string1:14-64¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³64¡þÏ²rise_constraint´µandµfall_constraintµGroups¡þk²These´µconstraintµtablesµtakeµtheµplaceµofµtheµintrinsic_riseµand¡þ³intrinsic_fallµattributesµusedµinµtheµotherµdelayµmodels.µTheµformatµof¡þütheµlookupµtableµtemplateµandµtheµformatµofµtheµlookupµtableµareµthe¡þEsameµasµdescribedµpreviouslyµinµDefiningµtheµCMOSµNonlinear¡þDelayµModelµTemplate"µandµCreatingµLookupµTables."¡þ-Theseµareµvalidµvariableµvaluesµforµtheµtimingµconstraintµtemplate:¡þ¯constrained_pin_transition¡XøValueµforµtheµtransitionµtimeµofµtheµpinµthatµownsµtheµtiming¡X@group.¡þ¦related_pin_transition¡XïValueµforµtheµtransitionµtimeµofµtheµrelated_pinµdefinedµinµthe¡X7timingµgroup.¡þºAtµleastµoneµtableµisµrequiredµforµeachµtimingµgroupµwithµoneµofµthe¡þfollowingµtiming_typeµattributeµvalues:¡þ…²S¡X…²setup_rising¡þ÷²S¡X÷²setup_fallingµ¡þi²S¡Xi²hold_rising¡þÛ²S¡XÛ²hold_falling¡þ	M²S¡X	M²skew_rising¡þ	¾²S¡X	¾²skew_falling¡þ
0²S¡X
0²non_seq_setup_risingµ¡þ
¢²S¡X
¢²non_seq_setup_fallingµ¡þ²S¡X²non_seq_hold_risingµ’ª!D“I501ileaf_page_string1:14-65¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³65¡þÉ²²S¡XÉ²non_seq_hold_falling´µ¡þ:²S¡X:²nochange_high_high¡þª²S¡Xª²nochange_high_low¡þ²S¡X²nochange_low_high¡þ‹²S¡X‹²nochange_low_low¡þOnlyµoneµtableµisµrequiredµforµtimingµgroupsµwithµoneµofµtheµfollowing¡þ`timing_typeµattributeµvalues:¡þá²S¡Xá²recovery_rising¡þQ²S¡XQ²recovery_falling¡þÂ²S¡XÂ²removal_rising¡þ2²S¡X2²removal_fallingµ¡þ¾Example 14³6µshowsµhowµtoµspecifyµsetupµconstraintsµforµaµflip³flop¡þusingµtables.¡,²²&Example 14³6³CMOSµNonlinearµTimingµModelµUsingµConstraint¡þ²library(´µvendor_bµ)µ{¡þ/*µ1.µUseµdelayµlookupµtableµ*/¡þ¼delay_modelµ:µtable_lookup;¡þ	4/*µ2.µDefineµtemplateµofµsizeµ3µxµ3*/¡þ	plu_table_template(constraint_template)µ{¡þ	­µµµvariable_1µ:µconstrained_pin_transition;¡þ	éµµµvariable_2µ:µrelated_pin_transition;¡þ
%µµµµµindex_1µ("0.0,µ0.5,µ1.5");¡þ
bµµµµµindex_2µ("0.0,µ2.0,µ4.0");¡þ
ž}¡þ
Ú.µ.µ.¡þµ’!FD“I501ileaf_page_string1:14-66¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³66¡þÃ²cell(dff)´µ{¡þµµµµpin(d)µ{¡þ=µµµµµµdirection:µinput;¡þzµµµµµµtiming()µ{¡þ¶µµµµµµµµµrelated_pinµ:µ"clk";¡þóµµµµµµµµµtiming_typeµ:µsetup_rising;¡þ0µ¡þm µµµµµµµµ/*µInheritµtheµ`constraint_template'µtemplateµ*/¡þªµµµµµµµµµrise_constraint(constraint_template)µ{¡þ$µµµµµµµµµµµ/*µSpecifyµallµtheµvaluesµ*/¡þaµµµµµµµµµµµvaluesµ("0.0,µ0.13,µ0.19",µµ\¡þžµµµµµµµµµµµµµµµµµµµ"0.21,µ0.23,µ0.41",µ\¡þÚµµµµµµµµµµµµµµµµµµµ"0.33,µ0.37,µ0.50");¡þµµµµµµµµµ}¡þTµµµµµµµµµfall_constraint(constraint_template)µ{¡þ‘µµµµµµµµµµµvaluesµ("0.0,µ0.14,µ0.20",µµ\¡þÎµµµµµµµµµµµµµµµµµµµ"0.22,µ0.24,µ0.42",µ\¡þµµµµµµµµµµµµµµµµµµµ"0.34,µ0.38,µ0.51");¡þHµµµµµµµµµ}¡þ…µµµµµµ}¡þÂµµµµµµ.µ.µ.¡þþµµµµ}¡þ;µµ}¡þxµ.µ.µ.¡þµ}’FÑD“I501ileaf_page_string1:14-67¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³67¡,Õ²Setting´µNonsequentialµTimingµConstraints¡þŽ²You´µcanµsetµconstraintsµrequiringµtheµdataµsignalµonµanµinputµpin¡þ×remainµstableµforµaµspecifiedµamountµofµtimeµbeforeµorµafterµanother¡þ pinµinµtheµsameµcellµchangesµstate.µTheseµcellsµareµtermed¡þhnon³sequentialµcellsµbecauseµtheµrelatedµpinµisµnotµaµclockµsignal.¡þAllµSynopsysµdelayµmodelsµsupportingµsequentialµsetupµandµhold¡þOconstraintµmodelingµalsoµsupportµnon³sequentialµsetupµandµhold¡þ˜modeling.¡þ6Scalingµofµnonsequentialµsetupµandµholdµconstraintsµbasedµonµthe¡þenvironmentµuseµtheµK³factorsµforµsequentialµsetupµandµhold¡þÇconstraints.¡þfToµmodelµnonsequentialµsetupµandµholdµconstraintsµforµaµcell,¡þè1.¡XèAssignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattributeµinµa¡X.timingµgroupµofµanµinputµorµinoutµpin.µ¡þ non_seq_setup_risingµ¡XèThisµvalueµdesignatesµtheµrisingµedgeµofµtheµrelatedµpinµforµthe¡X1setupµcheck.¡þ–non_seq_setup_fallingµ¡XßThisµvalueµdesignatesµtheµfallingµedgeµofµtheµrelatedµpinµµforµthe¡X	'setupµcheck.¡þ	non_seq_hold_risingµ¡X	ÕThisµvalueµdesignatesµtheµrisingµedgeµofµtheµrelatedµpinµforµthe¡X
holdµcheck.¡þ
ƒnon_seq_hold_fallingµ¡X
ÌThisµvalueµdesignatesµtheµfallingµedgeµofµtheµrelatedµpinµforµthe¡Xholdµcheck.’Ñ÷D“I501ileaf_page_string1:14-68¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³68¡þÉ²2.¡XÉSpecify´µaµrelatedµpinµwithµtheµrelated_pinµattributeµinµtheµtiming¡Xgroup.µTheµrelatedµpinµinµaµtimingµarcµisµtheµpinµusedµforµthe¡XVtimingµcheck.¡XÊUseµanyµpinµinµtheµsameµcellµexceptµforµoutputµpinsµandµthe¡Xconstrainedµpinµitselfµasµtheµrelatedµpin.¡X“Youµcanµuseµbothµrisingµandµfallingµedgesµasµtheµactiveµedgeµof¡XÚtheµrelatedµpinµforµoneµcell.¡þ¶²Example¡þ²pin(T)´µ{¡þ>µµtiming()µ{¡þ{µµµµµtiming_typeµ:µnon_seq_setup_falling;¡þ¸µµµµµintrinsic_riseµ:µ1.5;¡þõµµµµµintrinsic_fallµ:µ1.5;¡þ2µµµµµrelated_pinµ:µ"S";¡þoµµ}¡þ¬}¡þG²Figure 14³9´µshowsµtheµwaveformsµforµtheµnonsequentialµtimingµarc¡þdescribedµinµtheµprecedingµexample.µInµthisµtimingµarc,µthe¡þØconstrainedµpinµisµTµandµitsµrelatedµpinµisµS.µTheµintrinsicµriseµvalue¡þ describesµsetupµtimeµC²&µ²orµholdµtimeµB.µTheµintrinsicµfallµvalue¡þidescribesµsetupµtimeµAµorµholdµtimeµD.’÷	µD“I501ileaf_page_string1:14-69¥	öäÃËÁâÊË¡Ä,¬,–¡Ä,–	c–¡Ä	c–	c¬¡Ä	c¬,¬ÆÃÁÊËÃ¡Ä,–Ê–ÆÃ¥	öäÃÁÊË¡Ä,Ÿ,‰¡Ä,‰	c‰¡Ä	c‰	cŸ¡Ä	cŸ,ŸÆÃÁÊËÃ¡Äþ‰Ê‰ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³69¡,É²&Figure 14³9³Nonsequential´µSetupµandµHoldµConstraints¡,É²¥	öäÃÁÊË¡Äì×T×¡ÄT×TŒ¡ÄTŒŒ¡ÄŒ×¡Ä×D×¡ÄD×DŒ¡ÄDŒFŒÆÃÃ¡Äïl’l¡Ä’l’»¡Ä’»N»¡ÄN»Nh¡ÄNhðh¡Äðhð¿¡Äð¿û¿¡Äû¿ûl¡Äûl²l¡Ä²l²·¡Ä²·ù·ÆÃ²¡QaA¡ŠþB¡iQC¡öDÃ¡ÄFŒFÒ¡ÄFÒÜÒÆÃÊËÃ¡Ä’l•œÆÃÊËÃ¡Äw,ÆÃÃ¡Äþwþ,ÆÃÃ¡ÄQþQÆÃÃÊË¡ÄèEþQ¡ÄþQè^¡Äè^èQ¡ÄèQèEãÇÆÃÃ¡Ä£^Q¡ÄQ£E¡Ä£E£Q¡Ä£Q£^ÇÆÃÊËÃ¡Äå»ÆÃÊËÃ¡ÄþÈþÆÃÃ¡ÄIÈIÆÃÃ¡Ä³íþíÆÃÃÊË¡Äèáþí¡Äþíèú¡Äèúèí¡ÄèíèáÇÆÃÊËÃ¡Ä”íIíÆÃÃÊË¡Ä^úIí¡ÄIí^á¡Ä^á^í¡Ä^í^úÇÆÃÊËÃ¡Äûlû˜ÆÃÊËÃ¡Äõ`õÆÃÃ¡Ä@`@üÆÃÊËÃ¡ÄFÛF[ÆÃÊËÃ¡ÄF}FþÆÃÃ¡Ä²Ä²ÆÃÃ¡ÄJá®áÆÃÃÊË¡Ä™Ô®á¡Ä®á™í¡Ä™í™á¡Ä™á™ÔÇÆÃÃ¡Ä`íJá¡ÄJá`Ô¡Ä`Ô`á¡Ä`á`íÇÆÃÊËÃ¡Ä÷IŸIÆÃÃÊË¡Äá<÷I¡Ä÷IáU¡ÄáUáI¡ÄáIá<ÇÆÃÊËÃ¡ÄJI¢IÆÃÃÊË¡Ä`UJI¡ÄJI`<¡Ä`<`I¡Ä`I`UÇÆÃ¡ÓtA´µ=µintrinsic_fallµinµsetupµtime¡Ó½Bµ=µintrinsic_riseµinµholdµtime¡œtCµ=µintrinsic_riseµinµsetupµtime¡œ½Dµ=µintrinsic_fallµinµholdµtime¡O(relatedµpin)¡¤(constrainedµpin)¡ªåS¡¬}T²¡ÊÉ¡,ì²Setting´µRecoveryµandµRemovalµTimingµConstraints¡þ¬²Use´µtheµrecoveryµandµremovalµtimingµarcsµforµasynchronousµcontrol¡þôpinsµsuchµasµclearµandµpreset.µµ¡þÙ²Recovery´µConstraints¡þx²The´µrecoveryµtimingµarcµdescribesµtheµminimumµallowableµtime¡þÀbetweenµtheµcontrolµpinµtransitionµtoµtheµinactiveµstateµandµtheµactive¡þ		edgeµofµtheµsynchronousµclockµsignalµ(timeµbetweenµtheµcontrol¡þ	Rsignalµgoingµinactiveµandµtheµclockµedgeµthatµlatchesµdataµin).’	µWD“I501ileaf_page_string1:14-70¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³70¡þÉ²The´µasynchronousµcontrolµsignalµmustµremainµconstantµduringµthis¡þtimeµorµanµincorrectµvalueµmayµappearµatµtheµoutputs.¡þ”Figure 14³10µshowsµtheµrecoveryµtimingµarcµforµaµpositive¡þÝedge³triggeredµflip³flopµwithµactive³lowµclear.¡þ`Figure 14³11µshowsµtheµrecoveryµtimingµarcµforµaµlow³enableµlatch¡þ¨withµactive³highµpreset.¡,4²&Figure 14³10³RecoveryµTimingµConstraintµforµaµPositiveµEdgeµTriggered¡²wFlip³Flop¡,p²¥	öä²¡ûÆA¡JClock¡ãClear¡ÌcA¤ÿþ = clear to clock recovery timeÃËÁÊË¡Ä}Õ'Õ¡Ä'Õ'Š¡Ä'ŠßŠÆÃÃ¡Ä‡@À@¡ÄÀ@Àõ¡ÄÀõ²õ¡Ä²õ²<¡Ä²<ê<ÆÃÊËÃ¡Äµìµ¡ÆÃÃ¡Ä'z'TÆÃÃ¡Ä'7'©ÆÃÃ¡Ä'ÂµÂÆÃÃÊË¡Ä ¶µÂ¡ÄµÂ Ï¡Ä Ï Â¡Ä Â ¶ãÇÆÃÃ¡Ä=Ï'Â¡Ä'Â=¶¡Ä=¶=Â¡Ä=Â=ÏÇÆÃ²¡Êp¡,²&Figure 14³11³RecoveryµTimingµConstraintµforµaµLow³EnableµLatch¡,Ö²¥	öä²¡$@Preset¡âËA¤ÿþ = clear to clock recovery timeÊËÃ¡Ä¯898ÆÃÃ¡Ä998ÆÃÃ¡Ä;ÄÆÃÊËÃ¡Ä6$65ÆÃËÃ¡ÄËË=ÆÃ¡ùeAÊËÃ¡ÄÊóÊ¢ÆÃÃ¡Äíöí¢ÆÃÁÊËÃ¡Ä­¡è¡ÆÃÃ¡ÄÊ · ÆÃÃ¡ÄíùÇùÆÃ¡ªEnableÁÊËÃ¡Ä=^Ë^ÆÃÃÊË¡ÄµRË^¡ÄË^µk¡Äµkµ^¡Äµ^µRÇÆÃÃ¡ÄSk=^¡Ä=^SR¡ÄSRS^¡ÄS^SkÇÆÃ²¡ÊÖ¡þ	h²Toµdefineµaµrecoveryµtimeµconstraintµforµanµasynchronousµcontrol¡þ	°pin,¡þ
1.¡X
Assignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattribute:¡þ
ƒrecovery_rising¡X
ÌUsesµtheµrisingµedgeµofµtheµrelatedµpinµforµtheµrecoveryµtime¡Xcheck;µtheµclockµisµpositiveµedge³triggered.’W¡D“I501ileaf_page_string1:14-71¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³71¡þÉ²recovery_falling¡XUses´µtheµfallingµedgeµofµtheµrelatedµpinµforµtheµrecoveryµtime¡XZcheck;µtheµclockµisµnegativeµedge³triggered.¡XÁUseµrecovery_risingµforµpositiveµedge³triggeredµflip³flopsµand¡Xlow³enableµlatchesµorµrecovery_fallingµforµnegative¡XNedge³triggeredµflip³flopsµandµhigh³enableµlatches.¡þÑ2.¡XÑIdentifyµtheµsynchronousµclockµpinµasµtheµrelated_pin.¡þD3.¡XDForµactive³lowµcontrolµsignals,µdefineµtheµrecoveryµtimeµwithµthe¡X‹intrinsic_riseµstatement.¡þForµactive³highµcontrolµsignals,µdefineµtheµrecoveryµtimeµwithµthe¡þeintrinsic_fallµstatement.¡þD²Example¡þ°²Thisµexampleµshowsµaµrecoveryµtimingµarcµforµtheµactive³lowµclear¡þùsignalµinµaµpositive³edge³triggeredµflip³flop.µTheµintrinsic_riseµvalue¡þArepresentsµclockµrecoveryµtimeµAµinµFigure 14³10.¡þÃ²´µµpinµ(Clear)µ{¡þµµµµµµdirectionµ:µinputµ;¡þ=µµµµµµcapacitanceµ:µ1µ;¡þzµµµµµµtiming()µ{¡þ¶µµµµµµµµrelated_pinµ:µ"Clock"µ;¡þóµµµµµµµµtiming_typeµ:µrecovery_rising;¡þ	0µµµµµµµµintrinsic_riseµ:µ1.0µ;¡þ	mµµµµµµ}¡þ	ªµµµµ}’¡RD“I501ileaf_page_string1:14-72¥	öäÃËÁâÊË¡Ä,,w¡Ä,w	cw¡Ä	cw	c¡Ä	c,ÆÃÁÊËÃ¡ÄþwÊwÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³72¡þÉ²The´µfollowingµexampleµshowsµaµrecoveryµtimingµarcµforµthe¡þactive³highµpresetµsignalµinµaµlow³enableµlatch.µTheµintrinsic_fall¡þZvalueµrepresentsµclockµrecoveryµtimeµAµinµFigure 14³11.¡þæ²´µµpinµ(Preset)µ{¡þ%µµµµµµdirectionµ:µinputµ;¡þcµµµµµµcapacitanceµ:µ1µ;¡þ¡µµµµµµtiming()µ{¡þàµµµµµµµµrelated_pinµ:µ"Enable"µ;¡þµµµµµµµµtiming_typeµ:µrecovery_rising;¡þ]µµµµµµµµintrinsic_fallµ:µ1.0µ;¡þ›µµµµµµ}¡þÙµµ}¡þÇ²Removal´µConstraintµ¡þu²This´µconstraintµisµalsoµknownµasµtheµasynchronousµcontrolµsignal¡þ¾holdµtime.¡þpTheµremovalµconstraintµdescribesµtheµminimumµallowableµtime¡þ¸betweenµtheµactiveµedgeµofµtheµclockµpinµwhileµtheµasynchronousµpin¡þisµactiveµandµtheµinactiveµedgeµofµtheµsameµasynchronousµcontrol¡þJpinµ(Figure 14³12).¡,	²&Figure 14³12³TimingµDiagramµforµRemovalµConstraint¡,²¥	öäÃÁÊË¡Ä«
âA
â¡ÄA
âA
—¡ÄA
—×
—¡Ä×
—×
â¡Ä×
âm
â¡Äm
âm
—¡Äm
—
—¡Ä
—
â¡Ä
â™
âÆÃ²¡
×CK1¡
XSETÃ¡Ä«
LŒ
L¡ÄŒ
LŒ
¡ÄŒ
™
ÆÃÊËÃ¡Ä
&`
&ÆÃÃ¡ÄŒ	Œ	ÛÆÃÃ¡ÄA
qA	ÆÃ¡(ref)Ã¡Ä¼	¯Š	¯ÆÃÃÊË¡Ä 	¼Š	¯¡ÄŠ	¯ 	£¡Ä 	£ 	¯¡Ä 	¯ 	¼ãÇÆÃÊËÃ¡Ä	¯=	¯ÆÃÃÊË¡Ä(	£=	¯¡Ä=	¯(	¼¡Ä(	¼(	¯¡Ä(	¯(	£ÇÆÃ¡ø	m²´µµremoval²¡Ê’RÀD“I501ileaf_page_string1:14-73¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³73¡þÉ²To´µdefineµaµremovalµconstraint,¡þN1.¡XNAssignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattribute:µ¡þÁremoval_risingµ¡X
Useµwhenµtheµcellµisµaµlow³enableµlatchµorµa¡XSrising³edge³triggeredµflip³flop.¡þ¹removal_fallingµ¡XUseµwhenµtheµcellµisµaµhigh³enableµlatchµorµa¡XKfalling³edge³triggeredµflip³flop.¡þ±2.¡X±Identifyµtheµsynchronousµclockµpinµasµtheµrelated_pin.¡þ%3.¡X%Forµactive³lowµasynchronousµcontrolµsignals,µdefineµtheµremoval¡Xktimeµwithµtheµintrinsic_riseµattribute.¡XßForµactive³highµasynchronousµcontrolµsignals,µdefineµtheµremoval¡X%timeµwithµtheµintrinsic_fallµattribute.¡þ²Example¡þM²pin´µ(µSETµ)µ{¡þŠ¡…Š....¡þÇ¡…Çtiming()µ{¡þ¡…¡timing_typeµ:µremoval_rising;¡þA¡…A¡Arelated_pinµ:µ"µCK1µ";¡þ~¡…~¡~intrinsic_riseµ:µ1.0µ;¡þ»¡…»¡»}¡þ÷}’À(D“I501ileaf_page_string1:14-74¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³74¡,Õ²Setting´µNo³ChangeµTimingµConstraintsµ¡þ”²You´µcanµmodelµno³changeµtimingµchecksµtoµuseµinµstaticµtiming¡þÝverificationµduringµsynthesis.¡þAµno³changeµtimingµcheckµchecksµaµconstrainedµsignalµagainstµa¡þÈlevel³sensitiveµrelatedµsignal,µwhichµmustµremainµstableµduringµan¡þestablishedµsetupµperiod,µtheµwidthµofµtheµrelatedµpulse,µandµan¡þYestablishedµholdµperiod.¡þüForµexample,µyouµcanµuseµtheµno³changeµtimingµcheckµtoµmodelµthe¡þEtimingµrequirementsµofµlatchµdevicesµwithµlatchµenableµsignals.µTo¡þensureµcorrectµlatchµsampling,µtheµlatchµenableµsignalµmustµremain¡þÖstableµduringµtheµclockµpulseµandµtheµsetupµandµholdµtimeµaround¡þtheµclockµpulse.¡þÁYouµcanµalsoµuseµtheµno³changeµtimingµcheckµtoµmodelµtheµtiming¡þ
requirementsµofµmemoryµdevices.µToµguaranteeµcorrectµread/write¡þSoperations,µtheµaddressµorµdataµmustµremainµstableµduringµa¡þ›read/writeµenableµpulseµandµtheµsetupµandµholdµmarginsµaroundµthe¡þäpulse.¡þ†Figure 14³13µshowsµaµno³changeµtimingµcheckµbetweenµa¡þÏconstrainedµpinµandµitsµlevel³sensitiveµrelatedµpin.’(MD“I501ileaf_page_string1:14-75¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³75¡,É²&Figure 14³13³No³Change´µTimingµCheck¡þ©²¥	öäÁÊËÃ¡Ä>ííÆÃÃ¡ÄíuÆÃÃ¡Äu2uÆÃÃ¡Ä2u2íÆÃÃ¡Ä2í6íÆÃÃ¡Ä>yVyÆÃÃ¡ÄVyVÆÃÃ¡ÄVÎÆÃÃ¡ÄÎÎyÆÃÃ¡ÄÎy6yÆÃÊËÃ¡ÄýuÆÃËÃ¡ÄVVýÆÃËÃ¡ÄÎÎñÆÃËÃ¡Ä22ñÆÃÁâÊËÃ¡Ä9¨9ÆÃÃÁâÊË¡Äß9ß9ÁâÊË¡Äß9Ø-¡ÄØ-9¡Ä9ØE¡ÄØEß9âãÇÆÃÁÊËÃ¡Ä99ÆÃÁÃ¡Ä9¨9ÆÃÃÁÊË¡Äß9ß9Á¡Äß9Ø-¡ÄØ-9¡Ä9ØE¡ÄØEß9ÇÆÃÁÊËÃ¡Ä99ÆÃÁâÊËÃ¡Ä\9º9ÆÃÃÁâÊË¡Äƒ9ƒ9ÁâÊË¡Äƒ9‹E¡Ä‹E\9¡Ä\9‹-¡Ä‹-ƒ9âÇÆÃÁÊËÃ¡Ä\9\9ÆÃÁÃ¡Ä\9º9ÆÃÃÁÊË¡Äƒ9ƒ9Á¡Äƒ9‹E¡Ä‹E\9¡Ä\9‹-¡Ä‹-ƒ9ÇÆÃÁÊËÃ¡Ä\9\9ÆÃÁâÊËÃ¡Ä8É–ÉÆÃÃÁâÊË¡Ä_É_ÉÁâÊË¡Ä_ÉgÕ¡ÄgÕ8É¡Ä8Ég½¡Äg½_ÉâÇÆÃÁÊËÃ¡Ä8É8ÉÆÃÁÃ¡Ä8É–ÉÆÃÃÁÊË¡Ä_É_ÉÁ¡Ä_ÉgÕ¡ÄgÕ8É¡Ä8Ég½¡Äg½_ÉÇÆÃÁÊËÃ¡Ä8É8ÉÆÃÁâÊËÃ¡ÄÎÉpÉÆÃÃÁâÊË¡Ä§É§ÉÁâÊË¡Ä§É ½¡Ä ½ÎÉ¡ÄÎÉ Õ¡Ä Õ§ÉâÇÆÃÁÊËÃ¡ÄÎÉÎÉÆÃÁÃ¡ÄÎÉpÉÆÃÃÁÊË¡Ä§É§ÉÁ¡Ä§É ½¡Ä ½ÎÉ¡ÄÎÉ Õ¡Ä Õ§ÉÇÆÃÁÊËÃ¡ÄÎÉÎÉÆÃ¡Z…²Related´µpin¡
ùConstrainedµpin¡ÆENo³changeµsetupµperiod¡¶ÕNo³changeµholdµperiodÁÃ¡ÄUÆÃÃ¡Ä22UÆÃÁâÊËÃ¡Ä1--ÆÃÃÁâÊË¡Ä	-	-ÁâÊË¡Ä	-!¡Ä!1-¡Ä1-9¡Ä9	-âÇÆÃÁÊËÃ¡Ä1-1-ÆÃÃÊË¡Ä----ÁâÊË¡Ä--49¡Ä49-¡Ä-4!¡Ä4!--âÇÆÃÁÊËÃ¡Ä--ÆÃÁÃ¡Ä1--ÆÃÃÁÊË¡Ä	-	-Á¡Ä	-!¡Ä!1-¡Ä1-9¡Ä9	-ÇÆÃÁÊËÃ¡Ä1-1-ÆÃÃÊË¡Ä----Á¡Ä--49¡Ä49-¡Ä-4!¡Ä4!--ÇÆÃÁÊËÃ¡Ä--ÆÃ¡&Entireµno³changeµregion²¡z©¡þg²To´µmodelµno³changeµtimingµconstraints,¡þë1.¡XëAssignµoneµofµtheseµvaluesµtoµtheµtiming_typeµattribute:µ¡þ_nochange_high_highµ¡X¨Thisµvalueµspecifiesµaµpositiveµpulseµonµtheµconstrainedµpinµand¡Xðpositiveµpulseµonµtheµrelatedµpin.¡þWnochange_high_low¡X Thisµvalueµspecifiesµaµpositiveµpulseµonµtheµconstrainedµpinµand¡Xènegativeµpulseµonµtheµrelatedµpin.¡þOnochange_low_high¡X—Thisµvalueµspecifiesµaµnegativeµpulseµonµtheµconstrainedµpinµand¡Xàpositiveµpulseµonµtheµrelatedµpin.¡þ	Gnochange_low_low¡X	Thisµvalueµspecifiesµaµnegativeµpulseµonµtheµconstrainedµpinµand¡X	Ønegativeµpulseµonµtheµrelatedµpin.’MøD“I501ileaf_page_string1:14-76¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³76¡þÉ²Figure 14³14´µshowsµtheµwaveformsµforµtheseµconstraints.¡,{²&Figure 14³14³No³ChangeµSetupµandµHoldµConstraintµWaveforms¡,W²¥	öäÁÊËÃ¡ÄW¸‹¸ÆÃÃ¡ÄŽ¸Ž@ÆÃÃ¡ÄŽ@{@ÆÃÃ¡Ä{@{¸ÆÃÃ¡Ä{¸¸ÆÃÃ¡ÄbDÇDÆÃÃ¡ÄÇDÇàÆÃÃ¡ÄÇà(àÆÃÃ¡Ä(à(DÆÃÊËÃ¡ÄŽØŽ<ÆÃËÃ¡ÄÇÈÇØÆÃËÃ¡Ä(X(¼ÆÃËÃ¡Ä{Ì{¼ÆÃÁâÊËÃ¡ÄŽ0ÆÃÃÁâÊË¡ÄffÁâÊË¡Äf_õ¡Ä_õŽ¡ÄŽ_¡Ä_fâãÇÆÃÁÊËÃ¡ÄŽŽÆÃÁÃ¡ÄŽ0ÆÃÃÁÊË¡ÄffÁ¡Äf_õ¡Ä_õŽ¡ÄŽ_¡Ä_fÇÆÃÁÊËÃ¡ÄŽŽÆÃÁâÊËÃ¡ÄÍ+ÆÃÃÁâÊË¡ÄôôÁâÊË¡Äôû¡ÄûÍ¡ÄÍûõ¡ÄûõôâÇÆÃÁÊËÃ¡ÄÍÍÆÃÁÃ¡ÄÍ+ÆÃÃÁÊË¡ÄôôÁ¡Äôû¡ÄûÍ¡ÄÍûõ¡ÄûõôÇÆÃÁÊËÃ¡ÄÍÍÆÃÁâÊËÃ¡Ä{ŠÙŠÆÃÃÁâÊË¡Ä¢Š¢ŠÁâÊË¡Ä¢Š©—¡Ä©—{Š¡Ä{Š©~¡Ä©~¢ŠâÇÆÃÁÊËÃ¡Ä{Š{ŠÆÃÁÃ¡Ä{ŠÙŠÆÃÃÁÊË¡Ä¢Š¢ŠÁ¡Ä¢Š©—¡Ä©—{Š¡Ä{Š©~¡Ä©~¢ŠÇÆÃÁÊËÃ¡Ä{Š{ŠÆÃÁâÊËÃ¡Ä(ŠÊŠÆÃÃÁâÊË¡ÄŠŠÁâÊË¡ÄŠú~¡Äú~(Š¡Ä(Šú—¡Äú—ŠâÇÆÃÁÊËÃ¡Ä(Š(ŠÆÃÁÃ¡Ä(ŠÊŠÆÃÃÁÊË¡ÄŠŠÁ¡ÄŠú~¡Äú~(Š¡Ä(Šú—¡Äú—ŠÇÆÃÁÊËÃ¡Ä(Š(ŠÆÃ¡~N²Related´µpin¡7ÀConstrainedµpinÁÃ¡Ä¸@ÆÃÃ¡Ä@ã@ÆÃÃ¡Äã@ã¸ÆÃÃ¡Äã¸o¸ÆÃÃ¡Äo¸o@ÆÃÃ¡Äo@K@ÆÃÃ¡ÄK@K¸ÆÃÃ¡ÄK¸×¸ÆÃÃ¡Ä×¸×@ÆÃÃ¡Ä×@³@ÆÃÃ¡Ä³@³¸ÆÃÊËÃ¡ÄYØYÈÆÃËÃ¡ÄçÌç¼ÆÃÊËÃ¡ÄýH7HÆÃÃ¡Ä7H7äÆÃÃ¡Ä7ä¼äÆÃÃ¡Ä)DcDÆÃÃ¡ÄcDcàÆÃÃ¡ÄcàÃàÆÃÃ¡ÄÃàÃDÆÃÃ¡ÄÃDýDÆÃÃ¡ÄýDýàÆÃÃ¡Äýà]àÆÃÃ¡Ä]à]DÆÃÃ¡Ä]D˜DÆÃÃ¡Ä˜D˜àÆÃÃ¡Ä˜à÷àÆÃÃ¡Ä÷à÷DÆÃÃ¡Ä÷D2DÆÃÃ¡Ä2D2àÆÃÃ¡Ä2à‘àÆÃÃ¡Ä‘à‘DÆÃÃ¡Ä’DÌDÆÃÃ¡ÄÌDÌàÆÃÃ¡ÄÌà+àÆÃÃ¡Ä+à+DÆÃÃ¡Ä,FfFÆÃÃ¡ÄfFfâÆÃÃ¡ÄfâÅâÆÃÃ¡ÄÅâÅFÆÃÃ¡ÄÈFFÆÃÃ¡ÄFâÆÃÃ¡ÄâaâÆÃÃ¡ÄaâaFÆÃÃ¡ÄdHžHÆÃÃ¡ÄžHžäÆÃÃ¡ÄžäýäÆÃÃ¡ÄýäýHÆÃÊËÃ¡Ä˜X˜¼ÆÃÁâÊËÃ¡Ä˜Š;ŠÆÃÃÁâÊË¡ÄqŠqŠÁâÊË¡ÄqŠj~¡Äj~˜Š¡Ä˜Šj—¡Äj—qŠâÇÆÃÁÊËÃ¡Ä˜Š˜ŠÆÃÁÃ¡Ä˜Š;ŠÆÃÃÁÊË¡ÄqŠqŠÁ¡ÄqŠj~¡Äj~˜Š¡Ä˜Šj—¡Äj—qŠÇÆÃÁÊËÃ¡Ä˜Š˜ŠÆÃÁÊËÃ¡ÄØ<ÆÃÁâÊËÃ¡Ä¨ÆÃÃÁâÊË¡ÄßßÁâÊË¡Äß×õ¡Ä×õ¡Ä×¡Ä×ßâÇÆÃÁÊËÃ¡ÄÆÃÁÃ¡Ä¨ÆÃÃÁÊË¡ÄßßÁ¡Äß×õ¡Ä×õ¡Ä×¡Ä×ßÇÆÃÁÊËÃ¡ÄÆÃÁÊËÃ¡ÄKØK<ÆÃÁâÊËÃ¡ÄKíÆÃÃÁâÊË¡Ä$$ÁâÊË¡Ä$õ¡ÄõK¡ÄK¡Ä$âÇÆÃÁÊËÃ¡ÄKKÆÃÁÃ¡ÄKíÆÃÃÁÊË¡Ä$$Á¡Ä$õ¡ÄõK¡ÄK¡Ä$ÇÆÃÁÊËÃ¡ÄKKÆÃÁÊËÃ¡ÄjØfâÆÃËÃ¡ÄÛÈÛ¸ÆÃËÃ¡ÄÈXÈ¼ÆÃÁâÊËÃ¡ÄÈŠjŠÆÃÃÁâÊË¡Ä Š ŠÁâÊË¡Ä Š™~¡Ä™~ÈŠ¡ÄÈŠ™—¡Ä™— ŠâÇÆÃÁÊËÃ¡ÄÈŠÈŠÆÃÁÃ¡ÄÈŠjŠÆÃÃÁÊË¡Ä Š ŠÁ¡Ä Š™~¡Ä™~ÈŠ¡ÄÈŠ™—¡Ä™— ŠÇÆÃÁÊËÃ¡ÄÈŠÈŠÆÃÁÃ¡ÄM¸M@ÆÃÁâÊËÃ¡ÄçŠDŠÆÃÃÁâÊË¡ÄŠŠÁâÊË¡ÄŠ—¡Ä—çŠ¡ÄçŠ~¡Ä~ŠâÇÆÃÁÊËÃ¡ÄçŠçŠÆÃÁÃ¡ÄçŠDŠÆÃÃÁÊË¡ÄŠŠÁ¡ÄŠ—¡Ä—çŠ¡ÄçŠ~¡Ä~ŠÇÆÃÁÊËÃ¡ÄçŠçŠÆÃÁâÊËÃ¡Ä[¹ÆÃÃÁâÊË¡Ä‚‚ÁâÊË¡Ä‚‰¡Ä‰[¡Ä[‰õ¡Ä‰õ‚âÇÆÃÁÊËÃ¡Ä[[ÆÃÁÃ¡Ä[¹ÆÃÃÁÊË¡Ä‚‚Á¡Ä‚‰¡Ä‰[¡Ä[‰õ¡Ä‰õ‚ÇÆÃÁÊËÃ¡Ä[[ÆÃÁâÊËÃ¡ÄjÇÆÃÃÁâÊË¡Ä‘‘ÁâÊË¡Ä‘˜¡Ä˜j¡Äj˜õ¡Ä˜õ‘âÇÆÃÁÊËÃ¡ÄjjÆÃÁÃ¡ÄjÇÆÃÃÁÊË¡Ä‘‘Á¡Ä‘˜¡Ä˜j¡Äj˜õ¡Ä˜õ‘ÇÆÃÁÊËÃ¡ÄjjÆÃÁâÊËÃ¡Ä×Š5ŠÆÃÃÁâÊË¡ÄþŠþŠÁâÊË¡ÄþŠ—¡Ä—×Š¡Ä×Š~¡Ä~þŠâÇÆÃÁÊËÃ¡Ä×Š×ŠÆÃÁÃ¡Ä×Š5ŠÆÃÃÁÊË¡ÄþŠþŠÁ¡ÄþŠ—¡Ä—×Š¡Ä×Š~¡Ä~þŠÇÆÃÁÊËÃ¡Ä×Š×ŠÆÃÁÊËÃ¡Ä³Ü³@ÆÃÁâÊËÃ¡ÄªLÆÃÃÁâÊË¡ÄƒƒÁâÊË¡Äƒ|õ¡Ä|õª¡Äª|¡Ä|ƒâÇÆÃÁÊËÃ¡ÄªªÆÃÁÃ¡ÄªLÆÃÃÁÊË¡ÄƒƒÁ¡Äƒ|õ¡Ä|õª¡Äª|¡Ä|ƒÇÆÃÁÊËÃ¡ÄªªÆÃÁÊËÃ¡ÄúØýäÆÃÁâÊËÃ¡ÄúXÆÃÃÁâÊË¡Ä!!ÁâÊË¡Ä!(¡Ä(ú¡Äú(õ¡Ä(õ!âÇÆÃÁÊËÃ¡ÄúúÆÃÁÃ¡ÄúXÆÃÃÁÊË¡Ä!!Á¡Ä!(¡Ä(ú¡Äú(õ¡Ä(õ!ÇÆÃÁÊËÃ¡ÄúúÆÃÁÊËÃ¡ÄJÈJ¸ÆÃËÃ¡Ä5Y5½ÆÃÁâÊËÃ¡Ä5Œ×ŒÆÃÃÁâÊË¡ÄŒŒÁâÊË¡ÄŒ€¡Ä€5Œ¡Ä5Œ™¡Ä™ŒâÇÆÃÁÊËÃ¡Ä5Œ5ŒÆÃÁÃ¡Ä5Œ×ŒÆÃÃÁÊË¡ÄŒŒÁ¡ÄŒ€¡Ä€5Œ¡Ä5Œ™¡Ä™ŒÇÆÃÁÊËÃ¡Ä5Œ5ŒÆÃÁâÊËÃ¡ÄJŠ¨ŠÆÃÃÁâÊË¡ÄqŠqŠÁâÊË¡ÄqŠx—¡Äx—JŠ¡ÄJŠx~¡Äx~qŠâÇÆÃÁÊËÃ¡ÄJŠJŠÆÃÁÃ¡ÄJŠ¨ŠÆÃÃÁÊË¡ÄqŠqŠÁ¡ÄqŠx—¡Äx—JŠ¡ÄJŠx~¡Äx~qŠÇÆÃÁÊËÃ¡ÄJŠJŠÆÃÁÃ¡Ä´»P»ÆÃÃ¡ÄQ@¹@ÆÃ¡žÏA¡CáE¡"ÍB¡MÏC¡ÈÏD¡¯ÞF¡ÁéG¡/ëH¡—pnochange_high_high¡opAµµµµµµµµµµµµµE¡—¹nochange_high_low¡o¹BµµµµµµµµµµµµµF¡—nochange_low_high¡oCµµµµµµµµµµµµµG¡—Lnochange_low_low¡oLDµµµµµµµµµµµµµH¡=,setup´µµµµ´
µ¶µhold²¡ÊW¡þö²2.¡XöSpecify´µaµrelatedµpinµwithµtheµrelated_pinµattributeµinµtheµtiming¡X=group.µTheµrelatedµpinµinµtheµtimingµarcµisµtheµpinµusedµforµthe¡X„timingµcheck.µTheµfinalµhighµorµlowµdesignationµinµtheµtimingµtype¡XÊattributeµtellsµDesignµCompilerµwhichµpulseµofµtheµrelatedµpinµis¡Xactiveµforµtheµsetupµorµholdµconstraint.¡þ„3.¡X„Specifyµdelayµattributeµvaluesµaccordingµtoµtheµdelayµmodelµyou¡XËuseµasµshownµinµTable 14³2.¡þ	\Note:²¡X	¥²Withµno³changeµtimingµconstraints,µconditionalµtimingµconstraints¡X	îhaveµdifferentµinterpretationsµthanµtheyµdoµwithµotherµconstraints.¡X
6SeeµSettingµConditionalµTimingµConstraints"µlaterµinµthisµchapter¡X
forµmoreµinformation.’ø	ÐD“I501ileaf_page_string1:14-77¥	öäÃËÁâÊË¡Ä,ë,Õ¡Ä,Õ	cÕ¡Ä	cÕ	cë¡Ä	cë,ëÆÃÁÊËÃ¡ÄþÕÊÕÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³77¡,É²&Table 14³2³Delay´µAttributesµforµNo³ChangeµConstraints¡þ7²¥eV"¡¯²"No³Change´µConstraint¥	öäÁã¡ÃÄþÿÿ†þ†þÇ¡ÃÄþUUþþÇ²¡V7¥	öä¡sZ²"SetupµAttribute¡ÃÄVVVÇ²¡7¥	öä¡­Y²"HoldµAttribute¡ÃÄÊËË†Ê†ÊÇ¡ÃÄËËÇ²¡Ê7¡þ«¥yV²¡¯²"No³ChangeµConstraint¥	öä¡ÃÄþ‡ÿ‡ÿ*þ*þ‡Ç²¡V«¥	öä¡sË²"LinearµDelayµ/¡sNonlinearµDelay²¡«¥	öä¡ Ê²"LinearµDelayµ/µNonlinear¡ Delay¡ÃÄÊ‡Ë‡Ë*Ê*Ê‡Ç²¡Ê«¡þO¥	öä¡g²nochange_high_high¡ÃÄþ+ÿ+ÿ¾þ¾þ+Ç¡ÃÄþ+U+U,þ,þ+Ç²¡VO¥	öä¡sg²intrinsic_riseµ/¡srise_constraint¡ÃÄV++,V,V+Ç²¡O¥	öä¡ f²intrinsic_fallµ/¡ œfall_constraint¡ÃÄÊ+Ë+Ë¾Ê¾Ê+Ç¡ÃÄ+Ë+Ë,,+Ç²¡ÊO¡þã¥	öä¡û²nochange_high_low¡ÃÄþ¿ÿ¿ÿRþRþ¿Ç²¡Vã¥	öä¡sû²intrinsic_riseµ/¡s1rise_constraint²¡ã¥	öä¡ ú²intrinsic_fallµ/¡ 0fall_constraint¡ÃÄÊ¿Ë¿ËRÊRÊ¿Ç²¡Êã¡þw¥	öä¡²nochange_low_high¡ÃÄþSÿSÿæþæþSÇ²¡Vw¥	öä¡s²intrinsic_fallµ/¡sÅfall_constraint²¡w¥	öä¡ Ž²intrinsic_riseµ/¡ Ärise_constraint¡ÃÄÊSËSËæÊæÊSÇ²¡Êw¡þ¥	öä¡#²nochange_low_low¡ÃÄþçÿçÿzþzþçÇ¡ÃÄþsUsU{þ{þsÇ²¡V¥	öä¡s#²intrinsic_fallµ/¡sYfall_constraint¡ÃÄVss{V{VsÇ²¡¥	öä¡ "²intrinsic_riseµ/¡ Xrise_constraint¡ÃÄÊçËçËzÊzÊçÇ¡ÃÄsËsË{{sÇ²¡Ê¡þ%²In´µtheµCMOSµLinearµDelayµModelµ¡þÄ²In´µtheµCMOSµlinearµdelayµmodel,µspecifyµsetupµtimeµwith¡þintrinsic_riseµandµholdµtimeµwithµintrinsic_fall.¡þ°Thisµisµtheµsyntaxµforµtheµno³changeµtimingµcheckµinµtheµCMOS¡þølinearµdelayµmodel:¡þz²timing´µ()µ{¡þ·µµµtiming_typeµ:µnochange_high_highµ|µnochange_high_lowµ|¡þóµµµµµµµµµµµµµµµµµnochange_low_highµ|µnochange_low_low;¡þ	0µµµrelated_pinµ:µ²(related_pinname²;¡þ	mµµµintrinsic_riseµ:µ²(float²;µ/*µconstrainedµsignalµrisingµ*/¡þ	ªµµµintrinsic_fallµ:µ²(float²;µ/*µconstrainedµsignalµfallingµ*/¡þ	ç}’	Ð´D“I501ileaf_page_string1:14-78¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³78¡þÏ²In´µtheµCMOSµNonlinearµDelayµModelµ¡þu²In´µtheµCMOSµnonlinearµdelayµmodel,µspecifyµsetupµtimeµwith¡þ¾rise_constraintµandµholdµtimeµwithµfall_constraint.µµ¡þhThisµisµtheµsyntaxµforµtheµno³changeµtimingµcheckµinµtheµCMOS¡þ°nonlinearµdelayµmodel:¡þ7²timing´µ()µ{¡þtµµµtiming_typeµ:µnochange_high_highµ|µnochange_high_lowµ|¡þ²µµµµµµµµµµµµµµµµµnochange_low_highµ|µnochange_low_low;¡þðµµµrelated_pinµ:µrelated_pinname;¡þ-µµµrise_constraintµ(²(template²)µ{µ/*µconstrainedµsignalµrisingµ*/¡þkµµµµµµvaluesµ(²(float²,µ...,µ²(float²);¡þ¨µµµ}¡þæµµµfall_constraintµ(²(template²)µ{µ/*µconstrainedµsignalµfallingµ*/¡þ$µµµµµµvaluesµ(²(float²,µ...,µ²(float²);¡þaµµµ}¡þŸ}¡þ~²Example¡þî²This´µisµanµexampleµofµaµno³changeµtimingµcheckµinµaµtechnology¡þ7libraryµusingµtheµCMOSµnonlinearµdelayµmodel:¡,·²-library´µ(the_lib)µ{¡,îµµµdelay_modelµ:µtable_lookup;¡,	&µµµk_process_nochange_riseµ:µ1.0;µµ/*µno³changeµscalingµfactorsµ*/¡,	]µµµk_process_nochange_fallµ:µ1.0;¡,	•µµµk_volt_nochange_riseµ:µ0.0;¡,	Ìµµµk_volt_nochange_fallµ:µ0.0;¡,
µµµk_temp_nochange_riseµ:µ0.0;¡,
;µµµk_temp_nochange_fallµ:µ0.0;¡,
ªµµµcellµ(the_cell)µ{¡,
áµµµµµµpin(ENµ{¡,µµµµµµµµµtimingµ()µ{’´€D“I501ileaf_page_string1:14-79¥	öäÃËÁâÊË¡Ä,u,_¡Ä,_	c_¡Ä	c_	cu¡Ä	cu,uÆÃÁÊËÃ¡Ä,_Ê_ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³79¡,½²-´µµµµµµµµµµµµtiming_typeµ:µnochange_high_low;¡,óµµµµµµµµµµµµrelated_pinµ:µCLK;¡,*µµµµµµµµµµµµrise_constraintµ(scalar)µ{µ/*µsetupµtimeµ*/¡,aµµµµµµµµµµµµµµµvaluesµ(2.98);¡,—µµµµµµµµµµµµ}¡,Îµµµµµµµµµµµµfall_constraintµ(scalar)µ{µ/*µholdµtimeµ*/¡,µµµµµµµµµµµµµµµvaluesµ(0.98);¡,;µµµµµµµµµµµµ}¡,rµµµµµµµµµ}¡,©µµµµµµµµµ...¡,ßµµµµµµµ}¡,µµµµµµµ...¡,Mµµµ}¡,ƒµµµ...¡,º}¡,µ²Setting´µSkewµConstraintsµµ¡þt²The´µskewµconstraintµdefinesµtheµmaximumµseparationµtimeµallowed¡þ½betweenµtwoµclockµsignals.¡þ_TheµVHDLµlibraryµgeneratorµusesµtheµskewµconstraintµforµsimulation.¡þFigure 14³15µisµaµtimingµdiagramµshowingµskewµconstraint.’€$D“I501ileaf_page_string1:14-80¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³80¡,É²&Figure 14³15³Timing´µDiagramµforµSkewµConstraint¡,%²¥	öäÃËÁÊË¡Ä†II¡ÄIþ¡Äþ²þ¡Ä²þ²I¡Ä²IHI¡ÄHIHþ¡ÄHþÞþ¡ÄÞþÞI¡ÄÞItIÆÃ²¡6CK1¡ÿCK2Ã¡Ä$÷$¡Ä÷$÷Ù¡Ä÷ÙaÙ¡ÄaÙa$¡Äa$Ë$¡ÄË$ËÙ¡ÄËÙ5Ù¡Ä5Ù5$¡Ä5$Ÿ$ÆÃÃ¡ÄŸ$ŸÙ¡ÄŸÙyÙÆÃ¡d(ref)ÊËÃ¡Ä´•ÆÃÃ¡Ä5J5•ÆÃÃ¡ÄÑ´Ñ•ÆÃÃ¡Ä÷J÷•ÆÃÃ¡Ä/ýÆÃÃÊË¡ÄŽý‚¡Äý‚u¡Äu‚¡Ä‚ŽãÇÆÃÊËÃ¡Äo‚<‚ÆÃÃÊË¡ÄRŽ<‚¡Ä<‚Ru¡ÄRuR‚¡ÄR‚RŽÇÆÃÊËÃ¡ÄÚ‚‚ÆÃÃÊË¡Ä÷u‚¡Ä‚÷Ž¡Ä÷Ž÷‚¡Ä÷‚÷uÇÆÃÊËÃ¡Ä›‚Í‚ÆÃÃÊË¡Ä·uÍ‚¡ÄÍ‚·Ž¡Ä·Ž·‚¡Ä·‚·uÇÆÃ¡kÝCK1 fall to CK2 ¡§fall skew¡›ÚCK1 fall to CK2 ¡×rise skew²¡Ê%¡þã²Toµsetµskewµconstraint,¡þg1.¡XgAssignµoneµofµtheµfollowingµvaluesµtoµtheµtiming_typeµattribute:¡þÛskew_risingµµ¡X$Theµtimingµconstraintµintervalµisµmeasuredµfromµtheµrisingµedge¡Xlofµtheµreferenceµpinµ(specifiedµinµrelated_pin)µtoµaµtransitionµedge¡Xµofµtheµparentµpinµofµtheµtimingµgroup.µTheµintrinsic_riseµvalueµis¡Xþtheµmaximumµskewµtimeµbetweenµtheµreferenceµpinµrisingµtoµthe¡XFparentµpinµrising.µTheµintrinsic_fallµvalueµisµtheµmaximumµskew¡Xtimeµbetweenµtheµreferenceµpinµrisingµtoµtheµparentµpinµfalling.¡þõskew_fallingµµ¡X>Theµtimingµconstraintµintervalµisµmeasuredµfromµtheµfallingµedge¡X‡ofµtheµreferenceµpinµ(specifiedµinµrelated_pin)µtoµaµtransitionµedge¡XÏofµtheµparentµpinµofµtheµtimingµgroup.µTheµintrinsic_riseµvalueµis¡X	theµmaximumµskewµtimeµbetweenµtheµreferenceµpinµfallingµtoµthe¡X	aparentµpinµrising.µTheµintrinsic_fallµvalueµisµtheµmaximumµskew¡X	©timeµbetweenµtheµreferenceµpinµfallingµtoµtheµparentµpinµfalling.’$#D“I501ileaf_page_string1:14-81¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³81¡þÉ²2.¡XÉDefine´µonlyµoneµofµtheseµattributesµinµtheµtimingµgroup:¡X=³¡”=intrinsic_rise¡X°³¡”°intrinsic_fall¡þ$3.¡X$Useµtheµrelated_pinµattributeµinµtheµtimingµgroupµtoµspecifyµa¡Xjreferenceµclockµpin.µTheµfollowingµattributesµinµaµskewµtiming¡X±groupµareµusedµ(allµothersµareµignored):¡X%³¡”%timing_type¡X˜³¡”˜related_pin¡X³¡”intrinsic_rise¡X³¡”intrinsic_fall¡þM²Example¡þ¹²ThisµexampleµshowsµhowµtoµmodelµconstraintµCK1µriseµtoµCK2µrise¡þskew:¡þƒ²pin´µ(CK2)µ{¡þÀ¡…À....¡þý¡…ýtiming()µ{¡þ:¡…:¡:timing_typeµ:µskew_rising;¡þw¡…w¡wrelated_pinµ:µ"µCK1µ";¡þ´¡…´¡´intrinsic_riseµ:µ1.0µ;¡þñ¡…ñ}¡þ	.}’#âD“I501ileaf_page_string1:14-82¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³82¡,Õ²Setting´µConditionalµTimingµConstraintsµ¡þ”²A´µconditionalµtimingµconstraintµdescribesµaµcheckµthatµDesign¡þÝCompilerµshouldµperformµwhenµaµspecifiedµconditionµisµmet.µYouµcan¡þ%specifyµconditionalµtimingµchecksµinµpin,µbus,µandµbundleµgroups.¡þÈUseµtheµfollowingµattributesµandµgroupsµtoµspecifyµconditionalµtiming¡þchecks:¡þ•²S¡X•²whenµattribute¡þ	²S¡X	²sdf_condµattribute¡þ}²S¡X}²when_startµattribute¡þð²S¡Xð²sdf_cond_startµattribute¡þd²S¡Xd²when_endµattribute¡þ×²S¡X×²sdf_cond_endµattribute¡þK²S¡XK²sdf_edgesµattribute¡þ¾²S¡X¾²min_pulse_widthµgroup¡þ2²S¡X2²minimum_periodµgroup¡þÃReferµtoµ²&LibraryµCompilerµReferenceµManualµVolumeµ1²µforµthe¡þ	syntaxµofµtheseµattributes.’â¶D“I501ileaf_page_string1:14-83¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,	¡Ä,		c	¡Ä	c		c¡Ä	c,ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³83¡þÏ²when´µandµsdf_condµAttributesµµµµ¡þn²The´µwhenµattributeµdefinesµenablingµconditionsµforµtimingµchecks¡þ¶suchµasµsetup,µhold,µandµrecovery.µUseµwhenµtoµmodelµtimingµcheck¡þÿconditionsµforµbothµfull³timingµgateµsimulationµ(FTGS)µandµVITAL¡þHmodels.¡þêIfµyouµdefineµwhen,µyouµmustµdefineµsdf_cond.¡þTheµwhenµandµsdf_condµpairµisµaµshortµwayµofµspecifying¡þÖwhen_start,µsdf_cond_start,µwhen_end,µandµsdf_cond_endµwhen¡þtheµstartµconditionµisµidenticalµtoµtheµendµcondition.µLibraryµCompiler¡þgsoftwareµappliesµwhenµandµsdf_condµattributeµvaluesµtoµbothµstart¡þ°andµendµconditions.µLibraryµCompilerµsoftwareµignoresµtheµvaluesµfor¡þøwhenµandµsdf_condµifµtheµsameµtimingµgroupµcontainsµdefinitionsµfor¡þAwhen_start,µsdf_cond_start,µwhen_end,µandµsdf_cond_end.¡þäTheµDescribingµState³DependentµDelays"µsectionµearlierµinµthis¡þ,chapterµdescribesµtheµsdf_conditionµandµwhenµattributesµinµdefining¡þustate³dependentµtimingµarcs.¡þY²when_start´µAttributeµ¡þø²In´µaµtimingµgroup,µwhen_startµdefinesµaµtimingµcheckµcondition¡þ	AspecificµtoµaµstartµeventµinµFTGSµandµVHDLµinitiativeµtowardµASIC¡þ	Šlibrariesµ(VITAL)µmodelsµinµSynopsysµlogicµformat.µTheµexpression¡þ	Òinµthisµattributeµcontainsµanyµpin,µincludingµinput,µoutput,µinout,µand¡þ
internalµpins.µYouµmustµuseµrealµpinµnames.µBusµandµbundleµnames¡þ
careµnotµallowed.’¶¥D“I501ileaf_page_string1:14-84¥	öäÃËÁâÊË¡Ä,^,H¡Ä,H	cH¡Ä	cH	c^¡Ä	c^,^ÆÃÁÊËÃ¡ÄþHÊHÆÃ¥	öäÃÁÊË¡Ä,	$,	¡Ä,		c	¡Ä	c		c	$¡Ä	c	$,	$ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³84¡þÉ²Example¡þ²when_start´µ:µ"SIG_A";µ/*SIG_Aµmustµbeµaµdeclaredµpinµ*/¡þ ²The´µwhen_startµattributeµrequiresµanµsdf_cond_startµattributeµinµthe¡þèsameµtimingµgroup.¡þTheµendµconditionµisµconsideredµalwaysµtrueµifµaµtimingµgroup¡þÈcontainsµwhen_startµbutµnoµwhen_end.¡þ˜²sdf_cond_start´µAttributeµ¡þ+²In´µaµtimingµgroup,µsdf_cond_startµdefinesµaµtimingµcheckµcondition¡þtspecificµtoµaµstartµeventµinµFTGSµandµVITALµmodelsµinµOVIµSDFµ2.1¡þ½syntax.¡þˆ²Example¡þÑ²sdf_cond_start´µ:µ"SIG_A";¡þf²The´µsdf_cond_startµattributeµrequiresµaµwhen_startµattributeµinµthe¡þ¯sameµtimingµgroup.¡þETheµendµconditionµisµconsideredµalwaysµtrueµifµaµtimingµgroup¡þŽcontainsµsdf_cond_startµbutµnoµsdf_cond_end.¡þ	^²when_end´µAttributeµ¡þ	ò²In´µaµtimingµgroup,µwhen_endµdefinesµaµtimingµcheckµcondition¡þ
:specificµtoµanµendµeventµinµFTGSµandµVITALµmodelsµinµSynopsys¡þ
ƒlogicµformat.µµTheµexpressionµinµthisµattributeµcontainsµanyµpin,¡þ
Ìincludingµinput,µoutput,µinout,µandµinternalµpins.µPinsµmustµuseµreal¡þpinµnames.µBusµandµbundleµnamesµareµnotµallowed.’¥D“I501ileaf_page_string1:14-85¥	öäÃËÁâÊË¡Ä,{,e¡Ä,e	ce¡Ä	ce	c{¡Ä	c{,{ÆÃÁÊËÃ¡ÄþeÊeÆÃ¥	öäÃÁÊË¡Ä,	g,	Q¡Ä,	Q	c	Q¡Ä	c	Q	c	g¡Ä	c	g,	gÆÃÁÊËÃ¡Äþ	QÊ	QÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³85¡þÉ²Example¡þ²when_end´µ:µ"CDµ*µSD";¡þ¬²The´µwhen_endµattributeµrequiresµanµsdf_cond_endµattributeµinµthe¡þôsameµtimingµgroup.¡þ‘Theµstartµconditionµisµconsideredµalwaysµtrueµifµaµtimingµgroup¡þÚcontainsµwhen_endµbutµnoµwhen_start.¡þµ²sdf_cond_end´µAttributeµ¡þN²In´µaµtimingµgroup,µsdf_cond_endµdefinesµaµtimingµcheckµcondition¡þ—specificµtoµanµendµeventµinµFTGSµandµVITALµmodelsµinµOVIµSDFµ2.1¡þàsyntax.¡þµ²Example¡þÿ²sdf_cond_end´µ:µ"SIG_0µ==µ1'b1";¡þ˜²The´µsdf_cond_endµattributeµrequiresµanµwhen_endµattributeµinµthe¡þàsameµtimingµgroup.¡þ}Theµstartµconditionµisµconsideredµalwaysµtrueµifµaµtimingµgroup¡þÆcontainsµsdf_cond_endµbutµnoµsdf_cond_start.¡þ	¡²sdf_edges´µAttributeµ¡þ
:²The´µsdf_edgesµattributeµdefinesµedge³specificµinformationµforµboth¡þ
ƒstartµpinsµandµendµpinsµinµFTGSµandµVITALµmodels.µEdgeµtypesµcan¡þ
Ìbeµnoedge,µstart_edge,µend_edge,µorµboth_edges.µTheµdefaultµis¡þnoedge.’ñD“I501ileaf_page_string1:14-86¥	öäÃËÁâÊË¡Ä,·,¡¡Ä,¡	c¡¡Ä	c¡	c·¡Ä	c·,·ÆÃÁÊËÃ¡Äþ¡Ê¡ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³86¡þÉ²Example¡þ²sdf_edges´µ:µboth_edges;¡þñ²min_pulse_width´µGroupµ¡þ²In´µaµpin,µbus,µorµbundleµgroup,µmin_pulse_widthµmodelsµthe¡þÙenablingµconditionalµminimumµpulseµwidthµcheck.µTheµattributesµin¡þ!thisµgroupµareµconstraint_high,µconstraint_low,µwhen,µandµsdf_cond.¡þ²Example¡þK²min_pulse_width()´µ{¡þˆµµconstraint_highµ:µ3.0;µ/*µmin_pulse_width_highµ*/¡þÅµµconstraint_lowµ:µ3.5;µ/*µmin_pulse_width_lowµ*/¡þµµwhenµ:µ"SE";¡þ?µµsdf_condµ:µ"SEµ==µ1'B1";¡þ|}¡þX²constraint_high´µandµconstraint_lowµAttributesµµ¡þ÷²At´µleastµoneµofµtheseµattributesµmustµbeµdefinedµinµthe¡þ@min_pulse_widthµgroup.µTheµconstraint_highµattributeµdefinesµthe¡þ‰minimumµlengthµofµtimeµtheµpinµmustµremainµatµlogicµ1.µThe¡þÑconstraint_lowµattributeµdefinesµtheµminimumµlengthµofµtimeµtheµpin¡þ	mustµremainµatµlogicµ0.¡þ	½Ifµtheµpinµgroupµcontainsµaµmin_pulse_widthµgroupµandµeither¡þ
constraint_highµorµconstraint_low,µLibraryµCompilerµsoftwareµignores¡þ
Ntheµconstraint_highµorµconstraint_lowµattribute.’ñüD“I501ileaf_page_string1:14-87¥	öäÃËÁâÊË¡Ä,ž,ˆ¡Ä,ˆ	cˆ¡Ä	cˆ	cž¡Ä	cž,žÆÃÁÊËÃ¡ÄþˆÊˆÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³87¡þÏ²when´µandµsdf_condµAttributesµµ¡þN²These´µattributesµdefineµtheµenablingµconditionµforµtheµcheck,µwhenµin¡þ—Synopsysµlogicµformatµandµsdf_condµinµOVIµSDFµ2.1µsyntax.µBoth¡þàattributesµareµrequiredµinµthisµgroup.µAllµpinsµofµtheµcell,µinput,µoutput,¡þ(inout,µorµinternalµcanµbeµusedµwithµtheµwhenµattribute.¡þØ²minimum_period´µGroupµ¡þW²In´µaµpin,µbus,µorµbundleµgroup,µminimum_periodµmodelsµtheµenabling¡þ conditionalµminimumµperiodµcheck.µTheµattributesµinµthisµgroupµare¡þéconstraint,µwhen,µandµsdf_cond.¡þlIfµtheµpinµgroupµcontainsµaµminimum_periodµgroupµandµaµmin_period¡þ´attribute,µLibraryµCompilerµsoftwareµignoresµtheµmin_periodµattribute.¡þ^²Example¡þ¤²minimum_period()´µ{¡þÞµµconstraintµ:µ9.5;µ/*µmin_periodµ*/¡þµµwhenµ:µ"SE";¡þQµµsdf_condµ:µ"SEµ==µ1'B1";¡þ‹}¡þC²constraint´µAttributeµ¡þÃ²The´µconstraintµattributeµdefinesµtheµminimumµclockµperiodµrequired¡þ	forµtheµpin.µThisµattributeµisµrequired.¡þ	»²when´µandµsdf_condµAttributesµµ¡þ
:²These´µattributesµdefineµtheµenablingµconditionµforµtheµcheck,µwhenµin¡þ
ƒSynopsysµlogicµformatµandµsdf_condµinµOVIµSDFµ2.1µsyntax.µBoth¡þ
Ìattributesµareµrequiredµinµthisµgroup.µAllµpinsµofµtheµcell,µinput,µoutput,¡þinout,µorµinternal,µcanµbeµusedµwithµtheµwhenµattribute.’ühD“I501ileaf_page_string1:14-88¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³88¡þÏ²Using´µConditionalµAttributeµwithµNo³Change¡þConstraintsµ¡þ¹²Conditional´µtimingµcheckµattributesµhaveµdifferentµinterpretations¡þwhenµyouµuseµthemµwithµno³changeµtimingµconstraints.µTable 14³3¡þJshowsµtheirµmeaningµwhenµusedµwithµno³changeµtimingµconstraints.¡þ“SeeµSettingµNo³ChangeµTimingµConstraints"µearlierµinµthisµchapter¡þÛforµaµdescriptionµofµno³changeµtimingµconstraintµvalues.¡,²&Table 14³3³ConditionalµTimingµAttributesµwithµNo³ChangeµConstraints¡þý²¥	öä¡²"Conditional´µAttributesÁã¡ÃÄþÙÿÙÿHþHþÙÇ¡ÃÄþÙ4Ù4áþáþÙÇ²¡5ý¥	öä¡R²"WithµNo³ChangeµConstraints¡ÃÄÊÙËÙËHÊHÊÙÇ¡ÃÄ5ÙËÙËá5á5ÙÇ²¡Êý¡þm¥	öä¡…²whenµ¡»sdf_condµ¡ÃÄþIÿIÿÜþÜþIÇ¡ÃÄþI4I4JþJþIÇ²¡5m¥	öä¡R…²Definesµbothµconstrainedµandµrelatedµsignal³enabling¡R»condition.¡ÃÄÊIËIËÜÊÜÊIÇ¡ÃÄ5IËIËJ5J5IÇ²¡Êm¡þ¥	öä¡²when_startµ¡Osdf_cond_startµ¡ÃÄþÝÿÝÿpþpþÝÇ²¡5¥	öä¡R²Definesµtheµconstrainedµsignal³enablingµcondition.¡ÃÄÊÝËÝËpÊpÊÝÇ²¡Ê¡þ•¥	öä¡­²when_endµ¡ãsdf_cond_endµ¡ÃÄþqÿqÿþþqÇ²¡5•¥	öä¡R­²Definesµtheµrelatedµsignal³enablingµcondition.¡ÃÄÊqËqËÊÊqÇ²¡Ê•¡þ)¥	öä¡A²sdf_edgesµ¡ÃÄþÿÿþþÇ¡ÃÄþý4ý4þþýÇ²¡5)¥	öä¡RA²start_edgeµaddsµedgeµspecificationµtoµtheµconstrained¡Rwsignal,µend_edgeµaddsµedgeµspecificationµtoµthe¡R­relatedµsignal,µboth_edgesµspecifiesµedgesµtoµboth¡Rãsignals,µnoedgeµspecifiesµedgesµtoµneitherµsignal.¡ÃÄÊËËÊÊÇ¡ÃÄ5ýËýË55ýÇ²¡Ê)¡þm²Figure 14³16´µshowsµtheµdifferentµinterpretationµofµsetupµandµhold¡þ¶conditionsµwhenµusedµwithµaµno³changeµtimingµconstraint.’hpD“I501ileaf_page_string1:14-89¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³89¡þÏ²Generating´µanµSDFµfileµ¡þŒ²SDF´µfileµinformationµappliesµtoµbothµstate³dependentµdelaysµand¡þÕconditionalµtimingµconstraints.¡,ª²&Figure 14³16³InterpretationµofµConditionalµTimingµConstraintsµwith¡²ìNo³Change¡,²¥	öäÁÊËÃ¡ÄL¡°¡ÆÃÃ¡Ä°¡°=ÆÃÃ¡Ä°=È=ÆÃÃ¡ÄÈ=È¡ÆÃÃ¡ÄÈ¡@¡ÆÃÃ¡ÄLiiÆÃÃ¡ÄiÆÃÃ¡ÄŒÆÃÃ¡ÄŒŒiÆÃÃ¡ÄŒi@iÆÃÃ¡ÄÐŸ4ŸÆÃÃ¡Ä4Ÿ4;ÆÃÃ¡Ä4;L;ÆÃÃ¡ÄL;LŸÆÃÃ¡ÄLŸÄŸÆÃÃ¡ÄÐg„gÆÃÃ¡Ä„g„ÆÃÃ¡Ä„ÆÃÃ¡ÄgÆÃÃ¡ÄgÄgÆÃ²¡*¦Constrained pin¡znRelated pin¡#£Data pin¡#kClock pin²¡\With No Change Constraints¡qZWithout No Change Constraints²¡ÄÙStart condition¡ÇîEnd conditionÁâÊËÃ¡Ä’A´AÆÃÃÁâÊË¡Ä¹A¹AÁâÊË¡Ä¹AÁM¡ÄÁM’A¡Ä’AÁ5¡ÄÁ5¹AâãÇÆÃÁÊËÃ¡Ä’A’AÆÃÁÃ¡Ä’A´AÆÃÃÁÊË¡Ä¹A¹AÁ¡Ä¹AÁM¡ÄÁM’A¡Ä’AÁ5¡ÄÁ5¹AÇÆÃÁÊËÃ¡Ä’A’AÆÃÁâÊËÃ¡ÄAØAÆÃÃÁâÊË¡ÄÙAÙAÁâÊË¡ÄÙAÒ5¡ÄÒ5A¡ÄAÒM¡ÄÒMÙAâÇÆÃÁÊËÃ¡ÄAAÆÃÁÃ¡ÄAØAÆÃÃÁÊË¡ÄÙAÙAÁ¡ÄÙAÒ5¡ÄÒ5A¡ÄAÒM¡ÄÒMÙAÇÆÃÁÊËÃ¡ÄAAÆÃÃÁ¡ÌÿÿÿÿÿÿÙ¯1ÿÿÿÿÿÿg(Î)›„ì5`ÚAkƒŒÒ¯5ŒÒÆÃÃ¡ÌÿÿÿÿÿÿÝt5ÿÿÿÿÿÿÜÿÿÿÿÿÓGD›eqOÄE*‡óÑ]óÑÆÃÁâÊËÃ¡ÄÕm÷mÆÃÃÁâÊË¡ÄümümÁâÊË¡Äümy¡ÄyÕm¡ÄÕma¡ÄaümâÇÆÃÁÊËÃ¡ÄÕmÕmÆÃÁÃ¡ÄÕm÷mÆÃÃÁÊË¡ÄümümÁ¡Äümy¡ÄyÕm¡ÄÕma¡ÄaümÇÆÃÁÊËÃ¡ÄÕmÕmÆÃÃÁ¡ÌÿÿÿÿÿÿÝt5ÿÿÿÿÿÿÜÿÿÿÿÿÓGD›e|êÏà5"þli¦þlÆÃÁâÊËÃ¡Ä«qƒqÆÃÃÁâÊË¡Ä„q„qÁâÊË¡Ä„q}e¡Ä}e«q¡Ä«q}~¡Ä}~„qâÇÆÃÁÊËÃ¡Ä«q«qÆÃÁÃ¡Ä«qƒqÆÃÃÁÊË¡Ä„q„qÁ¡Ä„q}e¡Ä}e«q¡Ä«q}~¡Ä}~„qÇÆÃÁÊËÃ¡Ä«q«qÆÃÃÁ¡ÌÿÿÿÿÿÿÝtÿÿÿÿÿÿÿËÿÿÿÿÿÿÜ,¸¼›eï²äL'ƒp«ƒpÆÃ¡¹ÎSetup¡‚ùstart condition¡ÞçSetup¡¬end condition¡ŠãHold¡:start condition¡ªÇHold¡lñend conditionÁâÊËÃ¡Ä,rrÆÃÃÁâÊË¡ÄrrÁâÊË¡Ärþf¡Äþf,r¡Ä,rþ~¡Äþ~râÇÆÃÁÊËÃ¡Ä,r,rÆÃÁÃ¡Ä,rrÆÃÃÁÊË¡ÄrrÁ¡Ärþf¡Äþf,r¡Ä,rþ~¡Äþ~rÇÆÃÁÊËÃ¡Ä,r,rÆÃÁâÊËÃ¡Ä„=\=ÆÃÃÁâÊË¡Ä]=]=ÁâÊË¡Ä]=V0¡ÄV0„=¡Ä„=VI¡ÄVI]=âÇÆÃÁÊËÃ¡Ä„=„=ÆÃÁÃ¡Ä„=\=ÆÃÃÁÊË¡Ä]=]=Á¡Ä]=V0¡ÄV0„=¡Ä„=VI¡ÄVI]=ÇÆÃÁÊËÃ¡Ä„=„=ÆÃÁâÊËÃ¡ÄQosoÆÃÃÁâÊË¡ÄxoxoÁâÊË¡Äxo{¡Ä{Qo¡ÄQoc¡ÄcxoâÇÆÃÁÊËÃ¡ÄQoQoÆÃÁÃ¡ÄQosoÆÃÃÁÊË¡ÄxoxoÁ¡Äxo{¡Ä{Qo¡ÄQoc¡ÄcxoÇÆÃÁÊËÃ¡ÄQoQoÆÃÁâÊËÃ¡Ä‡>©>ÆÃÃÁâÊË¡Ä®>®>ÁâÊË¡Ä®>µK¡ÄµK‡>¡Ä‡>µ2¡Äµ2®>âÇÆÃÁÊËÃ¡Ä‡>‡>ÆÃÁÃ¡Ä‡>©>ÆÃÃÁÊË¡Ä®>®>Á¡Ä®>µK¡ÄµK‡>¡Ä‡>µ2¡Äµ2®>ÇÆÃÁÊËÃ¡Ä‡>‡>ÆÃÃÁ¡Ìÿÿÿÿÿÿ¯˜ÿÿÿÿÿÿÿÆÿÿÿÿÿÿvz"äëuªì§C>Oª{óªÆÃÃ¡ÌÿÿÿÿÿÿÙ¨ÿÿÿÿÿÿÏ.äA%êvßZ=j¸Ø	Ó¸ÆÃÃ¡ÌÿÿÿÿÿÿäöÿÿÿÿÿÿäÞÅ,#‚Ë	ÒIrŒ6rÆÃÃ¡ÌÿÿÿÿÿÿÐÿÿÿÿÿÿÿûÿÿÿÿÿÿÄ\ÿÿÿÿÿÎêÈÿÿÿÿÿýlQ+ëÁRbqW[bqÆÃ²¡Ê¡þ²YouµcanµgenerateµanµSDFµfileµbyµfirstµcompilingµyourµdesignµusing¡þWtheµDesignµCompilerµprogramµandµthenµusingµtheµwrite_timing¡þŸcommandµtoµwriteµoutµanµSDFµfile.µSeeµtheµSynopsysµmanµpagesµfor¡þèmoreµinformationµonµtheµwrite_timingµcommand.¡þ	©AnµSDFµfileµgeneratedµbyµSynopsysµtoolsµmayµcontainµconditional¡þ	òpathµdelays.µTheseµpathµdelaysµareµcreatedµbyµputtingµtheµexprstring¡þ
:thatµyouµdefine,µinµtheµconditional_port_exprµinµtheµSDFµfileµofµthe¡þ
ƒdelayµentry.µWhenµyouµgenerateµaµVHDLµlibrary,µtheµstringµisµwritten¡þ
Ìoutµforµback³annotationµreferenceµalongµwithµtheµdelayµvalueµforµthe¡þcellµcomponent.’p2D“I501ileaf_page_string1:14-90¥	öäÃËÁâÊË¡Ä,è,Ò¡Ä,Ò	cÒ¡Ä	cÒ	cè¡Ä	cè,èÆÃÁÊËÃ¡Ä,ÒÊÒÆÃ¥	öäÃÁÊË¡Ä,	m,	W¡Ä,	W	c	W¡Ä	c	W	c	m¡Ä	c	m,	mÆÃÁÊËÃ¡Äþ	WÊ	WÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³90¡þÉ²When´µback³annotationµisµrequiredµforµsimulation,µeach¡þconditional_port_exprµinµSDFµconditionµpathµdelayµisµmatchedµtoµa¡þZstringµinµtheµVHDLµlibraryµforµanµappropriateµplaceµtoµputµtheµdelay¡þ£valuesµthatµmaintainµtheµconditionalµpathµdelay.¡þ:Note:²¡X‚²Youµmustµensureµthatµtheµstringµinµtheµsdf_condµattribute,¡XËdefinedµinµtechnologyµlibrary,µmatchesµtheµconditional_port_expr¡Xofµtheµcorrespondingµstate³dependentµtimingµarcµinµSDFµfiles.¡X\LibraryµCompilerµsoftwareµignoresµallµwhiteµspacesµduringµthe¡X¥stringµmatching.¡þ;AµcommonµprocedureµisµtoµuseµtheµLibraryµCompilerµproductµto¡þ„compileµaµfileµthatµcontainsµoneµorµmoreµsdf_condµattributes.µThis¡þÍcreatesµaµVHDLµlibraryµcontainingµstate³dependentµtiming¡þinformationµthatµcanµbeµusedµforµSDFµconditionµmatchingµbyµthe¡þ^SynopsysµVSS Familyµtoµmatchµdesignµriseµandµfallµdelaysµthat¡þ§third³partyµvendorsµmayµconsiderµmoreµaccurate.µTheµintrinsicµrise¡þïandµfallµdelaysµdefinedµinµtheµlibraryµsourceµfileµareµultimately¡þ8replacedµbyµtheµriseµandµfallµdelaysµdefinedµinµtheµdesign.¡,(²Timing´µArcµRestrictions¡þ×²The´µfollowingµsectionµdescribesµtimingµarcµlimitations.¡þ	§²Impossible´µTransitions¡þ
:²This´µinformationµappliesµtoµtheµtable³lookupµandµallµotherµdelay¡þ
ƒmodels,µandµonlyµtoµcombinationalµandµthree_stateµtimingµarcs.¡þ
ÌCertainµoutputµtransitionsµcannotµresultµfromµaµsingleµinputµchange¡þwhenµfunction,µthree_state,µandµx_functionµshareµinput.’2"D“I501ileaf_page_string1:14-91¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³91¡þÉ²In´µthisµtable,µYµisµtheµfunctionµofµA,µB,µandµC.¡þy²¥	öä¡|²A²¡Hy¥	öä¡X|²B²¡’y¥	öä¡¢|²C²¡Üy¥	öä¡ì|²Y²¡&y¡þÌ¥	öä¡Ï²0Áã¡ÃÄþ“G“G–þ–þ“Ç²¡HÌ¥	öä¡XÏ²0¡ÃÄH“‘“‘–H–H“Ç²¡’Ì¥	öä¡¢Ï²0¡ÃÄ’“Û“Û–’–’“Ç²¡ÜÌ¥	öä¡ìÏ²Z¡ÃÄÜ“)“)–Ü–Ü“Ç²¡&Ì¡þ¥	öä¡"²0¡ÃÄþæGæGéþéþæÇ²¡H¥	öä¡X"²0¡ÃÄHæ‘æ‘éHéHæÇ²¡’¥	öä¡¢"²1¡ÃÄ’æÛæÛé’é’æÇ²¡Ü¥	öä¡ì"²1¡ÃÄÜæ)æ)éÜéÜæÇ²¡&¡þr¥	öä¡u²0¡ÃÄþ9G9G<þ<þ9Ç²¡Hr¥	öä¡Xu²1¡ÃÄH9‘9‘<H<H9Ç²¡’r¥	öä¡¢u²0¡ÃÄ’9Û9Û<’<’9Ç²¡Ür¥	öä¡ìu²0¡ÃÄÜ9)9)<Ü<Ü9Ç²¡&r¡þÅ¥	öä¡È²0¡ÃÄþŒGŒGþþŒÇ²¡HÅ¥	öä¡XÈ²1¡ÃÄHŒ‘Œ‘HHŒÇ²¡’Å¥	öä¡¢È²1¡ÃÄ’ŒÛŒÛ’’ŒÇ²¡ÜÅ¥	öä¡ìÈ²X¡ÃÄÜŒ)Œ)ÜÜŒÇ²¡&Å¡þ¥	öä¡²1¡ÃÄþßGßGâþâþßÇ²¡H¥	öä¡X²0¡ÃÄHß‘ß‘âHâHßÇ²¡’¥	öä¡¢²0¡ÃÄ’ßÛßÛâ’â’ßÇ²¡Ü¥	öä¡ì²0¡ÃÄÜß)ß)âÜâÜßÇ²¡&¡þk¥	öä¡n²1¡ÃÄþ2G2G5þ5þ2Ç²¡Hk¥	öä¡Xn²0¡ÃÄH2‘2‘5H5H2Ç²¡’k¥	öä¡¢n²1¡ÃÄ’2Û2Û5’5’2Ç²¡Ük¥	öä¡ìn²1¡ÃÄÜ2)2)5Ü5Ü2Ç²¡&k¡þ¾¥	öä¡Á²1¡ÃÄþ…G…Gˆþˆþ…Ç²¡H¾¥	öä¡XÁ²1¡ÃÄH…‘…‘ˆHˆH…Ç²¡’¾¥	öä¡¢Á²0¡ÃÄ’…Û…Ûˆ’ˆ’…Ç²¡Ü¾¥	öä¡ìÁ²Z¡ÃÄÜ…)…)ˆÜˆÜ…Ç²¡&¾¡þ¥	öä¡²1¡ÃÄþØGØGÛþÛþØÇ²¡H¥	öä¡X²1¡ÃÄHØ‘Ø‘ÛHÛHØÇ²¡’¥	öä¡¢²1¡ÃÄ’ØÛØÛÛ’Û’ØÇ²¡Ü¥	öä¡ì²X¡ÃÄÜØ)Ø)ÛÜÛÜØÇ²¡&¡þ“²NoµisolatedµsignalµchangeµonµCµcanµcauseµtheµ0µto1µorµ1µtoµ0¡þÛtransitionsµonµY.µTherefore,µthereµisµnoµcombinationalµarcµfromµCµto¡þ$Y,µalthoughµtheµtwoµareµfunctionallyµrelated.µFurther,µnoµisolated¡þmchangeµonµAµwillµcauseµtheµ1µtoµZµorµZµtoµ1µtransitionsµonµY.¡þThree_state_enableµhasµnoµrisingµvalueµ(Zµto1),µand¡þXthree_state_disableµhasµnoµfallingµvalueµ(1µtoµZ).¡þûLibraryµCompilerµdetectsµsuchµinvalidµtimingµarcsµifµtheyµare¡þCspecified.µForµtheµimpossibleµ0µto1µandµ1µtoµ0µtransitions,µLibrary¡þŒCompilerµdeletesµtheµtimingµarc.µForµtheµimpossibleµ0µtoµZ,µZµtoµ0,µ1¡þÕtoµZ,µandµZµtoµ1µtransitions,µLibraryµCompilerµputsµeitherµthe¡þ	predefinedµnon_risingµorµnon_fallingµattributeµonµtheµtimingµarc.’"½D“I501ileaf_page_string1:14-92¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,×,Á¡Ä,Á	cÁ¡Ä	cÁ	c×¡Ä	c×,×ÆÃÁÊËÃ¡ÄþÁÊÁÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³92¡,Õ²Examples´µofµLibrariesµUsingµDelayµModels¡þ—²This´µsectionµcontainsµexamplesµofµlibrariesµusingµtheseµdelay¡þàmodels:µCMOSµlinearµdelay,µCMOSµpiecewiseµlinearµdelay,µand¡þ)CMOSµnonlinearµdelay.¡þ²CMOS´µLinearµDelayµModel¡þ²²In´µtheµCMOSµDµflip³flopµdescriptionµinµExample 14³7,µpinµDµcontains¡þûsetupµandµholdµconstraints;µpinsµQµandµQNµcontainµpreset,µclear,¡þDandµedge³sensitiveµarcs.¡,ø²&Example 14³7³DµFlip³FlopµDescriptionµ(StandardµDelayµModel)¡þP²library´µ(example){¡þdateµ:µ"Januaryµ14,µ1997";¡þÊrevisionµ:µ1997.01;¡þdelay_modelµ:µgeneric_cmos;¡þDtechnologyµ(cmos);¡þcell(µDFLOP_CLR_PREµ)µ{¡þ¿¡…¿areaµ:µµ11µ;¡þü¡…üffµ(µIQµ,µIQNµ)µ{¡þ9¡…9¡9clocked_onµ:µ"µCLKµ";¡þv¡…v¡vnext_stateµ:µ"µDµ";¡þ³¡…³¡³clearµ:µ"µCLR'µ"µ;¡þð¡…ð¡ðpresetµ:µ"µPRE'µ"µ;¡þ	-¡…	-¡	-clear_preset_var1µ:µLµ;¡þ	j¡…	j¡	jclear_preset_var2µ:µLµ;¡þ	¨¡…	¨}¡þ	å¡…	åpinµ(µDµ){¡þ
"¡…
"¡
"directionµ:µinput;¡þ
_¡…
_¡
_capacitanceµ:µ1µ;¡þ
œ¡…
œ¡
œtimingµ()µ{¡þ
Ù¡…
Ù¡
Ù¡“
Ùrelated_pinµ:µ"CLK"µ;¡þ¡…¡¡“timing_typeµ:µhold_rising;’½\D“I501ileaf_page_string1:14-93¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³93¡þÃ²¡…Ã¡Ã¡“Ãintrinsic_rise´µ:µ0.12;¡þ¡…¡¡“intrinsic_fallµ:µ0.12µ;¡þ=¡…=¡=}¡þ{¡…{¡{timingµ(){¡þ¸¡…¸¡¸¡“¸related_pinµ:µ"CLK"µ;¡þõ¡…õ¡õ¡“õtiming_typeµ:µsetup_risingµ;¡þ2¡…2¡2¡“2intrinsic_riseµ:µ2.77µ;¡þo¡…o¡o¡“ointrinsic_fallµ:µ2.77µ;¡þ­¡…­¡­}¡þê¡…ê}¡þ'¡…'pinµ(µCLKµ){¡þd¡…d¡ddirectionµ:µinput;¡þ¡¡…¡¡¡capacitanceµ:µ1µ;¡þß¡…ß}¡þ¡…pinµ(µPREµ)µµµµ{¡þY¡…Y¡Ydirectionµ:µinputµ;¡þ–¡…–¡–capacitanceµ:µ2µ;¡þÔ¡…Ô}¡þ¡…pinµ(µCLRµ){¡þN¡…N¡Ndirectionµ:µinputµ;¡þ‹¡…‹¡‹capacitanceµ:µ2µ;¡þÈ¡…È}¡þ¡…pinµ(µQµ)µ{¡þC¡…C¡Cdirectionµ:µoutput;¡þ€¡…€¡€functionµ:µ"IQ"µ;¡þû¡…û¡ûtimingµ()µ{¡þ8¡…8¡8¡“8related_pinµ:µ"PRE"µ;¡þu¡…u¡u¡“utiming_typeµ:µpresetµ;¡þ²¡…²¡²¡“²timing_senseµ:µnegative_unateµ;¡þï¡…ï¡ï¡“ïintrinsic_riseµ:µ0.65µ;¡þ	-¡…	-¡	-¡“	-rise_resistanceµ:µ0.047µ;¡þ	j¡…	j¡	j¡“	jslope_riseµ:µ1.0µ;¡þ	§¡…	§¡	§}¡þ	ä¡…	ä¡	ätimingµ(){¡þ
!¡…
!¡
!¡“
!related_pinµ:µ"CLR"µ;¡þ
_¡…
_¡
_¡“
_timing_typeµ:µclearµ;¡þ
œ¡…
œ¡
œ¡“
œtiming_senseµ:µpositive_unateµ;¡þ
Ù¡…
Ù¡
Ù¡“
Ùintrinsic_fallµ:µ1.45µ;¡þ¡…¡¡“fall_resistanceµ:µ0.066µ;’\ÓD“I501ileaf_page_string1:14-94¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³94¡þÃ²¡…Ã¡Ã¡“Ãslope_fall´µ:µ0.8µ;¡þü¡…ü¡ü}¡þ5¡…5¡5timingµ(){¡þm¡…m¡m¡“mrelated_pinµ:µ"CLK"µ;¡þ¦¡…¦¡¦¡“¦timing_typeµ:µrising_edge;¡þß¡…ß¡ß¡“ßintrinsic_riseµ:µ1.40µ;¡þ¡…¡¡“intrinsic_fallµ:µ1.91µ;¡þQ¡…Q¡Q¡“Qrise_resistanceµ:µ0.071µ;¡þŠ¡…Š¡Š¡“Šfall_resistanceµ:µ0.041µ;¡þÂ¡…Â¡Â}¡þû¡…û}¡þ4¡…4pinµ(µQNµ){¡þm¡…m¡mdirectionµ:µoutputµ;¡þ¦¡…¦¡¦functionµ:µ"IQN"µ;¡þß¡…ß¡ßtimingµ(){¡þ¡…¡¡“related_pinµ:µ"PRE"µ;¡þP¡…P¡P¡“Ptiming_typeµ:µclearµ;¡þ‰¡…‰¡‰¡“‰timing_senseµ:µpositive_unateµ;¡þÂ¡…Â¡Â¡“Âintrinsic_fallµ:µ1.87µ;¡þû¡…û¡û¡“ûfall_resistanceµ:µ0.053µ;¡þ4¡…4¡4¡“4slope_fallµ:µ1.2µ;¡þm¡…m¡m}¡þ¥¡…¥¡¥timingµ(){¡þÞ¡…Þ¡Þ¡“Þrelated_pinµ:µ"CLR"µ;¡þ¡…¡¡“timing_typeµ:µpresetµ;¡þ‰¡…‰¡‰¡“‰timing_senseµ:µnegative_unateµ;¡þÂ¡…Â¡Â¡“Âintrinsic_riseµ:µ0.68µ;¡þû¡…û¡û¡“ûrise_resistanceµ:µ0.054µ;¡þ3¡…3¡3¡“3slope_riseµ:µ1.0µ;¡þl¡…l¡l}¡þ¥¡…¥¡¥timingµ(){¡þÞ¡…Þ¡Þ¡“Þrelated_pinµ:µ"CLK"µ;¡þ	¡…	¡	¡“	timing_typeµ:µrising_edge;¡þ	P¡…	P¡	P¡“	Pintrinsic_riseµ:µ2.37µ;¡þ	ˆ¡…	ˆ¡	ˆ¡“	ˆintrinsic_fallµ:µ2.51µ;¡þ	Á¡…	Á¡	Á¡“	Árise_resistanceµ:µ0.036µ;¡þ	ú¡…	ú¡	ú¡“	úfall_resistanceµ:µ0.041µ;¡þ
3¡…
3¡
3}¡þ
l¡…
l}¡þ
¥µ}¡þ
Þ}’ÓüD“I501ileaf_page_string1:14-95¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ËÁ²Timing´µArcs¡Ô¤ÿŠ14³95¡þÏ²CMOS´µPiecewiseµLinearµDelayµModel¡þj²In´µtheµCMOSµpiecewiseµlinearµDµflip³flopµdescriptionµshownµin¡þ³Example 14³8,µpinµDµcontainsµsetupµandµholdµconstraints;µpinsµQ¡þûandµQNµcontainµpreset,µclear,µandµedge³sensitiveµarcs.¡,©²&Example 14³8³DµFlip³FlopµDescriptionµ(PiecewiseµLinearµDelayµModel)¡þÿ²library´µ(example){¡þ;dateµ:µ"Januaryµ14,µ1997";¡þxrevisionµ:µ1997.01;¡þ´delay_modelµ:µgeneric_cmos;¡þñtechnologyµ(cmos);¡þ-piece_define("0,15,40");¡þjcell(µDFLOP_CLR_PREµ)µ{¡þ¦¡…¦areaµ:µ11µ;¡þã¡…ãffµ(µIQµ,µIQNµ)µ{¡þ¡…¡clocked_onµ:µ"µCLKµ";¡þ\¡…\¡\next_stateµ:µ"µDµ";¡þ™¡…™¡™clearµ:µ"µCLR'µ"µ;¡þÕ¡…Õ¡Õpresetµ:µ"µPRE'µ"µ;¡þ¡…¡clear_preset_var1µ:µLµ;¡þN¡…N¡Nclear_preset_var2µ:µLµ;¡þ‹¡…‹}¡þÇ¡…Çpinµ(µDµ){¡þ¡…¡directionµ:µinput;¡þ@¡…@¡@capacitanceµ:µ1µ;¡þ}¡…}¡}timingµ()µ{¡þ¹¡…¹¡¹¡“¹related_pinµ:µ"CLK"µ;¡þö¡…ö¡ö¡“ötiming_typeµ:µhold_rising;¡þ	2¡…	2¡	2¡“	2intrinsic_riseµ:µ0.12;¡þ	o¡…	o¡	o¡“	ointrinsic_fallµ:µ0.12µ;¡þ	«¡…	«¡	«}¡þ	è¡…	è¡	ètimingµ(){¡þ
$¡…
$¡
$¡“
$related_pinµ:µ"CLK"µ;¡þ
a¡…
a¡
a¡“
atiming_typeµ:µsetup_risingµ;¡þ
¡…
¡
¡“
intrinsic_riseµ:µ2.77µ;¡þ
Ú¡…
Ú¡
Ú¡“
Úintrinsic_fallµ:µ2.77µ;¡þ¡…¡}’ü¾D“I501ileaf_page_string1:14-96¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³96¡þÃ²¡…Ã}¡þÿ¡…ÿpin´µ(µCLKµ){¡þ:¡…:¡:directionµ:µinput;¡þv¡…v¡vcapacitanceµ:µ1µ;¡þ²¡…²}¡þí¡…ípinµ(µPREµ)µµµµ{¡þ)¡…)¡)directionµ:µinputµ;¡þe¡…e¡ecapacitanceµ:µ2µ;¡þ ¡… }¡þÜ¡…Üpinµ(µCLRµ){¡þ¡…¡directionµ:µinputµ;¡þS¡…S¡Scapacitanceµ:µ2µ;¡þ¡…}¡þË¡…Ëpinµ(µQµ)µ{¡þ¡…¡directionµ:µoutput;¡þB¡…B¡Bfunctionµ:µ"IQ"µ;¡þ~¡…~¡~timingµ()µ{¡þº¡…º¡º¡“ºrelated_pinµ:µ"PRE"µ;¡þõ¡…õ¡õ¡“õtiming_typeµ:µpresetµ;¡þ1¡…1¡1¡“1timing_senseµ:µpositive_unateµ;¡þm¡…m¡m¡“mintrinsic_riseµ:µ0.65µ;¡þ¨¡…¨¡¨¡“¨rise_delay_interceptµ(0,0.054);µµ/*µpieceµ0µ*/¡þä¡…ä¡ä¡“ärise_delay_interceptµ(1,0.0);µµ/*µpieceµ1µ*/¡þ ¡… ¡ ¡“ rise_delay_interceptµ(2,-0.062);µ/*µpieceµ2µ*/¡þ[¡…[¡[¡“[rise_pin_resistanceµ(0,0.25);µ/*µpieceµ0µ*/¡þ—¡…—¡—¡“—rise_pin_resistance(1,0.50);µ/*µpieceµ1µ*/¡þÓ¡…Ó¡Ó¡“Órise_pin_resistanceµ(2,1.00);µ/*µpieceµ2µ*/¡þ¡…¡}¡þJ¡…J¡Jtimingµ(){¡þ†¡…†¡†¡“†related_pinµ:µ"CLR"µ;¡þÁ¡…Á¡Á¡“Átiming_typeµ:µclearµ;¡þý¡…ý¡ý¡“ýtiming_senseµ:µnegative_unateµ;¡þ	9¡…	9¡	9¡“	9intrinsic_fallµ:µ1.45µ;¡þ	u¡…	u¡	u¡“	ufall_delay_interceptµ(0,1.0);µ/*µpieceµ0µ*/¡þ	°¡…	°¡	°¡“	°fall_delay_interceptµ(1,0.0);µ/*µpieceµ1µ*/¡þ	ì¡…	ì¡	ì¡“	ìfall_delay_interceptµ(2,-1.0);µ/*µpieceµ2µ*/¡þ
(¡…
(¡
(¡“
(fall_pin_resistanceµ(0,0.25);µ/*µpieceµ0µ*/¡þ
c¡…
c¡
c¡“
cfall_pin_resistanceµ(1,0.50);µ/*µpieceµ1µ*/¡þ
Ÿ¡…
Ÿ¡
Ÿ¡“
Ÿfall_pin_resistanceµ(2,1.00);µ/*µpieceµ2µ*/¡þ
Û¡…
Û¡
Û}¡þ¡…¡timingµ(){’¾ÓD“I501ileaf_page_string1:14-97¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³97¡þÃ²¡…Ã¡Ã¡“Ãrelated_pin´µ:µ"CLK"µ;¡þÿ¡…ÿ¡ÿ¡“ÿtiming_typeµ:µrising_edge;¡þ:¡…:¡:¡“:intrinsic_riseµ:µ1.40µ;¡þv¡…v¡v¡“vintrinsic_fallµ:µ1.91µ;¡þ²¡…²¡²µ¡“²rise_pin_resistanceµ(0,0.25);µ/*µpieceµ0µ*/¡þí¡…í¡í¡“írise_pin_resistanceµ(1,0.50);µ/*µpieceµ1µ*/¡þ)¡…)¡)¡“)rise_pin_resistanceµ(2,1.00);µ/*µpieceµ2µ*/¡þe¡…e¡e¡“efall_pin_resistanceµ(0,0.15);µ/*µpieceµ0µ*/¡þ ¡… ¡ ¡“ fall_pin_resistanceµ(1,0.40);µ/*µpieceµ1µ*/¡þÜ¡…Ü¡Ü¡“Üfall_pin_resistanceµ(2,0.90);µ/*µpieceµ2µ*/¡þ¡…¡}¡þS¡…S}¡þ¡…pinµ(µQNµ){¡þË¡…Ë¡Ëdirectionµ:µoutputµ;¡þ¡…¡functionµ:µ"IQN"µ;¡þB¡…B¡Btimingµ(){¡þ~¡…~¡~¡“~related_pinµ:µ"PRE"µ;¡þº¡…º¡º¡“ºtiming_typeµ:µclearµ;¡þõ¡…õ¡õ¡“õtiming_senseµ:µnegative_unateµ;¡þ1¡…1¡1¡“1intrinsic_fallµ:µ1.87µ;¡þm¡…m¡m¡“mfall_delay_interceptµ(0,1.0);µ/*µpieceµ0µ*/¡þ¨¡…¨¡¨¡“¨fall_delay_interceptµ(1,0.0);µ/*µpieceµ1µ*/¡þä¡…ä¡ä¡“äfall_delay_interceptµ(2,-1.0);µ/*µpieceµ2µ*/¡þ ¡… ¡ ¡“ fall_pin_resistanceµ(0,0.25);µ/*µpieceµ0µ*/¡þ[¡…[¡[¡“[fall_pin_resistanceµ(1,0.50);µ/*µpieceµ1µ*/¡þ—¡…—¡—¡“—fall_pin_resistanceµ(2,1.00);µ/*µpieceµ2µ*/¡þÓ¡…Ó¡Ó}¡þ¡…¡timingµ(){¡þJ¡…J¡J¡“Jrelated_pinµ:µ"CLR"µ;¡þ†¡…†¡†¡“†timing_typeµ:µpresetµ;¡þÁ¡…Á¡Á¡“Átiming_senseµ:µpositive_unateµ;¡þý¡…ý¡ý¡“ýintrinsic_riseµ:µ0.68µ;¡þ	9¡…	9¡	9¡“	9rise_delay_interceptµ(0,0.054);µµ/*µpieceµ0µ*/¡þ	u¡…	u¡	u¡“	urise_delay_interceptµ(1,0.0);µµ/*µpieceµ1µ*/¡þ	°¡…	°¡	°¡“	°rise_delay_interceptµ(2,-0.062);µ/*µpieceµ2µ*/¡þ	ì¡…	ì¡	ì¡“	ìrise_pin_resistanceµ(0,0.25);µµ/*µpieceµ0µ*/¡þ
(¡…
(¡
(¡“
(rise_pin_resistance(1,0.50);µµ/*µpieceµ1µ*/¡þ
c¡…
c¡
c¡“
crise_pin_resistanceµ(2,1.00);µµ/*µpieceµ2µ*/¡þ
Ÿ¡…
Ÿ¡
Ÿ}¡þ¡…¡timingµ(){’ÓZD“I501ileaf_page_string1:14-98¥	öäÃËÁâÊË¡Ä,F,0¡Ä,0	c0¡Ä	c0	cF¡Ä	cF,FÆÃÁÊËÃ¡Äþ0Ê0ÆÃ¥	öä¥	öä¡8Á²Timing´µArcs¡.14³98¡þÃ²¡…Ã¡Ã¡“Ãrelated_pin´µ:µ"CLK"µ;¡þ¡…¡¡“timing_typeµ:µrising_edge;¡þ=¡…=¡=¡“=intrinsic_riseµ:µ2.37µ;¡þz¡…z¡z¡“zintrinsic_fallµ:µ2.51µ;¡þ·¡…·¡·µ¡“·rise_pin_resistanceµ(0,0.25);µ/*µpieceµ0µ*/¡þô¡…ô¡ô¡“ôrise_pin_resistanceµ(1,0.50);µ/*µpieceµ1µ*/¡þ2¡…2¡2¡“2rise_pin_resistanceµ(2,1.00);µ/*µpieceµ2µ*/¡þo¡…o¡o¡“ofall_pin_resistanceµ(0,0.15);µ/*µpieceµ0µ*/¡þ¬µ¡…¬¡¬¡“¬fall_pin_resistanceµ(1,0.40);µ/*µpieceµ1µ*/¡þé¡…é¡é¡“éfall_pin_resistanceµ(2,0.90);µ/*µpieceµ2µ*/¡þ&¡…&¡&}¡þc¡…c}¡þ }¡þ€²CMOS´µNonlinearµDelayµModel¡þ!²In´µtheµnonlinearµlibraryµdescriptionµinµExample 14³9,µpinµDµcontains¡þjsetupµandµholdµconstraints;µpinsµQµandµQNµcontainµpreset,µclear,¡þ²andµedge³sensitiveµarcs.¡,g²&Example 14³9³DµFlip³FlopµDescriptionµ(CMOSµNonlinearµDelayµModel)¡þ¿²library´µ(NLDM){¡þüdateµ:µ"Januaryµ14,µ1997";¡þ9revisionµ:µ1997.01;¡þvdelay_modelµ:µtable_lookup;¡þ³technologyµ(cmos);¡þð/*µDefineµtemplateµofµsizeµ2µxµ2*/¡þ	-lu_table_template(cell_template)µ{¡þ	k¡…	kvariable_1µ:µinput_net_transition;¡þ	¨¡…	¨variable_2µ:µtotal_output_net_capacitance;¡þ	å¡…	åindex_1µ("0.0,µ1.5");¡þ
"¡…
"index_2µ("0.0,µ4.0");¡þ
_}¡þ
œ/*µDefineµone³dimensionalµlu_tableµofµsizeµ4µ*/¡þ
Ùlu_table_template(tran_template)µ{¡þ¡…variable_1µ:µtotal_output_net_capacitance;’Z*D“I501ileaf_page_string1:14-99¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿŠ14³99¡þÃ²¡…Ãindex_1´µ("0.0,µ0.5,µ1.5,µ2.0");¡þ}¡þ=cell(µDFLOP_CLR_PREµ)µ{¡þ{¡…{areaµ:µµ11µ;¡þ¸¡…¸ffµ(µIQµ,µIQNµ)µ{¡þõ¡…õ¡õclocked_onµ:µ"µCLKµ";¡þ2¡…2¡2next_stateµ:µ"µDµ";¡þo¡…o¡oclearµ:µ"µCLR'µ"µ;¡þ­¡…­¡­presetµ:µ"µPRE'µ"µ;¡þê¡…ê¡êclear_preset_var1µ:µLµ;¡þ'¡…'¡'clear_preset_var2µ:µLµ;¡þd¡…d}¡þ¡¡…¡pinµ(µDµ){¡þß¡…ß¡ßdirectionµ:µinput;¡þ¡…¡capacitanceµ:µ1µ;¡þY¡…Y¡Ytimingµ()µ{¡þ–¡…–¡–¡“–related_pinµ:µ"CLK"µ;¡þÔ¡…Ô¡Ô¡“Ôtiming_typeµ:µhold_rising;¡þ¡…¡¡“rise_constraint(scalar)µ{¡þN¡…N¡N¡“Nµµvalues("0.12");¡þ‹¡…‹¡‹¡“‹}¡þÈ¡…È¡È¡“Èfall_constraint(scalar)µ{¡þ¡…¡¡“µµvalues("0.29");¡þC¡…C¡C¡“C}¡þ€¡…€¡€}¡þ½¡…½¡½timingµ(){¡þû¡…û¡û¡“ûrelated_pinµ:µ"CLK"µ;¡þ8¡…8¡8¡“8timing_typeµ:µsetup_risingµ;¡þu¡…u¡u¡“urise_constraint(scalar)µ{¡þ²¡…²¡²¡“²µµvalues("2.93");¡þï¡…ï¡ï¡“ï}¡þ	-¡…	-¡	-¡“	-fall_constraint(scalar)µ{¡þ	j¡…	j¡	j¡“	jµµvalues("2.14");¡þ	§¡…	§¡	§¡“	§}¡þ	ä¡…	ä¡	ä}¡þ
!¡…
!}¡þ
_¡…
_pinµ(µCLKµ){¡þ
œ¡…
œ¡
œdirectionµ:µinput;¡þ
Ù¡…
Ù¡
Ùcapacitanceµ:µ1µ;¡þ¡…}’*ÓD“I501ileaf_page_string1:14-100¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³100¡þÃ²¡…Ãpin´µ(µPREµ)µµµµ{¡þ¡…¡directionµ:µinputµ;¡þ=¡…=¡=capacitanceµ:µ2µ;¡þ{¡…{}¡þ¸¡…¸pinµ(µCLRµ){¡þõ¡…õ¡õdirectionµ:µinputµ;¡þ2¡…2¡2capacitanceµ:µ2µ;¡þo¡…o}¡þ­¡…­pinµ(µQµ)µ{¡þê¡…ê¡êdirectionµ:µoutput;¡þ'¡…'¡'functionµ:µ"IQ"µ;¡þdµ¡þ¡¡…¡¡¡timingµ()µ{¡þß¡…ß¡ß¡“ßrelated_pinµ:µ"PRE"µ;¡þ¡…¡¡“timing_typeµ:µpresetµ;¡þY¡…Y¡Y¡“Ytiming_senseµ:µnegative_unateµ;¡þ–¡…–¡–¡“–cell_rise(cell_template)µ{¡þÔ¡…Ô¡Ô¡“Ôµµvalues("0.00,µ0.23",µ"0.11,µ0.28");¡þ¡…¡¡“}¡þN¡…N¡N¡“Nrise_transition(tran_template)µ{¡þ‹¡…‹¡‹¡“‹µµvalues("0.01,µ0.12,µ0.15,µ0.40");¡þÈ¡…È¡È¡“È}¡þ¡…¡}¡þC¡…C¡Ctimingµ(){¡þ€¡…€¡€¡“€related_pinµ:µ"CLR"µ;¡þ½¡…½¡½¡“½timing_typeµ:µclearµ;¡þû¡…û¡û¡“ûtiming_senseµ:µpositive_unateµ;¡þ8¡…8¡8¡“8cell_fall(cell_template)µ{¡þu¡…u¡u¡“uµµvalues("0.00,µ0.24",µ"0.15,µ0.26");¡þ²¡…²¡²¡“²}¡þï¡…ï¡ï¡“ïfall_transition(tran_template)µ{¡þ	-¡…	-¡	-¡“	-µµvalues("0.03,µ0.15,µ0.18,µ0.38");¡þ	j¡…	j¡	j¡“	j}¡þ	§¡…	§¡	§}¡þ	ä¡…	ä¡	ätimingµ(){¡þ
!¡…
!¡
!¡“
!related_pinµ:µ"CLK"µ;¡þ
_¡…
_¡
_¡“
_timing_typeµ:µrising_edge;¡þ
œ¡…
œ¡
œ¡“
œcell_rise(cell_template)µ{¡þ
Ù¡…
Ù¡
Ù¡“
Ùµµvalues("0.00,µ0.25",µ"0.11,µ0.28");¡þ¡…¡¡“}’ÓRD“I501ileaf_page_string1:14-101¥	öä¥	öä¡ËÁ²âTiming´µArcs¡Ô¤ÿq14³101¡þÃ²¡…Ã¡Ã¡“Ãrise_transition(tran_template)´µ{¡þ¡…¡¡“µµvalues("0.01,µ0.08,µ0.15,µ0.40");¡þ=¡…=¡=¡“=}¡þ{¡…{¡{¡“{cell_fall(cell_template)µ{¡þ¸¡…¸¡¸¡“¸µµvalues("0.00,µ0.33",µ"0.11,µ0.38");¡þõ¡…õ¡õ¡“õ}¡þ2¡…2¡2¡“2fall_transition(tran_template)µ{¡þo¡…o¡o¡“oµµvalues("0.01,µ0.11,µ0.18,µ0.40");¡þ­¡…­¡­¡“­}¡þê¡…ê¡ê}¡þ'¡…'}¡þd¡…dpinµ(µQNµ){¡þ¡¡…¡¡¡directionµ:µoutputµ;¡þß¡…ß¡ßfunctionµ:µ"IQN"µ;¡þ¡…¡timingµ(){¡þY¡…Y¡Y¡“Yrelated_pinµ:µ"PRE"µ;¡þ–¡…–¡–¡“–timing_typeµ:µclearµ;¡þÔ¡…Ô¡Ô¡“Ôtiming_senseµ:µpositive_unateµ;¡þ¡…¡¡“cell_fall(cell_template)µ{¡þN¡…N¡N¡“Nµµvalues("0.00,µ0.23",µ"0.11,µ0.28");¡þ‹¡…‹¡‹¡“‹}¡þÈ¡…È¡È¡“Èfall_transition(tran_template)µ{¡þ¡…¡¡“µµvalues("0.01,µ0.12,µ0.15,µ0.40");¡þC¡…C¡C¡“C}¡þ€¡…€¡€}¡þ½¡…½¡½timingµ(){¡þû¡…û¡û¡“ûrelated_pinµ:µ"CLR"µ;¡þ8¡…8¡8¡“8timing_typeµ:µpresetµ;¡þu¡…u¡u¡“utiming_senseµ:µnegative_unateµ;¡þ²¡…²¡²¡“²cell_rise(cell_template)µ{¡þï¡…ï¡ï¡“ïµµvalues("0.00,µ0.23",µ"0.11,µ0.28");¡þ	-¡…	-¡	-¡“	-}¡þ	j¡…	j¡	j¡“	jrise_transition(tran_template)µ{¡þ	§¡…	§¡	§¡“	§µµvalues("0.01,µ0.12,µ0.15,µ0.40");¡þ	ä¡…	ä¡	ä¡“	ä}¡þ
!¡…
!¡
!}¡þ
_¡…
_¡
_timingµ(){¡þ
œ¡…
œ¡
œ¡“
œrelated_pinµ:µ"CLK"µ;¡þ
Ù¡…
Ù¡
Ù¡“
Ùtiming_typeµ:µrising_edge;¡þ¡…¡¡“cell_rise(cell_template)µ{’R\D“I501ileaf_page_string1:14-102¥	öä¥	öä¡8Á²âTiming´µArcs¡.14³102¡þÃ²¡…Ã¡Ã¡“Ã´µµvalues("0.00,µ0.25",µ"0.11,µ0.28");¡þ¡…¡¡“}¡þ=¡…=¡=¡“=rise_transition(tran_template)µ{¡þz¡…z¡z¡“zµµvalues("0.01,µ0.08,µ0.15,µ0.40");¡þ¶¡…¶¡¶¡“¶}¡þó¡…ó¡ó¡“ócell_fall(cell_template)µ{¡þ0¡…0¡0¡“0µµvalues("0.00,µ0.33",µ"0.11,µ0.38");¡þm¡…m¡m¡“m}¡þª¡…ª¡ª¡“ªfall_transition(tran_template)µ{¡þç¡…ç¡ç¡“çµµvalues("0.01,µ0.11,µ0.18,µ0.40");¡þ$¡…$¡$¡“$}¡þa¡…a¡a}¡þž¡…ž}¡þÚµ}¡þ}’\ÐOPS m:m:D€‚Document:15itsÿ‚Last saved on:Tue, Dec 9, 1997 17:53:24ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:newcsps10±:#"	!!#!("!!")	%!*"!!!!!!""""!****#°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G° wst:helvps20b± :44444444444444444444444444444444*..J< 0...........0003Q<<<<73A<.<3E<A7A<73<7N7730..3.3.33.J3333 .3.A..*  0*444444444444444444444444444444444....4.4.444444444.44.4443<<<<<<S<77774<AAAAA4A<<<<443......J.....433333343333344.4.*S.44S444444444..*444444S444444444444444.4444S444N°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Ÿwst:newcsps8±Ÿ:	
					 



	
!



	!!		!!° wst:newcsps16b± :******************************** &&89")"&&&&&&&&&&)))"23448308:+70B88387-083B00-))")+%-&).-A.)-+#".)<))$)) *********************************&&)0*"*"*********2**"***"333333B43333*888888*88888**))))))):%&&&&*.)))))*)....**)*&"C"**C*********"" ******C***************&****C***=ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿå™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»å®áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’JÖûD“I501ileaf_page_string1:15-1¥	öä² â¡º¡Ïº¡žº¥	öä¡ýÁ²Interface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿ¤15³1¡,m²².15â²/¥	öä¡`m²â¡,V²	Interface´µTimingµofµComplexµSequential¡,ÆBlocks¡6²¥	öäÁÊËÃ¡Ä,ÊÆÃ¡	ö6¡þËThis´µchapterµdescribesµtheµprocedureµandµtheµmethodologyµfor¡þspecifyingµtheµstaticµtimingµofµcomplexµsequentialµblocksµtoµbeµused¡þ]asµblackµboxesµinµaµdesign.¡þçITSµappliesµonlyµtoµASICµlibrariesµcontainingµsequentialµblocksµthat¡þ/areµmodeledµasµblackµboxes.µItµdoesµnotµapplyµtoµcombinational¡þxcellsµorµsimpleµsequentialµcellsµsuchµasµlatchesµandµflip³flops.¡þ	Theseµareµinterfaceµtimingµconceptsµdescribedµinµthisµchapter:¡þ	w²S¡X	w²Interfaceµtimingµspecificationµ(ITS)¡þ	Þ²S¡X	Þ²DescribingµblocksµwithµITSµtiming¡þ
F²S¡X
F²Usingµblocksµwithµinterfaceµtimingµinµsynthesis¡þ
­²S¡X
­²Interpretingµofµinterfaceµtimingµrelationships¡þ²S¡X²ExamplesµusingµITS’ûUD“I501ileaf_page_string1:15-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³2¡,Õ²Interface´µTimingµSpecification¡þ”²The´µITSµofµaµsequentialµblockµdescribesµtheµstaticµtimingµofµaµblock¡þÝasµseenµfromµtheµoutside.µThisµspecificationµdoesµnotµincludeµthe¡þ%timingµofµtheµinternalµpathsµofµtheµblock.µ¡þÈAµcomplexµsequentialµblockµcontainsµmoreµthanµoneµsequential¡þdevice.µItµcanµhaveµmoreµthanµoneµdrivingµclockµtoµwhichµyouµspecify¡þYinputµconstraintsµandµoutputµdelays.µExampleµblocksµincludeµRAMs¡þ¢andµhardµmacros,µsuchµasµtheµTAPµcontrollerµcircuitµinµJTAG.¡þEFigure 15³1µisµanµexampleµofµtheµinterfaceµtimingµofµaµcomplex¡þblock.¡,?²&Figure 15³1³InterfaceµTimingµofµaµComplexµBlock¡,
7²¥	öäÁÊËÃ¡ÄyÕyYÆÃÃ¡ÄOÐO0ÆÃÃÊË¡Ä²¡Ä)K¡Ä)KUK¡ÄUK ¡Ä §ÆÃÃ¡Ä²KØK¡ÄØKK¡ÄK)¡Ä)U¡ÄU K¡Ä K§KÆÃÊËÃ¡Ä+¡+7ÆÃÃ¡Ä,úwúÆÃÃÊË¡ÄGìwú¡ÄwúG¡ÄGGú¡ÄGúGìãÇÆÃÊËÃ¡ÄÞµ)µÆÃÃÊË¡Äù§)µ¡Ä)µùÂ¡ÄùÂùµ¡Äùµù§ÇÆÃÊËÃ¡Ä\ø§øÆÃÃÊË¡Äwê§ø¡Ä§øw¡Äwwø¡ÄwøwêÇÆÃÊËÃ¡ÄUù ùÆÃÃÊË¡Ä…Uù¡ÄUù…ë¡Ä…ë…ù¡Ä…ù…ÇÆÃÊËÃ¡Ä¯µúµÆÃÃÊË¡ÄßÂ¯µ¡Ä¯µß§¡Äß§ßµ¡ÄßµßÂÇÆÃÊËÃ¡ÄÊùùÆÃÃÊË¡ÄúÊù¡ÄÊùúë¡Äúëúù¡ÄúùúÇÆÃÊËÃ¡ÄRååÆÃÃÊË¡Ä‚óRå¡ÄRå‚×¡Ä‚×‚å¡Ä‚å‚óÇÆÃÃ¡ÄéD1D¡Ä1DUD¡ÄUDz¡ÄzO¡ÄOsD¡ÄsD¸DÆÃÊËÃ¡Ä\ç§çÆÃÃÊË¡ÄwÙ§ç¡Ä§çwô¡Äwôwç¡ÄwçwÙÇÆÃÃ¡Äž‰ª‰¡Äª‰öÔ¡ÄöÔÔ¡ÄÔÛ‰¡ÄÛ‰Ì‰ÆÃ²¡–clock¡jI1¡%I2Ã¡ÄéU¡ÄUzD¡ÄzDOD¡ÄODs¡Äs¸ÆÃÊËÃ¡Äó	œ>	œÆÃÃÊË¡Ä	Ž>	œ¡Ä>	œ	ª¡Ä	ª	œ¡Ä	œ	ŽÇÆÃÊËÃ¡Ä°¹û¹ÆÃÃÊË¡ÄàÇ°¹¡Ä°¹à¬¡Äà¬à¹¡Äà¹àÇÇÆÃÃ¡Ä¸á¸á¡Ä¸á"á¡Ä"áý	,¡Äý	,`	,ÆÃÃ¡Ä`ÞýÞ¡ÄýÞ"	)¡Ä"	)¸	)ÆÃÊËÃ¡Äªuª	NÆÃÃÊË¡Ä	½	½¡Ä	½C
¡ÄC
Ù
ÆÃÃ¡Ä×	Â×	Â¡Ä×	ÂA	Â¡ÄA	Â
¡Ä

ÆÃÊËÃ¡ÄA	wA
2ÆÃÃ¡ÄÊ
2ÊsÆÃÃ¡ÄÏ	Ÿ	ŸÆÃÃÊË¡Äÿ	­Ï	Ÿ¡ÄÏ	Ÿÿ	‘¡Äÿ	‘ÿ	Ÿ¡Äÿ	Ÿÿ	­ÇÆÃÊËÃ¡ÄÖ»!»ÆÃÃÊË¡Äñ­!»¡Ä!»ñÉ¡ÄñÉñ»¡Äñ»ñ­ÇÆÃ¡‚t²¤I¤ÿø¤1¤ÿø¤s¤ÿø¡Û²t²¤I¤ÿø¤1¤ÿø¤h¤ÿø¡BÆ²t²¤I¤ÿø¤2¤ÿø¤s¤ÿø¡ßó²t²¤I¤ÿø¤2¤ÿø¤h¤ÿø¡1É²t²Ÿ¤d¤ÿù¤o¤ÿù¤u¤ÿù¤t¤ÿù¤1¤ÿù¡S	«²t²¤d¤ÿø¤o¤ÿø¤u¤ÿø¤t¤ÿø¤2¤ÿø¡		ò²d²¤o¤ÿø¤u¤ÿø¤t¤ÿø¤2¤ÿø¡		²d²¤o¤ÿø¤u¤ÿø¤t¤ÿø¤1¤ÿø²¡Ê
7’UD“I501ileaf_page_string1:15-3¥	öäÃËÁâÊË¡Ä,Á,«¡Ä,«	c«¡Ä	c«	cÁ¡Ä	cÁ,ÁÆÃÁÊËÃ¡Äþ«Ê«ÆÃ¥	öä¥	öä¡ýÁ²Interface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿ¤15³3¡þÉ²In´µtheµFigure 15³1µexample,¡þE²S¡XE²InputµI1µhasµaµsetupµconstraintµwithµrespectµtoµtheµfallingµedgeµof¡XŒtheµclockµandµaµholdµconstraintµwithµrespectµtoµtheµrisingµedgeµof¡XÓtheµclock.¡þ@²S¡X@²TheµsetupµconstraintsµforµinputsµI1µandµI2µareµspecifiedµwith¡X‡respectµtoµdifferentµedgesµofµtheµclock.¡þô²S¡Xô²Outputµdataµd²¤o¤ÿô¤u¤ÿô¤t¤ÿô¤1¤ÿô²µisµpropagatedµonµtheµrisingµedgeµofµtheµclock.¡X:Outputµdataµd²¤o¤ÿô¤u¤ÿô¤t¤ÿô¤2¤ÿô²µisµpropagatedµonµtheµfallingµedgeµofµtheµclock.¡þû²Sequential´µCellµTimingµwithoutµITS¡þŽ²In´µstaticµtiming,µaµsequentialµcellµisµconsideredµtoµcontainµoneµor¡þÖmoreµedge³triggeredµflip³flopsµ(risingµorµfallingµedge)µor¡þlevel³sensitiveµlatchesµ(negativeµorµpositiveµlevel).µWhenµfunctional¡þhinformationµisµnotµavailableµduringµsynthesis,µtheµinterpretationµofµthe¡þ°cellµisµbasedµonµtheµvariousµtimingµrelationshipsµspecifiedµinµtheµcell¡þùdescription.µCellsµareµclassifiedµasµfollows:¡þu²S¡Xu²Asµaµsimpleµedge³triggeredµdeviceµifµtheµsetupµarcµandµtheµoutput¡X¼delayµarcµareµspecifiedµforµtheµsameµclockµedge¡þ)²S¡X)²Asµaµmaster³slaveµdeviceµifµtheµsetupµarcµandµtheµoutputµdelay¡Xparcµareµspecifiedµforµdifferentµedgesµofµtheµclock¡þÝ²S¡XÝ²Asµaµlevel³sensitiveµdeviceµifµitµhasµatµleastµoneµoutputµthat¡X	$combinesµaµcombinationalµarcµfromµaµdataµinputµandµaµsequential¡X	jarcµfromµaµclock¡þ	òWithµtheseµclassifications,µsomeµofµtheµtimingµinformationµspecified¡þ
:inµtheµlibraryµisµignored.µForµexample,µifµaµcellµisµclassifiedµasµaµrising¡þ
ƒedge³triggeredµdevice,µtheµholdµconstraintµonµtheµrisingµedgeµis¡þ
Ìcheckedµevenµifµthisµconstraintµisµspecifiedµforµtheµfallingµedgeµofµthe¡þclock.’°D“I501ileaf_page_string1:15-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³4¡þÏ²Supported´µFeaturesµofµInterfaceµTimingµ¡þM²While´µtheµrulesµdescribedµinµtheµpreviousµsectionµworkµwellµfor¡þ–simpleµsequentialµcells,µtheyµdoµnotµapplyµtoµcomplexµsequential¡þßblocks.µTheµinterfaceµtimingµcapabilityµsupportsµtheµtimingµof¡þ'complexµsequentialµblocksµwithoutµanyµassumptionsµaboutµtheir¡þpunderlyingµstructure.¡þòDuringµsynthesis,µtimingµrelationshipsµareµinterpretedµaccordingµtoµa¡þ:well³definedµsetµofµrulesµinµwhichµeachµrelationshipµisµinterpreted¡þƒindependentlyµofµotherµrelationships.µInterfaceµtimingµsupports¡þò²S¡Xò²Multipleµclockµsignals.¡XUAµblockµcanµhaveµoneµorµmoreµclockµinputsµwithµdifferent¡Xœwaveformsµforµeachµclock.¡þ	²S¡X	²Setupµandµholdµconstraintsµofµdataµinputsµcanµbeµspecifiedµwith¡XOrespectµtoµtheµrisingµorµfallingµedgesµofµoneµorµmoreµclocks.¡X²Aµcontrolµinputµcanµhaveµrecoveryµorµremovalµarcsµspecifiedµwith¡Xùrespectµtoµoneµorµmoreµclocks.µNoteµthatµrecoveryµandµremoval¡X@constraintsµareµnotµcheckedµbyµsynthesis.¡þ¬²S¡X¬²Propagationµdelaysµcanµbeµspecifiedµwithµrespectµtoµtheµrisingµor¡Xófallingµedgesµofµoneµorµmoreµclocks.¡XVAnµoutputµpinµcanµhaveµaµpropagationµdelayµspecifiedµwith¡Xrespectµtoµtheµfallingµorµrisingµedgeµofµanyµclock.µOneµoutputµcan¡Xãhaveµseveralµpropagationµdelaysµspecifiedµwithµrespectµto¡X	*severalµclockµinputs.¡þ	—²S¡X	—²Combinationalµdelayµcanµbeµspecifiedµwithµrespectµtoµoneµor¡X	Ýmoreµdataµinputs.¡X
AAnµoutputµpinµcanµalsoµhaveµaµdelayµarcµfromµoneµorµmore¡X
‡inputs.µThisµarcµcanµcoexistµwithµotherµarcsµfromµclockµinputsµand¡X
Îcanµbeµaµregularµdelayµarc,µanµasynchronousµreset,µorµaµclear¡Xarc.µRegularµdelayµarcsµincludeµcombinationalµarcs.’°D“I501ileaf_page_string1:15-5¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿ¤15³5¡þÉ²²S¡XÉ²Timing´µpropertiesµofµclocks,µsuchµasµminimumµperiodµand¡Xminimumµpulseµwidth,µcanµbeµspecifiedµinµtheµsameµwayµthat¡XVtheyµareµspecifiedµforµregularµlibraryµcells.µTheseµconstraintsµare¡Xnotµcheckedµbyµsynthesis.µ            ¡þTheseµareµtheµbenefitsµofµusingµtheµinterfaceµtimingµcapabilityµto¡þcdescribeµtheµstaticµtimingµofµcomplexµsequentialµblocks:¡þ×²S¡X×²²Higherµqualityµresultsµfromµsynthesis¡X?²Withµaccurateµtimingµmodelsµforµcomplexµblocks,µoptimizationµof¡X…theµlogicµaroundµtheseµblocksµisµbetterµbecauseµtheµsynthesis¡XÌprocessµdoesµnotµmissµrealµviolationsµorµdetectµfalseµviolations.¡XWhenµtheµsynthesisµprocessµdetectsµfalseµviolations,µitµoptimizes¡XYtheµwrongµpath,µmakingµtheµcircuitµlargerµandµfasterµthanµitµneeds¡XŸtoµbe.µRealµviolationsµmissedµinµsynthesis,µwhichµareµdetectedµin¡Xæsimulationµafterµsynthesis,µrequireµmoreµsynthesize³simulate¡X-iterationsµand,µconsequently,µaµlongerµdevelopmentµcycle.µ¡þŸ²S¡XŸ²²Supportµforµcomplexµsequentialµblocks¡X²Theµtimingµofµcomplexµsequentialµblocksµcanµbeµspecifiedµforµthe¡XMsynthesisµtoolsµtoµuseµwhenµmakingµoptimizationµdecisions.¡þ¿²S¡X¿²²Abstractionµandµinformationµhiding¡X'²Becauseµinterfaceµtimingµdescribesµtheµstaticµtimingµofµaµblock¡Xmasµseenµfromµtheµoutsideµworld,µitµisµnotµnecessaryµtoµspecifyµthe¡X´internalµstructureµofµtheµblockµorµtheµtimingµpathsµinternalµtoµthe¡Xûblock,µwhichµareµassumedµtoµhaveµbeenµverifiedµwhenµtheµblock¡X	Awasµbuilt.¡X	³Forµexample,µifµtheµblockµhasµaµcorrespondingµgate³levelµnetlist,¡X	úitµisµnotµnecessaryµtoµexportµtheµnetlistµtoµbeµableµtoµtimeµthrough¡X
Ait.µYouµcanµuseµITSµtoµspecifyµtheµstaticµtimingµofµtheµblockµwhile¡X
‡keepingµitµasµaµblackµboxµinµtermsµofµinternalµstructureµand¡X
Îfunctionality.µYouµinstantiateµtheµblockµinµtheµdesign,µcompileµthe¡Xdesign,µandµexportµitµtoµdownstreamµtools.’®D“I501ileaf_page_string1:15-6¥	öäÃËÁâÊË¡Ä,c,M¡Ä,M	cM¡Ä	cM	cc¡Ä	cc,cÆÃÁÊËÃ¡Ä,MÊMÆÃ¥	öäÃÁÊË¡Ä,ž,ˆ¡Ä,ˆ	cˆ¡Ä	cˆ	cž¡Ä	cž,žÆÃÁÊËÃ¡ÄþˆÊˆÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³6¡XÉ²During´µallµtheµphasesµofµtheµsynthesisµprocess,µtheµblockµis¡Xtreatedµasµaµleafµcellµinµtheµdesign.µFunctionalµinformationµis¡XVneededµonlyµwhenµverifyingµtheµdesignµthroughµsimulationµwhen¡Xaµfunctionalµsimulationµmodelµofµtheµblockµcanµbeµused.¡,£²Describing´µBlocksµwithµInterfaceµTimingµ¡þb²This´µsectionµdescribesµhowµtoµuseµLibraryµCompilerµsyntaxµto¡þ«specifyµtheµinterfaceµtimingµofµcomplexµblocks.µTheµfollowing¡þôsectionsµdescribeµtheµdesignµflowµofµtheseµblocksµthroughµsynthesis.¡þØ²Using´µLibraryµCompilerµSyntax¡þw²To´µspecifyµtheµinterfaceµtimingµofµaµmacroµblock,µdescribeµtheµblock¡þÀasµaµcellµinµtheµlibraryµandµuseµtimingµgroupµsyntaxµtoµdescribeµthe¡þtimingµarcs.µTheµLibraryµCompilerµprogramµtreatsµthisµcellµgroupµlike¡þQaµregularµcellµgroupµinµanµASICµlibrary.’®D“I501ileaf_page_string1:15-7¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿ¤15³7¡þÏ²Differences´µfromµRegularµCellµSpecificationµ² ¡þv²These´µareµtheµdifferencesµfromµregularµcellµdescriptionµwhen¡þ¾specifyingµtheµinterfaceµtimingµofµcomplexµsequentialµblocksµin¡þLibraryµCompilerµsyntax:¡þ‘1.¡X‘Addµthisµattributeµandµvalueµtoµtheµcell'sµtimingµgroup:¡X²interface_timing´µ:µtrue;¡X„²This´µindicatesµthatµtheµtimingµarcsµmustµbeµinterpretedµaccording¡XÊtoµITSµsemantics.µIfµthisµattributeµisµmissingµorµitsµvalueµisµfalse,¡Xtheµtimingµrelationshipsµareµinterpretedµasµthoseµofµaµregularµcell¡XWratherµthanµaccordingµtoµITSµsemantics.¡þß2.¡XßFollowµtheµrulesµforµspecifyingµinterfaceµtimingµrelationships¡X&usingµLibraryµCompilerµsyntax.µTheseµrulesµareµenforcedµforµall¡Xllibraryµcellsµinµwhichµtheµinterface_timingµattributeµisµsetµtoµtrue.¡X³SeeµRulesµforµSpecifyingµInterfaceµTiming"µlaterµinµthisµchapter.µ¡þ’²Similarities´µtoµRegularµCellµSpecification¡þ9²These´µareµtheµwaysµinterfaceµtimingµspecificationµisµsimilarµto¡þregularµcellµdescription:¡þ	1.¡X	Associateµtheµblockµwithµaµlibrary.µUseµoneµofµtheseµtwo¡X	Rmethods:¡X	É³¡”	ÉSpecifyµtheµcellµgroupµwithinµaµlibraryµgroupµandµuseµthe¡”
read_libµcommandµtoµimportµtheµlibraryµintoµ.dbµformat.¡X
‡³¡”
‡Specifyµtheµcellµgroupµseparatelyµandµuseµtheµupdate_lib¡”
Îcommandµtoµassociateµitµwithµaµlibraryµthatµalreadyµexistsµin¡”.dbµformat.’}D“I501ileaf_page_string1:15-8¥	öäÃËÁâÊË¡Ä,˜,‚¡Ä,‚	c‚¡Ä	c‚	c˜¡Ä	c˜,˜ÆÃÁÊËÃ¡Äþ‚Ê‚ÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³8¡þÉ²2.¡XÉUse´µtheµsameµdelayµmodelµforµinterfaceµtimingµofµaµblockµasµthe¡Xoneµdefinedµinµitsµassociatedµlibrary.µForµexample,µassociateµthe¡XVblockµusingµtheµlinearµdelayµmodelµtoµspecifyµtimingµarcsµwithµa¡Xlibraryµusingµtheµlinearµmodel.µSimilarly,µassociateµtheµblock¡Xãusingµtheµnonlinearµdelayµmodelµwithµaµlibraryµusingµthe¡X*nonlinearµmodel.¡þ¬3.¡X¬Useµtheµsameµtimingµarcµsyntaxµforµdescribingµregularµcellsµto¡Xóspecifyµtheµtimingµarcsµthatµdescribeµtheµinterfaceµtiming¡X9relationships.¡þãAccordingµtoµtheµITSµpolicy,µblocksµwithµinterfaceµtimingµareµalways¡þ,consideredµblackµboxesµinµtermsµofµfunctionality.µToµsimulate¡þudesignsµcontainingµblocksµwithµinterfaceµtiming,µyouµmustµprovideµa¡þ½functionalµsimulationµmodelµofµsuchµblocks.¡þÒ²Examples´µofµInterfaceµTimingµRelationships¡þ²This´µsectionµdescribesµtheµvariousµtimingµrelationshipsµsupportedµby¡þ×ITSµwithµtheµexampleµofµaµfairlyµcomplexµsequentialµblockµwithµtwo¡þ clocks,µfourµdataµinputs,µandµtwoµdataµoutputs.µ¡þ	5²Input´µSetupµandµHoldµ¡þ	ò²A´µdataµinputµcanµhaveµaµsetupµorµholdµconstraintµspecifiedµwith¡þ
:respectµtoµtheµrisingµorµfallingµedgeµofµanyµclockµinput.µFigure 15³2¡þ
ƒshowsµaµdataµinputµwithµtheµsetupµconstraintµspecifiedµwithµrespect¡þ
Ìtoµtheµrisingµedgeµofµtheµclockµandµtheµholdµconstraintµspecifiedµwith¡þrespectµtoµtheµfallingµedgeµofµtheµclock.’}¡D“I501ileaf_page_string1:15-9¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿ¤15³9¡,É²&Figure 15³2³Data´µInputµwithµSpecifiedµSetupµConstraint¡,²¥	öäÁÊËÃ¡Ä88æÆÃÃ¡Ä¨¨æÆÃÃ¡Ä‰‰æÆÃÃ¡ÄæÆÃ²¡	Wclock Ã¡Äî‚9‚ÆÃÃÊË¡Ä	u9‚¡Ä9‚	¡Ä		‚¡Ä	‚	uãÇÆÃÊËÃ¡Ä>‚‰‚ÆÃÃÊË¡ÄYu‰‚¡Ä‰‚Y¡ÄYY‚¡ÄY‚YuÇÆÃÊËÃ¡Ä!‚l‚ÆÃÃÊË¡ÄQ!‚¡Ä!‚Qu¡ÄQuQ‚¡ÄQ‚QÇÆÃÊËÃ¡Ä¨‚ó‚ÆÃÃÊË¡ÄØ¨‚¡Ä¨‚Øu¡ÄØuØ‚¡ÄØ‚ØÇÆÃÃ¡Ä¢PƒP¡ÄƒPÎ¡ÄÎd¡Äd¯P¡Ä¯P–PÆÃÃ¡Ä¢ÀíÀ¡ÄíÀÀ¡ÄÀ8¡Ä8¡ÄEÀ¡ÄEÀ–ÀÆÃÃ¡Ä¢¡Ä8À¡Ä8ÀÀ¡ÄÀE¡ÄE–ÆÃ¡	÷data¡Ot²¤d¤ÿø¤s¤ÿø¡»²t²¤d¤ÿø¤h¤ÿø²¡Ê¡þß²Example 15³1µshowsµtheµLibraryµCompilerµdescriptionµofµthese¡þ(relationships.¡,ç²&Example 15³1³DescriptionµofµTimingµRelationshipsµinµFigure 15³2¡þ²pin´µ(I2)µ{¡þ½     µtimingµ()µ{¡þû         µtiming_typeµ:µsetup_rising;¡þ9µ        µintrinsic_riseµ:µ2.20;µ/*µtdsµ*/¡þwµ         intrinsic_fallµ:µ2.20;¡þµµµµµµµµµµµrelated_pinµ:µclock";¡þó   µµµ}¡þ2µµµµ  timingµ()µ{¡þpµµµµ    µµtiming_typeµ:µhold_falling;¡þ®µµµµ      intrinsic_riseµ:µ0.95;µ  /*µtdhµ*/¡þìµµµµµµµµµµintrinsic_fallµ:µ0.95;¡þ*µµµµ      related_pinµ:µclock";¡þhµµµ   }¡þ¦}¡þ	²Output´µPropagation¡þ
:²Output´µdelayµcanµbeµspecifiedµwithµrespectµtoµtheµrisingµorµfalling¡þ
ƒedgeµofµtheµclock.µFigure 15³3µshowsµtheµoutputµsectionµofµaµblock.¡þ
ÌOutputµO1µisµpropagatedµonµtheµrisingµedgeµofµtheµclockµwhileµoutput¡þO2µisµpropagatedµonµtheµfallingµedge.’¡_D“I501ileaf_page_string1:15-10¥	öä¥	öä¡8Á²âInterface´µTimingµofµComplexµSequentialµBlocks¡.15³10¡,É²&Figure 15³3³Output´µSectionµofµaµMacroµBlock¡,é²¥	öäÃËÁÊË¡Ä.¹.þ¡Ä.þþ¡Äþ¹¡Ä¹.¹âãÇÆÃÃâ¡Ä.å.*¡Ä.**¡Ä*å¡Äå.åâÇÆÃÃâ¡ÅÜšÜÀšÜ­Ü­ÆÃÃ¡ÄÜš‘u¡Ä‘u‘å¡Ä‘åÜÀÆÃÊËÃ¡Ä­.­ÆÃÃ¡Ä‘ÀÀÆÃÃÊË¡Ä.nÖn¡ÄÖnÖÀÆÃ²¡õuclock ¡Snclk¡SÀclk ¡ÄIQ¡ÄuQÊËÃ¡ÄIIÆÃÃ¡ÄuðuÆÃ¡ŒIO1¡ŒuO2Ã¡Ä.#½#ÆÃÃÊË¡ÅFþFI½þF#F#ÆÃÃ¡ÅFFO½F*F*ÆÃÃ¡Ä½*ã*¡Äã*ãu¡Äãu.uÆÃÃ¡ÄF#!#¡Ä!#û#ÆÃ¡Í/comb¡Í7combÃ¡Å#nö#IIÆÃÊËÃ¡ÄöIgIÆÃÃÊË¡ÅðOðšAOðuðuÆÃÊËÃ¡ÄAuŒuÆÃ¡WWcomb¡j„combÃ¡ÄF*!*ÆÃ²¡Êé¡þ§²Figure 15³4µshowsµtheµinterfaceµtimingµrelationshipsµforµtheµtwo¡þïoutputs.¡,¡²&Figure 15³4³OutputµTimingµRelationshipsµforµtheµBlockµinµFigure 15³3¡,å²¥	öäÃ¡Ä±±îÆÃÃ¡ÄYÔYKÆÃÃ¡Ä:Ô:µÆÃÃ¡ÄÎÎáÆÃ²¡úclock Ã¡Äfb±bÆÃÃÊË¡ÄU±b¡Ä±bp¡Äpb¡ÄbUÇÆÃÃ¡ÄR3¡Ä3~Ô¡Ä~ÔÔ¡ÄÔ_¡Ä_GÆÃÃ¡ÄR‹¡Ä‹±Û¡Ä±ÛMÛÆÃÃ¡ÄRÛ‹Û¡Ä‹Û±¡Ä±MÆÃÊËÃ¡Ä<e‡eÆÃÃÊË¡Äls<e¡Ä<elW¡ÄlWle¡ÄlelsÇÆÃÃ¡ÄRq±q¡Ä±qÌ¸¡ÄÌ¸ü¸ÆÃÃ¡ÄR¸±¸¡Ä±¸Ìq¡ÄÌqüqÆÃÊËÃ¡ÄY&¤&ÆÃÃÊË¡Ä‰4Y&¡ÄY&‰¡Ä‰‰&¡Ä‰&‰4ÇÆÃ¡
£O1¡
ÇO2ÊËÃ¡Äƒ$Î$ÆÃÃÊË¡ÄžÎ$¡ÄÎ$ž2¡Äž2ž$¡Äž$žÇÆÃ¡é7t²¤O¤ÿø¤1¤ÿø¤d¤ÿø¡Ês²t²¤O¤ÿø¤2¤ÿø¤d¤ÿøÁÊËÃ¡Ä‚&Ô&ÆÃÃ¡ÄO$¡$ÆÃÃ¡Äle¾eÆÃÃ¡Ä0b‚bÆÃ²¡Êå’_vD“I501ileaf_page_string1:15-11¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³11¡þÉ²Example 15³2´µshowsµtheµLibraryµCompilerµdescriptionµofµthe¡þrelationsµinµFigure 15³4.¡,¾²&Example 15³2³DescriptionµofµRelationshipsµinµFigure 15³4¡þP²pin(O1){¡þŒ    ´µdirectionµ:µoutput;¡þÉµ    timingµ()µ{¡þ       µ timing_typeµ:µrising_edge;µ/*sequentialµdelayµarcµ*/¡þA        µintrinsic_riseµ:µ2.25;µ/*µtO1dµ*/¡þ~        µrise_resistanceµ:µ0.020;¡þº       µ intrinsic_fallµ:µ2.57;¡þ÷       µ fall_resistanceµ:µ0.017;¡þ3        µrelated_pinµ:µ"clock";¡þo   µ}¡þ¬  }¡þ%pin(O2){¡þa     µdirectionµ:µoutput;¡þ     µtimingµ()µ{¡þÚ         µtiming_typeµ:µfalling_edge;µ/*sequentialµdelayµarcµ*/¡þ         µintrinsic_riseµ:µ3.15;µ/*µtO2dµ*/¡þS         µrise_resistanceµ:µ0.020;¡þ         µintrinsic_fallµ:µ3.00;¡þË         µfall_resistanceµ:µ0.017;¡þ      µ  µrelated_pinµ:µ"clock";¡þD   µ }¡þ  }     ¡þ	W²Through´µCombinationalµPaths¡þ	ò²An´µoutputµofµaµsequentialµblockµcanµhaveµaµpropagationµdelay¡þ
:specifiedµwithµrespectµtoµaµnonclockµinput.µThisµrelationship¡þ
ƒindicatesµtheµexistenceµofµaµdirectµcombinationalµpathµbetweenµthe¡þ
Ìoutputµandµtheµinput.µTheµoutputµwillµalwaysµchangeµ(afterµsome¡þdelay)µwhenµtheµinputµchanges.µFigure 15³5µshowsµsuchµaµcase.µ’vD“I501ileaf_page_string1:15-12¥	öä¥	öä¡8Á²âInterface´µTimingµofµComplexµSequentialµBlocks¡.15³12¡,É²&Figure 15³5³Timing´µRelationshipsµforµThroughµCombinationalµPaths¡,E²¥	öäÁÊËÃ¡ÄÌtÌBÆÃÃ¡Ä•ü•ÝÆÃÃ¡Ä}¤È¤ÆÃÃÊË¡Ä˜–È¤¡ÄÈ¤˜²¡Ä˜²˜¤¡Ä˜¤˜–ãÇÆÃÃ¡Ä¸Ý¶Ý¡Ä¶ÝÍ(¡ÄÍ(Ì(ÆÃÃ¡Ä¸(¶(¡Ä¶(ÍÝ¡ÄÍÝÌÝÆÃÊËÃ¡Ä˜£ã£ÆÃÃÊË¡ÄÈ±˜£¡Ä˜£È•¡ÄÈ•È£¡ÄÈ£È±ÇÆÃÃ¡Ä²!!¡Ä!”i¡Ä”iziÆÃÃ¡Ä²ll¡Äl“!¡Ä“!z!ÆÃ²¡Adata¡baddress¡´t²¤a¤ÿø¤c¤ÿø¤c¤ÿøÁÊËÃ¡ÄÈ£ú£ÆÃÃ¡Äf¤˜¤ÆÃ²¡ÊE¡,²&Example 15³3³DescriptionµofµRelationshipsµinµFigure 15³5¡þi²bus(address){¡þ¦´µµµµdirectionµ:µinput;¡þãµ   bus_typeµ :µ"bus10"¡þ }¡þ™µbus(data){¡þÖµ  µdirectionµ:µoutput;¡þµ µ bus_typeµ  :µ"bus8"¡þPµ  µtimingµ()µ{¡þµ      µtiming_senseµ:µnon_unate;¡þÊ µ     µintrinsic_riseµ:µ8.15;µ/*µtaccµ*/¡þ  µ    µrise_resistanceµ:µ0.020;¡þD   µ   µintrinsic_fallµ:µ7.00;¡þ€    µ  µfall_resistanceµ:µ0.017;¡þ½     µµ related_pinµ:µ"address";¡þúµ µ}¡þ7} ¡þt    ’
ÊD“I501ileaf_page_string1:15-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ýÁ²Interface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³13¡þÏ²Interface´µTimingµofµaµComplexµSequentialµBlock¡þw²Figure 15³6´µshowsµtheµinternalµstructureµofµaµcomplexµblock¡þ¿containingµsequentialµandµcombinationalµlogic.µNoteµthatµtheµinput¡þconstraintsµforµtheµsequentialµelementsµinµtheµcircuitµareµspecified¡þQwithµrespectµtoµbothµedgesµofµtheµclock.µµ¡,²&Figure 15³6³ComplexµSequentialµBlockµSupportedµbyµITS¡,3²¥	öäÁÊËÃ¡Ä„¨Ó¨ÆÃÃ¡Ä„óÓóÆÃÃÊË¡ÄÖÖ‚¡ÄÖ‚Ž‚¡ÄŽ‚Ž¡ÄŽÖÆÃÊËÃ¡Ä£Ï£ÆÃÃ¡Ä×Ï×ÆÃÃÊË¡ÄÏòÏ‰¡ÄÏ‰‡‰¡Ä‡‰‡ò¡Ä‡òÏòÆÃÃ¡Ä

‰¡Ä
‰Ž‰¡ÄŽ‰Ž¡ÄŽ
ÆÃÃ¡Äÿ@ÿ…¡Äÿ…º…¡Äº…º@¡Äº@ÿ@ÆÃÃ¡ÄËÜÜ¡ÄÜE¡ÄEËE¡ÄËEËÜÆÃÃ¡Ä×>¡Ä>>¡Ä>×¡Ä××ÆÃÃ¡Ä‡½Ö½¡ÄÖ½Ö£¡ÄÖ£
£ÆÃÃ¡ÄºÍîÍ¡ÄîÍîœ¡ÄîœœÆÃÃ¡ÄÜÑÜn¡ÄÜnnÆÃÊËÃ¡ÄŽ££ÆÃÃÊË¡Ä›&Ü&¡ÄÜ&Üò¡ÄÜò
òÆÃÃ¡ÄÖ&ñ&¡Äñ&ñ®¡Äñ®®ÆÃÃÁÊË¡Ä¨‹¨¡Ä‹¨‹ä¡Ä‹ää¡Ää¨âãÇÆÃâ²¡çÌcomb ²¡%¦ ²¡%ÁD¡YÁQ¡'ôclk ¡|D¡/¸clk¡O|QÁÊËÃ¡ÄÈhµhÆÃÃ¡Ä“cÇcÆÃ¡3¸I3¡3ôI4¡0clk2¡ÏxO1¡ÏrO2ÃÊË¡ÄÔ>¡Ä>Á>¡ÄÁ>ÁÔ¡ÄÁÔÔâÇÆÃÃÁâÊË¡Ä+c›c¡Ä›c›Ÿ¡Ä›Ÿ+Ÿ¡Ä+Ÿ+câÇÆÃâ¡+‰combÁÊËÃ¡Ä]b]ÆÃ¡3´I2¡3I3¡3lI1¡pclk1ÃÊË¡ÄJ>Jc¡ÄJcbcÆÃ¡øÍcombÊËÃ¡ÄŽÍÿÍÆÃÃ¡ÄÁccÆÃ¡6×D¡j×Q¡8clk ¡?€comb¡?°logic²¡Ê3¡þ²Figure 15³7µisµtheµtimingµdiagramµillustratingµtheµvariousµinterface¡þHrelationshipsµofµthisµblock.¡þÓ²S¡XÓ²Theµblockµhasµtwoµclockµpins,µclk1µandµclk2.¡þK²S¡XK²InputµI2µhasµaµsetupµconstraintµwithµrespectµtoµtheµrisingµedgeµof¡X’clk1µandµaµholdµconstraintµwithµrespectµtoµtheµfallingµedgeµofµthe¡XØsameµclock.¡þ	P²S¡X	P²InputµI3µhasµsetupµandµholdµconstraintsµspecifiedµwithµrespectµto¡X	—bothµclocksµ(risingµforµclk2µandµfallingµforµclk1).¡þ
²S¡X
²OutputµO1µisµpropagatedµonµtheµfallingµedgeµofµclk1µwhileµoutput¡X
VO2µisµpropagatedµonµtheµrisingµedgeµofµclk2.¡þ
Î²S¡X
Î²OutputµO1µcombinesµaµcombinationalµpathµfromµI1µandµa¡Xsequentialµpathµfromµclk1.’
Ê{D“I501ileaf_page_string1:15-14¥	öä¥	öä¡8Á²âInterface´µTimingµofµComplexµSequentialµBlocks¡.15³14¡,É²&Figure 15³7³Timing´µRelationshipsµforµtheµCircuitµinµFigure 15³6¡,²¥	öäÁÊËÃ¡ÄÑ4ÑÆÃÃ¡ÄA"AÆÃÃ¡Ä"""sÆÃÃ¡Ä¸ü¸(ÆÃÃ¡Ä¸’¸TÆÃÃÊË¡Ä™g™¡Äg™Œä¡ÄŒä¸ä¡Ä¸ä™¡Ä™
™ÆÃÃ¡Ää;ä¡Ä;ägä¡ÄgäŒ™¡ÄŒ™¸™¡Ä¸™ä¡Ää
äÆÃÊËÃ¡ÄŒ4ŒŸÆÃ²¡Þtclk1Ã¡Ä†’Ñ’ÆÃÃÊË¡Ä¡„Ñ’¡ÄÑ’¡ ¡Ä¡ ¡’¡Ä¡’¡„ãÇÆÃÊËÃ¡Ä?FŠFÆÃÃÊË¡ÄZ8ŠF¡ÄŠFZS¡ÄZSZF¡ÄZFZ8ÇÆÃÊËÃ¡Ä×’"’ÆÃÃÊË¡Äò„"’¡Ä"’ò ¡Äò ò’¡Äò’ò„ÇÆÃÊËÃ¡Ä¸’’ÆÃÃÊË¡Äè ¸’¡Ä¸’è„¡Äè„è’¡Äè’è ÇÆÃÊËÃ¡Ä"HmHÆÃÃÊË¡ÄRU"H¡Ä"HR:¡ÄR:RH¡ÄRHRUÇÆÃÊËÃ¡ÄA’Œ’ÆÃÃÊË¡Äq A’¡ÄA’q„¡Äq„q’¡Äq’q ÇÆÃÊËÃ¡Ä"s"ÆÃÃ¡Ä×z"zÆÃÃÊË¡Äòl"z¡Ä"zò‡¡Äò‡òz¡ÄòzòlÇÆÃÊËÃ¡Ä¸zzÆÃÃÊË¡Äè‡¸z¡Ä¸zèl¡Äèlèz¡Äèzè‡ÇÆÃÃ¡Ä;mm¡Ämg"¡Äg"ý"¡Äý"Hm¡ÄHm/mÆÃÃ¡ÄÑË¡ÄËÅ¡ÄÅÅÅ¡ÄÅÅ¡Ä6ÆÃÃ¡Ä;Ý†Ý¡Ä†Ý«Ý¡Ä«ÝÑ(¡ÄÑ(¸(¡Ä¸(ÞÝ¡ÄÞÝ/ÝÆÃÃ¡Ä;(«(¡Ä«(ÑÝ¡ÄÑÝ¸Ý¡Ä¸ÝÞ(¡ÄÞ(/(ÆÃ¡òI2¡òÈI3ÊËÃ¡ÄÑ`ÆÃÃ¡ÄýËý	ÆÃÃ¡Ä¼ÆÃÃÊË¡Äì(¼¡Ä¼ì¡Äìì¡Äìì(ÇÆÃÊËÃ¡ÄýTHTÆÃÃÊË¡Ä-býT¡ÄýT-F¡Ä-F-T¡Ä-T-bÇÆÃÊËÃ¡ÄATŒTÆÃÃÊË¡Ä\FŒT¡ÄŒT\b¡Ä\b\T¡Ä\T\FÇÆÃÊËÃ¡Ä“ê“ñÆÃÃ¡ÄA5AÆÃÃ¡Ä³þÆÃÃÊË¡ÄÎþ¡ÄþÎ(¡ÄÎ(Î¡ÄÎÎÇÆÃÊËÃ¡Äö€A€ÆÃÃÊË¡ÄrA€¡ÄA€Ž¡ÄŽ€¡Ä€rÇÆÃÊËÃ¡Ä—EâEÆÃÃÊË¡ÄÇS—E¡Ä—EÇ7¡ÄÇ7ÇE¡ÄÇEÇSÇÆÃÊËÃ¡Äý€H€ÆÃÃÊË¡Ä-Žý€¡Äý€-r¡Ä-r-€¡Ä-€-ŽÇÆÃÊËÃ¡Ä¬E÷EÆÃÃÊË¡ÄÇ7÷E¡Ä÷EÇS¡ÄÇSÇE¡ÄÇEÇ7ÇÆÃÃ¡Ä†‡Œ‡¡ÄŒ‡²Ò¡Ä²Ò)Ò¡Ä)ÒN‡¡ÄN‡‡ÆÃÃ¡Ä†ÒŒÒ¡ÄŒÒ²‡¡Ä²‡)‡¡Ä)‡NÒ¡ÄNÒÒÆÃÊËÃ¡Ä¿¬¿þÆÃÃ¡Ä²<²ÆÃÃ¡Är½ÆÃÃÊË¡Äõ½¡Ä½¡Ä¡ÄõÇÆÃÊËÃ¡Ä'rÆÃÃÊË¡ÄW'¡Ä'Wó¡ÄWóW¡ÄWWÇÆÃÊËÃ¡Ä 	 ÅÆÃÃ¡Äÿ¦J¦ÆÃÃÊË¡Ä/´ÿ¦¡Äÿ¦/˜¡Ä/˜/¦¡Ä/¦/´ÇÆÃÊËÃ¡ÄR§§ÆÃÃÊË¡Äm™§¡Ä§mµ¡Ämµm§¡Äm§m™ÇÆÃÃ¡ÄNzzz¡Äzz /¡Ä /</ÆÃÃ¡ÄN/z/¡Äz/ z¡Ä z<zÆÃ¡äI4¡ÀI1¡ðÅclk2¡ðTO2Ã¡Ä`¦¦¡Ä¦Añ¡ÄAñ“ñ¡Ä“ñ¸¦¡Ä¸¦6¦ÆÃÃ¡Ä`ññ¡ÄñA¦¡ÄA¦“¦¡Ä“¦¸ñ¡Ä¸ñ6ñÆÃÃ¡Ä`Š™Š¡Ä™Š¿Õ¡Ä¿Õ[ÕÆÃÃ¡Ä`Õ™Õ¡Ä™Õ¿Š¡Ä¿Š[ŠÆÃÊËÃ¡Äo`º`ÆÃÃÊË¡ÄŠRº`¡Äº`Šn¡ÄŠnŠ`¡ÄŠ`ŠRÇÆÃÊËÃ¡Ä»``ÆÃÃÊË¡Äën»`¡Ä»`ëR¡ÄëRë`¡Äë`ënÇÆÃ¡ð¯O1¡K¦t²¤I¤ÿø¤2¤ÿø¤h¤ÿø¡ä¤²t²¤I¤ÿø¤2¤ÿø¤s¤ÿø¡Iˆ²t²¤I¤ÿø¤3¤ÿø¤h¤ÿø¡«\²t²¤I¤ÿø¤3¤ÿø¤s¤ÿø¡3+²t²¤I¤ÿø¤3¤ÿø¤h¤ÿø¤1¤ÿø¡ c²t²¤I¤ÿø¤3¤ÿø¤s¤ÿø¤1¤ÿø¡{Œ²t²¤I¤ÿø¤4¤ÿø¤s¤ÿø¡+T²t²¤I¤ÿø¤4¤ÿø¤h¤ÿø¡–o²t²¤I¤ÿø¤1¤ÿø¤d¤ÿø¡º²t²¤c¤ÿø¤l¤ÿø¤k¤ÿø¤1¤ÿø¤d¤ÿø¡=µ²t²¤c¤ÿø¤l¤ÿø¤k¤ÿø¤2¤ÿø¤d¤ÿøÁÊËÃ¡Ä$¥%¥ÆÃÃ¡Ä³©j©ÆÃÃ¡Äç`„`ÆÃÃ¡Äö__ÆÃÃ¡Ä[ÿ£ÿÆÃÃ¡Ä+ŽÆÃ²¡Ê¡þ¿²Example 15³4µshowsµtheµlibraryµdescriptionµofµinterfaceµtiming¡þ	specificationµofµtheµblockµshownµinµFigure 15³6.µTheµCMOSµdelay¡þ	Pmodelµisµusedµforµthisµcell.’{'D“I501ileaf_page_string1:15-15¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³15¡,É²&Example 15³4³Description´µofµtheµInterfaceµTimingµinµFigure 15³7¡þ²cell´µ(XR_2120)µ{¡þ[µµ    areaµ:µ100.000000;¡þ˜µ     ²)interface_timingµ:µTRUE;¡þÔ²      pinµ(I1)µ{¡þµ          directionµ:µinput;¡þM           capacitanceµ:µ1.46;¡þ‰           fanout_loadµ:µ1.46;¡þÆ      }¡þ     µpinµ(I2)µ{¡þ?          µdirectionµ:µinput;¡þ{          µcapacitanceµ:µ1.46;¡þ·          µfanout_loadµ:µ1.46;¡þô          µtimingµ()µ{¡þ0               µtiming_typeµ:µsetup_rising;¡þm               µintrinsic_riseµ:µ2.20;µ/*µtI2sµ*/¡þ©                intrinsic_fallµ:µ2.20;¡þå              µ related_pinµ:µclk1";¡þ"         µ}¡þ^         µtimingµ()µ{¡þ›             µµµtiming_typeµ:µhold_falling;¡þ×             µµ intrinsic_riseµ:µ0.95;µ  /*µtI2hµ*/¡þ             µµµintrinsic_fallµ:µ0.95;¡þP             µµµrelated_pinµ:µclk1";¡þŒ        µµ}¡þÉ µµµµ }¡þ     µpinµ(I3)µ{¡þA          µdirectionµ:µinput;¡þ~          µcapacitanceµ:µ1.46;¡þº          µfanout_loadµ:µ1.46;¡þ÷          µtimingµ()µ{¡þ	3               µtiming_typeµ:µsetup_falling;¡þ	p               µintrinsic_riseµ:µ1.20;µ/*µtI3sµ*/¡þ	¬                intrinsic_fallµ:µ1.20;¡þ	è              µ related_pinµ:µclk1";¡þ
%         µ}¡þ
a         µtimingµ()µ{¡þ
ž            µ µtiming_typeµ:µhold_falling;¡þ
Ú            µ  intrinsic_riseµ:µ1.95;µ  /*µtI3hµ*/¡þ           µ  µintrinsic_fallµ:µ1.95;’'ÍD“I501ileaf_page_string1:15-16¥	öä¥	öä¡8Á²âInterface´µTimingµofµComplexµSequentialµBlocks¡.15³16¡þÃ²             ´µµrelated_pinµ:µclk1";¡þÿ       µµ µ}¡þ;          µtimingµ()µ{¡þw               µtiming_typeµ:µsetup_rising;¡þ²               µintrinsic_riseµ:µ0.70;µ/*µtI3s1µ*/¡þî                intrinsic_fallµ:µ0.70;¡þ*              µ related_pinµ:µclk2";¡þf        µ µ}¡þ¢        µ µtimingµ()µ{¡þÞ             µµµtiming_typeµ:µhold_rising;¡þ             µµ intrinsic_riseµ:µ2.95;µ  /*µtI3h1µ*/¡þV             µµµintrinsic_fallµ:µ2.95;¡þ’             µµµrelated_pinµ:µclk2";¡þÍ      µµ  µ}¡þEµµµµ  }¡þ     µpinµ(I4)µ{¡þ½          µdirectionµ:µinput;¡þù          µcapacitanceµ:µ1.46;¡þ5          µfanout_loadµ:µ1.46;¡þq          µtimingµ()µ{¡þ¬               µtiming_typeµ:µsetup_rising;¡þè               µintrinsic_riseµ:µ1.70;µ/*µtI2sµ*/¡þ$                intrinsic_fallµ:µ1.70;¡þ`              µ related_pinµ:µclk2";¡þœ        µ µ}¡þØ        µ µtimingµ()µ{¡þ            µµ µtiming_typeµ:µhold_rising;¡þP             µµ intrinsic_riseµ:µ0.80;µ  /*µtI2hµ*/¡þŒ            µµ µintrinsic_fallµ:µ0.80;¡þÇ            µµ µrelated_pinµ:µclk2";¡þ	       µµ µ}¡þ	?µµµ  }¡þ	· µµ µpinµ(clk1)µ{¡þ	óµµ   µµµ  directionµ:µinput;¡þ
/      µµµµcapacitanceµ:µ1.13;¡þ
k      µµµµfanout_loadµ:µ1.13;¡þ
§      µµµµ²)clockµ:µtrue;²µ/*µclockµpinsµmustµbeµlabeledµas¡þ
Úsuchµ*/¡þ  µµ }’ÍâD“I501ileaf_page_string1:15-17¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³17¡þÃ²´µµµ  pinµ(clk2)µ{¡þ      µµµµdirectionµ:µinput;¡þG       µµµcapacitanceµ:µ1.13;¡þŠµ      µµ fanout_loadµ:µ1.13;¡þÌ      µµµ ²)clockµ:µtrue;²µ/*µclockµpinsµmustµbeµlabeledµasµsuchµ*/¡þµµµµ }¡þQµµµ  pinµ(O1){¡þ“     µµµµµdirectionµ:µoutput;¡þÕµ   µµµµ  timingµ()µ{¡þ         µµµµµµtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡þZ         µµµµµµintrinsic_riseµ:µ3.25;µ/*µtI1dµ*/¡þœ         µµµµµµrise_resistanceµ:µ0.020;¡þß         µµµµµµintrinsic_fallµ:µ3.50;¡þ!        µµµµµ µfall_resistanceµ:µ0.017;¡þc         µµµµµµrelated_pinµ:µI1";¡þ¦     µµµµµ}¡þè     µµµµµtimingµ()µ{¡þ*         µµµµµµtiming_typeµ:µfalling_edge;/*µsequentialµdelayµarcµ*/¡þm         µµµµµµintrinsic_riseµ:µ1.25;µ/*µtclk1dµ*/¡þ¯         µµµµµµrise_resistanceµ:µ0.020;¡þñ         µµµµµµintrinsic_fallµ:µ1.50;¡þ4         µµµµµµfall_resistanceµ:µ0.017;¡þv         µµµµµµrelated_pinµ:µclk1";¡þ¸    µµµµµµ}¡þûµµµ }¡þ=  µµpinµ(O2){¡þ    µµµ µdirectionµ:µoutput;¡þÁ     µµµµtimingµ()µ{¡þ	         µµµµµtiming_typeµ:µrising_edge;µ/*sequentialµdelayµarcµ*/¡þ	F         µµµµµintrinsic_riseµ:µ2.25;µ/*µtclk2dµ*/¡þ	ˆ         µµµµµrise_resistanceµ:µ0.020;¡þ	Ë        µµµµ µintrinsic_fallµ:µ2.57;¡þ
        µµµµ µfall_resistanceµ:µ0.017;¡þ
O         µµµµµrelated_pinµ:µclk2";¡þ
’  µµµµ  µ}¡þ
Ô µµ }¡þ }µ/*µendµcellµ*/’âƒD“I501ileaf_page_string1:15-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³18¡,Õ²Using´µBlocksµwithµInterfaceµTimingµinµSynthesis¡þv²To´µuseµaµcellµwithµinterfaceµtiming,µfollowµtheµsameµprocedureµused¡þ¾toµinstantiateµtechnology³specificµlibraryµcellsµinµaµdesign.µReferµto¡þtheµDesignµCompilerµreferenceµmanualsµforµtheµdetailsµofµthis¡þPprocedure.µThisµisµaµbriefµreviewµofµthoseµsteps:¡þÅ1.¡XÅInstantiateµtheµblockµinµtheµdesignµinµtheµsameµway¡Xtechnology³specificµcellsµareµinstantiated.µNoteµthatµcellsµwith¡XRinterfaceµtimingµcannotµbeµinferredµsinceµtheyµareµblackµboxesµin¡X™termsµofµfunctionality.¡þ2.¡XForµtheµdesignµtoµlinkµsuccessfully,µaddµtheµlibraryµcontainingµthe¡XHblockµtoµtheµlink_libraryµdc_shellµvariable.¡þ°3.¡X°Compileµtheµdesign.¡þ4.¡XUseµtheµreport_timingµandµreport_constraintµdc_shellµcommands¡X_toµobtainµtimingµandµconstraintµreports.¡þÝYouµcanµuseµmultipleµlibrariesµinµtheµlink_libraryµdc_shellµvariable.¡þ&Differentµlibrariesµcanµuseµdifferentµdelayµmodelsµtoµdescribeµthe¡þotimingµofµtheirµmemberµcells.µForµexample,µoneµlibraryµmight¡þ·describeµinterfaceµtimingµofµcomplexµblocksµthatµuseµtheµnonlinear¡þdelayµmodelµwhileµanotherµlibraryµinµtheµlistµusesµtheµCMOSµdelay¡þImodel.µ¡þÕYouµcanµalsoµuseµmultipleµlibrariesµinµtheµtarget_libraryµdc_shell¡þ	variable.µTheµlibraryµthatµcontainsµblocksµwithµinterfaceµtimingµdoes¡þ	fnotµneedµtoµbeµincludedµinµtheµtarget_libraryµdc_shellµvariableµunless¡þ	®itµalsoµcontainsµregularµASICµcellsµthatµareµnotµblackµboxesµinµterms¡þ	÷ofµfunctionality.¡þ
ƒToµsimulateµaµdesignµcontainingµaµcomplexµsequentialµblockµwith¡þ
Ìinterfaceµtiming,µuseµtheµfunctionalµsimulationµmodelµprovidedµforµthe¡þblock.’ƒûD“I501ileaf_page_string1:15-19¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡ýÁ²Interface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³19¡,Õ²Interpreting´µInterfaceµTimingµRelationships¡þ”²Synthesis´µtoolsµinterpretµeachµofµtheµinterfaceµtimingµrelationshipsµin¡þÝtheµfollowingµmanner:¡þa²S¡Xa²Setupµorµholdµarcs¡XÕAµsetupµorµholdµarcµbetweenµanµinputµpinµ(clockµorµdata)µandµa¡Xclockµedgeµ(risingµorµfalling)µimpliesµtheµexistenceµofµan¡Xbedge³triggeredµflip³flopµwithµtheµsetupµorµholdµvalue.¡XåIfµtheµsetupµandµholdµarcsµareµspecifiedµwithµrespectµtoµtheµsame¡X+edgeµofµtheµclock,µoneµedge³triggeredµdeviceµisµimplied.¡XrOtherwise,µtwoµdevicesµareµimplied,µoneµforµeachµrelationship.µIn¡X¸thisµcase,µtheµvalueµofµtheµotherµconstraintµforµeachµdeviceµis¡Xÿassumedµtoµbeµ0.0.µForµexample,µtheµvalueµofµtheµholdµconstraint¡XFforµtheµdeviceµthatµchecksµtheµsetupµconstraintµisµ0.0.¡XÈNoteµthatµaµsetupµorµholdµrelationshipµofµanµinputµpinµwithµrespect¡Xtoµaµdifferentµclockµinputµimpliesµtheµexistenceµofµaµseparate¡XUedge³triggeredµdevice.¡þØ²S¡XØ²Outputµdelayµandµclockµedge¡XKAnµoutputµdelayµspecifiedµwithµrespectµtoµaµclockµedgeµimpliesµan¡X’edge³triggeredµdeviceµclockedµbyµthatµclockµedge.µAnµoutput¡XÙdelayµarcµspecifiedµwithµrespectµtoµaµdifferentµclockµpinµimplies¡X	theµexistenceµofµaµseparateµdeviceµ(aµmultistageµstorageµdevice).’ûÙD“I501ileaf_page_string1:15-20¥	öäÃËÁâÊË¡Ä,,û¡Ä,û	cû¡Ä	cû	c¡Ä	c,ÆÃÁÊËÃ¡ÄþûÊûÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³20¡þÉ²²S¡XÉ²Output´µdelayµandµnonclockµinput¡X=Anµoutputµdelayµwithµrespectµtoµaµnonclockµinputµimpliesµthe¡Xƒexistenceµofµaµ²&direct²µcombinationalµpathµfromµtheµrespective¡XÊinputµtoµtheµoutput.µThisµarcµcanµcoexistµwithµotherµarcsµfrom¡Xclockµpinsµtoµtheµsameµoutput.µAnµoutputµpinµcombinesµa¡XWcombinationalµarc,µandµaµsequentialµarcµdoesµnotµimplyµthe¡Xžexistenceµofµaµtransparentµdevice.µTransparentµdevicesµand,¡Xätherefore,µtimeµborrowing,µareµnotµsupportedµbyµtheµITS¡X+semantics.µ¡þ®²S¡X®²Otherµsequentialµarcs¡X!Otherµtypesµofµsequentialµarcsµ(suchµasµclear,µpreset,µrecovery,¡Xhandµremoval)µareµnotµobservedµbyµsynthesisµtools.¡þK²Rules´µforµSpecifyingµInterfaceµTimingµ¡þê²These´µareµtheµrulesµforµlibraryµcellsµwithµtheµinterface_timing¡þ3attributeµsetµtoµtrue.µAnyµviolationµofµtheseµrulesµresultsµinµthe¡þ|rejectionµofµtheµcellµandµtheµlibraryµduringµread_libµandµupdate_lib¡þÄcommands.¡þI²S¡XI²Functionalityµmustµbeµaµblackµbox.¡X½Cellsµwithµinterfaceµtimingµareµstrictlyµblackµboxesµinµtermsµof¡X	functionality.µInµotherµwords,µtheµfunctionµattributeµmustµnotµbe¡X	Jspecifiedµforµanyµoutputµpinµofµtheµcell.µInµaddition,µtheµcellµgroup¡X	‘cannotµcontainµanµffµgroup.µAsµaµconsequence,µcellsµwith¡X	×interfaceµtimingµcannotµbeµinferred,µtheyµmustµbeµinstantiated.¡þ
Z²S¡X
Z²Clockµpinµattributeµmustµbeµtrue.¡X
ÎAllµtheµclockµpinsµforµtheµcellµmustµhaveµtheµclockµattributeµinµthe¡Xpinµgroupµsetµtoµtrue.’ÙËD“I501ileaf_page_string1:15-21¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³21¡þÉ²²S¡XÉ²There´µcanµbeµnoµinterfaceµtimingµforµcombinationalµcells.¡X=Cellsµwithµinterfaceµtimingµmustµhaveµatµleastµoneµclockµpin.µThe¡Xƒtimingµofµcomplexµcombinationalµblocksµcanµbeµspecifiedµinµthe¡XÊlibraryµbyµdescribingµtheµpin³to³pinµdelays.¡þL²S¡XL²Setupµandµholdµarcsµhaveµlimitations.¡XÀAtµmost,µanµinputµpinµcanµhaveµoneµsetupµarcµandµoneµholdµarc¡Xwithµrespectµtoµanyµgivenµclockµpin.µTheµsetupµandµhold¡XMrelationshipsµcanµbeµspecifiedµwithµrespectµtoµeitherµtheµrising¡X”edgeµorµtheµfallingµedgeµofµtheµclock.µNoteµthatµanµinputµpinµcan¡XÚhaveµsetupµorµholdµconstraintsµspecifiedµwithµrespectµtoµseveral¡X!clockµpins.¡þ£²S¡X£²Timingµarcµtypesµhaveµlimitations.¡X³¡”Clockµtoµoutputµtimingµarcsµmustµbeµeitherµrising_edgeµor¡”]falling_edgeµtype.µAllµrising_edgeµorµfalling_edgeµarcµtypes¡”¤mustµbeµspecifiedµwithµrespectµtoµaµclockµpin.¡X³¡”Inputµtoµoutputµarcsµmustµbeµcombinational,µasynchronous¡”^reset,µorµclearµarcs.µTheseµarcsµcanµbeµspecifiedµwithµrespect¡”¥toµnonclockµinputsµonly.µNoteµthatµanµoutputµpinµcanµcombine¡”ëseveralµarcsµfromµclockµpins,µdataµinputµpins,µorµasynchronous¡”2setµorµclearµinputs.¡X¥³¡”¥Inputµtoµclockµarcsµareµrecovery,µremoval,µorµsetup/holdµtypes.¡”ìTheseµarcsµmustµbeµspecifiedµwithµrespectµtoµclockµpinsµonly.’ËÎD“I501ileaf_page_string1:15-22¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Interface´µTimingµofµComplexµSequentialµBlocks¡.15³22¡,Õ²Example´µUsingµITSµ¡þ”²This´µexampleµshowsµhowµtoµspecifyµtheµinterfaceµtimingµofµaµtypical¡þÝRAMµusingµITS.µFigure 15³8µandµFigure 15³9µshowµtheµtiming¡þ%relationshipsµofµtheµreadµandµwriteµcyclesµofµtheµRAM.¡,×²&Figure 15³8³ReadµCycleµTimingµofµtheµRAMµ(WRµ=µ1)¡,S²¥	öäÁÊËÃ¡Ä—‚—QÆÃÃ¡Ä]]ìÆÃÃ¡ÄL¬—¬ÆÃÃÊË¡Äfž—¬¡Ä—¬fº¡Äfºf¬¡Äf¬fžãÇÆÃÃ¡Ä‚ìì¡Äì–7¡Ä–7•7ÆÃÃ¡Ä‚77¡Ä7–ì¡Ä–ì•ìÆÃÊËÃ¡Äc­®­ÆÃÃÊË¡Ä“»c­¡Äc­“Ÿ¡Ä“Ÿ“­¡Ä“­“»ÇÆÃÃ¡Ä{1H1¡ÄH1]x¡Ä]xDxÆÃÃ¡Ä{|H|¡ÄH|]1¡Ä]1D1ÆÃ²¡data_out¡^address¡×ºt²¤a¤ÿø¤c¤ÿø¤c¤ÿø²¡ÊS¡, ²&Figure 15³9³WriteµCycleµTimingµofµtheµRAMµ(WRµ=µ0)¡,²¥	öäÊËÃ¡Äæ§æ5ÆÃÃ¡ÄVTV5ÆÃÃ¡Ä7T7ñÆÃÃ¡ÄÍ¥ÍñÆÃÃÊË¡Ä*Ë|Ë¡Ä|Ë¡¡Ä¡Í¡ÄÍË¡ÄËËÆÃÃ¡Ä*P¡ÄP|¡Ä|¡Ë¡Ä¡ËÍË¡ÄÍË¡ÄÆÃÊËÃ¡Ä¡h¡ñÆÃ²¡WRÃ¡Ä›ÅæÅÆÃÃÊË¡Äµ·æÅ¡ÄæÅµÒ¡ÄµÒµÅ¡ÄµÅµ·ÇÆÃÊËÃ¡ÄVx¡xÆÃÃÊË¡Äqj¡x¡Ä¡xq†¡Äq†qx¡ÄqxqjÇÆÃÊËÃ¡ÄìÅ7ÅÆÃÃÊË¡Ä·7Å¡Ä7ÅÒ¡ÄÒÅ¡ÄÅ·ÇÆÃÊËÃ¡ÄÍÅÅÆÃÃÊË¡ÄýÒÍÅ¡ÄÍÅý·¡Äý·ýÅ¡ÄýÅýÒÇÆÃÊËÃ¡Ä9x„xÆÃÃÊË¡Äi†9x¡Ä9xij¡Äijix¡Äixi†ÇÆÃÊËÃ¡ÄVÅ¡ÅÆÃÃÊË¡Ä†ÒVÅ¡ÄVÅ†·¡Ä†·†Å¡Ä†Å†ÒÇÆÃÊËÃ¡ÄË­­ÆÃÃÊË¡Äû»Ë­¡ÄË­û ¡Äû û­¡Äû­û»ÇÆÃÃ¡ÄP›¡Ä›À¡ÄÀæ[¡Äæ[Í[¡ÄÍ[ó¡ÄóDÆÃÃ¡ÄP[À[¡ÄÀ[æ¡ÄæÍ¡ÄÍó[¡Äó[D[ÆÃ¡Gaddress¡ûdata_in ÊËÃ¡Äè­3­ÆÃÃÊË¡Ä 3­¡Ä3­»¡Ä»­¡Ä­ ÇÆÃÃ¡Ä*T1T¡Ä1T|Ÿ¡Ä|ŸŸ¡ÄŸ]T¡Ä]TDTÆÃ¡[Ðt²¤a¤ÿø¤d¤ÿø¤h¤ÿø¡ûÓ²t²¤a¤ÿø¤d¤ÿø¤s¤ÿø¡Ã‹²t²¤d¤ÿø¤i¤ÿø¤n¤ÿø¤s¤ÿø¡[µ²t²¤d¤ÿø¤i¤ÿø¤n¤ÿø¤h¤ÿø²¡Ê¡þÙ²Example 15³5µdescribesµtheµLibraryµCompilerµmodelµofµtheµRAM.¡þ	"Noteµthatµtheµdelayµbetweenµtheµoutputµdataµandµtheµaddressµinµthe¡þ	kreadµcycleµisµmodeledµasµaµcombinationalµdelay.µAlsoµnoteµthat¡þ	³the WRµsignalµisµlabeledµasµaµclock.’ÎÄD“I501ileaf_page_string1:15-23¥	öä¥	öä¡ýÁ²âInterface´µTimingµofµComplexµSequentialµBlocks¡Ô¤ÿŠ15³23¡,É²&Example 15³5³Library´µCompilerµModelµofµRAMµinµFigure 15³8µand¡²Figure 15³9¡,\²-cell´µ(RAM_10_8)µ{¡,“µµ    areaµ:µ2300.000000;¡,Éµ     interface_timingµ:µTRUE;   /*µApplyµinterfaceµtimingµsemanticsµ*/¡,      busµ(address)µ{¡,6           bus_typeµ :µ"bus10";µ/*µdefinedµinµtheµlibraryµ*/¡,m          µdirectionµ:µinput;¡,£          µcapacitanceµ:µ1.46;¡,Ú          µfanout_loadµ:µ1.46;¡,          µtimingµ()µ{¡,G               µtiming_typeµ:µsetup_falling;¡,~               µintrinsic_riseµ:µ3.20;µ/*µtadsµ*/¡,´              µµintrinsic_fallµ:µ3.20;¡,ë              µµrelated_pinµ:µ"WR";¡,!         µµ}¡,X         µµtimingµ()µ{¡,Ž            µµ µtiming_typeµ:µhold_rising;¡,Å            µµ  intrinsic_riseµ:µ1.85;µ  /*µtadhµ*/¡,û            µµ µintrinsic_fallµ:µ1.85;¡,2            µµ µrelated_pinµ:µ"WR";¡,h        µµµ}¡,Ÿ     µ}¡,Ö   ¡,    µ busµ(data_in)µ{¡,C    µ      bus_typeµ µ:µ"bus8"¡,y          µdirectionµ:µinput;¡,°          µcapacitanceµ:µ1.46;¡,æ          µfanout_loadµ:µ1.46;¡,          µtimingµ()µ{¡,S               µtiming_typeµ:µsetup_rising;¡,Š               µintrinsic_riseµ:µ1.50;µ/*µtdisµ*/¡,À                intrinsic_fallµ:µ1.50;¡,÷              µ related_pinµ:µ"WR";¡,	.         µµ}¡,	d         µµtimingµ()µ{¡,	›             µµµtiming_typeµ:µhold_rising;¡,	Ñ              µµintrinsic_riseµ:µ0.65;µ  /*µtdihµ*/¡,
             µµµintrinsic_fallµ:µ0.65;¡,
>             µµµrelated_pinµ:µ"WR";¡,
u       µµ µ}¡,
«    µ }¡,
â   µ µpinµ(WR)µ{¡,µµ   µµµ  directionµ:µinput;’ÄöD“I501ileaf_page_string1:15-24¥	öä¥	öä¡8Á²âInterface´µTimingµofµComplexµSequentialµBlocks¡.15³24¡,½²-     ´µµµ µcapacitanceµ:µ1.13;¡,ó      µµµµfanout_loadµ:µ1.13;¡,*      µµµµclockµ:µtrue;µ/*µWRµpulseµisµmodeledµasµaµclockµ*/¡,a µµ  }¡,—  ¡,Î  µµ bus(data_out){¡,     µµµµ bus_typeµ :µ"bus8";¡,;     µµµµµdirectionµ:µoutput;¡,rµ    µµµµ timingµ()µ{¡,©        µµµµµ µtiming_senseµ:µnon_unate;µ/*µcombinationalµdelayµ*/¡,ß         µµµµµµintrinsic_riseµ:µ5.25;µ   /*µtacc*/¡,         µµµµµµrise_resistanceµ:µ0.020;¡,M         µµµµµµintrinsic_fallµ:µ5.50;¡,ƒ         µµµµµµfall_resistanceµ:µ0.017;¡,º        µ µµµµµrelated_bus_pinµ:µ"address";¡,ñ     µµµ}¡,'  µµ }¡,^ }µ/*µendµcellµ*/’öÐOPS m:m:D€‚Document:16rptÿ‚Last saved on:Tue, Dec 9, 1997 17:53:25ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps24b±:????????????????????????????????!288YH!!':88888888888!!:::=bHHHHC=NH8H=SHNCNHC=HC^CC=!!:88=8=8!==8Y===='8!=8N882'':2?????????????????????????????????!8888?8!?%8???!??????8??%8???=HHHHHHdHCCCC?HNNNNN?NHHHH??=888888Y88888?======?=====??8?82d!8??d?????????88!!2??????d???????????????8????d???^°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°wst:timsps10b±:*#'!!!(!!*#	*!!!!!!****°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°7wst:timsps14b±7:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%:0!!!!6*'**'#---'7*-#-* '**:**'"    0    *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%******:*''''%*-----%-****%% *% %    %%%:%%:%%%%%%%%%%%%%%%:
%%%%%%%%%%%%%%%%%%%:%%%*°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Cwst:courps10b±C:*°Owst:timsps14±O:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%0-!!!!5*''*# ***#4** *' #**7**#-*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%******4'####%******%*****%%'%%%%%:%%:%%%%%%%%%%%%%%%:
%%%%%%%%%%%%%%%%%%%4%%%*°Rwst:timsps12b±R:                                2*/$!$$!'''!/$''$!$$2$$!*$                                                 $$$$$$2$!!!! $''''' '$$$$  $     2  2               2                   2   $°Uwst:helvps10i±U:%	+!#!!(				#*!!!!!!%****(°Vwst:timsps10i±V:#!'##%*%*(°awst:timsps12i±a:                                *'"""".!$$$!*!$$$*$!                                                 ,! !$$$$$ $$$$$  !     2  ,               2                   /   !°}wst:helvps16bi±}:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps10bi±:%)!#!!(%!*!!!!!!%****(°¢wst:timsps16b±¢:********************************"""C8"&"""""""""""&&&">0-00-)44"4-?04)40%-00C00-'""%%"%%8%"%%%"0""#"*********************************""""*"*"*********$**"***"000000C0----*044444*40000**%""""""0*%"""""*"%%%%**"*""C"**C*********"""******C***************"****C***0°£wst:timsps30±£:OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO*8??ha***?G?#??????????##GGG8sZSSZLFZZ*1ZLoZZFZSFLZZvZZL*#*;?*8?8?8*??##?#a????*1#??Z??8<<D8OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO*????O?*O#?OOO*OOOOOO9OO'?OOO8ZZZZZZoSLLLL****OZZZZZZOZZZZZOO?888888S88888####O??????O?????OO?O??}*?OO}OOOOOOOOO??**8OOOOOO}OOOOOOOOOOOOOOO?OOOOoOOOZååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿå®åå³3åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’izðD“I501ileaf_page_string1:16-1¥	öä²â¡ ¡Ï ¡ž ¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿ¤16³1¡,m²².16â²/¥	öä¡`m²â¡, ²	Timing´µandµPowerµReportµFormat¡'²¥	öäÁÊËÃ¡Ä,ÊÆÃ¡	ö'¡þÿUse´µtheµreport_libµ³timingµcommandµtoµproduceµaµtimingµreport.µThe¡þHtimingµreportµprintsµtheµtimingµinformationµfromµaµlibraryµofµgeneric¡þCMOSµcells.µWithµLibraryµCompilerµproductµversionsµlaterµthanµ3.3b,¡þÙthisµcommandµreportsµtimingµinformationµforµtheµCMOSµnonlinear¡þ!delayµmodelµ(NLDM).¡þåLibraryµCompilerµleavesµfieldsµblankµforµattributesµnotµdefinedµinµthe¡þ	.technologyµlibrary.µTheµreport_libµ³timingµcommandµisµavailableµonly¡þ	wafterµyouµhaveµreadµtheµlibraryµsourceµfileµintoµLibraryµCompiler¡þ	¿memory.¡þ
ƒUseµreport_libµ³powerµtoµreportµinternalµpowerµandµmultipleµpower¡þ
Ìsupply,µincludingµinformationµaboutµtheµpower_supplyµgroupµand¡þpower_railµinµtheµoperatingµconditionsµdefinition.’ð“D“I501ileaf_page_string1:16-2¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³2¡þÉ²Timing´µreportµinformationµisµdividedµintoµseveralµsections:¡þN²S¡XN²Header¡þÁ²S¡XÁ²PiecewiseµLinearµInformation¡þ5²S¡X5²LibraryµDefaults¡þ¨²S¡X¨²Library³LevelµTemplates¡þ²S¡X²Cells¡þ²S¡X²InternalµPowerµInformation¡þ²S¡X²MultipleµPowerµSupplyµInformation¡þw²S¡Xw²Pins¡þê²S¡Xê²TimingµInformation¡þ^²S¡X^²Delays¡þÑ²S¡XÑ²TimingµReportµStatistics¡þE²S¡XE²TimingµReportµExamples¡þ¹²S¡X¹²MultipleµPowerµSupplyµSignalµInformation’“lD“I501ileaf_page_string1:16-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿ¤16³3¡,Õ²Header¡þ~²Example 16³1´µisµanµexampleµofµaµtimingµreportµheader.¡,²&Example 16³1³TimingµReportµHeader¡þª²****************************************¡þæReport´µ:µlibrary¡þ!Library:µmy_lib¡þ\Version:µ1997.01¡þ—Dateµµµ:µTuesµJanµ14µ14:05:20µ1997¡þÓ****************************************¡þILibraryµTypeµµµµµµµµµµµµ:µTechnology¡þ„ToolµCreatedµµµµµµµµµµµµ:µ1997.01¡þÀDateµCreatedµµµµµµµµµµµµ:µNotµSpecified¡þûLibraryµVersionµµµµµµµµµ:µNotµSpecified¡þ6DelayµModelµµµµµµµµµµµµµ:µgeneric_cmos¡þqTimeµUnitµµµµµµµµµµµµµµµ:µNotµspecified¡,Y²Piecewise´µLinearµInformation¡þ²For´µpiecewiseµlinearµdelayµmodels,µtheµreportµshowsµpieceµranges¡þLasµshownµinµExample 16³2.¡,ê²&Example 16³2³PiecewiseµLinearµDelayµModelµInformation¡þ	x²Piecewise´µLinearµDelayµModel:¡þ	îµµµPieceµµµµµµµµµµµµµµµµLength¡þ
)µµµ----------------------------------------¡þ
eµµµµµµ0µµµµµµµµ0.0µµ<=µµlengthµµ<µµµµµ0.2¡þ
 µµµµµµ1µµµµµµµµ0.2µµ<=µµlengthµµ<µµµµµ0.6¡þ
Ûµµµµµµ2µµµµµµµµ0.6µµ<=µµlength’lD“I501ileaf_page_string1:16-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³4¡,Õ²Library´µDefaults¡þŒ²The´µDesignµCompilerµprogramµusesµtheµdefaultµvaluesµfor¡þÔtiming³relatedµattributesµnotµdefinedµinµtheµtechnologyµlibrary.µThe¡þlibraryµdefaultsµsectionµreportsµdesignµruleµconstraintµdefaultµvalues¡þfandµtiming³relatedµattributes.¡þUseµtheµlibraryµdefaultsµsectionµofµtheµreportµtoµseeµwhatµdefaultµis¡þKbeingµusedµforµtheµtiming³relatedµattribute.µTiming³relatedµattributes¡þ“notµdefinedµinµtheµlibraryµareµblankµinµtheµtimingµreport.¡þ0Note:²¡Xx²Ifµtheµvaluesµforµarea,µcapacitance,µintrinsic_rise,µintrinsic_fall,¡XÁslope_rise,µslope_fall,µrise_resistance,µfall_resistance,¡X
timing_typeµorµtiming_senseµareµomittedµinµtheµlibrary,µthe¡XRdefaultµvaluesµareµshownµinµtheµreportµbodyµandµdoµnotµappearµin¡X›theµdefaultsµsection.¡þ7Example 16³3µisµanµillustrationµofµtheµtimingµattributeµdefaults¡þ€section.¡,*²&Example 16³3³TimingµAttributeµDefaults¡þ¼²Timing´µAttributeµDefaults:¡þ	4µµµAttributeµµµµµµµµµµµµµµµµµµµµµµDefault¡þ	qµµµ-----------------------------------------¡þ	­µµµµmax_transition¡þ	éµµµµmax_fanout¡þ
%µµµµfanout_loadµµµµµµµµµµµµµµµµµµµ1¡þ
bµµµµmax_capacitanceµµµµµµµµµµµµµµµ3.5¡þ
žµµµµrise_pin_resistanceµµµµµµµµµµµ0¡þ
Úµµµµfall_pin_resistanceµµµµµµµµµµµ0¡þµµµµrise_delay_interceptµµµµµµµµµµ0’èD“I501ileaf_page_string1:16-5¥	öäÃËÁâÊË¡Ä,:,$¡Ä,$	c$¡Ä	c$	c:¡Ä	c:,:ÆÃÁÊËÃ¡Ä,$Ê$ÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿ¤16³5¡þÃ²´µµµµfall_delay_interceptµµµµµµµµµµ0¡þµµµµcell_leakage_powerµµµµµµµµµµµµ0¡þ>µµµµpin_powerµµµµµµµµµµµµµµµµµµµµµ4.5¡þ{µµµµwire_capacitanceµµµµµµµµµµµµµµ0¡þ¹µµµµrise_wire_resistanceµµµµµµµµµµ0¡þöµµµµfall_wire_resistanceµµµµµµµµµµ0¡þ4µµµµrise_nonpaired_twinµµµµµµµµµµµ0¡þqµµµµfall_nonpaired_twinµµµµµµµµµµµ0¡,z²Library³Level´µTemplatesµ¡þA²The´µinternalµpower,µnonlinearµdelay,µandµload³dependentµmodels¡þŠhaveµlibrary³levelµtemplates,µwhichµareµwrittenµoutµinµtheµtiming¡þØreport.µ²´µµ¡þƒ²This´µisµtheµformatµofµtheµlookupµtableµtemplateµinformation:¡þ	²TEMPLATE_NAME¡þF-----------------------------------¡þƒ<²(name´µofµtheµtemplate²>¡þÁVARIABLE_1:µ<²(variable_1²>¡þþVARIABLE_2:µ<²(variable_2²>¡þ<VARIABLE_3:µ<variable_3¡þyINDEX_1µ:µ<²(float²>µ...µ<²(float²>¡þ·INDEX_2µ:µ<²(float²>µ...µ<²(float²>¡þôINDEX_3µ:µ<²(float²>µ...µ<²(float²>¡þ	’²<variable´µ2>µandµ<variableµ3>µareµoptionalµforµallµtablesµexceptµthe¡þ	Ûthree³dimensionalµtablesµusedµtoµmodelµoutputµload.µTheµlines¡þ
#containingµINDEX_2µandµINDEX_3µdataµareµoptional.¡þ
ÌExample 16³4µshowsµexamplesµofµtheµlookupµtableµtemplatesµforµthe¡þinternalµpower,µnonlinearµdelay,µandµload³dependentµmodels.’èÁD“I501ileaf_page_string1:16-6¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³6¡,É²&Example 16³4³Template´µExamples¡,Q²-Internal´µPowerµLookupµTemplate:¡,¾Template_name¡…¾¡¾variable_1¡¾variable_2¡(¾variable_3¡,õ------------------------------------------------------------------------------¡,+output_by_cap2_and_trans¡“+¡+total_output2_net_capacitance¡,b¡þbindex_1µ:µ0.0000µ5.0000µ20.0000¡,™¡þ™index_2µ:µ0.1000µ1.0000µ5.0000¡,Ï¡þÏindex_3µ:µ0.1000µ0.5000µ1.0000¡,=NonlinearµDelayµModelµTemplate¡,ªTemplate_name¡,á-----------------------------------------------------¡,prop¡,N¡þNVARIABLE_1:µtotal_output_net_capacitance¡,…¡þ…VARIABLE_2:µinput_net_transition¡,¼¡þ¼INDEX_1:µ0.0000µµµ1.0000µµµ2.0000µµµ3.0000µµµ4.0000¡,ò¡þòINDEX_2:µ0.0000µµµ1.0000µµµ2.0000µµµ3.0000µµµ4.0000¡,)tran¡,`¡þ`VARIABLE_1:µtotal_output_net_capacitance¡,–¡þ–VARIABLE_2:µinput_net_transition¡,Í¡þÍINDEX_1:µ0.0000µµµ1.0000µµµ2.0000µµµ3.0000µµµ4.0000¡,qLoad³DependentµModelµTemplateµ¡,ÞTemplate_name¡,--------------------------------------------------------¡,Lload¡,‚¡þ‚VARIABLE_1:µconstrained_pin_transition¡,¹¡þ¹VARIABLE_2:µrelated_pin_transition¡,ð¡þðVARIABLE_3:µrelated_out_total_output_net_capacitance¡,	&¡þ	&INDEX_1:µ0.1000µµµ1.2000µµµ2.3000µµµ3.4000¡,	]¡þ	]INDEX_2:µ0.1000µµµ1.2000µµµ2.3000µµµ3.4000¡,	”¡þ	”INDEX_3:µ0.1000µµµ1.2000µµµ2.3000µµµ3.4000’ÁJD“I501ileaf_page_string1:16-7¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿ¤16³7¡,Õ²Cells¡þk²The´µtimingµreportµcontainsµtheµfollowingµareaµandµpowerµinformation¡þ´forµeachµcell:¡þ ²CELL(²(cell_name²)´µ:²(µarea²,²(µcell_leakage_power²;¡þYµµAREAµ:µ²(area_value¡þ“²µµPOWERµ:µ²(power_value¡þÍµµµµinternal_power_information¡þA²µµPIN(²(pin_name_1²)µ:µ²(attributes²;¡þz²(µµµµtiming_information¡þ´²µµEND_PINµ²(pin_name_1²;¡þ(µµPIN(²(pin_name_n²)µ:µ²(attributes²;¡þb²(µµµµtiming_information¡þœ²µµEND_PINµ²(pin_name_n²;¡þEND_CELLµ²(cell_name²;¡þ›²CMOS´µpowerµinformationµisµreportedµinµtheµcell_leakageµand¡þãinternal_powerµinformation.µTheµformatµforµpinµinformationµvaries.¡þ,Example 16³5µisµanµexampleµofµaµCMOSµcell.¡,º²&Example 16³5³CMOSµCellµDescription¡þB²CELL(AN2)´µ:µ2,;¡þ{µµAREAµ:µ1;¡þµµµ...¡þïEND_CELLµAN2;¡þ	{²Reports´µforµscaledµtimingµcellsµalsoµincludeµinformationµaboutµthe¡þ	Ãoperatingµconditionsµgroup:µ¡þ
/²SCALED_CELL(²(cell_name²,´µ²(op_conditions²)µ:²(µarea²,¡þ
iµµcell_leakage_power;¡þ
£µµ...¡þ
ÝEND_SCALED_CELLµ²(cell_name²,²(µop_conditions²;’J¯D“I501ileaf_page_string1:16-8¥	öäÃËÁâÊË¡Ä,,ü¡Ä,ü	cü¡Ä	cü	c¡Ä	c,ÆÃÁÊËÃ¡Ä,üÊüÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³8¡þÉ²Example¡þ²SCALED_CELL(AN2,BCCOM)´µ:µ2,µ;¡þQµµ...¡þŽEND_SCALED_CELLµAN2;¡,R²Internal´µPowerµInformationµµµ¡þ²Use´µreport_libµ³powerµtoµretrieveµtheµfollowingµinformationµforµeach¡þZcellµthatµhasµpowerµmodeling:¡,Õ²-Attributes:¡,Ba´µ-µaverageµpowerµspecification¡,yiµ-µinternalµpower¡,°lµ-µleakageµpower¡,ærfµ-µriseµandµfallµpowerµspecification¡,T¡þT¡…T¡T¡“T¡TPower¡,‹Cell¡þ‹¡…‹#¡‹Attr¡“‹¡‹Togglingµpin¡¯‹Sourceµofµpath¡D‹when¡,Á_____________________________________________________________¡,øEO¡þø¡…ø0¡øi,a¡“ø¡øµZ¡¡ø¡(ø¡¯ø¡6øB¡½ø¡Dø¡ËøµA'¡,/¡þ/¡…/1¡/i,a¡“/¡/µZ¡¡/¡(/¡¯/¡6/B¡½/¡D/¡Ë/µA¡,e¡þe¡…e2¡ei,a¡“e¡eµZ¡¡e¡(e¡¯e¡6eB¡½e¡De¡Ëe¡,œ¡þœ¡…œ3¡œi,a¡“œ¡œµZ¡¡œ¡(œ¡¯œ¡6œA¡½œ¡Dœ¡ËœµB'¡,Ó¡þÓ¡…Ó4¡Ói,a¡“Ó¡ÓµZ¡¡Ó¡(Ó¡¯Ó¡6ÓA¡½Ó¡DÓ¡ËÓµB¡,	¡þ	¡…	5¡	i,a¡“	¡	µZ¡¡	¡(	¡¯	¡6	A¡½	¡D	¡Ë	¡,@E01¡þ@¡…@0¡@i,a¡“@¡@µZ¡¡@¡(@¡¯@¡6@B¡½@¡D@¡Ë@µA'¡,w¡þw¡…w1¡wi,a¡“w¡wµZ¡¡w¡(w¡¯w¡6wB¡½w¡Dw¡ËwµA¡,­¡þ­¡…­2¡­i,a¡“­¡­µZ¡¡­¡(­¡¯­¡6­A¡½­¡D­¡Ë­¡R­¡Ê­¡,ä¡þä¡…ä3¡äi,a¡“ä¡äµZ¡¡ä¡(ä¡¯ä¡6äB¡½ä¡Dä¡Ëä¡Rä¡Êä¡,	¡þ	¡…	4¡	i,a¡“	¡	µZ¡¡	¡(	¡¯	¡6	A¡½	¡D	¡Ë	µB'¡,	Q¡þ	Q¡…	Q5¡	Qi,a¡“	Q¡	QµZ¡¡	Q¡(	Q¡¯	Q¡6	QA¡½	Q¡D	Q¡Ë	QµB’¯÷D“I501ileaf_page_string1:16-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,c,M¡Ä,M	cM¡Ä	cM	cc¡Ä	cc,cÆÃÁÊËÃ¡ÄþMÊMÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿ¤16³9¡,Õ²Multiple´µPowerµSupplyµInformation¡þ¤²Use´µreport_libµ³powerµforµmultipleµpowerµsupplyµinformation.¡þ²Library³Level´µInformation¡þH²This´µsectionµshowsµtheµformatµandµprovidesµexamplesµofµmultiple¡þ‘powerµsupplyµinformationµatµtheµlibraryµlevel:¡þ²S¡X²power_supplyµgroupµinformation¡þ—²S¡X—²power_railµinformationµaboutµtheµoperatingµconditions¡þ3Thisµisµtheµformatµofµtheµpower_supplyµgroup:¡þ½²Power´µSupplyµGroup¡þûµµµdefault_powerµrailµ:µ<name>¡þwµµµµµPowerµRailµµµµµµµµµµµµµµµValue¡þµ-------------------------------------------¡þóµµµµµµµµnameµ1µµµµµµµµµµµµµµµµfloat¡þ1µµµµµµµµnameµ2µµµµµµµµµµµµµµµµfloat¡þ	²Example¡þ	d²PowerµSupplyµGroup:¡þ	¢µµµdefault_power_railµ:µVDD0¡þ
µµµµµPowerµRailµµµµµµµµµµµµµµµValue¡þ
\------------------------------------------¡þ
šµµµµµµµµVDD1µµµµµµµµµµµµµµµµµµµ5.0¡þ
ØµµµµµµµµVDD2µµµµµµµµµµµµµµµµµµµ3.30’÷ÕD“I501ileaf_page_string1:16-10¥	öäÃËÁâÊË¡Ä,|,f¡Ä,f	cf¡Ä	cf	c|¡Ä	c|,|ÆÃÁÊËÃ¡ÄþfÊfÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³10¡þÉ²This´µisµtheµformatµofµinformationµaboutµpowerµrailµinµthe¡þoperating_conditionsµgroup:¡þ“²Name´µµµµµµµµµµµµµµ:µµµµµµµµµ(operatingµconditionµname)¡þÐµµµµPowerµRailµµµµµµµµµµµµµµµµµµµValue¡þ--------------------------------------------¡þJµµµµµname1µµµµµµµµµµµµµµµµµµµµµµfloat¡þ‡µµµµµname2µµµµµµµµµµµµµµµµµµµµµµfloat¡þ^²Example¡þ©²Nameµµµµµµµµµµµµµ:µµµµµµµµµµµµWCCOM¡þæµµµPowerµRailµµµµµµµµµµµµµµµµµVALUE¡þ#----------------------------------------------¡þ`VDD1µµµµµµµµµµµµµµµµµµµµµµµµµµ4.80¡þœVDD2µµµµµµµµµµµµµµµµµµµµµµµµµµ2.90¡þ¶²Cell´µInformation¡þU²This´µisµtheµformatµofµmultipleµpowerµsupplyµinformation:¡þ×²Name´µµµµµµµµ:µµµµµµµµ(cellµname)¡þRAILµCONNECTIONµ(CONNµNAME)µ:µRailpowerName¡þP-------------------------------------------¡þµµµµµname1µµµµµµµµµµµµµµµµµµµµµµfloat¡þÊµµµµµname2µµµµµµµµµµµµµµµµµµµµµµfloat¡þ	¡²Example¡þ	ì²Nameµµµµµµµµµµ:µµµµµµµµµµIBUF1¡þ
)RAILµCONNECTIONµ(PV1)µ:µVDD1¡þ
fRAILµCONNECTIONµ(PV2)µ:µVDD2’ÕÂD“I501ileaf_page_string1:16-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿŠ16³11¡,Õ²Pins´µ¡þ¶²The´µtimingµreportµincludesµaµPINµsectionµforµeveryµpinµinµtheµcell.¡þL²Syntax¡þå²´µµPIN(²(pin_name²)µ:²(µattributes²;¡þ%µµµµtiming_information¡þdµµEND_PINµ²(pin_name²;¡þ²The´µpinµattributesµareµdifferentµforµinput,µoutput,µandµbidirectional¡þUpins.¡þTheseµareµtheµattributesµforµanµinputµpin:¡þ¤²´µµPIN(²(pin_name²)µ:µin,²(µcapacitance,µfanout_load,¡þäµµµµmax_transition,µwire_capacitance²;¡þŒ²These´µareµtheµattributesµforµanµoutputµpin:¡þ²´µµPIN(²(pin_name²)µ:µout²(,µcapacitance,µmax_fanout,¡þ^µµµµmin_fanout,max_transition,µmin_transition,¡þžµµµµmax_capacitance,µmin_capacitance,¡þÝ²µµµµ²(wire_capacitance²;¡þ	…²These´µareµtheµattributesµforµaµbidirectionalµpin:¡þ
²´µµPIN(²(pin_name²)µ:µinout²(,µcapacitance,µfanout_load,¡þ
Xµµµµmax_fanout,µmax_transition,µmax_capacitance,¡þ
—µµµµmin_fanout,µmin_transition,µmin_capacitance,¡þ
×µµµµwire_capacitance²;’ÂŒD“I501ileaf_page_string1:16-12¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,e,O¡Ä,O	cO¡Ä	cO	ce¡Ä	ce,eÆÃÁÊËÃ¡ÄþOÊOÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³12¡,Õ²Timing´µInformation¡þ²Library´µCompilerµlistsµtimingµinformationµasµeitherµdelaysµor¡þØconstraints.µEachµofµtheseµcategoriesµusesµaµdifferentµformat.¡þxLibraryµCompilerµalsoµlistsµcell_degradationµinformationµunderµtiming¡þÀbecauseµcellµdegradationµisµmodeledµlikeµaµtimingµgroup.¡þŸ²Constraints´µ¡þ;²The´µconstraintsµincludeµsetupµandµholdµonµsequentialµcells,¡þ„nonsequentialµsetupµandµhold,µrecoveryµtime,µremoval,µskew,µand¡þÌno³change.¡þlExplanationµofµconstraints¡þî²S¡Xî²SetupµorµHoldµConstraintµµ¡X`Inµtheseµconstraintsµonµsequentialµcells,µtheµconstrainedµpinµis¡X§normallyµtheµdataµinputµpinµofµaµlatchµorµflip³flop.µWhenµtheµclock¡Xípinµeventµdefinedµbyµtheµtransitionµtypeµoccurs,µtheµpinµmust¡X4maintainµaµstableµlogicµ1µorµ0µforµtheµriseµorµfallµtime¡X{(intrinsic_riseµorµintrinsic_fallµinµCMOSµlinearµdelayµmodelsµand¡XÁrise_constraintµorµfall_constraintµinµCMOSµnonlinearµdelay¡X	models).¡þ	ˆ²S¡X	ˆ²NonsequentialµSetupµorµHoldµConstraint¡X	úNonsequentialµsetupµandµholdµconstraintsµdifferµfromµsetupµand¡X
Aholdµconstraintsµonµsequentialµcellsµinµthatµtheµrelatedµpinµisµnot¡X
‡aµclock.µThisµconstraintµdefinesµtheµamountµofµtimeµthatµtheµdata¡X
Îsignalµonµanµinputµpinµremainsµstableµbeforeµorµafterµtheµrelated¡Xpinµchangesµstate.’ŒÙD“I501ileaf_page_string1:16-13¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³13¡þÉ²²S¡XÉ²Recovery´µTimeµConstraintµ¡X9Theµconstrainedµpinµisµusuallyµanµasynchronousµcontrolµpinµsuch¡X€asµclearµorµpreset.µWhenµtheµclockµpinµeventµdefinedµbyµthe¡XÆtransitionµtypeµoccurs,µtheµpinµmustµremainµinactiveµforµthe¡Xintrinsic_riseµorµintrinsic_fallµtime.¡þ‹²S¡X‹²RemovalµTimingµConstraintµ¡XûThisµconstraintµdefinesµtheµminimumµseparationµbetweenµclock¡XAactiveµedgeµandµanµasynchronousµcontrolµsignalµinactiveµedge.¡þ¿²S¡X¿²SkewµConstraintµ¡X/Thisµconstraintµdefinesµtheµmaximumµallowedµintervalµbetween¡Xutwoµclock³edgeµevents.¡þó²S¡Xó²No³ChangeµConstraintµ¡XcThisµconstraintµdefinesµtheµminimumµperiodµthatµaµsignalµmust¡Xªremainµstableµwithµrelationµtoµaµrelatedµsignal.¡þCYouµcanµmodelµskewµandµremovalµtimingµconstraintsµinµaµtechnology¡þŒlibrary.µYouµcanµalsoµcreateµVHDLµFTSM,µFTGS,µandµVITAL¡þÔsimulationµmodelsµforµremovalµtimingµconstraints.µTheµtechnology¡þlibraryµtimingµreportµshowsµtheseµtwoµconstraints.¡þ¹Thisµisµtheµsyntaxµforµeachµconstraintµinµtheµtimingµreport:¡þ	5²MPW´µ:²(µpin_name²,²(µpolarity²,²(µ'enable_condition',µvalue²;¡þ	qPERIODµ:²(µpin_name²,²(µ'enable_condition',µvalue²;¡þ	­SETUPµ:²(µconstrained_pin²,²(µclock_pin²,µ²(transition_type,¡þ	êµµrelated_output_pin,²µ'start_enable_condition',¡þ
&µµ'end_enable_condition',²´µ²(²(intrinsic_rise²,²(´µintrinsic_fall²);¡þ
žHOLDµ:²(µclock_pin²,²(µtransition_type²,²(µconstrained_pin²,¡þ
Úµµ²(related_output_pin,²'start_enable_condition',¡þµµ'end_enable_condition',(²(intrinsic_rise²,²(µintrinsic_fall²);’ÙëD“I501ileaf_page_string1:16-14¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³14¡þÃ²NON_SEQ_SETUP´µ:²(µconstrained_pin²,²(µclock_pin²,¡þ÷²(transition_type,¡þ3µµrelated_output_pin,²µ`start_enable_condition',¡þpµµ'end_enable_condition',²´µ²(²(intrinsic_rise²,²(¡þ¤intrinsic_fall²);¡þNON_SEQ_HOLD´µ:²(µclock_pin²,²(µtransition_type²,²(¡þQconstrained_pin²,¡þŽµµ²(related_output_pin,²'start_enable_condition',¡þËµµ'end_enable_condition',(²(intrinsic_rise²,²(µintrinsic_fall²);¡þDRECOVµ:²(µconstrained_pin²,²(µpin_transition²,²(µclock_pin²,¡þ²(µµclock_transition²,²'´µ²(related_output_pin,¡þ´²'start_enable_condition',¡þñ´µµ'end_enable_condition',µ(²(intrinsic_rise²,²(¡þ%intrinsic_fall²);¡þžREMOVALµ:µ²(clock_pin,µclock_transition,µconstrained_pin,¡þÛµµpin_transition,µrelated_output_pin,²¡þ'start_enable_condition',¡þLµµ'end_enable_condition',µ²((intrinsic_rise,¡þ€intrinsic_fall);¡þù²SKEWµ:µ²(triggering_clock_pin,µtriggering_clock_transition,¡þ6µµconstrained_clock_pin,µconstrained_clock_transition,¡þrµµrelated_output_pin,µ²'start_enable_condition',¡þ¯µµ'end_enable_condition',µ²((intrinsic_rise,¡þãintrinsic_fall);¡þ\²NOCHANGEµ:²(µconstrained_pin²,²(µconstrained_pin_level²,¡þ™²(µµrelated_pin²,µ²(related_pin_level,µrelated_output_pin,¡þÕ²µµ'start_enable_condition',µ'end_enable_condition',¡þ	µµ(²(intrinsic_rise²,²(µintrinsic_fall²);¡þ	¬²In´µconditionalµtimingµchecks,¡þ
/²S¡X
/²Theµenable_conditionµisµtheµwhenµattribute.¡þ
¢²S¡X
¢²Theµstart_enable_conditionµisµtheµwhen_startµattribute.¡þ²S¡X²Theµend_enable_conditionµisµtheµwhen_endµattribute.’ë}D“I501ileaf_page_string1:16-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿŠ16³15¡þÏ²Constraint´µTableµSyntax¡þm²In´µtheµconstraintµtableµsyntax,µtableµcanµbeµeitherµrise_constraintµor¡þ¶fall_constraint.µINDEX_1,µINDEX_2,µandµINDEX_3µappearµonly¡þÿwhenµtheµlocalµtableµisµdefinedµtoµoverwriteµtheµvalueµinµtheµoriginal¡þGtemplate.¡þÈ²table´µ(²(template_name²)µ:¡þµµµINDEX_1µ:µ<²(float²>µ...µ<²(float²>¡þBµµµINDEX_2µ:µ<²(float²>µ...µ<²(float²>¡þµµµINDEX_3µ:µ<²(float²>µ...µ<²(float²>¡þ¼µµµVALUESµ:µ<²(float²>µ...µ<²(float²>¡þV²Example 16³6´µisµanµexampleµofµpinµconstraints.¡,²&Example 16³6³PinµConstraintsµinµCMOSµLinearµDelayµModel¡þ›²´µµPIN(D)µ:µin,µ1,µ,µ,µ;¡þØµµµµSETUPµ:µD,µCP,µrise,µ'',µ'',µ(1.3,µ1.3);¡þµµµµHOLDµ:µCP,µrise,µD,µ'',µ'',µ(0.3,µ0.3);¡þRµµEND_PINµD;¡þÌµµPIN(CD)µ:µin,µ2,µ,µ,µ;¡þµµµµRECOVµ:µCD,µrise,µCP,µrise,µ'',µ'',µ(0.5,µ0);¡þEµµEND_PINµCD;¡þ¿µµPIN(EN)µ:µin,µ3,µ,µ,µ;¡þüµµµµµNOCHANGEµ:µEN,µlow,µCLK,µhigh,,µ'',µ'',µ(1.0,1.0)¡þ	9µµEND_PINµEN;¡þ	²µµPIN(CLK)µ:µin,µ0,µ,µ,µ;¡þ	ïµµµµMPWµ:µCLK,µl,µ'',µ3;¡þ
,µµµµMPWµ:µCLK,µh,µ'',µ3;¡þ
iµµEND_PINµCLK;¡þ
âPinµConstraintsµinµCMOSµNonlinearµDelayµModelµµPIN(D)µ:¡þin,µ1,µ,µ,µ;’}OD“I501ileaf_page_string1:16-16¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³16¡þÃ²´µµµµSETUPµ:µD,µCP,µrise,µ'',µ'',µ(µ,µ);¡þµµµµµµrise_constraintµ(µscalarµ)µ:¡þ=µµµµµµµµVALUESµ:µ1.3¡þzµµµµµµfall_constraintµ(scalarµ)µ:¡þ¶µµµµµµµµVALUESµ:µ1.3¡þóµµµµHOLDµ:µCP,µrise,µD,µ'',µ'',µ(µ,µ);¡þ0µµµµµµrise_constraintµ(scalar)¡þmµµµµµµµµVALUESµ:µ0.3¡þªµµµµµµfall_constraintµ(scalarµ)µ:¡þçµµµµµµµµVALUESµ:µ0.3¡þ$µµEND_PINµD;¡þžµµPIN(CD)µ:µin,µ2,µ,µ,µ;¡þÚµµµµRECOVµ:µCD,µrise,µCP,µrise,µ'',µ'',µ(µ,µ);¡þµµµµµµrise_constraintµ(scalar)µ:¡þTµµµµµµµµVALUESµ:µ0.5¡þ‘µµEND_PINµCD;¡þµµPIN(EN)µ:µin,µ3,µ,µ,µ;¡þHµµµµNOCHANGEµ:µEN,µlow,µCLK,µhigh,µ,µ'',µ'',µ(,)¡þ…µµµµµµrise_constraintµ(scalar)µ:¡þÂµµµµµµµµVALUESµ:µ2.98000¡þþµµµµµµfall_constraintµ(scalar)µ:¡þ;µµµµµµµµVALUESµ:µ0.9800¡þxµµEND_PINµEN;¡þòµµPIN(CLK)µ:µin,µ0,µ,µ,µ;¡þ/µµµµMPWµ:µCLK,µ1,µ'',µ3;¡þlµµµµMPWµ:µCLK,µh,µ'',µ3;¡þ©µµEND_PINµCLK;¡þ	D²See´µtheµexamplesµatµtheµendµofµthisµchapterµforµaµreportµonµaµcell¡þ	Œwithµnonsequentialµsetupµandµholdµconstraints.’OD“I501ileaf_page_string1:16-17¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,›,…¡Ä,…	c…¡Ä	c…	c›¡Ä	c›,›ÆÃÁÊËÃ¡Äþ…Ê…ÆÃ¥	öäÃÁÊË¡Ä,N,8¡Ä,8	c8¡Ä	c8	cN¡Ä	cN,NÆÃÁÊËÃ¡Äþ8Ê8ÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿŠ16³17¡,Õ²Delays¡þ}²Library´µCompilerµreportsµdelaysµwithµtheµDELAYµlineµfor¡þÅcombinationalµtimingµarcsµandµtheµSAMPLEµlineµforµsequential¡þtimingµarcs.¡þÕ²DELAY´µLineµ¡þc²This´µisµtheµformatµforµtheµdelayµreportµforµstandardµcombinational¡þ¬timing:¡þ!²DELAY:²(from_pin²,²(to_pin²,²(timing_type²,²(timing_sense²,²¡þ\²'enable_condition',´µ(²(intrinsic_rise²,µ²(intrinsic_fall²),¡þ—(²(slope_rise²,µ²(slope_fall²),²´µ²(²(rise_resistance²,¡þË²(fall_resistance²);¡þV²For´µtheµnonlinearµdelayµmodel,µtheµtableµinformationµforµeachµpairµof¡þŸcombinationalµtimingµattributesµshownµaboveµisµreported.¡þ0Theµintrinsic_riseµandµintrinsic_fallµattributesµhaveµvaluesµif¡þxspecified,µbutµtheµslope_rise,µslope_fall,µrise_resistance,µand¡þÁfall_resistanceµattributesµshouldµbeµempty.¡þˆ²Delay´µTableµSyntax¡þ	²In´µtheµdelayµtableµsyntax,µtableµcanµbeµeitherµrise_propagation,¡þ	^fall_propagation,µcell_rise,µcell_fall,µrise_transition,µorµfall_transition.¡þ	§INDEX_1µorµINDEX_2µappearµonlyµwhenµtheµlocalµtableµisµdefinedµto¡þ	ðoverwriteµtheµvalueµinµtheµoriginalµtemplate.¡þ
e²table´µ(²(template_name²)µ:¡þ
 µµµINDEX_1µ:µ<²(float²>µ...µ<²(float²>¡þ
ÛµµµINDEX_2µ:µ<²(float²>µ...µ<²(float²>¡þµµµVALUESµ:µ<²(float²>µ...µ<²(float²>’ôD“I501ileaf_page_string1:16-18¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³18¡þÏ²Rise´µandµFallµValues¡þn²Rise´µandµfallµvaluesµhaveµdifferentµdefinitionsµthatµdependµonµthe¡þ¶timing_type:¡þ;²S¡X;²Forµaµcombinationalµpropµdelay,µaµriseµisµtheµ0³to³1µtransition,¡X‚andµaµfallµisµtheµ1³to³0µtransition.¡þõ²S¡Xõ²Ifµfrom_pinµisµaµthree³stateµdeviceµenableµpin,µaµpropµdelayµriseµis¡X<theµZ³to³1µtransitionµandµaµfallµisµtheµZ³to³0µtransition.¡þ¯²S¡X¯²Forµaµdisableµdelay,µfrom_pinµisµaµthree³stateµdeviceµenableµpin.¡XöAµriseµisµtheµ0³to³Zµtransitionµofµto_pin;µaµfallµisµtheµ1³to³Z¡X=transition.¡þ°²S¡X°²Forµaµclearµdelay,µonlyµtheµfallµisµconsidered.µAµfallµisµtheµ1³to³0¡X÷transitionµofµtheµto_pin.µTheµriseµeventµisµignored.¡þj²S¡Xj²Forµaµpresetµdelay,µonlyµtheµriseµisµconsidered.µAµriseµisµthe¡X±0³to³1µtransitionµofµtheµto_pin.µTheµfallµeventµisµignored.¡þBExample 16³7µandµExample 16³8µshowµaµDELAYµline.¡,ô²&Example 16³7³StandardµCombinationalµPinµDelays¡,‚²-´µµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(,µ);¡,¹µµµµSAMPLEµ:µCP,µrise,µQ,µ'',µ(1.17,µ1.35),µ(0,µ0),(0.1523,µ0.0589);¡,ïµµµµDELAYµ:µSD,µQ,µpreset,µneg_unate,µ'',µ(0.97,µ1),µ(0,µ0),µ(0.1523,µ0);¡,	&µµµµDELAYµ:µCD,µQ,µclear,µpos_unate,µ'',µ(1,µ0.75),µ(0,µ0),µ(0,µ0.0589);¡,	]µµEND_PINµQ;’ô‹D“I501ileaf_page_string1:16-19¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³19¡,É²&Example 16³8³Combinational´µPinµDelaysµwithµNonlinearµDelayµModel¡,V²-´µµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(,µ);¡,µµµµDELAYµ:µSD,µQ,µpreset,µneg_unate,µ'',µ(µ,µ),µ(µ,µ),µ(µ,µ);¡,Ãµµµµµµrise_propagationµ(µtestµ)µ:¡,úµµµµµµµµVALUESµ:µ1.0,µ2.1,µ3.4¡,0µµµµµµrise_transitionµ(µtestµ)µ:¡,gµµµµµµµµVALUESµ:µ0.5,µ0.7,µ1.9¡,žµµµµDELAYµ:µCD,µQ,µclear,µpos_unate,µ'',µ(µ,µ),µ(µ,µ),µ(µ,µ);¡,Ôµµµµµµfall_propagationµ(µtestµ)µ:¡,µµµµµµµµVALUESµ:µ1.0,µ2.1,µ3.4¡,Aµµµµµµfall_transitionµ(µtestµ)µ:¡,xµµµµµµµµVALUESµ:µ0.5,µ0.7,µ1.9¡,®µµEND_PINµQ;¡þB²The´µdelayµreportµforµpiecewiseµlinearµcombinationalµtimingµhasµthe¡þ‹followingµformat:¡þ²DELAY:²´µ²(from_pin²,²µ²(to_pin²,²µ²(timing_type²,²¡þH²(timing_sense,´µ²'enable_condition',µ(²(intrinsic_rise²,²¡þ…²(intrinsic_fall²),²´µ²(²(slope_rise²,²´µ²(slope_fall²),²¡þÁ²(²(rise_delay_intercept,²µ²(fall_delay_intercept²)²,¡þþ²(²(rise_pin_resistance²,²µ²(fall_pin_resistance²)²(,¡þ;²(²(rise_wire_resistance²,µ²(fall_wire_resistance²)²(,²¡þx²(²(rise_nonpaired_twin²,²(´µfall_nonpaired_twin²);¡þ²If´µattributesµareµcomposedµofµpieces,µeachµattributeµtypeµisµenclosed¡þ[inµangleµbracketsµand,µwithinµeachµattributeµtype,µeachµpieceµis¡þ£separatedµbyµaµcolonµasµshownµinµExample 16³9.¡,	S²&Example 16³9³PiecewiseµLinearµCombinationalµPinµDelays¡þ	ª²´µµPIN(X)µ:µout,µ0,µ20,µ,µ,µ0.83,µ(0.02,µ0.01),µ(0.045,µ-0.015);¡þ	çµµµµDELAYµ:µA1,µX,µprop,µneg_unate,µ`',µ(0.12,µ0.1),µ(µ,µµ),¡þ
#µµµµµµ(<0µ:µ0.003µ:µ-0.063>,µ<0µ:µ-0.055µ:µ-0.088>),¡þ
`µµµµµµ(<0.006µ:µ0.006µ:µ0.006>,µ<0.011µ:µ0.011µ:µ0.011>),¡þ
µµµµµµ(<0.34µ:µ0.325µ:µ0.435>,µ<0.33µ:µ1.105µ:µ1.16>),¡þ
Úµµµµµµ(<µ:µµ:µ>,µ<µ:µµ:µ>);¡þµµEND_PINµX;’‹5D“I501ileaf_page_string1:16-20¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³20¡þÏ²²}²SAMPLE´µLine¡þn²A´µsamplingµdelayµoccursµwhenµaµstorageµdeviceµgatesµinµaµnew¡þ¶input.¡þ•²LinearµSequentialµDelay¡þ²Thisµisµtheµformatµforµaµstandardµsequentialµdelayµreport:¡þƒ²SAMPLE´µ:²´µ²(clock_pin²,²µ²(transition_type²,²µ²(to_pin²,²¡þÀ²'enable_condition',´µ(²(intrinsic_rise²,²´µ²(intrinsic_fall²),²¡þý²(²(slope_rise²,²µ²(slope_fall²),´µ(²(rise_resistance²,²¡þ1²(fall_resistance²);¡þÌ²Example 16³10´µshowsµstandardµsequentialµpinµdelays.¡,}²&Example 16³10³StandardµSequentialµPinµDelays¡,Î²-´µµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ)µ;¡,µµµµSAMPLEµ:µCP,µrise,µQ,µ'',µ(1.16,µ1.44),µ(0,µ0),µ(0.0653,µ0.0347);¡,<µµEND_PINµQµ;¡þÖ²Piecewise´µLinearµSequentialµDelay¡þB²Thisµisµtheµformatµforµaµpiecewiseµlinearµsequentialµdelayµreport:¡þÄ²SAMPLE´µ:²´µ²(clock_pin²,²µ²(transition_type,²µ²(to_pin²,²¡þ	²'enable_condition',´µ(²(intrinsic_rise²,²´µ²(intrinsic_fall²),²¡þ	=²(²(slope_rise²,²µ²(slope_fall²),²µ²(²(rise_delay_intercept,¡þ	zfall_delay_intercept²)²,µ²(²(rise_pin_resistance²,²¡þ	·²(fall_pin_resistance²)²(,²µ²(²(rise_wire_resistance²,¡þ	ô²(fall_wire_resistance²)²(,´µ²(²(rise_nonpaired_twin²,¡þ
1²(fall_nonpaired_twin²);’5æD“I501ileaf_page_string1:16-21¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³21¡þÉ²Nonlinear´µSequentialµDelay¡þ6²Thisµisµtheµformatµforµaµnonlinearµsequentialµdelayµreport:¡,ç²-SAMPLE´µ:µCK,µrise,µQ,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ)µ;¡,µµrise_propagationµ(µTemplate8µ)µ:¡,UµµµµVALUESµ:µµµµ1.0394µµ1.1740µµ1.6733µµ1.0544µµ1.1897µµ1.6885¡,‹µµµµµµµµµµµµµµµµµ1.0516µµ1.1868µµ1.6852µµ1.0360µµ1.1709µµ1.6693¡,Âµµµµµµµµµµµµµµµµµ1.0024µµ1.1373µµ1.6356¡,ùµµfall_propagationµ(µTemplate8µ)µ:¡,/µµµµVALUESµ:µµµµ1.4165µµ1.5473µµ2.0101µµ1.5046µµ1.6341µµ2.0969¡,fµµµµµµµµµµµµµµµ1.5584µµ1.6878µµ2.1506µµ1.6100µµ1.7402µµ2.2030¡,µµµµµµµµµµµµµµµ1.6393µµ1.7694µµ2.2322¡,Óµµrise_transitionµ(µTemplate1µ)µ:¡,
µµµµVALUESµ:µµµµ0.0606µµ0.6828¡,xµµfall_transitionµ(µTemplate1µ)µ:¡,®µµµµVALUESµ:µµµµ0.1596µµ0.6372¡þC²If´µattributesµareµcomposedµofµpieces,µeachµattributeµtypeµisµenclosed¡þŒinµangleµbracketsµand,µwithinµeachµattributeµtype,µeachµpieceµis¡þÔseparatedµbyµaµcolonµasµExample 16³11µshows.¡,†²&Example 16³11³PiecewiseµLinearµSequentialµPinµDelays¡,²-´µµPIN(Q)µ:µout,µ0,µ20,µ,µ,µ1.65,µ(0.01,µ0.01),µ(0.01,µ-0.005);¡,DµµµµSAMPLEµ:µG,µrise,µQ,µ'',µ(0.2,µ0.225),µ(µ,µµ),¡,{µµµµµµµµµµµµ(<0µ:µ0.003µ:µ-0.075>,µ<0µ:µ-0.033µ:µ-0.102>),¡,²µµµµµµµµµµµµ(<0.004µ:µ0.004µ:µ0.004>,µ<0.006µ:µ0.006µ:µ0.006>),¡,èµµµµµµµµµµµµ(<0.26µ:µ0.245µ:µ0.375>,µ<0.375µ:µ0.54µ:µ0.655>),¡,	µµµµµµµµµµµµ(<µ:µµ:µ>,µ<µ:µµ:µ>);¡,	VµµEND_PINµQµ;’æD“I501ileaf_page_string1:16-22¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,n,X¡Ä,X	cX¡Ä	cX	cn¡Ä	cn,nÆÃÁÊËÃ¡Ä,XÊXÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³22¡þÏ²Cell´µDegradationµDesignµRule¡þn²This´µdesignµruleµdefinesµtheµmaximumµcapacitiveµloadµaµcellµcan¡þ¶driveµwithoutµcellµperformanceµdegradation.¡þYThisµisµtheµsyntaxµforµtheµcellµdegradationµinformation:¡þÛ²cell_degradation´µ(²(template_name²)µ:¡þµµµINDEX_1µ:µ<²(float²>µ...µ<²(float²>¡þTµµµVALUESµ:µ<²(float²>µ...µ<²(float²>¡þï²This´
µisµanµexampleµofµtheµcellµdegradationµinformationµinµaµlibrary´	µreport¡þ8when´µyouµgiveµtheµreport_libµ³timingµcommand:¡þ¹²cell_degradation´µ(template_1)µ:¡þöµµµINDEX_1µ:µ1.0µµ2.5µµ3.75¡þ3µµµVALUESµ:µµ1.0394µµ1.1740µµ1.6733¡þpµµµµµµµµµµµµµ1.0516µµ1.1868µµ1.6852¡þ­µµµµµµµµµµµµµ1.0024µµ1.1373µµ1.6356¡,®²Timing´µReportµStatisticsµ¡þm²The´µsummaryµsectionµatµtheµendµofµaµlibraryµtimingµreportµcontains¡þ¶simpleµstatistics.¡þ	7²Number´µofµlibraryµcells:µ18¡þ	tNumberµofµreportedµcells:µ16¡þ	±Numberµofµreportedµscaledµcells:µ6’‰D“I501ileaf_page_string1:16-23¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡Á²Timing´µandµPowerµReportµFormat¡Ô¤ÿŠ16³23¡,Õ²Timing´µReportµExamples¡þ’²Example 16³12´µisµaµtimingµreportµforµaµDµlatchµandµaµDµflip³flopµwith¡þÛpresetµandµclear.¡,Š²&Example 16³12³TimingµReportµforµDµLatchµandµDµFlip³Flop¡,²-****************************************¡,HReport´µ:µlibrary¡,~Library:µcmos_demo¡,µVersion:µ1997.01¡,ëDateµµµ:µTuesµJanµ14µ10:20:47µ1997¡,"****************************************¡,LibraryµTypeµµµµµµµµµµµµ:µTechnology¡,ÆToolµCreatedµµµµµµµµµµµµ:µ1997.01¡,üDateµCreatedµµµµµµµµµµµµ:µJanuaryµ14,µ1997¡,3LibraryµVersionµµµµµµµµµ:µ1.230000¡,iDelayµModelµµµµµµµµµµµµµ:µgeneric_cmos¡,ÖTimingµAttributesµDefaults:¡,CµµµAttributeµµµµµµµµµµµµµµµµµµµµDefault¡,zµµµ-----------------------------------------¡,°µµµµµmax_transition¡,çµµµµµmax_fanout¡,µµµµµfanout_loadµµµµµµµµµµµµµµµµ1¡,ŠCELL(AN2)µ:µ2,µ;¡,÷µµPIN(A)µ:µin,µ1,µ,µ,µ;¡,	.µµEND_PINµA;¡,	›µµPIN(B)µ:µin,µ1,µ,µ,µ;¡,	ÑµµEND_PINµBµ;¡,
>µµPIN(Z)µ:µout,µ,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,
uµµµµDELAYµ:µA,µZ,µprop,µpos_unate,µ'',µ(0.48,µ0.77),µ(0,µ0),µ(0.1443,µ0.0523);¡,
«µµµµDELAYµ:µB,µZ,µprop,µpos_unate,µ'',µ(0.48,µ0.77),µ(0,µ0),µ(0.1443,µ0.0523);¡,
âµµEND_PINµZ;¡,END_CELLµAN2µ;’‰	D“I501ileaf_page_string1:16-24¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³24¡,½²-CELL(EN)´µ:µ3,µ;¡,*µµPIN(A)µ:µin,µ1,µ,µ,µ;¡,`µµEND_PINµAµ;¡,ÍµµPIN(B)µ:µin,µ2,µ,µ,µ;¡,µµEND_PINµBµ;¡,pPIN(Z)µ:µout,µ,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,§µµµµDELAYµ:µA,µZ,µprop,µnon_unate,µ'',µ(0.79,µ1.06),µ(0,µ0),µ(0.1458,µ0.0653);¡,ÝµµµµDELAYµ:µB,µZ,µprop,µnon_unate,µ(0.79,µ1.06),µ(0,µ0),µ(0.1458,µ0.0653);¡,µµEND_PINµZ;¡,JEND_CELLµEN;¡,·CELL(FD1SP)µ:µ10,µ;¡,$µµPIN(D)µ:µin,µ1,µ,µ,µ;¡,ZµµµµSETUPµ:µD,µCP,µrise,µ'','',µ(1.3,µ1.3);¡,‘µµµµHOLDµ:µCP,µrise,µD,µ'',µ'',µ(0.3,µ0.3);¡,ÇµµEND_PINµD;¡,4µµPIN(CP)µ:µin,µ1,µ,µ,µ;¡,kµµEND_PINµCP;¡,×µµPIN(TI)µ:µin,µ1,µ,µ,µ;¡,µµµµSETUPµ:µTI,µCP,µrise,µ'',µ'',µ(1.3,µ1.3);¡,DµµµµHOLDµ:µCP,µrise,µTI,µ'',µ'',µ(0.3,µ0.3);¡,{µµEND_PINµTI;¡,èµµPIN(TE)µ:µin,µ2,µ,µ,µ;¡,µµµµSETUPµ:µTE,µCP,µrise,µ'',µ'',µ(1.3,µ1.3);¡,UµµµµHOLDµ:µCP,µrise,µTE,µ'',µ'',µ(0.3,µ0.3);¡,‹µµEND_PINµTE;¡,øµµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,	.µµµµSAMPLEµ:µCP,µrise,µQ,µ'',µ(1.16,µ1.44),µ(0,µ0),µ(0.0653,µ0.0347);¡,	eµµEND_PINµQ;¡,	ÒµµPIN(QN)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,
µµµµSAMPLEµ:µCP,µrise,µQN,µ'',µ(1.84,µ1.74),µ(0,µ0),µ(0.0669,µ0.0347);¡,
?µµEND_PINµQN;¡,
uEND_CELLµFD1SP;¡,
âCELL(FD3)µ:µ9,µ;’	’D“I501ileaf_page_string1:16-25¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³25¡,½²-´µµPIN(D):µin,µ1,µ,µ,µ;¡,öµµµµSETUPµ:µD,µCP,µrise,µ'',µ'',µ(0.9,µ0.9);¡,/µµµµHOLDµ:µCP,µrise,µD,µ'',µ'',µ(0.4,µ0.4);¡,hµµEND_PINµD;¡,ÚµµPIN(CP)µ:µin,µ1,µ,µ,µ;¡,µµEND_PINµCP;¡,…µµPIN(CD)µ:µin,µ2,µ,µ,µ;¡,¾µµµµRECOVµ:µCD,µrise,µCP,µrise,µ'',µ'',µ(0.5,µ0);¡,÷µµEND_PINµCD;¡,iµµPIN(SD)µ:µin,µ2,µ,µ,µ;¡,¢µµµµRECOVµ:µSD,µrise,µCP,µrise,µ'',µ'',µ(0.5,µ0);¡,ÛµµEND_PINµSD;¡,MµµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,†µµµµSAMPLEµ:µCP,µrise,µQ,µ`',µ(1.17,µ1.35),µ(0,µ0),µ(0.1523,µ0.0589);¡,¿µµµµDELAYµ:µSD,µQ,µpreset,µneg_unate,µ'',µ(0.97,µ1),µ(0,µ0),µ(0.1523,µ0);¡,øµµµµDELAYµ:µCD,µQ,µclear,µpos_unate,µ'',µ(1,µ0.75),µ(0,µ0),µ(0,µ0.0589);¡,1µµEND_PINµQ;¡,¤µµPIN(QN)µ:µout,µ,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,ÝµµµµSAMPLEµ:µCP,µrise,µQN,µ`',µ(1.69,µ1.67),µ(0,µ0),µ(0.1458,µ0.0523);¡,µµµµDELAYµ:µSD,µQN,µclear,µpos_unate,µ'',µ(1,µ0.77),µ(0,µ0),µ(0,µ0.0523);¡,OµµµµDELAYµ:µCD,µQN,µpreset,µneg_unate,µ'',µ(1.09,µ1),µ(0,µ0),µ(0.1458,µ0);¡,ˆµµEND_PINµQN;¡,ÁEND_CELLµFD3;¡,3CELL(LD3P)µ:µ6,µ;¡,¥µµPIN(D)µ:µin,µ1,µ,µ,µ;¡,ÞµµµµSETUPµ:µD,µG,µfall,µ'',µ'',µ(0.7,µ0.7);¡,	µµµµHOLDµ:µG,µfall,µD,µ'',µ'',µ(0.4,µ0.4);¡,	PµµEND_PINµD;¡,	ÂµµPIN(G)µ:µin,µ1,µ,µ,µ;¡,	ûµµEND_PINµG;¡,
mµµPIN(CD)µ:µin,µ1,µ,µ,µ;¡,
¦µµµµRECOVµ:µCD,µrise,µG,µfall,µ'',µ'',µ(0.5,µ0);¡,
ßµµEND_PINµCD;’’LD“I501ileaf_page_string1:16-26¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³26¡,½²-´µµPIN(Q)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,óµµµµSAMPLEµ:µG,µrise,µQ,µ'',µ(1.15,µ1.93),µ(0,µ0),µ(0.0788,µ0.0477);¡,*µµµµDELAYµ:µCD,µQ,µclear,µpos_unate,µ'',µ(1,µ2.33),µ(0,µ0),µ(0,µ0.0477);¡,aµµEND_PINµQ;¡,ÎµµPIN(QN)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,µµµµSAMPLEµ:µG,µrise,µQN,µ'',µ(1.46,µ1.64),µ(0,µ0),µ(0.0653,µ0.0347);¡,;µµµµDELAYµ:µCD,µQN,µpreset,µneg_unate,µ'',µ(1.86,µ1),µ(0,µ0),µ(0.0653,µ0);¡,rµµEND_PINµQN;¡,©END_CELLµLD3P;¡,CELL(MUX21H)µ:µ4,µ;¡,ƒµµPIN(A)µ:µin,µ1,µ,µ,µ;¡,ºµµEND_PINµA;¡,'µµPIN(B)µ:µin,µ1,µ,µ,µ;¡,^µµEND_PINµB;¡,ÌµµPIN(S)µ:µin,µ2,µ,µ,µ;¡,µµEND_PINµS;¡,pµµPIN(Z)µ:µout,µ,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,¦µµµµDELAY:µA,µZ,µprop,µpos_unate,µ'',µ(0.64,µ1.15),µ(0,µ0),µ(0.0718,µ0.0589);¡,ÝµµµµDELAY:µB,µZ,µprop,µpos_unate,µ'',µ(0.64,µ1.15),µ(0,µ0),µ(0.0718,µ0.0589);¡,µµµµDELAY:µS,µZ,µprop,µnon_unate,µ'',µ(0.84,µ0.85),µ(0,µ0),µ(0.0718,µ0.0589);¡,JµµEND_PINµZ;¡,END_CELLµMUX21H;¡,îNumberµofµlibraryµcells:µ6¡,%Numberµofµreportedµcells:µ6¡þº²Example 16³13´µisµaµtimingµreportµforµaµlibraryµwithµaµCMOS¡þ	nonlinearµdelayµmodel.µTheµlibraryµcontainsµthree³dimensional¡þ	Ktablesµforµoutputµloadµmodelingµandµaµcellµwithµnonsequentialµsetup¡þ	”andµholdµconstraints.’LD“I501ileaf_page_string1:16-27¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³27¡,É²&Example 16³13³´µLibraryµwithµNonlinearµDelayµModel¡,[²-***************************************¡,•Report´µ:µlibrary¡,ÎLibrary:µnld¡,Version:µ1997.01¡,ADateµµµ:µTuesµJanµ14µ14:19:10µ1997¡,z***************************************¡,íLibraryµType¡…í¡í¡“í:µTechnology¡,&ToolµCreated¡…&¡&¡“&:µ1997.01¡,`DateµCreated¡…`¡`¡“`:µJanuaryµ14,µ1997¡,™LibraryµVersion¡™¡“™:µ6.000000¡,ÒDelayµModel¡…Ò¡Ò¡“Ò:µtable_lookup¡,TimeµUnit¡…¡¡“:µNotµspecified.¡,~TimingµAttributesµDefaults:¡,ñµµµAttribute¡…ñ¡ñ¡“ñDefault¡,+µµµ-------------------------------------------¡,dµµµµmax_transition¡,µµµµmax_fanout¡¡“9999¡,×µµµµfanout_load¡×¡“×0¡,µµµµmax_capacitance¡,ƒLookupµTableµTemplate:¡,õµµµTemplate_name¡,/-------------------------------------------------------------------¡,hµµµTemplate1¡,¡µµµµµVARIABLE_1:µtotal_output_net_capacitance¡,ÛµµµµµµµINDEX_1:µ0.0000µµµ1.0000¡,	µµµTemplate8¡,	NµµµµµµVARIABLE_1:µtotal_output_net_capacitance¡,	‡µµµµµµVARIABLE_2:µinput_net_transition¡,	ÀµµµµµµµINDEX_1:µ0.0500µµµ0.2500µµµ0.5000µµµ1.0000µµµ2.0000¡,	úµµµµµµµINDEX_2:µ0.1689µµµ0.4222µµµ2.1111¡,
3µµµTemplate9¡,
lµµµµµµVARIABLE_1:µtotal_output_net_capacitance¡,
¦µµµµµµVARIABLE_2:µinput_net_transition¡,
ßµµµµµµµINDEX_1:µ0.0500µµµ0.2500µµµ0.5000µµµ1.0000µµµ2.0000¡,µµµµµµµINDEX_2:µ0.2311µµµ0.5778µµµ2.8889’äD“I501ileaf_page_string1:16-28¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³28¡,½²-´µµµptable3x1¡,òµµµµµµµVARIABLE_1:µtotal_output_net_capacitance¡,'µµµµµµµINDEX_1:µµ1.0000µµ5.0000µ10.0000¡,\µµµconstraint¡,’µµµµµµµVARIABLE_1:µconstrained_pin_transition¡,ÇµµµµµµµVARIABLE_2:µrelated_pin_transition¡,üµµµµµµµVARIABLE_3:µrelated_out_total_output_net_capacitance¡,1µµµµµµµINDEX_1:µµ1.0000µµ1.5000µµ2.0000¡,gµµµµµµµINDEX_2:µµ1.0000µµ1.5000µµ2.0000¡,œµµµµµµµINDEX_3:µµ1.0000µµ1.5000µµ2.0000¡,CELL(AND2)µ:µ2,µ;¡,qµµPIN(Z)µ:µout,µ,µ0.965998,µ,µ,µ,µ,µ(µ,µ),µ(µ,µ);¡,¦µµµµDELAYµ:µA,µZ,µprop,µneg_unate,µ'',µ(µ,µ),µ(µ,µ),µ(µ,µ);¡,Ûµµµµµµrise_propagationµ(µTemplate9µ)µ:¡,µµµµµµµVALUESµ:µµµ0.0270µµµ0.0675µµµ0.1224µµµ0.0247µµµ0.0894µµµ0.2487¡,Fµµµµµµµµµµµµµµµµµ0.0196µµµ0.0851µµµ0.3388µµµ0.0087µµµ0.0702µµµ0.4338¡,{µµµµµµµµµµµµµµµµ-0.0141µµµ0.0442µµµ0.4948¡,åµµµµµµfall_propagationµ(µTemplate8µ)µ:¡,µµµµµµµµVALUESµ:µµµµ0.0554µµ0.1406µµ0.5079µµ0.0323µµ0.1408µµ0.6315¡,Pµµµµµµµµµµµµµµµµµµµ0.0039µµ0.1102µµ0.7033µ-0.0538µµ0.0487µµ0.7414¡,…µµµµµµµµµµµµµµµµµµ-0.1687µ-0.0698µµ0.6733¡,ºµµµµµµrise_transitionµ(µTemplate1µ)µ:¡,ðµµµµµµµµVALUESµ:µµµµ0.1255µµ0.7338¡,%µµµµµµfall_transitionµ(µTemplate1µ)µ:¡,ZµµµµµµµµVALUESµ:µµµµ0.1582µµ1.1460¡,ÅµµµµDELAYµ:µB,µZ,µprop,µneg_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,úµµµµµµrise_propagationµ(µTemplate9µ)µ:¡,/µµµµµµµµVALUESµ:µµµµ0.0279µµ0.0675µµ0.1224µµ0.0247µµ0.0894µµ0.2487¡,dµµµµµµµµµµµµµµµµµµµ0.0196µµ0.0851µµ0.3388µµ0.0087µµ0.0702µµ0.4338¡,šµµµµµµµµµµµµµµµµµµ-0.0141µµ0.0442µµ0.4948¡,Ïµµµµµµfall_propagationµ(µTemplate8µ)µ:¡,	µµµµµµµµVALUESµ:µµµµ0.0554µµ0.1406µµ0.5079µµ0.0323µµ0.1408µµ0.6315¡,	9µµµµµµµµµµµµµµµµµµµ0.0039µµ0.1102µµ0.7033µ-0.0538µµ0.0487µµ0.7414¡,	oµµµµµµµµµµµµµµµµµµ-0.1687µ-0.0698µµ0.6733¡,	Ùµµµµµµrise_transitionµ(µTemplate1µ)µ:¡,
µµµµµµµµVALUESµ:µµµµ0.1255µµ0.7338¡,
yµµµµµµfall_transitionµ(µTemplate1µ)µ:¡,
®µµµµµµµµVALUESµ:µµµµ0.1582µµ1.1460¡,µµEND_PINµZ;’äD“I501ileaf_page_string1:16-29¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³29¡,½²-´µµPIN(A)µ:µin,µ0.101985,µ0.101684,µ,µ;¡,óµµEND_PINµA;¡,`µµPIN(B)µ:µin,µ0.101985,µ0.101684,µ,µ;¡,–µµEND_PINµB;¡,ÍEND_CELLµAND2;¡,:CELL(FF1)µ:µ11,µ;¡,§µµPIN(Q)µ:µout,µ,µ1.01684,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,ÝµµµµSAMPLEµ:µCK,µrise,µQ,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,µµµµµµrise_propagationµ(µTemplate8µ)µ:¡,JµµµµµµµµVALUESµ:µµµµ1.0394µµ1.1740µµ1.6733µµ1.0544µµ1.1897µµ1.6885¡,€µµµµµµµµµµµµµµµµµµµ1.0516µµ1.1868µµ1.6852µµ1.0360µµ1.1709µµ1.6693¡,·µµµµµµµµµµµµµµµµµµµ1.0024µµ1.1373µµ1.6356¡,$µµµµµµfall_propagationµ(µTemplate8µ)µ:¡,ZµµµµµµµµVALUESµ:µµµµ1.4165µµ1.5473µµ2.0101µµ1.5046µµ1.6341µµ2.0969¡,‘µµµµµµµµµµµµµµµµµµµ1.5584µµ1.6878µµ2.1506µµ1.6100µµ1.7402µµ2.2030¡,Çµµµµµµµµµµµµµµµµµµµ1.6393µµ1.7694µµ2.2322¡,4µµµµµµrise_transitionµ(µTemplate1µ)µ:¡,kµµµµµµµµVALUESµ:µµµµ0.0606µµ0.6828¡,×µµµµµµfall_transitionµ(µTemplate1µ)µ:¡,µµµµµµµµVALUESµ:µµµµ0.1596µµ0.6372¡,{µµµµDELAYµ:µCLR,µQ,µclear,µneg_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,±µµµµµµfall_propagationµ(µTemplate8µ)µ:¡,èµµµµµµµµVALUESµ:µµµµ1.3375µµ1.4800µµ2.1589µµ1.4174µµ1.5549µµ2.2294¡,µµµµµµµµµµµµµµµµµµµ1.4673µµ1.6046µµ2.2739µµ1.5127µµ1.6504µµ2.3164¡,Uµµµµµµµµµµµµµµµµµµµ1.5323µµ1.6702µµ2.3346¡,‹µµµµµµfall_transitionµ(µTemplate1µ)µ:¡,ÁµµµµµµµµVALUESµ:µµµµ0.1596µµ0.6372¡,	.µµµµDELAYµ:µPRE,µQ,µpreset,µpos_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,	eµµµµµµrise_propagationµ(µTemplate8µ)µ:¡,	›µµµµµµµµVALUESµ:µµµµ0.3648µµ0.4996µµ0.9287µµ0.3809µµ0.5133µµ0.9523¡,	Òµµµµµµµµµµµµµµµµµµµ0.3794µµ0.5108µµ0.9522µµ0.3650µµ0.4953µµ0.9351¡,
µµµµµµµµµµµµµµµµµµµ0.3325µµ0.4624µµ0.8952¡,
uµµµµµµrise_transitionµ(µTemplate1µ)µ:¡,
¬µµµµµµµµVALUESµ:µµµµ0.0606µµ0.6828¡,µµEND_PINµQ;’wD“I501ileaf_page_string1:16-30¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³30¡,½²-´µµPIN(QN)µ:µout,µ,µ1.06768,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,óµµµµSAMPLEµ:µCK,µrise,µQN,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,*µµµµµµrise_propagationµ(µTemplate8µ)µ:¡,`µµµµµµµµVALUESµ:µµµµ2.0470µµ2.1767µµ2.6379µµ2.0575µµ2.1873µµ2.6480¡,–µµµµµµµµµµµµµµµµµµµ2.0542µµ2.1834µµ2.6441µµ2.0400µµ2.1699µµ2.6311¡,Íµµµµµµµµµµµµµµµµµµµ2.0105µµ2.1406µµ2.6019¡,:µµµµµµfall_propagationµ(µTemplate8µ)µ:¡,pµµµµµµµµVALUESµ:µµµµ1.8175µµ1.9530µµ2.4509µµ1.9272µµ2.0623µµ2.5602¡,§µµµµµµµµµµµµµµµµµµµ1.9967µµ2.1316µµ2.6294µµ2.0637µµ2.1985µµ2.6966¡,Ýµµµµµµµµµµµµµµµµµµµ2.1008µµ2.2356µµ2.7337¡,Jµµµµµµrise_transitionµ(µTemplate1µ)µ:¡,€µµµµµµµµVALUESµ:µµµµ0.1003µµ0.7100¡,íµµµµµµfall_transitionµ(µTemplate1µ)µ:¡,$µµµµµµµµVALUESµ:µµµµ0.2481µµ0.7542¡,ZµµµµDELAYµ:µCLR,µQN,µpreset,µpos_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,‘µµµµµµrise_propagationµ(µTemplate8µ)µ:¡,ÇµµµµµµµµVALUESµ:µµµµ0.5521µµ0.6982µµ1.3643µµ0.5989µµ0.7437µµ1.4134¡,þµµµµµµµµµµµµµµµµµµµ0.6228µµ0.7668µµ1.4350µµ0.6318µµ0.7752µµ1.4390¡,4µµµµµµµµµµµµµµµµµµµ0.6138µµ0.7570µµ1.4108¡,¡µµµµµµrise_transitionµ(µTemplate1µ)µ:¡,×µµµµµµµµVALUESµ:µµµµ0.1003µµ0.7100¡,DµµµµDELAYµ:µPRE,µQN,µclear,µneg_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,{µµµµµµfall_propagationµ(µTemplate8µ)µ:¡,±µµµµµµµµVALUESµ:µµµµ1.4929µµ1.6211µµ2.0744µµ1.6361µµ1.7573µµ2.1811¡,èµµµµµµµµµµµµµµµµµµµ1.7314µµ1.8523µµ2.2684µµ1.8343µµ1.9549µµ2.3686¡,µµµµµµµµµµµµµµµµµµµ1.9189µµ2.0398µµ2.4521¡,‹µµµµµµfall_transitionµ(µTemplate1µ)µ:¡,ÁµµµµµµµµVALUESµ:µµµµ0.2481µµ0.7542¡,	.µµEND_PINµQN;¡,	eµµPIN(A)µ:µin,µ0.051103,µ0.050842,µ,µ;¡,	›µµµµSETUPµ:µA,µCK,µrise,µ'',µ'',µ(µ,µµ);¡,	Òµµµµµµrise_constraintµ(µscalarµ)µ:¡,
µµµµµµµµVALUESµ:µµµµ2.9800¡,
uµµµµµµfall_constraintµ(µscalarµ)µ:¡,
¬µµµµµµµµVALUESµ:µµµµ2.9800¡,µµµµHOLDµ:µCK,µrise,µA,µ'',µ'',µ(µ,µµ);’wÓD“I501ileaf_page_string1:16-31¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³31¡,½²-´µµµµµµrise_constraintµ(µscalarµ)µ:¡,öµµµµµµµµVALUESµ:µµµµ0.0000¡,hµµµµµµfall_constraintµ(µscalarµ)µ:¡,¡µµµµµµµµVALUESµ:µµµµ0.0000¡,µµEND_PINµA;¡,…µµPIN(B)µ:µin,µ0.050842,µ0.050843,µ,µ;¡,¾µµµµSETUPµ:µB,µCK,µrise,µ'',µ'',µ(µ,µµ);¡,÷µµµµµµrise_constraintµ(µscalarµ)µ:¡,0µµµµµµµµVALUESµ:µµµµ3.3400¡,¢µµµµµµfall_constraintµ(µscalarµ)µ:¡,ÛµµµµµµµµVALUESµ:µµµµ3.3400¡,MµµµµHOLDµ:µCK,µrise,µB,µ'',µ'',µ(µ,µµ);¡,†µµµµµµrise_constraintµ(µscalarµ)µ:¡,¿µµµµµµµµVALUESµ:µµµµ0.0000¡,øµµµµµµfall_constraintµ(µscalarµ)µ:¡,1µµµµµµµµVALUESµ:µµµµ0.0000¡,¤µµEND_PINµB;¡,µµPIN(CK)µ:µin,µ0.050842,µ0.050843,µ,µ;¡,OµµEND_PINµCK;¡,ÁµµPIN(CLR)µ:µin,µ0.106875,µ0.106875,µ,µ;¡,úµµµµSETUPµ:µCLR,µCK,µrise,µ'',µ'',µ(µ,µµ);¡,3µµµµµµfall_constraintµ(µscalarµ)µ:¡,lµµµµµµµµVALUESµ:µµµµ2.2900¡,ÞµµµµHOLDµ:µCK,µrise,µCLR,µ'',µ'',µ(µ,µµ);¡,	µµµµµµfall_constraintµ(µscalarµ)µ:¡,	PµµµµµµµµVALUESµ:µµµµ0.0000¡,	ÂµµEND_PINµCLR;¡,
4µµPIN(PRE)µ:µin,µ0.120515,µ0.122021,µ,µ;¡,
mµµµµSETUPµ:µPRE,µCK,µrise,µ'',µ'',µ(µ,µµ);¡,
¦µµµµµµfall_constraintµ(µscalarµ)µ:¡,
ßµµµµµµµµVALUESµ:µµµµ0.1200’ÓÀD“I501ileaf_page_string1:16-32¥	öä¥	öä¡8Á²âTiming´µandµPowerµReportµFormat¡.16³32¡,½²-´µµµµHOLDµ:µCK,µrise,µPRE,µ'',µ'',µ(µ,µµ);¡,óµµµµµµfall_constraintµ(µscalarµ)µ:¡,*µµµµµµµµVALUESµ:µµµµ0.8000¡,aCELL(tri_buf):µ6,µ;¡,ÎµµPIN(sel):µin,µ2,µ,µ,µ;¡,µµEND_PINµsel;¡,rµµPIN(d):µin,µ4,µ,µ,µ;¡,©µµµµNON_SEQ_HOLD:µsel,µrise,µd,µso,µ'',µ'',µ(µ,µµ);¡,ßµµµµµµrise_constraintµ(µconstraintµ)µ:¡,µµµµµµµµµVALUESµ:µµµµ1.5000µµ2.5000µµ3.5000µµ1.6000µµ2.6000µµ3.6000¡,Mµµµµµµµµµµµµµµµµµµµµµ1.7000µµ2.7000µµ3.7000µµ1.8000µµ2.8000µµ3.8000¡,ƒµµµµµµµµµµµµµµµµµµµµµ1.9000µµ2.9000µµ3.9000µµ2.0000µµ3.0000µµ4.0000¡,ºµµµµµµµµµµµµµµµµµµµµµ2.1000µµ3.1000µµ4.1000µµ2.2000µµ3.2000µµ4.2000¡,ñµµµµµµµµµµµµµµµµµµµµµ2.3000µµ3.3000µµ4.3000¡,^µµµµµµfall_constraintµ(µconstraintµ)µ:¡,•µµµµµµµµµVALUESµ:µµµµ1.5000µµ2.5000µµ3.5000µµ1.6000µµ2.6000µµ3.6000¡,Ìµµµµµµµµµµµµµµµµµµµµµ1.7000µµ2.7000µµ3.7000µµ1.8000µµ2.8000µµ3.8000¡,µµµµµµµµµµµµµµµµµµµµµ1.9000µµ2.9000µµ3.9000µµ2.0000µµ3.0000µµ4.0000¡,9µµµµµµµµµµµµµµµµµµµµµ2.1000µµ3.1000µµ4.1000µµ2.2000µµ3.2000µµ4.2000¡,pµµµµµµµµµµµµµµµµµµµµµ2.3000µµ3.3000µµ4.3000¡,ÝµµµµNON_SEQ_SETUP:µd,µsel,µrise,µso,µ'',µ'',µ(µ,µµ);¡,µµµµµµrise_constraintµ(µconstraintµ)µ:¡,JµµµµµµµµµVALUESµ:µµµµ1.5000µµ2.5000µµ3.5000µµ1.6000µµ2.6000µµ3.6000¡,µµµµµµµµµµµµµµµµµµµµµ1.7000µµ2.7000µµ3.7000µµ1.8000µµ2.8000µµ3.8000¡,¸µµµµµµµµµµµµµµµµµµµµµ1.9000µµ2.9000µµ3.9000µµ2.0000µµ3.0000µµ4.0000¡,îµµµµµµµµµµµµµµµµµµµµµ2.1000µµ3.1000µµ4.1000µµ2.2000µµ3.2000µµ4.2000¡,%µµµµµµµµµµµµµµµµµµµµµ2.3000µµ3.3000µµ4.3000¡,’µµµµµµfall_constraintµ(µconstraintµ)µ:¡,ÉµµµµµµµµµVALUESµ:µµµµ1.5000µµ2.5000µµ3.5000µµ1.6000µµ2.6000µµ3.6000¡,	µµµµµµµµµµµµµµµµµµµµµ1.7000µµ2.7000µµ3.7000µµ1.8000µµ2.8000µµ3.8000¡,	6µµµµµµµµµµµµµµµµµµµµµ1.9000µµ2.9000µµ3.9000µµ2.0000µµ3.0000µµ4.0000¡,	mµµµµµµµµµµµµµµµµµµµµµ2.1000µµ3.1000µµ4.1000µµ2.2000µµ3.2000µµ4.2000¡,	¤µµµµµµµµµµµµµµµµµµµµµ2.3000µµ3.3000µµ4.3000¡,
µµEND_PINµd;’À)D“I501ileaf_page_string1:16-33¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³33¡,½²-´µµPIN(so):µout,µ,µ,µ,µ,µ,µ,µ,µ,µ,µ(,µ),µ(,µ);¡,öµµµµDELAY:µd,µso,µprop,µpos_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,/µµµµµµrise_propagationµ(µptable3x1µ)µ:¡,hµµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,¡µµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,µµµµµµfall_propagationµ(µptable3x1µ)µ:¡,LµµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,…µµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,÷µµµµµµrise_transitionµ(µscalarµ)µ:¡,0µµµµµµµµµVALUESµ:µµµµ0.4000¡,¢µµµµµµfall_transitionµ(µscalarµ)µ:¡,ÛµµµµµµµµµVALUESµ:µµµµ0.3000¡,MµµµµDELAY:µsel,µso,µdisable,µpos_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,†µµµµµµrise_propagationµ(µptable3x1µ)µ:¡,¿µµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,øµµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,kµµµµµµfall_propagationµ(µptable3x1µ)µ:¡,¤µµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,ÝµµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,Oµµµµµµrise_transitionµ(µscalarµ)µ:¡,ˆµµµµµµµµµVALUESµ:µµµµ0.3500¡,úµµµµµµfall_transitionµ(µscalarµ)µ:¡,3µµµµµµµµµVALUESµ:µµµµ0.3200¡,¥µµµµDELAY:µsel,µso,µenable,µneg_unate,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,Þµµµµµµrise_propagationµ(µptable3x1µ)µ:¡,	µµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,	PµµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,	Âµµµµµµfall_propagationµ(µptable3x1µ)µ:¡,	ûµµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,
4µµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,
¦µµµµµµrise_transitionµ(µscalarµ)µ:¡,
ßµµµµµµµµµVALUESµ:µµµµ0.2500’)+D“I501ileaf_page_string1:16-34¥	öäÃËÁâÊË¡Ä,_,I¡Ä,I	cI¡Ä	cI	c_¡Ä	c_,_ÆÃÁÊËÃ¡Ä,IÊIÆÃ¥	öä¥	öä¡8Á²Timing´µandµPowerµReportµFormat¡.16³34¡,½²-´µµµµµµfall_transitionµ(µscalarµ)µ:¡,õµµµµµµµµµVALUESµ:µµµµ0.3600¡,eµµµµDELAY:µsel,µso,µprop,µ,µ'',µ(µ,µµ),µ(µ,µµ),µ(µ,µµ);¡,µµµµµµrise_propagationµ(µptable3x1µ)µ:¡,ÕµµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,µµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,~µµµµµµfall_propagationµ(µptable3x1µ)µ:¡,¶µµµµµµµµµINDEX_1µ:µµµ1.0000µµ1.5000µµ2.0000¡,îµµµµµµµµµVALUESµ:µµµµ1.0000µµ2.0000µµ3.0000¡,^µµµµµµrise_transitionµ(µscalarµ)µ:¡,–µµµµµµµµµVALUESµ:µµµµ0.2500¡,µµµµµµfall_transitionµ(µscalarµ)µ:¡,?µµµµµµµµµVALUESµ:µµµµ0.2100¡,¯µµEND_PINµso;¡,çEND_CELLµtri_buf;¡,WNumberµofµlibraryµcells:µ3¡,Numberµofµreportedµcells:µ3¡, ²Multiple´µPowerµSupplyµSignalµInformation¡þr²The´µpowerµreportµgeneratesµsignalµlevelµinformationµforµallµpinsµin¡þ»cellsµwithµmultipleµpowerµsupplies.¡þ	I²Syntax¡þ	 ²PIN´µ(inputµpin_name)µ:¡þ	ßµµINPUT_SIGNAL_LEVELµ(inputµpin_name)µ:µ(powerµrailµname)¡þ
END_PINµ(inputµpin_name)¡þ
[PINµ(outputµpin_name)µ:¡þ
šµµOUTPUT_SIGNAL_LEVELµ(inputµpin_name)µ:µ(powerµrailµname)¡þ
ØENDµPINµ(outputµpin_name)µ;’+¤D“I501ileaf_page_string1:16-35¥	öä¥	öä¡Á²âTiming´µandµPowerµReportµFormat¡Ô¤ÿŠ16³35¡þÉ²If´µtheµpinµisµanµinoutµpin,µtheµpowerµreportµgeneratesµsignalµlevel¡þinformationµasµfollows:¡þ“²PIN´µ(inoutµpin_name)µ:¡þÐµµµINPUT_SIGNAL_LEVELµ(inoutµpin_name)µ:µ(powerµrail)¡þµµµOUTPUT_SIGNAL_LEVELµ(inoutµpin_name)µ;µ(powerµrail)¡þJEND_PINµ(inoutµpin_name)µ;¡þÇ²Example¡þ²PINµ(A):¡þXµµµINPUT_SIGNAL_LEVELµ(A)µ:µVDD1¡þ•END_PINµ(A)µ;¡þPINµ(Z)µ:¡þLµµµOUTPUT_SIGNAL_LEVELµ(Z)µ:µVDD2¡þ‰END_PINµ(Z)µ;¡þPINµ(Z1)µ;¡þ?µµµINPUT_SIGNAL_LEVELµ(Z1)µ:µVDD1¡þ|µµµOUTPUT_SIGNAL_LEVELµ(Z1)µ:µVDD2¡þ¹END_PINµ(Z1)µ;’¤ÐOPS m:m:D€‚Document:17envirÿ‚Last saved on:Tue, Dec 9, 1997 17:53:26ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:timsps8±:									
				!!!°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps9b±:
!



$
#




!

%



!




%%%%#°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:timsps12±:                                *'.$!!$$$$,$$$!$$/$$'$
                                                 $$$$$$,! $$$$$$ $$$$$  !     2  2               2                   ,   $°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°"wst:helvps11b±":)!-!!!!$!!&!$$!!+)$!!!!!!.!!$$$$$$!!!!)....+°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°0wst:courps10i±0:*°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Bwst:courps8±B:!°Gwst:courps9.5±G:(°Qwst:courps10.5±Q:,°Xwst:dutch10±X¿ '"#####) """( "" " )  *"*##!!!      ," """""#"""""  #**9 %.%   """"""""    """   """""")  °Ywst:dutch10i±Y¿ '#####) "!%  %*"*##!!!(      # #**

9',!  """"!!   %°Zwst:dutch6i±Z¿

	
	






				

"					

				



°[wst:dutch6±[¿




	




"












°\eqm:bsmth10±\5******************************	********************************************************************************  *******************************  ************     ******1        ***************#*	***********************    ****************		





*********	**  *******************°beqm:bsmth12±b5                                2 222222 2222   2 2 22  22222 22222222 222222 22 2222 22 2  22222222222222222222222222222222222222222          22222222  222222    22  222   2  222222&&      2 22 22   222222      222  22222222          22222222  2  &&222 22222 2222'''''2  22222:    &&&&&&&&22222222222 ! 2222*2        	22222222      22222222 2222222& &&& 22222222    22222222           222222   22   22           2   &&$!$222222222222 2222222°„wst:helvps14bi±„:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°¤spsa:symba10±¤#! %  !$ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿåÿÿÿÿåÿÿÿÿåÿÿåÿÿåÿÿåå™™ÿÿNîÍåÿÿ‘hˆåÿÿaK»å®áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’rŠºD“I501ileaf_page_string1:17-1¥	öä²â¡µ¡Ïµ¡žµ¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿ¤17³1¡,m²².17â²/¥	öä¡`m²â¡,v²	Building´µEnvironments¡ï²¥	öäÁÊËÃ¡Ä,ÓÊÓÆÃ¡	öï¡þ¡Variations´µinµoperatingµtemperature,µsupplyµvoltage,µand¡þémanufacturingµprocessµcauseµperformanceµvariationsµinµelectronic¡þ2networks.µTheµLibraryµCompilerµprogramµgivesµyouµtheµcapabilityµfor¡þzmodelingµtheseµvariations.µTheseµmodelsµareµusedµbyµtheµDesign¡þÃCompilerµprogramµtoµmodifyµtheµsynthesisµandµoptimization¡þenvironment.µYouµcreateµtheseµmodelsµwithµenvironmentµattributes¡þTinµaµtechnologyµlibrary.µ¡þ÷Allµenvironmentµattributesµhaveµbuilt³inµdefaultµsettingsµforµtypical¡þ	@delays.µIfµyouµrunµtheµDesignµCompilerµprogramµwithoutµvariables,¡þ	ˆoptimizationµusesµtheseµtypicalµdelays.µAlternately,µyouµcanµcreate¡þ	Ñyourµownµdefaultµsettingsµatµtheµlibraryµlevel.’ºùD“I501ileaf_page_string1:17-2¥	öäÃËÁâÊË¡Ä,Ž,x¡Ä,x	cx¡Ä	cx	cŽ¡Ä	cŽ,ŽÆÃÁÊËÃ¡Ä,xÊxÆÃ¥	öäÃÁÊË¡Ä,Ç,±¡Ä,±	c±¡Ä	c±	cÇ¡Ä	cÇ,ÇÆÃÁÊËÃ¡Äþ±Ê±ÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³2¡þÉ²The´µenvironmentµattributesµandµhowµtheyµaffectµsynthesisµand¡þoptimizationµincludeµtheseµattributesµandµtasks:¡þ–²S¡X–²Library³levelµdefaultµattributes¡þ
²S¡X
²Definingµoperatingµconditions¡þ}²S¡X}²Definingµpowerµsupplyµgroups¡þð²S¡Xð²Definingµwireµloadµgroups¡þd²S¡Xd²Selectingµwireµloadµgroupsµautomatically¡þ×²S¡X×²Specifyingµdelayµscalingµattributes¡,Î²Library³Level´µDefaultµAttributes¡þ²Global´µdefaultµvaluesµareµsetµatµtheµlibraryµgroupµlevel.µYouµcan¡þÕoverrideµmanyµofµtheseµdefaultsµforµaµspecificµentityµinµtheµlibrary¡þdefinitionµdescribedµinµChapterµ7,µBuildingµaµTechnologyµLibrary."¡þ²Default´µPinµAttributes¡þ ²These´µareµtheµdefaultsµthatµapplyµtoµallµpinsµinµaµlibrary.µInµeach¡þéattribute,µvalueµisµaµfloating³pointµnumber.¡þ	mdefault_connection_classµ:µname1µ[name2µname3µ..µ];¡X	¶Setsµaµdefaultµvalueµforµconnection_classµforµallµpinsµinµaµlibrary.¡þ
default_inout_pin_capµ:µvalue;¡X
eSetsµaµdefaultµvalueµforµcapacitanceµforµallµinoutµpinsµinµaµlibrary.¡þ
Ìdefault_input_pin_capµ:µvalue;¡XSetsµaµdefaultµvalueµforµcapacitanceµforµallµinputµpinsµinµaµlibrary.’ù÷D“I501ileaf_page_string1:17-3¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿ¤17³3¡þÉ²default_output_pin_cap´µ:µvalue;¡XSetsµaµdefaultµvalueµforµcapacitanceµforµallµoutputµpinsµinµlibrary.¡þxdefault_max_fanoutµ:µvalue;¡XÁSetsµaµdefaultµvalueµforµmax_fanoutµforµallµoutputµpinsµinµthe¡X
library.¡þpdefault_max_transitionµ:µvalue;¡X¹Setsµaµdefaultµvalueµforµmax_transitionµforµallµoutputµpinsµinµthe¡Xlibrary.¡þhdefault_fanout_loadµ:µvalue;¡X±Setsµaµdefaultµvalueµforµfanout_loadµforµallµinputµpinsµinµthe¡Xúlibrary.¡þ~TheµfollowingµexampleµshowsµdefaultµpinµattributesµinµaµCMOS¡þÇlibrary:¡þH²library´µ(example)µ{¡þ…µ...¡þÂµµ/*µdefaultµpinµattributesµ*/¡þÿµµdefault_inout_pin_capµµµµµµµµµµ:µµ1.0µ;¡þ<µµdefault_input_pin_capµµµµµµµµµµ:µµ1.0µ;¡þyµµdefault_output_pin_capµµµµµµµµµ:µµ0.0µ;¡þ¶µµdefault_fanout_loadµµµµµµµµµµµµ:µµ1.0µ;¡þòµµdefault_max_fanoutµµµµµµµµµµµµµ:µ10.0µ;¡þ/µµdefault_max_transitionµµµµµµµµµ:µ15.0µ;¡þlµµ...¡þ©}’÷ƒD“I501ileaf_page_string1:17-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³4¡þÏ²Default´µTimingµAttributes¡þy²How´µyouµdefineµdefaultµtimingµattributesµinµyourµlibraryµdependsµon¡þÂtheµtimingµdelayµmodelµyouµuse.µTheµCMOSµnonlinearµdelayµmodel¡þ
doesµnotµsupportµdefaultµtimingµattributes.µUseµonlyµtheµdefault¡þSattributesµthatµapplyµtoµyourµtimingµmodel,µwhichµcanµbeµoneµofµthe¡þœfollowing:¡þ(²S¡X(²CMOSµlinearµ(standard)µdelayµmodel¡þ¡²S¡X¡²CMOSµpiecewiseµlinearµdelayµmodel¡þ<Theµdefaultµattributesµdescribedµbelowµapplyµtoµallµdelayµmodels¡þ„unlessµotherwiseµnoted.µSeeµtheµ²&LibraryµCompilerµReference¡þÍManualµVolumeµ1²µforµdetailsµofµtheseµdelayµmodels.¡þÄ²Linear´µDelayµModel¡þn²These´µareµtheµdefaultµtimingµattributesµforµaµlibraryµthatµusesµa¡þ·CMOSµlinearµdelayµmodel.µInµeachµattributeµvalueµisµaµfloating³point¡þnumber.¡þŒdefault_inout_pin_fall_resµ:µvalue;¡XÔSetsµaµdefaultµvalueµforµfall_resistanceµforµallµinoutµpinsµinµa¡X	library.¡þ	‡default_output_pin_fall_resµ:µvalue;¡X	ÐSetsµaµdefaultµvalueµforµfall_resistanceµforµallµoutputµpinsµinµa¡X
library.¡þ
ƒdefault_inout_pin_rise_resµ:µvalue;¡X
ÌSetsµaµdefaultµvalueµforµrise_resistanceµforµallµinoutµpinsµin¡Xlibrary.’ƒªD“I501ileaf_page_string1:17-5¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿ¤17³5¡þÉ²default_output_pin_rise_res´µ:µvalue;¡XSetsµaµdefaultµvalueµforµrise_resistanceµforµallµoutputµpinsµinµa¡XZlibrary.¡þÉdefault_slope_fallµ:µvalue;¡XSetsµaµdefaultµvalueµforµslope_fallµforµallµoutputµpinsµinµthe¡XZlibrary.¡þÈdefault_slope_riseµ:µvalue;¡XSetsµaµdefaultµvalueµforµslope_riseµforµallµoutputµpinsµinµthe¡XYlibrary.¡þÈdefault_intrinsic_fallµ:µvalue;¡XSetsµaµdefaultµvalueµforµintrinsic_fallµforµallµtimingµarcsµinµthe¡XYlibrary.¡þÇdefault_intrinsic_riseµ:µvalue;µ¡XSetsµaµdefaultµvalueµforµintrinsic_riseµforµallµtimingµarcsµinµthe¡XYlibrary.¡þìExample 17³1µsetsµtheµdefaultµtimingµattributesµforµaµlinearµdelay¡þ5model.¡,²&Example 17³1³SettingµStandardµTimingµDefaultµAttributes¡þ_²library´µ(example)µ{¡þŸµ...¡þÞµµ/*µdefaultµtimingµattributesµ*/¡þ	µdefault_inout_pin_fall_resµµ:µ12.0;¡þ	\µdefault_output_pin_fall_resµ:µ12.0;¡þ	›µdefault_inout_pin_rise_resµµ:µ15.2;¡þ	Úµdefault_output_pin_rise_resµ:µ15.3;¡þ
µdefault_intrinsic_fallµµµµµµ:µ1.0;¡þ
Yµdefault_intrinsic_riseµµµµµµ:µ1.0;¡þ
˜µµ...¡þ
×}’ª¤D“I501ileaf_page_string1:17-6¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³6¡þÏ²Piecewise´µLinearµDelayµModel¡þn²These´µareµtheµdefaultµtimingµattributesµforµaµlibraryµthatµusesµa¡þ¶piecewiseµlinearµdelayµmodel.µInµeachµattribute,µvalueµisµa¡þÿfloating³pointµnumber.¡R„default_rise_delay_interceptµ:µvalue;¡”ÌSetsµaµdefaultµvalueµforµrise_delay_interceptµonµallµoutputµpins¡”inµtheµlibrary.µ¡R|default_fall_delay_interceptµ:µvalue;¡”ÄSetsµaµdefaultµvalueµforµfall_delay_interceptµonµallµoutputµpins¡”inµtheµlibrary.¡Rtdefault_rise_pin_resistanceµ:µvalue;¡”¼Setsµaµdefaultµvalueµforµrise_pin_resistanceµonµallµoutputµpins¡”inµtheµlibrary.¡Rldefault_fall_pin_resistanceµ:µvalue;¡”´Setsµaµdefaultµvalueµforµfall_pin_resistanceµonµallµoutputµpins¡”ýinµtheµlibrary.µ¡Rddefault_intrinsic_fallµ:µvalue;¡”¬Setsµaµdefaultµvalueµforµintrinsic_fallµforµallµtimingµarcsµinµthe¡”õlibrary.¡R[default_intrinsic_riseµ:µvalue;µ¡”¤Setsµaµdefaultµvalueµforµintrinsic_riseµforµallµtimingµarcsµinµthe¡”ílibrary.¡þ	qExample 17³2µillustratesµdefaultµtimingµattributeµsettingµforµa¡þ	ºpiecewiseµlinearµtimingµdelayµmodel.’¤­D“I501ileaf_page_string1:17-7¥	öäÃËÁâÊË¡Ä,$,¡Ä,	c¡Ä	c	c$¡Ä	c$,$ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿ¤17³7¡,É²&Example 17³2³Setting´µPiecewiseµLinearµDefaultµTimingµAttributes¡þ ²library´µ(example)µ{¡þ]µ...¡þšµ/*µdefaultµtimingµattributesµ*/¡þ×µdefault_rise_delay_interceptµ:µ1.0;¡þµdefault_fall_delay_interceptµ:µ1.0;¡þQµdefault_rise_pin_resistanceµµ:µ1.5;¡þŽµdefault_fall_pin_resistanceµµ:µ0.4;¡þÊµdefault_intrinsic_fallµµµµµµµ:µ1.0;¡þµdefault_intrinsic_riseµµµµµµµ:µ1.0;¡þDµ...¡þ}¡þ^²Setting´µWireµLoadµDefaults¡þý²Use´µtheµfollowingµlibrary³levelµattributesµtoµsetµwireµloadµdefaults:¡þá²default_wire_load´µAttributeµ¡þ€²Assigns´µtheµdefaultµvaluesµtoµtheµwire_loadµgroupµunlessµyouµassign¡þÉaµdifferentµvalueµforµwire_loadµbeforeµcompilingµtheµdesign.µYouµcan¡þselectµaµwire_loadµautomaticallyµbyµusingµwire_load_selection.µThis¡þZallowsµtheµDesignµCompilerµprogramµtoµselectµaµwire_loadµgroup¡þ£automaticallyµandµuseµitµforµwireµloadµestimation.¡þ	‚²Example¡þ	Í²default_wire_load´µ:µWL1;µµ’­øD“I501ileaf_page_string1:17-8¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³8¡þÏ²default_wire_load_mode´µAttribute¡þa²Gives´µtheµdefaultµwire_load_modeµforµtheµtop³levelµdesign.µThe¡þªwire_load_modeµdeterminesµhowµwireµcapacitanceµisµcomputedµfor¡þònetsµinµaµdesign.¡þˆNote:²¡XÑ²Settingµmodeµisµimportantµifµyouµhaveµspecifiedµa¡Xwire_load_selectionµgroupµinµtheµlibrary.¡þã²Example¡þ,²default_wire_load_mode´µ:µtop;¡þÁ²For´µadditionalµinformation,µreferµtoµtheµset_wire_loadµcommandµin¡þ	the²&µ²Synopsysµonlineµmanµpages.¡þ…Topµ¡XÎIfµyouµuseµtheµtopµmode,µallµnetsµatµallµhierarchicalµlevelsµuseµthe¡Xwireµloadµmodelµdefinedµforµtheµtopµlevelµinµtheµdesignµ(B50x50),¡X_whetherµorµnotµyouµhaveµselectedµaµspecificµmodelµforµanyµblock.¡XÂTheµtopµmodeµmodelsµnetsµasµifµtheµdesignµhasµnoµhierarchy³
as¡X
ifµtheµdesignµwereµlaidµoutµflatµwithµtheµphysicalµdesignµtool.¡XSTypically,µtheµwireµloadµmodelµassociatedµwithµtheµtopµdesign¡Xœdescribesµlong,µheavilyµloadedµnets.¡þþEnclosedµ¡X	GIfµyouµuseµtheµenclosedµmode,µwhenµDesignµCompilerµattachesµa¡X	modelµtoµaµnet,µitµusesµtheµwireµloadµmodelµofµtheµsmallest¡X	Ødesignµthatµfullyµenclosesµtheµnet.µInµFigure 17³1,µB40x40µisµthe¡X
!modelµofµblockµB,µtheµsmallestµblockµthatµcontainsµtheµnet.¡X
ƒIfµtheµdesignµenclosingµtheµnetµhasµnoµwireµloadµmodel,µDesign¡X
ÌCompilerµsearchesµupwardµthroughµtheµdesignµhierarchyµuntilµit¡Xfindsµaµwireµloadµmodelµandµusesµthatµmodel.’ø¦D“I501ileaf_page_string1:17-9¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿ¤17³9¡þÉ²Segmented´µ¡XIfµyouµuseµtheµsegmentedµmode,µDesignµCompiler¡Xx³¡”xDividesµnetsµthatµcrossµhierarchicalµboundariesµintoµsegments¡”¿andµestimatesµeachµnetµsegmentµvalueµfromµtheµwireµload¡”modelµofµtheµdesignµcontainingµtheµsegment¡Xy³¡”yUsesµtheµenclosedµmodeµforµallµotherµnets¡XíForµexample,µDesignµCompilerµcalculatesµsegmentµvaluesµfor¡X5theµnetµshownµinµFigure 17³1µfromµtheµB20x20,µB30x30,µand¡X~B40x40µmodelsµandµsumsµtheµnet'sµtotalµresistanceµand¡XÇcapacitanceµfromµtheµmodelµdata.¡X-Ifµtheµdesignµenclosingµaµsegmentµhasµnoµwireµloadµmodel,µthe¡Xvtoolµsearchesµupwardµthroughµtheµdesignµhierarchyµuntilµitµfindsµa¡X¿wireµloadµmodelµtoµuse.¡þCInµtheµsix³netµdesignµshownµinµFigure 17³1,µaµdifferentµwireµload¡þŒmodelµisµattachedµtoµeachµblockµinµtheµdesignµandµtoµtheµtopµlevel.¡þÔTable 17³1µshowsµtheµwireµloadµmodelµthatµwouldµbeµassociated¡þwithµeachµnetµunderµeachµmode.¡þÀNoteµthatµNetµ4µinµFigure 17³1µhasµtwoµfanoutµvalues:¡þD²S¡XD²fanoutµ=µ1µforµB40x40¡þ¸²S¡X¸²fanoutµ=µ2µforµB50x50’¦
qD“I501ileaf_page_string1:17-10¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³10¡,É²&Figure 17³1³Wire´µLoadµModelsµforµaµSpecificµDesign¡,
²¥	öäÃËÁÊË¡Ä@¡Ä@@¡Ä@¡ÄâãÇÆÃÃâ¡Ä•Î•¡Ä•è¡ÄèèÎ¡ÄèÎ•ÎâÇÆÃ²â¡ÎI¤ÿrB40x40Ã¡Ä]¢]Á¡Ä]Á·Á¡Ä·Á·¢¡Ä·¢]¢âÇÆÃÃâ¡Äe¢eÁ¡ÄeÁXÁ¡ÄXÁX¢¡ÄX¢e¢âÇÆÃâ¡úp¤ÿrB50x50¡ï¤ÿ¹B20x20¡]õ¤ÿ¹B30x30ÁÊËÃ¡ÄA4×4ÆÃÃ¡Ä5	˜	ÆÃÃ¡Älš¨šÆÃ¡‡Net 4*Ã¡ÄÂDÂÆÃ¡´Net 1¡ÀûNet 6Ã¡Ä…{8{ÆÃÃ¡Ä}{K{ÆÃ¡Ö&Net 5¡«oNet 2¡¨mNet 3¡,Block ¤ÿþA¡•Block B¡]®Block C¡e®Block DÃ¡Ä¨^¨ÖÆÃÃ¡Äø^¨^ÆÃÃ¡ÄøÖ¨ÖÆÃ²¡Ê
¡,²&Table 17³1³WireµLoadµModelsµAttachedµtoµNetsµunderµDifferentµWireµLoad¡²CModes¡þÀ²¥	öä¡ÆÀ¥	öä¡ÊÃ²"Wire´µLoadµMode²¡¨À¡þø¥	öä¡û²"Net²¡Æø¥	öä¡Êû²"T¤ÿýop²¡£ø¥	öä¡§ü²Enclosed²¡€ø¥	öä¡„ü²Segmented²¡¨ø¡þ0¥	öä¡3²Netµ1Á¡ÃÄþÅÅþþÇ²¡Æ0¥	öä¡Ê3²B50x50¡ÃÄÆ¢¢ÆÆÇ²¡£0¥	öä¡§,²$B50x50¡ÃÄ£££Ç²¡€0¥	öä¡„,²$B50x50¡ÃÄ€««€€Ç²¡¨0¡þh¥	öä¡k²Netµ2²¡Æh¥	öä¡Êk²B50x50²¡£h¥	öä¡§d²$B30x30²¡€h¥	öä¡„d²$B30x30²¡¨h¡þ ¥	öä¡£²Netµ3²¡Æ ¥	öä¡Ê£²B50x50²¡£ ¥	öä¡§œ²$B20x20²¡€ ¥	öä¡„œ²$B20x20²¡¨ ¡þØ¥	öä¡Û²Netµ4²¡ÆØ¥	öä¡ÊÛ²B50x50²¡£Ø¥	öä¡§Ô²$B50x50²¡€Ø¥	öä¡„Ô²$B50x50´
µ+µB40x40µ²*²¡¨Ø¡þ¥	öä¡²Net´µ5²¡Æ¥	öä¡Ê²B50x50²¡£¥	öä¡§²$B40x40²¡€¥	öä¡„²$B30x30´
µ+µB40x40µ+µB20x20²¡¨¡þH¥	öä¡K²Net´µ6¡ÃÄþ[Å[Å\þ\þ[Ç²¡ÆH¥	öä¡ÊK²B50x50¡ÃÄÆ[¢[¢\Æ\Æ[Ç²¡£H¥	öä¡§D²$B50x50¡ÃÄ£[[\£\£[Ç²¡€H¥	öä¡„D²$B50x50´
µ+µB40x40µ+µB30x30¡ÃÄ€[«[«\€\€[Ç²¡¨H¡þ¯²*²´µfanoutµ=µ1µforµB40x40¡þúµµµfanoutµ=µ2µforµB50x50¡þ	r²Synchronizing´µDesignµandµModelµModes.¡þ	ò²Theµcalculationsµtheµsynthesisµtoolµusesµtoµdevelopµnetµdelays¡þ
:depend,µinµpart,µonµtheµdesign'sµwireµloadµmode.µWhenµyouµattachµa¡þ
ƒwireµloadµmodeµtoµaµdesign,µthatµnewµmodeµmustµmatchµthe¡þ
Ìsamplingµmodeµthatµtheµsemiconductorµvendorµorµfloorplanµmanager¡þusedµwhenµcreatingµtheµdesign'sµwireµloadµmodel.’
qD“I501ileaf_page_string1:17-11¥	öäÃËÁâÊË¡Ä,°,š¡Ä,š	cš¡Ä	cš	c°¡Ä	c°,°ÆÃÁÊËÃ¡ÄþšÊšÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³11¡þÏ²default_wire_load_capacitance´µAttribute¡þ\²Specifies´µaµvalueµforµtheµdefaultµwireµloadµcapacitance.¡þ²Example¡þe²default_wire_load_capacitance´µ:²(µ².05²(;¡þ-²default_wire_load_resistance´µAttribute¡þ»²Specifies´µaµvalueµforµtheµdefaultµwireµloadµresistance.¡þ|²Example¡þÄ²default_wire_load_resistance´µ:²(µ².067²(;¡þŒ²default_wire_load_area´µAttribute¡þ²Specifies´µaµvalueµforµtheµdefaultµwireµloadµarea.¡þÚ²Example¡þ"²default_wire_load_area´µ:µ0.33²(;¡þê²Setting´µOtherµEnvironmentµDefaults¡þ	x²Use´µtheµfollowingµlibrary³levelµattributesµtoµsetµotherµenvironment¡þ	Àdefaults.¡þ
‡²default_max_utilization´µAttribute¡þ²Defines´µtheµupperµutilizationµlimitµplacedµonµtheµutilizationµofµaµchip.µ’ðD“I501ileaf_page_string1:17-12¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³12¡þÉ²Example¡þ²default_max_utilization´µ:µ0.08;¡þ­²Utilization´µisµdefinedµas¡,O¥	öäÃËÁÊË¡ÄkVkã¡Äkãìã¡ÄìãìV¡ÄìVkVÆÃãÊ²¡ˆT¡¦o¡Ât¡Ða¡ìl¡÷³¡C¡)e¡El¡Pl¡[³¡iA¡Šr¡›e¡·a¡TT¡žTo¡ºTt¡ÈTa¡äTl¡ïT³¡ýTC¡!Th¡=Ti¡HTp¡dT³¡rTA¡“Tr¡¤Te¡ÀTaÁÃ¡Ä%Ü%Æ²b¡ê3+²¡*3U¡N3t¡\3i¡g3l¡r3i¡}3z¡–3a¡²3t¡À3i¡Ë3o¡ç3n²¡ÊO¡þForµexample,µifµtotalµcellµareaµ=µ100,000µandµtheµtotalµdie³sizeµon¡þXwhichµtheseµcellsµwillµbeµplacedµ=µ150,000,µthenµutilizationµ=µ66.6¡þ percent.µTheµutilizationµofµaµchipµimplicitlyµdefinesµhowµmuchµroom¡þéthereµisµforµroutingµbetweenµlayersµofµsilicon.¡þ‰Generally,µtheµhigherµtheµutilizationµyouµplaceµonµaµchip,µtheµmore¡þÑdifficultµaµdesignµisµtoµrouteµbecauseµthereµisµlessµphysicalµarea¡þavailableµtoµdoµtheµrouting.¡þ¹Seeµthe²&µ²DesignµCompilerµreferenceµmanualsµforµmoreµinformation¡þonµusingµdefault_max_utilization.¡þá²default_min_porosity´µAttribute¡þ}²Defines´µtheµroutabilityµoptimizationµconstraintµwhenµusingµthis¡þÆparticularµlibraryµasµtheµtargetµlibraryµandµoptimizingµaµdesignµfor¡þ	routability.¡þ	è²Example¡þ
2²default_min_porosity´µ:µ1.03;µ¡þ
Ì²You´µcanµoverrideµdefault_min_porosityµbyµusingµthe¡þset_min_porosityµcommandµinµlc_shell.’ð¨D“I501ileaf_page_string1:17-13¥	öäÃËÁâÊË¡Ä,	#,	¡Ä,		c	¡Ä	c		c	#¡Ä	c	#,	#ÆÃÁÊËÃ¡Äþ	Ê	ÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³13¡þÏ²default_operating_conditions´µAttribute¡þd²Assigns´µaµdefaultµoperating_conditionsµgroupµnameµforµtheµlibrary.µIt¡þ¬mustµbeµspecifiedµafterµallµoperating_conditionsµgroups.µIfµthis¡þõattributeµisµnotµused,µnominalµoperatingµconditionsµapply.µReferµto¡þ>DefiningµOperatingµConditions"µlaterµinµthisµchapter.¡þ²Example¡þU²default_operating_conditions´µ:µWCCOM1;µµ¡þ%²default_cell_leakage_power´µAttribute¡þº²default_cell_leakage_power´µisµaµlibrary³levelµattribute.µItµindicates¡þtheµdefaultµleakageµpowerµforµthoseµcellsµthatµdoµnotµhaveµthe¡þKcell_leakage_powerµattribute.µ¡þ²Example¡þb²default_cell_leakage_power´µ:µ.5;¡þø²A´µwarningµisµissuedµifµtheµlibraryµhasµanyµcell_leakage_power¡þAinformationµbutµdoesµnotµhaveµtheµdefault_cell_leakage_power¡þŠattribute.µ²Q´µ¡þ	]²Examples´µofµLibrary³LevelµDefaultµAttributes¡þ	ò²Example 17³3´µillustratesµaµlibrary³levelµdefaultµattributeµsettingµforµa¡þ
:CMOSµlibrary.µTheµwire_loadµandµoperating_conditionsµgroup¡þ
ƒstatementsµillustrateµtheµrequirementµthatµgroupµnamesµthatµare¡þ
Ìreferredµtoµbyµtheµdefaultµattributes,µsuchµasµWL1µandµOP1,µmustµbe¡þdefinedµinµtheµlibrary.’¨œD“I501ileaf_page_string1:17-14¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³14¡,É²&Example 17³3³Setting´µLibrary³LevelµDefaultsµforµaµCMOSµLibrary¡þ(²library´µ(example)µ{¡þhµ...¡þ§µµ/*µdefaultµcellµattributesµ*/¡þ&µµdefault_cell_leakage_powerµµµµµ:µµ0.2;¡þ¥µµ/*µdefaultµpinµattributesµ*/¡þ$µµdefault_inout_pin_capµµµµµµµµµµ:µµ1.0;¡þdµµdefault_input_pin_capµµµµµµµµµµ:µµ1.0;¡þ£µµdefault_intrinsic_fallµµµµµµµµµ:µµ1.0;¡þãµµdefault_intrinsic_riseµµµµµµµµµ:µµ1.0;¡þ"µµdefault_output_pin_capµµµµµµµµµ:µµ0.0;¡þbµµdefault_slope_fallµµµµµµµµµµµµµ:µµ0.0;¡þ¡µµdefault_slope_riseµµµµµµµµµµµµµ:µµ0.0;¡þáµµdefault_fanout_loadµµµµµµµµµµµµ:µµ1.0;¡þ µµdefault_max_fanoutµµµµµµµµµµµµµ:µ10.0;¡þŸµµ/*µdefaultµtimingµattributesµ*/¡þµdefault_inout_pin_fall_resµµµµµ:µ0.2;¡þ^µdefault_output_pin_fall_resµµµµ:µ0.2;¡þµdefault_inout_pin_rise_resµµµµµ:µ0.33;¡þÝµdefault_output_pin_rise_resµµµµ:µ0.4;¡þ\µwire_loadµ(WL1)µ{¡þ›µµµ...¡þÛµµ}¡þ	µµoperating_conditionsµ(OP1)µ{¡þ	Zµµµ...¡þ	™µµ}¡þ	Ùµdefault_wire_loadµ:µWL1;¡þ
µdefault_operating_conditionsµ:µOP1;¡þ
Xµdefault_wire_load_modeµ:µenclosed;¡þ
—µ...¡þ
×}’œ²D“I501ileaf_page_string1:17-15¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,-,¡Ä,	c¡Ä	c	c-¡Ä	c-,-ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³15¡,Õ²Defining´µOperatingµConditions¡þl²The´µfollowingµsectionµexplainsµhowµtoµdefineµandµdetermineµvarious¡þµoperatingµconditionsµforµaµtechnologyµlibrary.¡þg²operating_conditions´µGroupµµ¡þé²An´µoperating_conditionsµgroupµisµdefinedµinµaµlibraryµgroup.µThe¡þ1syntaxµis¡þž²library´µ(²(µlib_name²µ)µ{¡þØµoperating_conditionsµ(µ²(name²µ)µ{¡þµµµµ...µ²(operatingµconditionsµdescription²µ...¡þLµµ}¡þ†}¡þ²Name´µidentifiesµtheµsetµofµoperatingµconditions.µNamesµofµall¡þZoperating_conditionsµgroupsµandµwire_loadµgroupsµmustµbeµunique¡þ£withinµaµlibrary.¡þ(Theµoperating_conditionsµgroupsµareµusefulµforµtestingµtimingµand¡þpotherµcharacteristicsµofµyourµdesignµinµpredefinedµsimulated¡þ¹environments.µTheµfollowingµattributesµareµdefinedµinµan¡þoperating_conditionsµgroup:¡þrpower_railµ:µname"µ;¡X»Theµpower_supplyµgroupµcanµdefineµoneµorµmoreµpower_rail¡X	attributes.µTheµpower_railµattributeµidentifiesµallµpowerµsupplies¡X	Lthatµhaveµnominalµoperatingµconditionsµ(definedµinµthe¡X	•operating_conditionsµgroup)µandµtheµnominalµvoltageµvalues.¡þ	òprocessµ:µmultiplier;µµ¡X
:Theµscalingµfactorµaccountsµforµvariationsµinµtheµoutcomeµofµthe¡X
ƒactualµsemiconductorµmanufacturingµsteps,µtypicallyµ1.0µforµmost¡X
Ìtechnologies.µTheµmultiplierµisµaµfloating³pointµnumberµfromµ0¡Xthroughµ100.’²>D“I501ileaf_page_string1:17-16¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³16¡þÉ²temperature´µ:µvalue;µµ¡XTheµambientµtemperatureµinµwhichµtheµdesignµisµtoµoperate,µoften¡XZ25µdegreesµCelsiusµ(roomµtemperature).µTheµvalueµisµa¡X£floating³pointµnumberµfromµ³300µthroughµ+500.¡þ1voltageµ:µvalue;µµ¡XyTheµoperatingµvoltageµofµtheµdesign,µtypicallyµ5µvoltsµforµaµCMOS¡XÂlibrary.µTheµvalueµisµaµfloating³pointµnumberµfromµ0µthrough¡X1000,µrepresentingµtheµabsoluteµvalueµofµtheµactualµvoltage.¡XSDefineµvoltageµunitsµconsistently.µReferµtoµtheµsectionµonµthe¡Xœvoltage_unitµinµChapterµ7,µBuildingµaµTechnologyµLibrary,"µfor¡Xåmoreµinformation.¡þrtree_typeµ:µmodel;¡X»Theµdefinitionµforµtheµenvironmentµinterconnectµmodel.µThe¡XDesignµCompilerµprogramµusesµtheµinterconnectµmodelµtoµselect¡XLtheµformulaµforµcalculatingµinterconnectµdelays.µTheµmodelµisµone¡X•ofµtheµfollowing:¡R"best_case_tree¡”kModelsµtheµcaseµwhereµtheµloadµpinµisµphysicallyµadjacentµto¡”´theµdriver.µInµtheµbestµcase,µallµwireµcapacitanceµisµincurred,¡”übutµnoneµofµtheµwireµresistanceµmustµbeµovercome.¡RŠbalanced_treeµ¡”ÓModelsµtheµcaseµwhereµallµloadµpinsµareµonµseparate,µequal¡”	branchesµofµtheµinterconnectµwire.µInµtheµbalancedµcase,µeach¡”	dloadµpinµincursµanµequalµportionµofµtheµtotalµwireµcapacitance¡”	­andµwireµresistance.¡R
:worst_case_treeµ¡”
ƒModelsµtheµcaseµwhereµtheµloadµpinµisµatµtheµextremeµendµof¡”
Ìtheµwire.µInµtheµworstµcase,µeachµloadµpinµincursµbothµtheµfull¡”wireµcapacitanceµandµtheµfullµwireµresistance.’>DD“I501ileaf_page_string1:17-17¥	öäÃËÁâÊË¡Ä,õ,ß¡Ä,ß	cß¡Ä	cß	cõ¡Ä	cõ,õÆÃÁÊËÃ¡ÄþßÊßÆÃ¥	öäÃÁÊË¡Ä,e,O¡Ä,O	cO¡Ä	cO	ce¡Ä	ce,eÆÃÁÊËÃ¡ÄþOÊOÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³17¡RÉ²power_rail´µ(name,µvalue)¡”Identifiesµallµpowerµsuppliesµthatµhaveµtheµnominalµoperating¡”Zconditionsµ(definedµinµtheµoperating_conditionsµgroup)µandµthe¡”£nominalµvoltageµvalues.¡þForµadditionalµinformationµaboutµtheµinterconnectµmodels,µseeµthe¡þe²&LibraryµCompilerµReferenceµManualµVolumeµ1².¡þ.²Determining´µOperatingµConditions¡þ½²The´µDesignµCompilerµprogramµdeterminesµwhichµoperating¡þconditionsµtoµuseµaccordingµtoµtheµfollowingµhierarchy:¡þ€1.¡X€Theµoperating_conditionsµgroupµdefinedµbyµtheµlc_shell¡XÆset_operating_conditionsµcommand.¡þ22.¡X2Theµoperating_conditionsµgroupµdefinedµbyµtheµLibraryµCompiler¡Xxdefault_operating_conditionsµattribute.¡þä3.¡XäNominalµoperatingµconditionsµdefinedµinµtheµlibraryµgroup.¡þž²Defining´µOperatingµConditionsµatµRuntime¡þ-²To´µdefineµanµoperating_conditionsµgroupµatµruntime,µuseµthe¡þvset_operating_conditionsµcommandµinµdc_shell.µ²-¡þð²Syntax¡þ	A²set_operating_conditions´µ²(operating_cond_name¡þ	Ô²The´µoperating_cond_nameµisµtheµnameµofµanµoperating_conditions¡þ
groupµdefinedµinµtheµlibrary.µForµexample,µtoµuseµtheµoperating¡þ
econditionsµgroupµMY_BEST,µenter¡þ
Û²dc_shell>²)´µset_operating_conditionsµMY_BEST’D/D“I501ileaf_page_string1:17-18¥	öäÃËÁâÊË¡Ä,¼,¦¡Ä,¦	c¦¡Ä	c¦	c¼¡Ä	c¼,¼ÆÃÁÊËÃ¡Äþ¦Ê¦ÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³18¡þÉ²For´µadditionalµinformation,µreferµtoµtheµset_operating_conditions¡þcommandµinµthe²&µ²Synopsysµonlineµmanµpages.¡þö²timing_range´µGroup¡þ•²A´µtiming_rangeµgroupµmodelsµstatisticalµfluctuationsµinµtheµdefined¡þÞoperatingµconditionsµdefinedµforµyourµdesignµduringµtheµoptimization¡þ&process.µAµtiming_rangeµgroupµisµdefinedµatµtheµlibrary³groupµlevel:¡þ¨²library´µ(²(lib_name²)µ{¡þåµtiming_rangeµ(²(name²)µ{¡þ"µµµ...µtiming_rangeµdescriptionµ...¡þ^µµ}¡þ›}¡þ6²A´µtiming_rangeµgroupµdefinesµtwoµmultipliersµthatµscaleµtheµsignal¡þarrivalµtimesµcomputedµbyµtheµtimingµanalyzerµwhenµitµevaluates¡þÈtimingµconstraints.µInµtheµfollowingµattributes,µmultiplierµisµa¡þfloating³pointµnumber:¡þ•faster_factorµ:µmultiplier;¡XÞScalingµfactorµappliedµtoµtheµsignalµarrivalµtimeµtoµmodelµthe¡X&fastestµpossibleµarrivalµtime.¡þslower_factorµ:µmultiplier;¡XÖScalingµfactorµappliedµtoµtheµsignalµarrivalµtimeµtoµmodelµthe¡X	slowestµpossibleµarrivalµtime.¡þ	£TheµSLOW_RANGEµandµFAST_RANGEµtimingµrangesµare¡þ	ëdescribedµinµExample 17³4.’/ƒD“I501ileaf_page_string1:17-19¥	öäÃËÁâÊË¡Ä,Ý,Ç¡Ä,Ç	cÇ¡Ä	cÇ	cÝ¡Ä	cÝ,ÝÆÃÁÊËÃ¡ÄþÇÊÇÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³19¡,É²&Example 17³4³Defining´µTimingµRanges¡þ ²library´µ(example)µ{¡þ]µµµ...¡þšµµtiming_rangeµ(SLOW_RANGE)µ{¡þ×µµµµfaster_factorµ:µ1.05;¡þµµµµslower_factorµ:µ1.2;¡þQµµ}¡þŽµµtiming_rangeµ(FAST_RANGE)µµ{¡þÊµµµµfaster_factorµ:µ0.90;¡þµµµµslower_factorµ:µ0.96;¡þDµµ}¡þµµ...¡þ¾}¡þY²In´µtheµSLOW_RANGEµtimingµrange,µtheµpossibleµdelaysµareµfrom¡þ¢1.05µtoµ1.2µtimesµtheµdelayµcalculatedµbyµtheµtimingµanalyzer.µInµthe¡þêFAST_RANGEµtimingµrange,µtheµpossibleµdelaysµareµfromµ0.90µto¡þ30.96µtimesµtheµdelayµcalculatedµbyµtheµtimingµanalyzer.¡þ²Defining´µTimingµRangesµatµRuntime¡þ¶²You´µcanµdefineµoneµorµtwoµtimingµrangesµinµlc_shellµtoµuseµwhen¡þÿoptimizingµaµdesignµinµtheµDesignµCompilerµprogram.µThe¡þHset_timing_rangesµcommandµdefinesµtheµtimingµrangesµusedµinµthe¡þdesign.µ¡þ	²Syntax¡þ	i²set_timing_ranges´µ(µ²(range_nameµ²[,²(µrange_name2²]µ)’ƒöD“I501ileaf_page_string1:17-20¥	öäÃËÁâÊË¡Ä,",¡Ä,	c¡Ä	c	c"¡Ä	c","ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,	|,	f¡Ä,	f	c	f¡Ä	c	f	c	|¡Ä	c	|,	|ÆÃÁÊËÃ¡Äþ	fÊ	fÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³20¡þÉ²Note:²¡X²The´µmodelingµmethodµpreviouslyµdescribedµproducesµaccurate¡XZresultsµinµcasesµwhereµallµtheµdelaysµhaveµaµlinearµdependency¡X£onµtheµoperatingµparameters.µInµcasesµwhereµdelaysµdoµnot¡Xìscaleµlinearlyµwithµoperatingµconditions,µthisµmethodµprovides¡X4onlyµaµfirst³orderµapproximation.µRememberµthatµtimingµranges¡X}influenceµconstraintµevaluationµonly;µtheyµdoµnotµaffectµtiming¡XÆreportsµinµtheµDesignµCompilerµprogram.µYouµcanµobtain¡Xinformationµonµtimingµrangesµthatµareµdefinedµinµaµlibraryµby¡XWusingµtheµreport_libµcommand.µµ¡þßThisµisµanµexampleµofµtheµtiming³rangeµinformationµfromµthis¡þ'command:¡þ–²Timing´µRanges:¡þNameµµµµµµµµLibraryµµµµSlowerµFactorµµµµFasterµFactor¡þE------------------------------------------------------¡þFAST_RANGEµµµtestµµµµµµµµµµ0.9600µµµµµµµµµµµ0.9000¡þ¹SLOW_RANGEµµµtestµµµµµµµµµµ1.2000µµµµµµµµµµµ1.0500¡þG²This´µexampleµillustratesµtwoµranges,µFAST_RANGEµand¡þSLOW_RANGE,µwithµtheirµrespectiveµlimits.¡,b²Defining´µPowerµSupplyµGroups¡þþ²Use´µtheµpower_supplyµgroupµtoµmodelµmultipleµpowerµsupplyµcells.¡þ	¶²power_supply´µgroup¡þ
:²The´µpower_supplyµgroupµcapturesµallµnominalµinformationµon¡þ
ƒvoltageµvariation.µItµisµdefinedµbeforeµtheµoperating_conditionsµgroup¡þ
Ìandµbeforeµtheµcellµgroups.µAllµtheµpowerµsupplyµnamesµdefinedµin¡þtheµpower_supplyµgroupµexistµinµtheµoperating_conditionsµgroup.’ö¬D“I501ileaf_page_string1:17-21¥	öäÃËÁâÊË¡Ä,­,—¡Ä,—	c—¡Ä	c—	c­¡Ä	c­,­ÆÃÁÊËÃ¡Ä,—Ê—ÆÃ¥	öäÃÁÊË¡Ä,	C,	-¡Ä,	-	c	-¡Ä	c	-	c	C¡Ä	c	C,	CÆÃÁÊËÃ¡Äþ	-Ê	-ÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³21¡þÉ²Define´µtheµpower_supplyµgroupµatµtheµlibraryµlevel.¡þR²Syntax¡þ¨²power_supply´µ()µ{¡þåµµµµµdefault_power_railµ:µstringµ;¡þ#µµµµµpower_railµ(string,µfloat)µ;¡þ`µµµµµpower_railµ(string,µfloat)µ;¡þžµµµµµ...¡þÛµµµµµ...¡þ}¡þ—²Example¡þì²power_supplyµ()µ{¡þ*µµdefault_power_railµ;µVDD0;¡þhµµµµµµpower_railµ(VDD1,µ5.0)µ;¡þ¥µµµµµµpower_railµ(VDD2,µ3.3)µ;¡þã}¡,í²Defining´µWireµLoadµGroups¡þµ²Use´µtheµwire_loadµgroupµandµwire_load_selectionµgroupµtoµselect¡þývaluesµforµtheµcapacitanceµfactor,µresistanceµfactor,µareaµfactor,¡þFslopeµandµfanout_lengthµyouµwantµtoµapplyµtoµtheµwireµdelayµmodel¡þŽforµdifferentµsizesµofµcircuitry.µ¡þ	}²wire_load´µGroup¡þ
#²The´µwire_loadµgroupµhasµanµextendedµfanout_lengthµcomplex¡þ
kattribute.¡þDefineµtheµwire_loadµgroupµatµtheµlibraryµlevel.’¬0D“I501ileaf_page_string1:17-22¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³22¡þÉ²Syntax¡,²-wire_load(²0name²-){¡,F¡þFresistance´µ:µ²0value²-;¡,z¡þzcapacitanceµ:µ²0value²-;¡,¯¡þ¯areaµ:µ²0value²-;¡,ã¡þãslopeµ:µ²0value²-;¡,¡þfanout_length(fanout²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-,µlength²B¤f¤ÿù¤l¤ÿù¤o¤ÿù¤a¤ÿù¤t¤ÿù²-,µaverage_capacitance²B¤f¤ÿù¤l¤ÿù¤o¤ÿù¤a¤ÿù¤t¤ÿù²-,¡,K¡þKµµµµµµµµµµµµµµstandard_deviation²B¤f¤ÿù¤l¤ÿù¤o¤ÿù¤a¤ÿù¤t¤ÿù²-,µnumber_of_nets²B¤i¤ÿù¤n¤ÿù¤t¤ÿù²-);¡,}µ¡þ²Note:²¡XP²Floorplan´µManagerµaloneµusesµtheµaverage_capacitance,¡X˜standard_deviation,µandµnumber_of_net.µForµmoreµinformation,¡XáseeµtheµFloorplanµManagerµUserµGuide.¡þjAµwire_loadµgroupµcontainsµallµtheµinformationµthatµtheµDesign¡þ³Compilerµprogramµneedsµtoµestimateµinterconnectµwiringµdelays.µInµa¡þüwire_loadµgroup,µyouµdefineµtheµestimatedµwireµlengthµasµaµfunction¡þDofµfanout.µYouµcanµalsoµdefineµscalingµfactorsµtoµderiveµwire¡þresistance,µcapacitance,µandµareaµfromµaµgivenµlengthµofµwire.¡þYouµcanµdefineµanyµnumberµofµwire_loadµgroupsµinµaµtechnology¡þ_library,µbutµallµwire_loadµgroupsµandµoperating_conditionsµgroups¡þ§mustµhaveµuniqueµnames.¡þ0Youµcanµdefineµtheµfollowingµattributesµinµaµwire_loadµgroup:¡þ¤resistanceµ:µvalueµ;¡Xí²&value²µisµaµfloating³pointµnumberµrepresentingµwireµresistanceµper¡X	5unitµlengthµofµinterconnectµwire.¡þ	”capacitanceµ:µvalueµ;¡X	Ü²&value²µisµaµfloating³pointµnumberµrepresentingµcapacitanceµper¡X
%unitµlengthµofµinterconnectµwire.¡þ
ƒareaµ:µvalue;¡X
Ì²&value²µisµaµfloating³pointµnumberµrepresentingµtheµareaµperµunit¡Xlengthµofµinterconnectµwire.’0fD“I501ileaf_page_string1:17-23¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³23¡þÉ²fanout_length´µ(fanout²¤i¤ÿô¤n¤ÿô¤t¤ÿô²,µlength²¤f¤ÿô¤l¤ÿô¤o¤ÿô¤a¤ÿô¤t¤ÿô²,µaverage_capacitance²¤f¤ÿô¤l¤ÿô¤o¤ÿô¤a¤ÿô¤t¤ÿô²,¡Xstandard_deviation²¤f¤ÿô¤l¤ÿô¤o¤ÿô¤a¤ÿô¤t¤ÿô²,µnumber_of_nets²¤i¤ÿô¤n¤ÿô¤t¤ÿô²);µ¡X€fanout_lengthµisµaµcomplexµattributeµthatµdefinesµvaluesµthat¡XÉrepresentµfanoutµandµlength.µTheµfanoutµvalueµisµanµinteger;¡Xlengthµisµaµfloating³pointµnumber.¡þ¦Note:²¡Xï²Ifµyouµcreateµaµwireµloadµmanually,µdefineµonlyµfanout²¤i¤ÿô¤n¤ÿô¤t¤ÿô²µand¡X8length²¤f¤ÿô¤l¤ÿô¤o¤ÿô¤a¤ÿô¤t¤ÿô².µIfµyouµgenerateµtheµwireµloadµautomaticallyµbyµusing¡X€theµcreate_wire_loadµcommand,µallµvaluesµofµfanout_lengthµare¡XÉautomaticallyµgeneratedµforµyou.¡þ]average_capacitanceµ:µvalue¡X¦valueµisµaµfloating³pointµnumberµthatµrepresentsµaverage¡Xïcapacitanceµperµnetµforµallµnetsµinµtheµgroup.¡þ]standard_deviationµ:µvalue¡X¦valueµisµaµfloating³pointµnumberµthatµrepresentsµtheµstatisticsµof¡Xïdeviationµduringµtheµprocessµofµcreatingµtheµattribute.¡þ]number_of_netsµ:µvalue¡X¦valueµisµanµintegerµusedµtoµindicateµhowµmanyµnetsµhaveµa¡Xïfanoutµnumberµequalµtoµfanout²¤i¤ÿô¤n¤ÿô¤t¤ÿô².¡þƒNote:²¡XÌ²Youµmustµdefineµatµleastµoneµpairµperµwireµloadµmodel.µYouµcan¡X	defineµasµmanyµadditionalµpairsµasµnecessaryµtoµcharacterizeµthe¡X	]fanout³lengthµbehaviorµyouµwant.¡þ	òslopeµ:µvalue;¡X
:valueµisµaµfloating³pointµnumberµrepresentingµslope.µThis¡X
ƒattributeµcharacterizesµlinearµfanoutµlengthµbehaviorµbeyondµ¡X
Ìtheµscopeµofµtheµlongestµlengthµdescribedµbyµtheµ¡Xfanout_lengthµattributes.’fBD“I501ileaf_page_string1:17-24¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³24¡þÉ²When´µtheµDesignµCompilerµprogramµencountersµmultiple¡þfanout_lengthµpoints,µitµusesµlinearµinterpolationµtoµdetermineµpoints¡þZinµbetween,µandµextrapolationµbeyondµtheµlastµpoint.¡þýFigure 17³2µillustratesµtheµcorrelationµbetweenµtheµnumberµofµpins¡þFonµtheµnet,µexcludingµtheµdriverµpin,µandµtheµestimatedµwireµlengthµof¡þŽtheµmetalµbetweenµallµtheµpins.¡,@²&Figure 17³2³WireµLoadµDefinitionµGraph¡,€²¥	öä²¡Ô™¤ÿÎ4-¡Õ]¤ÿÎ1-¡ÔÆ¤ÿÎ2-¡Ó0¤ÿÎ3-²¡X,1¡õ+2¡‰,3¡'4ÁÊËÃ¡ÄhÜhùÆÃÃ¡ÄþÜþùÆÃ¡e¤ÿº4.3²¡Ô¤ÿÎ5-²¡i›slope = 1.0¡vWire¡¨LengthÃÊË¡Ä`B`1¡Ä`1q1¡Äq1qB¡ÄqB`BãÇÆÃ¡FoNumber of Pins on the Net (minus 1)¡ü¤ÿº3.3ÊËÃ¡ÄÏóóÆÃÃ¡ÄÌWšWÆÃÃ¡Ä”Ü”ùÆÃÃ¡Ä*Ü*ùÆÃÃ¡ÄÀÜÀùÆÃÁÊËÃ¡ÄÒèÒuÆÃÃ¡ÄÒè™èÆÃ¡¸&5ÁÊËÃ¡ÄÎ1œ1ÆÃÃÊË¡ÄöÀö°¡Äö°°¡Ä°À¡ÄÀöÀÇÆÃÃ¡ÄŒŒð¡ÄŒðð¡Äð¡ÄŒÇÆÃ¡A¤ÿº1.2¡ŽÜ¤ÿº5.3ÊËÃ¡ÄÐÒžÒÆÃÃÊË¡Ä"g"V¡Ä"V3V¡Ä3V3g¡Ä3g"gÇÆÃÃ¡Ä¼Õ¼Ä¡Ä¼ÄÍÄ¡ÄÍÄÍÕ¡ÄÍÕ¼ÕÇÆÃÊËÃ¡Ä”øÀÈÆÃÊËÃ¡ÄÒôÀôÆÃËÃ¡ÄÀÌÀðÆÃËÃ¡Ä×ÑÅÑÆÃÊËÃ¡Ä¡ŽeÆÃÃÊË¡Äº¡¡Ä¡/­¡Ä/­%³¡Ä%³ºÇÆÃ²¡Ê€’B¦D“I501ileaf_page_string1:17-25¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³25¡þÉ²Example 17³5´µgivesµtheµlibraryµdescriptionµforµtheµmodelµin¡þFigure 17³2.¡,Ì²&Example 17³5³WireµLoadµDefinition¡þ&²library´µ(example)µ{¡þcµ...¡þ¡µµwire_loadµ("90x90")µ{¡þßµµµµµresistanceµ:µ0;¡þµµµµµcapacitanceµ:µ1;¡þZµµµµµareaµ:µ0;¡þ˜µµµµµslopeµ:µ1.0;¡þÕµµµµµfanout_length(µ1,µ1.2µ);¡þµµµµµfanout_length(µ2,µ2.0µ);¡þQµµµµµfanout_length(µ3,µ3.3µ);¡þŽµ}¡þÌ}¡þk²In´µExample 17³5,µtheµnameµ90x90µisµenclosedµinµquotationµmarks¡þ´becauseµitµisµaµstringµthatµbeginsµwithµaµnumber.¡þ^Youµcanµdefineµoneµwire_loadµgroupµperµdesignµatµDesignµCompiler¡þ¦runtime.µThisµisµtheµsyntaxµforµtheµset_wire_loadµcommandµin¡þïlc_shell:µ¡þv²set_wire_load´µ²(wire_load_nameµ²[²(³library²}[²(³mode²]¡þ	²The´µwire_load_nameµisµtheµnameµofµaµwire_loadµgroupµdefinedµin¡þ	]theµlibrary.µToµuseµtheµwire_loadµgroupµdefinedµinµExample 17³5,¡þ	¦enter¡þ
-²lc_shell>´µ²)set_wire_loadµ"90x90"¡þ
Ì²For´µmoreµinformation,µreferµtoµtheµset_wire_loadµcommandµinµthe²&¡þ²Synopsysµonlineµmanµpages.’¦,D“I501ileaf_page_string1:17-26¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³26¡þÉ²If´µyouµdon'tµdefineµaµwire_loadµgroup,µdefault_wire_load_resistance¡þandµdefault_wire_load_capacitanceµrespectivelyµareµusedµforµwire¡þZresistanceµandµwireµcapacitance.¡þíTheµreport_libµcommandµreportsµtheµinformationµfor¡þ6default_wire_load_capacitance,µdefault_wire_load_resistance,µand¡þdefault_wire_load_area.µTheµadditionalµwireµloadµinformationµis¡þÇreportedµinµtheµLibraryµCompilerµreportµifµitµisµavailable.¡þZAnµexampleµofµtheµoutputµofµtheµreportµofµwire_loadµmodel¡þ£containingµnewµfanout_lengthµinformationµis¡þU²Wire´µLoadingµModel:¡þNameµµµµµµµ:µ05x05¡þËLocationµµµ:µwlµ²(library_name¡þ²Resistanceµ:µ0¡þBCapacitance:µ1¡þ}Areaµµµµµµµ:µ0¡þ¹Slopeµµµµµµ:µ0.186¡þ/FanoutµµµLengthµµµµµPointsµµµµµµµAverageCap¡þcStdDeviation¡þž----------------------------------------------------------¡þÚ1µµµµµµµµ0.39µµµµµµµµµ50µµµµµµµµµµ1.30µµµµµµµµµµµµµµ0.02¡þ¤²Calculating´µWireµArea¡þ	3²The´µLibraryµCompilerµprogramµcalculatesµwireµareaµusingµoneµof¡þ	|threeµmethods:¡þ	ö²S¡X	ö²Usingµvaluesµspecifiedµwhenµtheµfanoutµvaluesµcorrespondµto¡X
=oneµofµtheµvaluesµspecifiedµinµtheµmodel¡þ
©²S¡X
©²Extrapolation¡þ²S¡X²Interpolation’,îD“I501ileaf_page_string1:17-27¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³27¡þÉ²This´µisµanµexampleµwireµloadµmodel:¡þL²wire_load(standard)´µ{¡þ€µµµµµresistanceµ:µ0.001;¡þ´µµµµµcapacitanceµ:µ1.2µ;¡þçµµµµµareaµ:µ0.5;¡þµµµµµslopeµ:µ0.311µ;¡þOµµµµµfanout_length(1,0.53);¡þƒµµµµµfanout_length(2,0.63);¡þ·µµµµµfanout_length(5,0.83);¡þë}¡þÄ²Using´µValuesµSpecified¡X²Inµtheµexample,µtheµareaµvalueµthatµisµspecifiedµinµtheµwireload¡XYmodelµisµtheµarea/unitµlengthµofµwire.µTheµfanout_lengthµisµan¡X estimationµofµtheµwireµlengthµforµaµgivenµnumberµofµfanout.µSoµif¡Xætheµdrivingµcellµhasµaµfanoutµofµ2,µareaµisµcalculatedµas¡,a²-Net´µareaµ=µarea/unit_lengthµXµfanout_length(forµgivenµfanout)¡,Žµµµµµµµµµ=µ0.5µXµ0.63µ=µ0.315¡þ$²Extrapolation¡XªFor´µfanoutµgreaterµthanµtheµlargestµfanoutµinµtheµtable,µthe¡XðLibraryµCompilerµprogramµusesµtheµslopeµ(specifiedµinµtheµwire¡X7loadµmodel)µandµtheµlargestµfanoutµvalues.µInµtheµexample,µthe¡X~fanoutµisµ6,µsoµareaµisµcalculatedµas¡,ø²-Net´µareaµ[n]µ=µµNetµarea[lastµfanout]µ+µ((fanoutµ³lastµfanout)µXµ¡,	&µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµslopeµXµarea/unit_length)¡,	\Netµarea[6]µµµ=µ{(Netµarea[5])µ+µ(µ(6³5)µXµ0.311µXµ0.5µ)}¡,	“Netµarea[5]µµµ=µµArea/unit_lengthµXµµfanout_lengthµ(forµfanoutµofµ5)¡,	Áµµµµµµµµµµµµµµ=µµ0.5µµµXµµ0.83µµµµ=µ0.42¡þ
W²Therefore,´µnetµareaµforµfanoutµ6µisµcalculatedµas¡þ
Ù²Net´µarea[6]µµµ=µµµ{(0.42)µ+µ(1µXµ0.311µXµ0.5)}µ=µ0.5755’î+D“I501ileaf_page_string1:17-28¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³28¡þÉ²For´µotherµfanoutµvalues,µtheµcalculationµis¡þZ²Net´µarea[7]µµµ=µµµ{(0.42)µ+µ(2µXµ0.311µXµ0.5)}¡þNetµarea[8]µµµ=µµµ{(0.42)µ+µ(3µXµ0.311µXµ0.5)}¡þ3²or¡þÄ²Netµarea[7]µµµ=µµµ{(0.5755)µ+µ(1µXµ0.311µXµ0.5)}¡þ´²Interpolation¡X²When´µvaluesµareµmissingµfromµtheµmodel,µtheµLibraryµCompiler¡XLprogramµusesµinterpolation.µForµaµfanoutµ3,µthereµisµnoµvalueµin¡X’theµmodelµsoµtheµcalculationµis¡,²-slope[between´µ2µandµ5µ]µ=µ(length[5]µ³µlength[2])µ/µ(5³2)¡,Hµµµµµµµµµµµµµµµµµµµµµµµµ=µ(0.83³0.63)µ/µ(5³2)µ=µ0.0666¡,Netarea[2]µµµ=µµµ0.5µµXµ0.63µ=µµ0.32¡,ºNetµareaµ[n]µ=µµNetµarea[lastµfanout]µ+µ((fanoutµ³lastµfanout)µXµ¡,çµµµµµµµµµµµµµµµµµµµµµµµµµµµslopeµXµarea/unit_length)¡,Netµareaµ[3]µ=µµNetµarea[2]µ+µ((3³2)µXµslope[betweenµ2µandµ5µ]µX¡,Cµµµµµµµµµµµµµµµµµµµµµµµµµµµarea/unit_length)¡,pNetµarea[3]µµ=µ0.32µµ+µ(1µXµ0.0666µXµ0.5)µ=µ0.3533¡þ²The´µtwoµfanoutµclosestµtoµ3µareµ2µandµ5.µTheµLibraryµCompiler¡þYprogramµcalculatesµtheµslopeµbetweenµfanoutµ2µandµ5.¡þ	Forµaµnetµareaµofµ4,µtheµcalculationµis¡þ	¡²Net´µarea[4]µµ=µ{µ0.32µµ+µ(2µXµ0.0666µXµ0.5)}µ=µ0.3866¡þ
G²or¡þ
×²Netµarea[4]µµ=µ{µ0.3533µµ+µ(1µXµ0.0666µXµ0.5)}µ=µ0.3866’+ÇD“I501ileaf_page_string1:17-29¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³29¡þÏ²wire_load_table´µGroup¡þY²You´µcanµuseµtheµwire_load_tableµgroupµtoµestimateµaccurate¡þ¡connectµdelay.µComparedµtoµtheµwire_loadµgroup,µthisµgroupµisµmore¡þêflexible³
wireµcapacitanceµandµresistanceµnoµlongerµhaveµtoµbe¡þ3strictlyµproportionalµtoµeachµother,µwhich,µinµsomeµcases,µresultsµin¡þ{moreµaccurateµconnectµdelayµestimates.µ²„µµµµµµµ¡þ	²Syntax¡þ|²wire_load_table(name²G¤s¤ÿø¤t¤ÿø¤r¤ÿø¤i¤ÿø¤n¤ÿø¤g¤ÿø²)´µ{¡þ¶µµµfanout_length(fanout²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²,µlength²G¤f¤ÿø¤l¤ÿø¤o¤ÿø¤a¤ÿø¤t¤ÿø²);¡þñµµµfanout_capacitance(fanout²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²,µcapacitance²G¤f¤ÿø¤l¤ÿø¤o¤ÿø¤a¤ÿø¤t¤ÿø²);¡þ,µµµfanout_resistance(fanout²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²,µresistance²G¤f¤ÿø¤l¤ÿø¤o¤ÿø¤a¤ÿø¤t¤ÿø²);¡þgµµµfanout_area(fanout²G¤i¤ÿø¤n¤ÿø¤t¤ÿø²,µarea²G¤f¤ÿø¤l¤ÿø¤o¤ÿø¤a¤ÿø¤t¤ÿø²);¡þ¢}¡þ2²Unlike´µinµwire_loadµgroup,µfanout_capacitance,µfanout_resistance,¡þ{andµfanout_areaµinµwire_load_tableµgroupµareµexactµvalues,µnotµper¡þÃlengthµcoefficients.¡þQTheµreport_libµcommandµreportsµtheµnewµwire_load_tableµgroup.¡þšThisµisµanµexampleµsourceµfileµcontainingµaµwire_load_tableµandµthe¡þâreportµforµtheµtable:¡þU²library(wlut)´µ{¡þµµµwire_load_table("05x05")µ{¡þËµµµµµµfanout_length(1,µ0.2)µ;¡þ	µµµµµµfanout_capacitance(1,µ0.15);¡þ	@µµµµµµfanout_resistance(1,µ0.17)µ;¡þ	{µµµµµµfanout_area(1,µ0.2)µ;¡þ	¶µµµµµµfanout_length(2,µ0.35)µ;¡þ	ðµµµµµµfanout_capacitance(2,µ0.39)µ;¡þ
+µµµµµµfanout_resistance(2,µ0.25)µ;¡þ
fµµµµµµfanout_area(2,µ0.41)µ;¡þ
¡µµµ}¡þ
Ü}’Ç¤D“I501ileaf_page_string1:17-30¥	öäÃËÁâÊË¡Ä,0,¡Ä,	c¡Ä	c	c0¡Ä	c0,0ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³30¡þÃ²Name´µµµµµµµµµ:µµµ05x05¡þþLocationµµµµµ:µµµwlut¡þ9FanoutµµµµµµµLengthµµµµµµCapacitanceµµµµResistance¡þmArea¡þ©----------------------------------------------------------¡þä1µµµµµµµµµµµµµµµµµ0.2µµµµµµµ0.15µµµµµµµµµµ0.17¡þ0.2¡þS2µµµµµµµµµµµµµµµµµ0.35µµµµµµ0.39µµµµµµµµµµ0.25¡þ‡0.41¡,p²Selecting´µWireµLoadµGroupsµAutomatically¡þ²The´µwire_load_selectionµgroupsµthatµareµdefinedµatµtheµlibraryµgroup¡þclevelµletµtheµDesignµCompilerµprogramµselectµaµwire_loadµgroupµfor¡þ¬wireµloadµestimationµautomatically.µSelectionµisµbasedµonµtheµtotal¡þôcellµareaµofµtheµdesign.µ¡þ‡Youµuseµtheµ³selection_groupµoptionµtoµtheµset_wire_loadµcommand¡þÐtoµdetermineµtheµwire_load_selectionµgroup.µIfµnoµgroupµisµselected,¡þtheµlibraryµvariableµdefault_wire_load_selectionµdeterminesµthe¡þadefaultµwire_load_selectionµgroup.¡þôNote:²¡X<²Explicitlyµchoosingµaµwire_load_selectionµgroupµisµrequiredµonly¡X…whenµauto_wire_selectionµ=µtrue;µthereµisµmoreµthanµone¡XÎwire_load_selectionµgroupµdefinedµinµtheµlibraryµandµtheµdefault¡X	groupµisµnotµtheµdesiredµgroup.¡þ	©Typically,µdefinitionsµforµwire_loadµgroupsµareµbuiltµaccordingµto¡þ	òstatisticalµexperimentsµwithµblocksµofµdifferentµsizes.µThe¡þ
:wire_load_selectionµgroupµincorporatesµthisµinformationµinµthe¡þ
ƒtechnologyµlibrary.µTheµDesignµCompilerµprogramµusesµthe¡þ
Ìinformationµduringµcompilationµtoµachieveµbetterµwiring³areaµand¡þdelay³estimationµaccuracy.’¤4D“I501ileaf_page_string1:17-31¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³31¡þÉ²Use´µmultipleµselectionµgroupsµ(Example 17³6)µtoµallowµforµdifferent¡þamountsµofµwire_loadµpessimism,µorµinµcasesµwhereµtheµsame¡þZlibraryµisµusedµforµdifferentµfabricationµprocesses.¡,²&Example 17³6³SpecificationµofµMultipleµwire_load_selectionµGroups¡,”²-wire_load_selection(really_pessimistic)´µ{¡,Ê¡þÊwire_load_from_area(min_area1,max_area1,wire_load_name1);¡,¡þwire_load_from_area(min_area2,max_area2,wire_load_name2);¡,8}¡,¥wire_load_selection(somewhat_pessimistic)µ{¡,Ü¡þÜwire_load_from_area(min_area3,max_area3,wire_load_name3);¡,¡þwire_load_from_area(min_area4,max_area4,wire_load_name4);¡,I}¡,€default_wire_load_selectionµ=µsomewhat_pessimistic;¡þ²With´µmultipleµwire_load_selectionµgroups,µyouµcanµputµboth¡þ]two³layerµandµthree³layerµwireµloadµmodelsµinµaµsingleµlibrary.¡þ¦Withoutµmultipleµwire_load_selectionµgroups,µyouµmustµupdateµyour¡þïlibraryµwithµupdate_libµifµyouµuseµaµlibraryµcompiledµwithµaµsingle¡þ7wire_load_selectionµgroupµandµwantµtoµuseµaµdifferentµgroup.µWhen¡þ€usingµmultipleµwire_load_selectionµgroups,µyouµmustµincludeµthe¡þÈdefault_wire_load_selectionµlibraryµvariableµtoµdetermineµtheµdefault¡þwire_load_selectionµgroup.¡þ´Withinµaµgivenµwire_load_selectionµgroup,µuseµwire_load_from_area¡þütoµassociateµeachµwire_loadµgroupµwithµaµdifferentµareaµrange.µThis¡þ	Epracticeµisµusefulµforµcompilingµdifferentµlevelsµofµtheµdesign¡þ	Žhierarchyµseparately.’4mD“I501ileaf_page_string1:17-32¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³32¡þÏ²wire_load_from_area´µAttribute¡þn²Use´µwire_load_from_areaµtoµassociateµeachµwire_loadµgroupµwithµa¡þ¶differentµareaµrange.µThisµpracticeµisµusefulµforµcompilingµdifferent¡þÿlevelsµofµtheµdesignµhierarchyµseparately.µ¡þ¢Thisµattributeµmustµbeµspecifiedµafterµallµwire_loadµgroups.¡þD²Syntax¡,À²-wire_load_selection(name1)´µ{¡,öµµµwire_load_from_area(²0min_area1²-,²0max_area1²-,²0wire_load_name1²-);¡,-µµµwire_load_from_area(²0min_area2²-,²0max_area2²-,²0wire_load_name2²-);¡,d}¡,šwire_load_selection(name³n)µ{¡,Ñ...¡,}¡þœ²The´µmin_areaµandµmax_areaµvaluesµgiveµtheµareaµrangeµinµlibrary¡þåcellµareaµunits.µThisµrangeµmustµnotµoverlapµwithµaµrangeµdefinedµin¡þ.anotherµwire_load_µfrom_areaµline.µTheµwire_load_nameµisµthe¡þvnameµofµtheµwire_loadµgroupµtoµuseµwhenµtheµareaµofµtheµdesign¡þ¿fallsµwithinµtheµdefinedµrangeµ(Example 17³7).’màD“I501ileaf_page_string1:17-33¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³33¡,É²&Example 17³7³Wire´µLoadµGroupµSelection¡þ²wire_load_selection(name1)´µ{¡þ[¡…[wire_load_from_area(0,100,"05x05");¡þ—¡…—wire_load_from_area(150,200,"10x10");¡þÔ}¡þl²It´µisµpracticalµtoµsetµtheµdefault_wire_load_modeµtoµenclosedµor¡þ´segmentedµinsteadµofµtop.µIfµtheµdefault_wire_load_µmodeµisµsetµto¡þýtop,µallµnetsµinµbothµtheµtopµdesignµandµsubblocksµuseµtheµwireµload¡þFmodelµselectedµfromµtheµareaµofµtheµtopµdesign.µIfµthe¡þŽdefault_wire_load_modeµisµsetµtoµenclosed,µtheµnetsµfullyµenclosed¡þ×withinµaµdesignµuseµtheµwireµloadµmodelµselectedµfromµtheµareaµof¡þ thatµsubdesign.µIfµtheµdefault_wire_load_modeµisµsetµtoµsegmented,¡þhtheµnetsµpartiallyµenclosedµwithinµaµdesignµuseµtheµwireµloadµmodel¡þ±selectedµfromµtheµareaµofµthatµsubdesign.¡þNAµdesignµwithµanµareaµoutsideµtheµlistedµrangeµisµassignedµtheµwire¡þ–loadµgroupµofµtheµnextµareaµrange.µInµExample 17³7,µaµdesignµwith¡þßanµareaµofµ120µgetsµtheµ10x10µwireµloadµgroup.¡þ|Inµthisµexample,µaµdesignµwithµanµareaµofµ20µgetsµtheµ05x05µwire¡þÅloadµgroup.¡þB²wire_load_selection(name1)´µ{¡þ~µµwire_load_from_area(50,100,"05x05");¡þ»}¡þ	S²The´µpreviousµmechanismµforµdefiningµonlyµaµsingle¡þ	›wire_load_selectionµgroupµisµavailable,µbutµitµisµtheµexception.µThe¡þ	äsyntaxµforµthatµprocessµisµstillµvalid:¡þ
a²wire_load_selection()´µ{¡þ
ž...¡þ
Ú}’à<D“I501ileaf_page_string1:17-34¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³34¡þÉ²To´µsetµtheµdefaultµwire_load_selectionµgroupµinµtheµlibraryµwhen¡þmoreµthanµoneµgroupµisµspecified,µuseµthe¡þZdefault_wire_load_selectionµattribute:¡þÞ²default_wire_load_selection´µ:µname1;¡þz²Until´µtheµdesignµisµcompletelyµmapped,µtheµtotalµareaµisµunknown.¡þÃTherefore,µtheµDesignµCompilerµprogramµusesµthe¡þdefault_wire_load,µifµdefined,µorµnoneµifµdefault_wire_loadµisµnot¡þTdefined.µTheµDesignµCompilerµprogramµselectsµtheµwireµloadµmodel¡þtoµuseµbeforeµandµduringµtimingµoperationsµandµoperationsµthat¡þåmodifyµtheµdesign,µsuchµasµupdate_timing,µreport_timing,µcompile,¡þ.andµtranslate.¡þÓYouµcanµoverrideµDesignµCompiler'sµwire_load_modeµselectionµwith¡þtheµset_wire_loadµcommand.µYouµcanµturnµautomaticµselectionµof¡þetheµwire_load_modelµoffµwhenµyouµareµworkingµinµdc_shellµby¡þ­settingµtheµauto_wire_load_selectionµtoµfalse.µForµexampleµin¡þödc_shell,µenter¡þy²dc_shell>´µ²)auto_wire_load_selectionµ=µfalse¡þ²You´µcanµalsoµturnµautomaticµselectionµofµtheµwire_load_modelµoffµby¡þ^modifyingµtheµ.synopsys_dc.setupµfile.µSetµthe¡þ§auto_wire_load_selectionµtoµfalse.¡þ	LReferµtoµtheµSynopsysµonlineµmanµpagesµforµmoreµinformationµabout¡þ	•auto_wire_load_selection.¡þ
:Theµwire_load_modelµthatµtheµDesignµCompilerµprogramµselectsµis¡þ
ƒreportedµbyµtheµreport_lib,µwhichµlistsµavailableµwire_loadsµinµthe¡þ
Ìlibrary.µTheµcompileµlogµreportsµchangesµofµtheµwireµloadµmodelµwith¡þanµinformationalµmessage.’<^D“I501ileaf_page_string1:17-35¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³35¡,Õ²Specifying´µDelayµScalingµAttributes¡þœ²The´µDesignµCompilerµprogramµcalculatesµdelayµestimatesµusingµthe¡þåscalingµfactorsµsetµinµtheµtechnologyµlibraryµenvironment.µThese¡þ-²&k³factors²µ(attributesµthatµbeginµwith²µ²k_)µareµmultipliersµthatµscale¡þvdefinedµlibraryµvalues,µtakingµintoµconsiderationµtheµeffectsµof¡þ¾changesµinµprocess,µtemperature,µandµvoltage.µ¡þgTheµLibraryµCompilerµprogramµmodelsµtheµeffectsµofµprocess,¡þ°temperature,µandµvoltageµvariationsµonµcircuitµtimingµusingµthe¡þøfollowing:¡þ²S¡X²k³factorsµthatµapplyµtoµtheµentireµlibraryµandµareµdefinedµatµthe¡XÇlibraryµlevel.¡þ>²S¡X>²User³selectedµoperatingµconditionsµthatµoverrideµtheµvaluesµin¡X„theµlibraryµforµanµindividualµcell.µSeeµScalingµFactorsµfor¡XËIndividualµCells"µlaterµinµthisµchapter.¡þaTheµscalingµfactorsµyouµdefineµforµyourµlibraryµdependµuponµthe¡þªtimingµdelayµmodelµyouµuse.µForµexample,µsomeµk³factorsµare¡þóspecificµtoµaµtimingµdelayµmodelµasµshownµinµtheµfollowingµlistµof¡þ;k³factors:¡þÄ²S¡XÄ²Intrinsicµdelayµfactors¡þ	:²S¡X	:²Slope³sensitivityµfactorsµ(CMOSµlinearµdelayµmodel)¡þ	±²S¡X	±²Driveµcapabilityµfactorsµ(CMOSµlinearµdelayµmodel)¡þ
'²S¡X
'²Pinµandµwireµcapacitanceµfactors¡þ
ž²S¡X
ž²Wireµresistanceµfactors¡þ²S¡X²Pinµresistanceµfactorsµ(CMOSµpiecewiseµlinearµdelayµmodel)’^ÌD“I501ileaf_page_string1:17-36¥	öäÃËÁâÊË¡Ä,Ø,Â¡Ä,Â	cÂ¡Ä	cÂ	cØ¡Ä	cØ,ØÆÃÁÊËÃ¡ÄþÂÊÂÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³36¡þÉ²²S¡XÉ²Intercept´µdelayµfactorsµ(CMOSµpiecewiseµlinearµdelayµmodel)¡þ?²S¡X?²Powerµscalingµfactors¡þµ²S¡Xµ²Timingµconstraintµfactors¡þKUsingµtheseµvalues,µtheµDesignµCompilerµprogramµuniformlyµscales¡þ”allµtimingµnumbersµforµtimingµanalysis.µSeeµtheµ²&LibraryµCompiler¡þÝReferenceµManualµVolumeµ1²µforµaµdescriptionµofµtheµdelayµanalysis¡þ%equationsµtheµDesignµCompilerµprogramµuses.¡þ²Calculating´µDelayµFactors¡þ·²Any´µdelayµequationµfactorµnotµaffectedµbyµprocess,µtemperature,µor¡þÿvoltageµmustµhaveµtheµcorrespondingµk³factorµsetµtoµzero.µThe¡þHdefaultµvalueµforµanyµunspecifiedµk³factorµisµzero.¡þ5²Calculating´µVoltageµDelayµFactors¡þÙ²Figure 17³3´µillustratesµtheµrelationshipµbetweenµsupplyµvoltageµand¡þ"propagatedµdelayµforµaµtypicalµtechnologyµlibrary.¡þÊFigure 17³3µshowsµthatµasµvoltageµincreases,µtheµrelative¡þ	propagationµdelayµscalingµdecreases.µForµexample,µatµ5.25µvolts,¡þ	[theµdelayµscalingµisµ0.90.µDetermineµtheµk³factorsµrelatedµtoµvoltage¡þ	£byµcalculatingµtheµslopeµofµtheµline.µComputeµtheµslopeµofµtheµlineµas¡þ	ìfollows:¡þ
q²k_volt´µ=µdelayµscalingµunitsµ/µvolt¡þ
¥µµµµµµµµµµµ=µ(0.80µ³µ1.20)µ/µ(5.50µ³µ4.50)¡þ
Ùµµµµµµµµµµµ=µ³0.4’Ì¿D“I501ileaf_page_string1:17-37¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³37¡þÉ²If´µtheµslopeµofµtheµlineµisµ³0.4µdelayµunitsµperµvolt,µtheµvalueµofµthe¡þk_voltµdelayµfactorµisµ³0.4.¡,¤²&Figure 17³3³PropagationµDelayµasµaµFunctionµofµSupplyµVoltage¡,K²¥	öäÃËÁâÊË¡Ä,F,Ñ¡Ä,Ñ2Ñ¡Ä2Ñ2F¡Ä2F,FãÇÆÃÁâÊËÃ¡Ä“â“ÆÃÃ¡Ä™¡™ÆÃ²¡€H¤ÿº0.8¡€®¤ÿº0.9¡€¤ÿº1.0¡€z¤ÿº1.1¡€ß¤ÿº1.2¡ýÒ4.5¡ŠÒ4.75¡9Ò5.0¡ÔÒ5.25¡ƒÒ5.5Ã¡ÄºoçnÆÃÁÊËÃ¡Ä•ÆÆÆÃËÃ¡Ä™a¬aÆÃËÃ¡ÄÂ“ÆÃËÃ¡Ä•ÿRÿÆÃËÃ¡Ä•™ù™ÆÃËÃ¡Ä™3 3ÆÃËÃ¡Ä´a´‹ÆÃËÃ¡ÄWW“ÆÃËÃ¡Ä™ÆÃËÃ¡Ä¤/¤“ÆÃ¡VDD (Supply Voltage)¡(Relative´µPropagationµDelay¡(P(delayµunits)²¡ÊK¡þ²Calculating´µTemperatureµDelayµFactors¡þ–²Figure 17³4´µillustratesµtheµrelationshipµbetweenµoperating¡þßtemperatureµandµpropagatedµdelayµforµaµtypicalµtechnologyµlibrary.¡þ	fFigure 17³4µshowsµthatµtheµscalingµfactorµforµtheµdelaysµinµtheµtiming¡þ	¯equationµincreasesµasµtemperatureµincreases.µDetermineµthe¡þ	øk³factorµvaluesµrelatedµtoµtemperatureµbyµcalculatingµtheµslopeµofµthe¡þ
@line.µComputeµtheµslopeµofµtheµlineµasµfollows:¡þ
¯²k_temp´µ=µdelayµscalingµunitsµ/µdegreeµCentigrade¡þ
âµµµµµµµµµµµµµ=µ(1.4µ³µ0.9)µ/µ(125µ³µ0)¡þµµµµµµµµµµµµµ=µ0.004’¿öD“I501ileaf_page_string1:17-38¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³38¡þÉ²If´µtheµslopeµofµtheµlineµisµ0.004µdelayµunitsµperµdegreeµC,µtheµvalueµof¡þtheµk_tempµdelayµfactorµisµ0.004.¡,ê²&Figure 17³4³PropagationµDelayµasµaµFunctionµofµTemperature¡,Ù²¥	öäÃËÁâÊË¡ÄüÕüB¡ÄüB¬B¡Ä¬B¬Õ¡Ä¬ÕüÕãÇÆÃâÊËÃ¡ÄÔ*q*ÆÃÃ¡ÄÐíÐ&ÆÃ²¡¯á¤ÿº0.9¡¯¤ÿº1.0¡¯Ö¤ÿº1.2¡¯,¤ÿº1.4¡bm-55¡Gm0¡om75ÁÊËÃ¡ÄÐ½{½ÆÃËÃ¡Ääi¸lÆÃ¡ç¸Operating Temperature (C)¡Relative Propagation Delay ÁÊËÃ¡ÄfaÆÃÁÊËÃ¡ÄÌhÌ"ÆÃ¡¸m25ËÃ¡Ä˜*˜{ÆÃËÃ¡ÄX&XÕÆÃËÃ¡ÄŒŒ¹ÆÃËÃ¡ÄC&CÆÃËÃ¡ÄCÐÆÃËÃ¡ÄXÐÔÐÆÃËÃ¡Ä”sÐsÆÃ¡¯¤ÿŸ0.75¡m125²¡³(delay units)²¡ÊÙ¡þ	2²Assigning´µProcessµDelayµFactors¡þ	ò²You´µscaleµforµprocessµbyµarbitrarilyµassigningµnumbersµbasedµonµthe¡þ
:effectsµofµfabricationµonµtheµtiming.µThereµareµusuallyµthree¡þ
ƒprocess³scalingµfactorsµavailableµforµaµlibrary:µbestµcaseµ(valueµless¡þ
Ìthanµ1),µnominalµ(valueµequalµorµcloseµtoµ1.0),µandµworstµcaseµ(value¡þgreaterµthanµ1)µprocessµmultipliers.’öD“I501ileaf_page_string1:17-39¥	öäÃËÁâÊË¡Ä,/,¡Ä,	c¡Ä	c	c/¡Ä	c/,/ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³39¡þÉ²Because´µprocess³scalingµfactorsµareµunitless,µthereµisµnoµgraphical¡þrepresentationµorµslopeµvalueµusedµforµprocessµk³factors.µThe¡þZportionsµofµtheµdelayµequationµaffectedµbyµprocessµscalingµshould¡þ£haveµaµvalueµofµ1.¡þ[²Setting´µCombinedµScalingµFactor¡þß²According´µtoµtheµtechnology,µyouµmightµwantµtoµcalculateµa¡þ(single³scalingµfactorµvalueµtoµaccountµforµtheµthreeµeffects:µvoltage,¡þqtemperature,µandµprocess.µToµimplementµthisµtypeµofµscaling,¡þä1.¡XäAssignµk³factorsµforµvoltageµandµtemperatureµtoµzero,µwhich¡X*nullifiesµtheµscalingµeffectsµofµvoltageµandµtemperature.¡þ2.¡XSetµtheµk³factorsµforµtheµpartsµofµtheµdelayµequationµthatµyou¡X×wantµtoµscaleµtoµ1.0.¡þ=3.¡X=Setµtheµnom_processµattributeµvalueµtoµ1.0.µInµthisµcase,µthe¡X„nom_voltageµandµnom_temperatureµattributeµsettingsµdoµnot¡XÊmatterµbecauseµbothµvoltageµandµtemperatureµscalingµeffectsµare¡Xignored.¡þw4.¡XwInµtheµoperating_conditionsµgroups,µsetµtheµcombinedµprocess,¡X¾temperature,µandµvoltageµscalingµfactor.¡þi²Intrinsic´µDelayµFactors¡þî²Intrinsic´µdelayµfactorsµscaleµtheµintrinsicµdelayµaccordingµtoµprocess,¡þ	6temperature,µandµvoltageµvariations.µEachµattributeµgivesµthe¡þ	multiplierµforµaµcertainµportionµofµtheµintrinsic³riseµdelayµor¡þ	Çintrinsic³fallµdelayµofµallµcellsµinµtheµlibrary.µInµtheµfollowingµsyntax,¡þ
multiplierµisµaµfloating³pointµnumber:¡þ
ƒk_process_intrinsic_fallµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµtheµintrinsicµfallµdelayµofµaµtimingµarcµto¡Xmodelµprocessµvariation.’ÚD“I501ileaf_page_string1:17-40¥	öäÃËÁâÊË¡Ä,¦,¡Ä,	c¡Ä	c	c¦¡Ä	c¦,¦ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³40¡þÉ²k_process_intrinsic_rise´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµtheµintrinsicµriseµdelayµofµaµtimingµarcµto¡XZmodelµprocessµvariation.¡þ½k_temp_intrinsic_fallµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµtheµintrinsicµfallµdelayµofµaµtimingµarcµto¡XNmodelµtemperatureµvariation.¡þ±k_temp_intrinsic_riseµ:µmultiplierµ;¡XúScalingµfactorµappliedµtoµtheµintrinsicµriseµdelayµofµaµtimingµarcµto¡XBmodelµtemperatureµvariation.¡þ¥k_volt_intrinsic_fallµ:µmultiplierµ;¡XíScalingµfactorµappliedµtoµtheµintrinsicµfallµdelayµofµaµtimingµarcµto¡X6modelµvoltageµvariation.¡þ™k_volt_intrinsic_riseµ:µmultiplierµ;¡XáScalingµfactorµappliedµtoµtheµintrinsicµriseµdelayµofµaµtimingµarcµto¡X*modelµvoltageµvariation.¡þà²Slope³Sensitivity´µFactors¡þs²You´µcanµdefineµslope³sensitivityµfactorsµonlyµinµaµlibraryµusingµa¡þ¼CMOSµlinearµdelayµmodel.µReferµtoµtheµinformationµaboutµtheµCMOS¡þgenericµdelayµequationsµinµ²&LibraryµCompilerµReferenceµManual¡þMVolumeµ1²µforµdetailsµonµCMOSµlinearµdelayµanalysisµequations.¡þäTheµslope³sensitivityµfactorsµscaleµtheµdelayµslopeµaccordingµto¡þ	,process,µtemperature,µandµvoltageµvariations.µEachµattributeµgives¡þ	utheµmultiplierµforµaµcertainµportionµofµtheµrise³delayµslopeµorµfall³delay¡þ	¾slopeµofµallµcellsµinµtheµlibrary.µInµtheµfollowingµsyntax,µmultiplierµisµa¡þ
floating³pointµnumber:¡þ
ƒk_process_slope_fallµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµtimingµarcµfallµslopeµsensitivityµtoµmodel¡Xprocessµvariation.’Ú¤D“I501ileaf_page_string1:17-41¥	öäÃËÁâÊË¡Ä,¦,¡Ä,	c¡Ä	c	c¦¡Ä	c¦,¦ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³41¡þÉ²k_process_slope_rise´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµtimingµarcµriseµslopeµsensitivityµtoµmodel¡XZprocessµvariation.¡þ½k_temp_slope_fallµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµtimingµarcµfallµslopeµsensitivityµtoµmodel¡XNtemperatureµvariation.¡þ±k_temp_slope_riseµ:µmultiplierµ;¡XúScalingµfactorµappliedµtoµtimingµarcµriseµslopeµsensitivityµtoµmodel¡XBtemperatureµvariation.¡þ¥k_volt_slope_fallµ:µmultiplierµ;¡XíScalingµfactorµappliedµtoµtimingµarcµfallµslopeµsensitivityµtoµmodel¡X6voltageµvariation.¡þ™k_volt_slope_riseµ:µmultiplierµ;¡XáScalingµfactorµappliedµtoµtimingµarcµriseµslopeµsensitivityµtoµmodel¡X*voltageµvariation.¡þà²Drive³Capability´µFactors¡þs²You´µcanµdefineµdriveµcapability³factorsµonlyµinµaµlibraryµusingµa¡þ¼CMOSµlinearµdelayµmodel.µReferµtoµtheµinformationµaboutµtheµCMOS¡þgenericµdelayµequationsµinµ²&LibraryµCompilerµReferenceµManual¡þMVolumeµ1µ²forµdetailsµonµCMOSµlinearµdelayµanalysisµequations.¡þäTheµdrive³capabilityµfactorsµscaleµtheµdriveµcapabilityµofµaµpin¡þ	,accordingµtoµprocess,µtemperature,µandµvoltageµvariations.µEach¡þ	uattributeµgivesµtheµmultiplierµforµaµcertainµportionµofµaµpinsµdrive¡þ	¾capabilityµinµrise³delayµorµfall³delayµanalysis.µInµtheµfollowingµsyntax,¡þ
multiplierµisµaµfloating³pointµnumber:¡þ
ƒk_process_drive_fallµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµtimingµarcµfall_resistanceµtoµmodel¡Xprocessµvariation.’¤9D“I501ileaf_page_string1:17-42¥	öäÃËÁâÊË¡Ä,g,Q¡Ä,Q	cQ¡Ä	cQ	cg¡Ä	cg,gÆÃÁÊËÃ¡ÄþQÊQÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³42¡þÉ²k_process_drive_rise´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµtimingµarcµrise_resistanceµtoµmodel¡XZprocessµvariation.¡þµk_temp_drive_fallµ:µmultiplierµ;¡XþScalingµfactorµappliedµtoµtimingµarcµfall_resistanceµtoµmodel¡XFtemperatureµvariation.¡þ¡k_temp_drive_riseµ:µmultiplierµ;¡XêScalingµfactorµappliedµtoµtimingµarcµrise_resistanceµtoµmodel¡X2temperatureµvariation.¡þk_volt_drive_fallµ:µmultiplierµ;¡XÖScalingµfactorµappliedµtoµtimingµarcµfall_resistanceµtoµmodel¡Xvoltageµvariation.¡þyk_volt_drive_riseµ:µmultiplierµ;¡XÂScalingµfactorµappliedµtoµtimingµarcµrise_resistanceµtoµmodel¡X
voltageµvariation.¡þ ²Pin³and³Wire´µCapacitanceµFactors¡þ²The´µpin³and³wireµcapacitanceµfactorsµscaleµtheµcapacitanceµofµaµpin¡þdorµwireµaccordingµtoµprocess,µtemperature,µandµvoltageµvariations.¡þ­Eachµattributeµgivesµtheµmultiplierµforµaµcertainµportionµofµthe¡þöcapacitanceµofµaµpinµorµwire.µInµtheµfollowingµsyntax,µmultiplierµisµa¡þ>floating³pointµnumber:¡þ«k_process_pin_capµ:µmultiplierµ;¡XôScalingµfactorµappliedµtoµpinµcapacitanceµtoµmodelµprocess¡X	<variation.¡þ	—k_process_wire_capµ:µmultiplierµ;¡X	àScalingµfactorµappliedµtoµwireµcapacitanceµtoµmodelµprocess¡X
(variation.¡þ
ƒk_temp_pin_capµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµpinµcapacitanceµtoµmodelµ¡Xtemperatureµvariation.’9ÜD“I501ileaf_page_string1:17-43¥	öäÃËÁâÊË¡Ä,Ö,À¡Ä,À	cÀ¡Ä	cÀ	cÖ¡Ä	cÖ,ÖÆÃÁÊËÃ¡ÄþÀÊÀÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³43¡þÉ²k_temp_wire_cap´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµwireµcapacitanceµtoµmodelµtemperature¡XZvariation.¡þÁk_volt_pin_capµ:µmultiplierµ;¡X
Scalingµfactorµappliedµtoµpinµcapacitanceµtoµmodelµvoltage¡XRvariation.¡þ¹k_volt_wire_capµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµwireµcapacitanceµtoµmodelµvoltage¡XJvariation.¡þ²CMOS´µWire³ResistanceµFactors¡þ°²Wire³resistance´µfactorsµscaleµwireµresistanceµaccordingµtoµprocess,¡þøtemperature,µandµvoltageµvariations.µEachµattributeµgivesµthe¡þAmultiplierµforµaµcertainµportionµofµtheµwireµresistance.µInµtheµfollowing¡þŠsyntax,µmultiplierµisµaµfloating³pointµnumber:¡þk_process_wire_resµ:µmultiplierµ;¡XWScalingµfactorµappliedµtoµwireµresistanceµtoµmodelµprocess¡X variation.¡þk_temp_wire_resµ:µmultiplierµ;¡XOScalingµfactorµappliedµtoµwireµresistanceµtoµmodelµtemperature¡X—variation.¡þþk_volt_wire_resµ:µmultiplierµ;¡X	GScalingµfactorµappliedµtoµwireµresistanceµtoµmodelµ¡X	voltageµvariation.’ÜD“I501ileaf_page_string1:17-44¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³44¡þÏ²Pin³Resistance´µFactors¡þ…²You´µcanµdefineµpin³resistanceµfactorsµonlyµinµlibrariesµthatµuseµa¡þÍCMOSµpiecewiseµlinearµdelayµmodel.µReferµtoµthe²&µLibraryµCompiler¡þReferenceµManualµVolumeµ1µ²forµdetailsµonµCMOSµpiecewiseµlinear¡þ^delayµanalysisµequations.µ¡þPin³resistanceµfactorsµscaleµresistanceµaccordingµtoµprocess,¡þ`temperature,µandµvoltageµvariations.µEachµattributeµgivesµthe¡þ©multiplierµforµaµcertainµportionµofµtheµwireµandµpinµresistance.µInµthe¡þòfollowingµsyntax,µmultiplierµisµaµfloating³pointµnumber:¡þ†k_process_rise_pin_resistanceµ:µmultiplierµ;¡XÎScaleµfactorµappliedµtoµrise_pin_resistanceµtoµmodelµprocess¡Xvariation.¡þ…k_process_fall_pin_resistanceµ:µmultiplierµ;¡XÎScaleµfactorµappliedµtoµfall_pin_resistanceµtoµmodelµprocess¡Xvariation.¡þ…k_temp_rise_pin_resistanceµ:µmultiplierµ;¡XÍScaleµfactorµappliedµtoµrise_pin_resistanceµtoµmodelµtemperature¡Xvariation.¡þ„k_temp_fall_pin_resistanceµ:µmultiplierµ;¡XÍScaleµfactorµappliedµtoµfall_pin_resistanceµtoµmodelµtemperature¡X	variation.¡þ	„k_volt_rise_pin_resistanceµ:µmultiplierµ;¡X	ÌScaleµfactorµappliedµtoµrise_pin_resistanceµtoµmodelµvoltage¡X
variation.¡þ
ƒk_volt_fall_pin_resistanceµ:µmultiplierµ;¡X
ÌScaleµfactorµappliedµtoµfall_pin_resistanceµtoµmodelµ¡Xvoltageµvariation.’¢D“I501ileaf_page_string1:17-45¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³45¡þÏ²Intercept³Delay´µFactors¡þc²You´µcanµdefineµintercept³delayµfactorsµonlyµinµlibrariesµthatµuseµa¡þ¬CMOSµpiecewiseµlinearµdelayµmodel.µReferµtoµtheµ²&LibraryµCompiler¡þôReferenceµManualµVolumeµ1²µforµdetailsµonµCMOSµpiecewiseµlinear¡þ=delayµanalysisµequations.¡þÕIntercept³delayµfactorsµscaleµtheµdelayµinterceptµaccordingµto¡þprocess,µtemperature,µandµvoltageµvariations.µTheseµfactorsµare¡þfusedµwithµslopeµorµintercept³typeµtimingµequations.µEachµattribute¡þ¯givesµtheµmultiplierµforµaµcertainµportionµofµtheµriseµandµfallµintercepts¡þ÷ofµallµcellsµinµtheµlibrary.µInµtheµfollowingµsyntax,µmultiplierµisµa¡þ@floating³pointµnumber:¡þ½k_process_rise_delay_interceptµ:µmultiplierµ;¡XScaleµfactorµappliedµtoµrise_delay_interceptµtoµmodelµprocess¡XOvariation.¡þ²k_process_fall_delay_interceptµ:µmultiplierµ;¡XúScaleµfactorµappliedµtoµfall_delay_interceptµtoµmodelµprocess¡XCvariation.¡þ¦k_temp_rise_delay_interceptµ:µmultiplierµ;¡XïScaleµfactorµappliedµtoµrise_delay_interceptµtoµmodel¡X7temperatureµvariation.¡þšk_temp_fall_delay_interceptµ:µmultiplierµ;¡XãScaleµfactorµappliedµtoµfall_delay_interceptµtoµmodelµtemperature¡X	,variation.¡þ	k_voltage_rise_delay_interceptµ:µmultiplierµ;¡X	×Scaleµfactorµappliedµtoµrise_delay_interceptµtoµmodelµvoltage¡X
 variation.¡þ
ƒk_voltage_fall_delay_interceptµ:µmultiplierµ;¡X
ÌScaleµfactorµappliedµtoµfall_delay_interceptµtoµmodelµ¡Xvoltageµvariation.’¢WD“I501ileaf_page_string1:17-46¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³46¡þÏ²Power³Scaling´µFactors¡þn²You´µcanµdefineµpowerµfactorsµonlyµinµlibrariesµthatµuseµaµCMOS¡þ¶technology.µPower³scalingµfactorsµscaleµtheµpowerµcomputationµin¡þÿtheµDesignµCompilerµprogramµbyµprocess,µtemperature,µandµvoltage.¡þHTheµpower³scalingµfactorsµareµlistedµbelow.µInµtheµfollowingµsyntax,¡þmultiplierµisµaµfloating³pointµnumber:¡þk_process_cell_leakage_powerµ:µmultiplierµ;¡X^Specifiesµenvironmentalµderatingµfactorsµforµthe¡X¦cell_leakage_powerµattribute.¡þk_process_internal_powerµ:µmultiplierµ;¡XVSpecifiesµenvironmentalµderatingµfactorsµforµtheµinternal_power¡Xžattribute.¡þk_temp_cell_leakage_powerµ:µmultiplierµ;¡XNSpecifiesµenvironmentalµderatingµfactorsµforµthe¡X–cell_leakage_powerµattribute.¡þýk_temp_internal_powerµ:µmultiplierµ;¡XFSpecifiesµenvironmentalµderatingµfactorsµforµtheµinternal_power¡XŽattribute.¡þõk_volt_cell_leakage_powerµ:µmultiplierµ;¡X=Specifiesµenvironmentalµderatingµfactorsµforµthe¡X†cell_leakage_powerµattribute.¡þík_volt_internal_powerµ:µmultiplierµ;¡X	5Specifiesµenvironmentalµderatingµfactorsµforµtheµ¡X	~internal_powerµattribute.’WÉD“I501ileaf_page_string1:17-47¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³47¡þÏ²Timing³Constraint´µFactors¡þn²Timing³constraint´µfactorsµscaleµtheµfollowingµtiming³constraint¡þ·valuesµtoµaccountµforµtheµeffectsµofµchangesµinµprocess,¡þÿtemperature,µandµvoltage:¡þ„²S¡X„²Setupµtime¡þø²S¡Xø²Holdµtime¡þl²S¡Xl²No³changeµtime¡þà²S¡Xà²Recoveryµtime¡þS²S¡XS²Removalµtime¡þÇ²S¡XÇ²Minimumµpulseµwidth¡þ;²S¡X;²Minimumµclockµperiod¡þ¯²S¡X¯²Skew¡þ@Anµexampleµofµaµtiming³constraintµfactorµisµk_volt_hold_rise,µwhich¡þ‰isµtheµscalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµvoltage¡þÒvariation.µForµsetup,µhold,µandµrecoveryµtimeµconstraints,µthe¡þk³factorsµcontainingµtheµriseµsuffixµareµappliedµtoµtheµrelated¡þcintrinsic_riseµvalueµofµtheµconstraintµtimingµgroup.µThoseµwithµtheµfall¡þ¬suffixµareµappliedµtoµtheµrelatedµintrinsic_fallµvalue.¡þ	OForµminimumµpulseµwidthµconstraints,µtheµfactorsµwithµtheµhighµsuffix¡þ	—areµappliedµtoµtheµmin_pulse_width_highµconstraint.µThoseµwithµthe¡þ	àlowµsuffixµareµappliedµtoµtheµmin_pulse_width_lowµconstraint.¡þ
ƒTheµmultiplierµscalingµfactorµforµtemperatureµandµvoltageµisµa¡þ
Ìfloating³pointµnumber.µTheµmultiplierµvaluesµforµprocessµisµa¡þnonnegativeµfloating³pointµnumber.’É¿D“I501ileaf_page_string1:17-48¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³48¡þÉ²The´µconstraintµk³factorsµare¡þek_process_hold_riseµ:µmultiplierµ;¡X®Scalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµprocess¡X÷variation.¡þik_process_hold_fallµ:µmultiplierµ;¡X²Scalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµprocess¡Xúvariation.¡þmk_temp_hold_riseµ:µmultiplierµ;¡XµScalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµtemperature¡Xþvariation.¡þpk_temp_hold_fallµ:µmultiplierµ;¡X¹Scalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµtemperature¡Xvariation.¡þtk_volt_hold_riseµ:µmultiplierµ;¡X½Scalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµvoltage¡Xvariation.¡þxk_volt_hold_fallµ:µmultiplierµ;¡XÁScalingµfactorµappliedµtoµholdµconstraintsµtoµmodelµvoltage¡X	variation.¡þ|k_process_setup_riseµ:µmultiplierµ;¡XÄScalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµprocess¡X	variation.¡þ	k_process_setup_fallµ:µmultiplierµ;¡X	ÈScalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµprocess¡X
variation.¡þ
ƒk_temp_setup_riseµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµ¡Xtemperatureµvariation.’¿[D“I501ileaf_page_string1:17-49¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³49¡þÉ²k_temp_setup_fall´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµtemperature¡XZvariation.¡þÁk_volt_setup_riseµ:µmultiplierµ;¡X
Scalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµvoltage¡XSvariation.¡þºk_volt_setup_fallµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµsetupµconstraintsµtoµmodelµvoltage¡XKvariation.¡þ²k_process_nochange_riseµ:µmultiplierµ;¡XúScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodel¡XCprocessµvariation.¡þªk_process_nochange_fallµ:µmultiplierµ;¡XóScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodel¡X;processµvariation.¡þ¢k_temp_nochange_riseµ:µmultiplierµ;¡XëScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodel¡X3temperatureµvariation.¡þšk_temp_nochange_fallµ:µmultiplierµ;¡XãScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodel¡X,temperatureµvariation.¡þ“k_volt_nochange_riseµ:µmultiplierµ;¡XÛScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodelµvoltage¡X	$variation.¡þ	‹k_volt_nochange_fallµ:µmultiplierµ;¡X	ÓScalingµfactorµappliedµtoµno³changeµconstraintsµtoµmodelµvoltage¡X
variation.¡þ
ƒk_process_recovery_riseµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodelµ¡Xprocessµvariation.’[±D“I501ileaf_page_string1:17-50¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³50¡þÉ²k_process_recovery_fall´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodelµprocess¡XZvariation.¡þÁk_temp_recovery_riseµ:µmultiplierµ;¡X
Scalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodel¡XStemperatureµvariation.¡þºk_temp_recovery_fallµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodel¡XKtemperatureµvariation.¡þ²k_volt_recovery_riseµ:µmultiplierµ;¡XúScalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodelµvoltage¡XCvariation.¡þªk_volt_recovery_fallµ:µmultiplierµ;¡XóScalingµfactorµappliedµtoµrecoveryµconstraintsµtoµmodelµvoltage¡X;variation.¡þ¢k_process_min_pulse_width_highµ:µmultiplierµ;¡XëScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡X3modelµprocessµvariation.¡þšk_process_min_pulse_width_lowµ:µmultiplierµ;¡XãScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡X,modelµprocessµvariation.¡þ“k_temp_min_pulse_width_highµ:µmultiplierµ;¡XÛScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡X	$modelµtemperatureµvariation.¡þ	‹k_temp_min_pulse_width_lowµ:µmultiplierµ;¡X	ÓScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡X
modelµtemperatureµvariation.¡þ
ƒk_volt_min_pulse_width_highµ:µmultiplierµ;¡X
ÌScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡Xmodelµvoltageµvariation.’±¿D“I501ileaf_page_string1:17-51¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³51¡þÉ²k_volt_min_pulse_width_low´µ:µmultiplierµ;¡XScalingµfactorµappliedµtoµminimumµpulseµwidthµconstraintsµto¡XZmodelµvoltageµvariation.¡þÁk_process_min_periodµ:µmultiplierµ;¡X
Scalingµfactorµappliedµtoµminimumµperiodµconstraintsµtoµmodel¡XRprocessµvariation.¡þ¹k_temp_min_periodµ:µmultiplierµ;¡XScalingµfactorµappliedµtoµminimumµperiodµconstraintsµtoµmodel¡XJtemperatureµvariation.¡þ±k_volt_min_periodµ:µmultiplierµ;¡XúScalingµfactorµappliedµtoµminimumµperiodµconstraintsµtoµmodel¡XBvoltageµvariation.¡þÇTable 17³2µshowsµhowµtheµconstraintsµareµcalculated.’¿D“I501ileaf_page_string1:17-52¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³52¡,É²&Table 17³2³Timing´µConstraintµEquations¡,¥*Ýž&¡È²´µintrinsic_riseµ(1µ+µ²¤D²voltageµk_volt_setup_rise)¡Èhµ¡hµ(1µ+µ²¤D²tempµk_temp_setup_rise)µ(1µ+µ²¤D²processµk_process_setup_rise)¡È³µintrinsic_fallµ(1µ+µ²¤D²voltageµk_volt_setup_fall)¡Èþµ¡þµ(1µ+µ²¤D²tempµk_temp_setup_fall)µ(1µ+µ²¤D²processµk_process_setup_fall)¡ÈIµintrinsic_riseµ(1µ+µ²¤D²voltageµk_volt_hold_rise)¡È“µ¡“µ(1µ+µ²¤D²tempµk_temp_hold_rise)µ(1µ+µ²¤D²processµk_process_hold_rise)¡ÈÞµintrinsic_fallµ(1µ+µ²¤D²voltageµk_volt_hold_fall)¡È)µ¡)µ(1µ+µ²¤D²tempµk_temp_hold_fall)µ(1µ+µ²¤D²processµk_process_hold_fall)¡Ètintrinsic_riseµ(1µ+µ²¤D²voltageµk_volt_recovery_rise)¡È¾µ¡¾µ(1µ+µ²¤D²tempµk_temp_recovery_rise)µ(1µ+µ²¤D²processµk_process_recovery_rise)¡È	intrinsic_fallµ(1µ+µ²¤D²voltageµk_volt_recovery_fall)¡ÈTµ¡Tµ(1µ+µ²¤D²tempµk_temp_recovery_fall)µ(1µ+µ²¤D²processµk_process_recovery_fall)¡ÈŸmin_pulse_width_highµ(1µ+µ²¤D²voltageµk_volt_min_pulse_width_high)¡Èéµ¡éµ(1µ+µ²¤D²tempµk_temp_min_pulse_width_high)¡È4µ¡4µ(1µ+µ²¤D²processµk_process_min_pulse_width_high)¡Èmin_pulse_width_lowµ(1µ+µ²¤D²voltageµk_volt_min_pulse_width_low)¡ÈÊµ¡Êµ(1µ+µ²¤D²tempµk_temp_min_pulse_width_low)¡Èµ¡µ(1µ+µprocessµk_process_min_pulse_width_low)¡È_min_periodµ(1µ+µ²¤D²voltageµk_volt_min_period)¡Èªµ¡ªµ(1µ+µ²¤D²tempµk_temp_min_period)µ(1µ+µ²¤D²processµk_process_min_period)¡ÈõµÁÊËÃ¡ÄEÆÆÃ¡”0Setup¡[Hold¡ÇMinimum¡‡Recovery¡iMinimumËÃ¡ÄE¨Æ¨ÆÃËÃ¡Ä@KÁKÆÃËÃ¡ÄE×Æ×ÆÃËÃ¡ÄE‚Æ‚ÆÃ¡ñPulse¡Width High¡“Clock¡½PeriodËÃ¡Ä,SÂSÆÃËÃ¡Ä9jÎjÆÃ¡”bRise¡ÏSetup¡Fall¡…Rise¡çHold¡Fall¡±Rise¡Recovery¡=FallËÃ¡Ä90Â0ÆÃ¡¡Minimum¡ËPulse¡õWidth LowËÃ¡Ä@ßÍßÆÃËÃ¡Ä9jÂjÆÃËÃ¡Ä4È½ÈÆÃ¥	öä²&¡Ê’9D“I501ileaf_page_string1:17-53¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡ñÁ²Building´µEnvironments¡Ô¤ÿŠ17³53¡þÏ²Delay´µScalingµFactorsµExample¡þl²Example 17³8´µshowsµdelayµscalingµfactors.µThisµexampleµassumes¡þµaµCMOSµlinearµdelayµmodel.¡,e²&Example 17³8³Settingµk-Factors¡þ¼²library´µ(example)µ{¡þøµ...¡þ5k_process_drive_fallµµµµµ:µµ1.0;¡þrk_process_drive_riseµµµµµ:µµ1.0;¡þ®k_process_hold_riseµµµµµµ:µµ1.0;¡þëk_process_hold_fallµµµµµµ:µµ1.0;¡þ(k_process_intrinsic_fallµ:µµ1.0;¡þek_process_intrinsic_riseµ:µµ1.0;¡þ¡k_process_pin_capµµµµµµµµ:µµ0.0;¡þÞk_process_slope_fallµµµµµ:µµ1.0;¡þk_process_slope_riseµµµµµ:µµ1.0;¡þXk_process_wire_capµµµµµµµ:µµ0.0;¡þ”k_process_wire_resµµµµµµµ:µµ1.0;¡þÑk_temp_drive_fallµµµµµµµµ:µµ0.004;¡þk_temp_drive_riseµµµµµµµµ:µµ0.004;¡þKk_temp_hold_riseµµµµµµµµµ:µµµ.0037;¡þ‡k_temp_hold_fallµµµµµµµµµ:µµµ.0037;¡þÄk_temp_intrinsic_fallµµµµ:µµ0.004;¡þk_temp_intrinsic_riseµµµµ:µµ0.004;¡þ>k_temp_pin_capµµµµµµµµµµµ:µµ0.0;¡þzk_temp_slope_fallµµµµµµµµ:µµ0.0;¡þ·k_temp_slope_riseµµµµµµµµ:µµ0.0;¡þôk_temp_wire_capµµµµµµµµµµ:µµ0.0;¡þ	0k_temp_wire_resµµµµµµµµµµ:µµ0.0;¡þ	mk_volt_drive_fallµµµµµµµµ:µ³0.4;¡þ	ªk_volt_drive_riseµµµµµµµµ:µ³0.4¡þ	çk_volt_hold_riseµµµµµµµµµ:µ³0.26;¡þ
#k_volt_hold_fallµµµµµµµµµ:µ³0.26;¡þ
`k_volt_intrinsic_fallµµµµ:µ³0.4;¡þ
k_volt_intrinsic_riseµµµµ:µ³0.4;¡þ
Úk_volt_pin_capµµµµµµµµµµµ:µµ0.0;¡þk_volt_slope_fallµµµµµµµµ:µµ0.0;’9D“I501ileaf_page_string1:17-54¥	öäÃËÁâÊË¡Ä,,w¡Ä,w	cw¡Ä	cw	c¡Ä	c,ÆÃÁÊËÃ¡ÄþwÊwÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³54¡þÃ²k_volt_slope_rise´µµµµµµµµ:µµ0.0;¡þk_volt_wire_capµµµµµµµµµµ:µµ0.0;¡þ=k_volt_wire_resµµµµµµµµµµ:µµ0.0;¡þz...¡þ¶}¡þQ²In´µthisµexample,µonlyµtheµintrinsic³rise,µintrinsic³fall,µrise³resistance,¡þšandµfall³resistanceµdelaysµareµaffectedµbyµaµchangeµinµoperating¡þãvoltage.µChangeµtoµtheµotherµvoltageµfactorsµisµnegatedµbyµusingµ0.¡þÇ²Scaling´µFactorsµforµIndividualµCells¡þf²The´µk³factorsµyouµdefineµforµtheµlibraryµasµaµwholeµdoµnotµproduce¡þ¯accurateµtimingµforµcertainµcellsµbecauseµnotµallµcellsµinµtheµsame¡þ÷libraryµscaleµuniformly:µPadsµscaleµdifferentlyµfromµcoreµcells,µthe¡þ@timingµofµvoltage³levelµpadsµvariesµwithµtemperature,µandµsomeµcells¡þ‰areµdesignedµtoµproduceµaµconstantµdelayµandµdoµnotµscaleµatµall.¡þ+Otherµcellsµdoµnotµscaleµinµaµlinearµmannerµforµprocess,µvoltage,µor¡þttemperature.µYouµcanµdefineµaµspecialµsetµofµscalingµfactorsµinµa¡þ½library³levelµgroupµcalledµscaling_factorsµandµapplyµtheµk³factorsµin¡þthisµgroupµtoµselectedµcellsµbyµusingµtheµscaling_factorsµattribute.¡þ¨Youµcanµapplyµlibrary³levelµk³factorsµtoµtheµmajorityµofµcellsµinµyour¡þñlibrary,µandµuseµthisµconstructµtoµprovideµadditionalµaccurateµ¡þ	9scalingµfactorsµforµspecialµcells.µExample 17³9µusesµtheµspecial¡þ	‚scalingµfactors.’ÀD“I501ileaf_page_string1:17-55¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³55¡,É²&Example 17³9³Individual´µScalingµFactors¡þ ²library´µ(example)µ{¡þ]¡…]k_volt_intrinsic_riseµ:µ0.987µ;¡þš¡…š...¡þ×¡…×scaling_factors("IO_PAD_SCALING")µ{¡þ¡…¡k_volt_intrinsic_riseµ:µ0.846µ;¡þQ¡…Q¡Q...¡þŽ¡…Ž}¡þÊ¡…Êcellµ(INPAD_WITH_HYSTERESIS)µ{¡þ¡…¡areaµ:µ0µ;¡þD¡…D¡Dscaling_factorsµ:µIO_PAD_SCALINGµ;¡þ¡…¡...¡þ¾¡…¾}¡þû...¡þ8}¡þÓ²Example 17³9´µdefinesµaµscalingµfactorµgroupµcalled¡þIO_PAD_SCALING,µwhichµcontainsµk³factorsµthatµareµdifferentµfrom¡þdtheµlibrary³levelµk³factors.¡þYouµcanµuseµanyµk³factorsµinµaµscaling_factorsµgroup.µThe¡þOscaling_factorsµattributeµinµtheµINPAD_WITH_HYSTERESISµcellµis¡þ˜setµtoµIO_PAD_SCALING,µsoµallµk³factorsµsetµinµthe¡þáIO_PAD_SCALINGµgroupµareµappliedµtoµtheµcell.¡þƒByµdefault,µallµcellsµwithoutµaµscaling_factorsµattributeµcontinueµto¡þÌuseµtheµlibrary³levelµk³factors.¡þ	oYouµcanµmodelµcellsµthatµdoµnotµscaleµatµallµbyµcreatingµa¡þ	·scaling_factorsµgroupµinµwhichµallµtheµk³factorµvaluesµareµsetµtoµ0.0;¡þ
noµscalingµisµdone.’ÀÛD“I501ileaf_page_string1:17-56¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡8Á²Building´µEnvironments¡.17³56¡þÏ²Scaling´µFactorsµAssociatedµwithµtheµNonlinearµDelay¡þModel¡þ§²As´µwithµtheµotherµdelayµmodels,µtheµCMOSµnonlinearµdelayµmodel¡þðscalingµfactorsµscaleµtheµdelayµbasedµonµtheµvariationµinµprocess,¡þ9temperature,µandµvoltage.µTheµfollowingµscalingµfactorsµareµspecific¡þtoµtheµCMOSµnonlinearµtimingµmodel:¡þú²S¡Xú²k_process_cell_rise¡þe²S¡Xe²k_temp_cell_rise¡þÐ²S¡XÐ²k_volt_cell_rise¡þ;²S¡X;²k_process_cell_fall¡þ¦²S¡X¦²k_temp_cell_fall¡þ²S¡X²k_volt_cell_fall¡þ|²S¡X|²k_process_rise_propagation¡þç²S¡Xç²k_temp_rise_propagation¡þR²S¡XR²k_volt_rise_propagation¡þ½²S¡X½²k_process_fall_propagation¡þ(²S¡X(²k_temp_fall_propagation¡þ“²S¡X“²k_volt_fall_propagation¡þþ²S¡Xþ²k_process_rise_transition¡þ	i²S¡X	i²k_temp_rise_transition¡þ	Ó²S¡X	Ó²k_volt_rise_transition¡þ
>²S¡X
>²k_process_fall_transition¡þ
©²S¡X
©²k_temp_fall_transition¡þ²S¡X²k_volt_fall_transition’Û6D“I501ileaf_page_string1:17-57¥	öä¥	öä¡ñÁ²âBuilding´µEnvironments¡Ô¤ÿŠ17³57¡þÉ²The´µprocess,µtemperature,µandµvoltageµscalingµfactorsµforµother¡þCMOSµdelayµmodelsµareµnotµvalidµwithµtheµCMOSµnonlinearµtiming¡þZmodel.µTheµLibraryµCompilerµprogramµchecksµtheseµattributesµas¡þ£invalidµandµissuesµanµerrorµmessage.µOnlyµtheµscalingµfactorsµlisted¡þìaboveµareµvalidµwithµtheµnonlinearµtimingµmodel.¡þ–TheµDesignµCompilerµprogramµusesµtheµsameµfactorsµdescribedµfor¡þÞtheµCMOSµlinearµdelayµmodelµtoµscaleµpinµandµwireµcapacitance,¡þ'andµwireµresistanceµforµtheµnonlinearµdelayµmodel.¡þÑDefineµtheµscalingµfactorsµforµsetup,µhold,µrecovery,µremoval,µand¡þskewµinµtheµnonlinearµdelayµmodelµinµtheµsameµwayµyouµdoµforµthe¡þbotherµdelayµmodels.µForµtheµnonlinearµdelayµmodel,µhowever,µthey¡þ«applyµtoµtheµvaluesµgivenµinµtheµassociatedµconstraintµtable.¡þUForµexample,µtheµtimingµconstraintµequationµforµsetupµriseµis¡þÛ²rise_constraint´µ*µ(1µ+µdelta_voltageµ*µk_volt_setup_rise)µ¡þ*µ(1µ+µdelta_tempµ*µk_temp_setup_rise)µ¡þC*µ(1µ+µdelta_processµ*µk_process_setup_rise).¡þâ²rise_constraint´µisµaµvalueµinµtheµrise_constraintµtableµofµtheµtiming¡þ+arc.µTheseµareµtheµscalingµfactorsµforµtheµsetup_risingµtiming¡þsconstraint:¡þý²S¡Xý²k_volt_setup_rise¡þ	t²S¡X	t²k_temp_setup_rise¡þ	ë²S¡X	ë²k_process_setup_rise¡þ
ƒTheµscaling_factorsµgroupµisµnotµaffectedµbyµtheµchangeµfromµlinear¡þ
Ìtoµnonlinearµdelayµmodel.µTheµscalingµfactorsµforµsetupµriseµareµvalid¡þinµtheµscaling_factorsµgroup.’6¸D“I501ileaf_page_string1:17-58¥	öä¥	öä¡8Á²âBuilding´µEnvironments¡.17³58¡þÉ²These´µareµtwoµmethodsµforµspecifyingµnonlinearµdelayµtables.¡þ¨²Methodµ1¡þ²Useµrise/fallµpropagationµwithµrise/fallµtransitionµtablesµinµwhichµthe¡þ]totalµcellµdelayµisµtheµsumµofµpropagationµdelayµandµtransitionµdelay.¡þ¥Useµtheseµattributes:µk_process_rise_propagation,¡þîk_temp_rise_propagation,µk_volt_rise_propagation,µandµsoµon.¡þÍ²Methodµ2¡þ9²Useµtheµcell_rise/cell_fallµdelayµtablesµinµwhichµtheµtransitionµdelay¡þ‚isµtheµindexµintoµtheµcell³delayµtable.µUseµtheseµattributes:¡þÊk_process_cell_rise,µk_temp_cell_rise,µk_volt_cell_rise,µandµsoµon.¡þmYouµcannotµuseµtheseµk³factorsµinterchangeably.µForµexample,¡þ¶cell_riseµdelayµisµnotµscaledµbyµk_process_riseµpropagation,¡þþk_temp_rise_propagationµandµsoµon.µTheµrise_propagationµdelayµis¡þGnotµscaledµbyµk_process_cell_riseµandµsoµon.’¸ÐOPS m:m:D€‚Document:18cmosÿ‚Last saved on:Tue, Dec 9, 1997 17:53:27ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:newcsps12±:                                *)
%$$$'$!'*'!/)'!'$ !)$1##
,'                                 #                $$$$$$2$$$$$ )''''' '))))  (     2  2               2                   2   *°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:timsps11±:&$*!!!!!)!!!!!+!!$!	!!!!!!)!!!!!!!!!!!...)!°wst:helvps10b±:%)!#!!(%!*!!!!!!%****(°sym:clas14±€%<%%<%<<<%<<<%%%%%%<%%%%%%%%%%%%:8 %8=8 89%=% 89/#25$ 5 2%%" 323-, %92 A = 7/# 5-$5"229  3 -3-3372"A"=<°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°$wst:helvps9±$:

!




&
#






%



!




%%%%#°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°'wst:helvps12i±':                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°(wst:courps12i±(:                                                                                          2                                       °)wst:courps12b±):                                                                                          2                                       °-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°8wst:avgaps12i±8:                                $'&+%)%,".%+,!#0""" "!"


/!""*"                                                 %%%%%%2) %+++++ +!!!!  """""": !!!!



 !!!!! !   2  2               ;                   <   9°:wst:avgaps14±::%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%* -,#          ###"2+!/+3("5+2"3#&)8#"#'((&(&'#6#&((# 0'#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    %$%%%%%%%%%%!%%%%%"++++++:/%+22222%2&&&&%% ((((((C&&&&&%#&&&&&%&####%%% :%%:%%%%%%%%%  %%%%%%D
%%%%%%%%%%%%%%% %%%%E%%%B°Cwst:courps10b±C:*°Nwst:courps12bi±N:                                                                                          2                                       °Rwst:timsps12b±R:                                2*/$!$$!'''!/$''$!$$2$$!*$                                                 $$$$$$2$!!!! $''''' '$$$$  $     2  2               2                   2   $åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€å®åÿÿ‘hˆå™™ÿÿNîÍåÿÿaK»áýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’MBND“I501ileaf_page_string1:18-1¥	öä²â¡²¡Ï²¡ž²¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿ¤18³1¡,m²².18â²/¥	öä¡`m²â¡,ˆ²	Verifying´µCMOSµLibraries¡²¥	öäÁÊËÃ¡Ä,ëÊëÆÃ¡	ö¡þÉThe´µDesignµCompilerµprogramµusesµinformationµfromµtechnology¡þlibrariesµtoµdriveµitsµoptimizationµstrategiesµandµtoµcheckµthat¡þZsolutionsµadhereµtoµtheµdesigner'sµspecifications.µTheµresultsµof¡þ£optimizationµareµonlyµasµaccurateµasµtheµtechnologyµlibraryµused.µ¡þSToµverifyµandµvalidateµCMOSµtechnologyµandµsymbolµlibraries,µyou¡þœmustµunderstandµtheµfollowing:¡þ	*²S¡X	*²Libraryµverification¡þ	¤²S¡X	¤²Checkingµlibraryµconsistency¡þ
²S¡X
²Preparingµaµtestµcircuit¡þ
š²S¡X
š²Verifyingµfunctionality¡þ²S¡X²Verifyingµtimingµparameters’NTD“I501ileaf_page_string1:18-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³2¡,Õ²Library´µVerification¡þÃ²To´µensureµoptimalµresults,µyouµmustµmakeµsureµthatµtechnology¡þlibrariesµhaveµtheµfollowingµproperties:¡þ§²S¡X§²Accuracy³
Theµtimingµvaluesµandµfunctionalµdescriptionsµmust¡Xîbeµcorrectµandµconsistent.¡þs²S¡Xs²Completeness³
DescribeµallµcellsµavailableµfromµtheµASIC¡Xºvendorµinµtheµtechnologyµlibrary.µUseµaµcompleteµdelay¡Xcalculationµmodel.¡þ…²S¡X…²Consistency³
Allµcellsµinµtheµtechnologyµlibraryµmustµhaveµan¡XÌequivalentµgraphicµrepresentationµinµtheµsymbolµlibrary.¡þzIfµyouµalreadyµhaveµtheµinformationµneededµtoµcreateµaµlibraryµfileµin¡þÃanotherµdatabase,µyouµcanµdevelopµtoolsµthatµautomaticallyµcreateµa¡þtechnologyµlibraryµfromµtheµinformationµinµyourµsimulationµlibraries.¡þTSynopsysµencouragesµtheµdevelopmentµofµtheseµtools.µAn¡þautomatedµsystemµforµcreatingµtechnologyµlibrariesµensures¡þ9²S¡X9²Accuracy,µbyµeliminatingµmanualµerrors¡þ¾²S¡X¾²Completeness,µbyµderivingµinformationµfromµtheµcoreµdatabase¡þ	C²S¡X	C²Consistentµresults,µbyµusingµaµsingleµsourceµofµdata¡þ	òYouµcanµtestµaµsynthesisµlibraryµbyµusingµSynopsys'µVSS Family.¡þ
:TheµLibraryµCompilerµprogramµautomaticallyµgeneratesµthe¡þ
ƒsimulationµmodels,µtestµbenches,µtestµvectors,µandµaµshellµscript.¡þ
ÌReferµtoµtheµ²&LibraryµCompilerµReferenceµManualµVolumeµ2²µfor¡þadditionalµinformation.’T¦D“I501ileaf_page_string1:18-3¥	öäÃËÁâÊË¡Ä,ß,É¡Ä,É	cÉ¡Ä	cÉ	cß¡Ä	cß,ßÆÃÁÊËÃ¡Ä,ÉÊÉÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿ¤18³3¡þÉ²To´µverifyµaµlibrary,µyouµneed¡þM²S¡XM²Theµnewµlibraryµtoµbeµverified¡þÀ²S¡XÀ²Aµknown,µminimumµlibraryµ(SeeµChapterµ2,µLibrary¡XDevelopmentµProcedure,"µforµtheµminimumµcellsµrequired.)¡þz²S¡Xz²Aµspeciallyµdesignedµtestµcircuit¡þí²S¡Xí²Theµsimulatorµandµtimingµanalyzerµfromµyourµdevelopment¡X3environment¡þÄBothµtheµlibraryµtoµbeµverifiedµandµtheµknownµlibraryµareµusedµin¡þsynthesisµandµoptimizationµunderµveryµcontrolledµcircumstances.µBy¡þUcomparingµtheµresults,µyouµcanµdetermineµwhetherµtheµnewµlibraryµis¡þžaccurate.¡þ?Theµproceduresµworkµwellµonµcombinationalµlogicµandµsimpleµcells.¡þˆLibrariesµthatµcontainµcomplex,µsequentiallyµmodeledµcellsµcanµbe¡þÑtested,µbutµtheµresultsµmayµnotµbeµrobust.µContactµtheµSynopsys¡þhotlineµforµadditionalµsupport.¡, ²Checking´µLibraryµConsistency¡þÝ²The´µcompare_libµcommandµcomparesµaµtechnologyµlibraryµandµa¡þ	&symbolµlibraryµforµconsistency.µTheseµlibrariesµmustµalreadyµbe¡þ	oloadedµinµDesignµCompiler.µUseµtheµlistµcommandµtoµdisplayµthe¡þ	·librariesµthatµareµresidentµinµDesignµCompiler.¡þ
YThisµisµtheµsyntaxµforµtheµcompare_libµcommand:¡þ
Ú²compare_lib´µ²(filename1µfilename2’¦—D“I501ileaf_page_string1:18-4¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³4¡þÉ²filename1´µandµfilename2µareµtheµnamesµofµtheµlibrariesµtoµbe¡þcompared.µOneµmustµbeµaµtechnologyµlibraryµandµtheµotherµaµsymbol¡þZlibrary.µYouµcanµwriteµtheseµnamesµinµanyµorder.¡þýTheµcompare_libµcommandµperformsµtwoµchecks.µFirst,µitµverifies¡þFthatµeachµcellµinµtheµtechnologyµlibraryµhasµaµcorrespondingµsymbol¡þŽdefinitionµinµtheµsymbolµlibrary.µSecond,µitµchecksµthatµtheµpinµnames¡þ×ofµeachµcellµinµtheµtechnologyµlibraryµmatchµtheµpinµnamesµdefined¡þ forµtheµcellsµcorrespondingµsymbol.µ¡þÂInµtheµfollowingµexample,µtheµlistµcommandµverifiesµthatµtheµlibraries¡þyouµwantµtoµcompareµareµalreadyµresident.µThenµtheµcompare_lib¡þTcommandµcomparesµtheµcmos.dbµtechnologyµlibraryµwithµthe¡þœcmos.sdbµsymbolµlibrary.¡þ²lc_shell>´µ²)listµ³libraries¡þ—²LibraryµµµµFileµµµµµµPath¡þÔ-------µµµµ----µµµµµµ----¡þcmosµµµµµµµcmos.dbµµµ/home/user/libraries¡þNcmosµµµµµµµcmos.sdbµµ/home/user/libraries¡þÈlc_shell>²)µcompare_libµcmos.dbµcmos.sdb¡þc²Design´µCompilerµreportsµdiscrepanciesµbetweenµtheµlibraries.’—”D“I501ileaf_page_string1:18-5¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿ¤18³5¡,Õ²Preparing´µaµTestµCircuit¡þ”²You´µmustµprepareµaµtestµcircuitµdesignµforµeachµtechnologyµlibrary¡þÝthatµyouµwantµtoµtest.µMostµofµtheµtestµandµevaluationµprocedures¡þ%describedµinµthisµchapterµassumeµthatµyouµareµusingµaµtestµcircuit¡þndesignµwithµaµspecificµtopology.µAfterµyouµcreateµthisµdesign,µyou¡þ·canµuseµitµinµeachµofµtheµverificationµprocedures.µ¡þYTheµtestµdesignµcontainsµatµleastµoneµofµeachµcellµinµtheµtechnology¡þ¢libraryµbeingµtested.µConnectµeachµcell'sµinputµinµaµdesignµto¡þëseparateµinputµpinsµinµtheµmodule,µandµconnectµitsµoutputµpins¡þ3directlyµtoµaµseparateµmoduleµoutput.µEachµclockµpinµshouldµbe¡þ|drivenµfromµaµseparateµpin.µYouµneedµmultipleµclockµpinsµifµcellsµin¡þÅtheµlibraryµrequireµmoreµthanµaµsingleµclock.¡þgExample 18³1µshowsµaµsampleµVHDL³formatµnetlistµcreatedµforµa¡þ°libraryµthatµcontainsµtheµcellsµINV,µNAND2,µOR2,µMUX21,µAOI22,²¡þù²and²µ²DFF².’”$D“I501ileaf_page_string1:18-6¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³6¡,É²&Example 18³1³Sample´µVHDL³FormatµNetlist¡,%²-entity´µTEST_CIRCUITµis¡,`port(µI1,µI2,µI3,µI4,µCLKµ:µinµBIT;µO1,µO2,µO3,µO4,µO5,µO6,µO7µ:µoutµBIT);¡,ÔendµTEST_CIRCUIT;¡,IarchitectureµSTRUCTURAL_VIEWµofµTEST_CIRCUITµis¡,¾µµµcomponentµDFF¡,øµµµµµµport(µD,µCPµ:µinµBIT;µQ,µQNµ:µoutµBIT);¡,3µµµendµcomponent;¡,§µµµcomponentµAOI22¡,âµµµµµµport(µA,µB,µC,µDµ:µinµBIT;µZµ:µoutµBIT);¡,µµµendµcomponent;¡,‘µµµcomponentµNAND2¡,Ëµµµµµµport(µA,µBµ:µinµBIT;µZµ:µoutµBIT);¡,µµµendµcomponent;¡,zµµµcomponentµMUX21¡,µµµµµµµport(µA,µB,µSµ:µinµBIT;µZµ:µoutµBIT);¡,ïµµµendµcomponent;¡,dµµµcomponentµOR2¡,žµµµµµµport(µA,µBµ:µinµBIT;µZµ:µoutµBIT);¡,Ùµµµendµcomponent;¡,µµµcomponentµINV¡,Mµµµµµµport(µAµ:µinµBIT;µZµ:µoutµBIT);¡,ˆµµµendµcomponent;¡,ýbegin¡,	7µµO1_labelµ:µINVµportµmap(µAµ=>µI1,µZµ=>µO1);¡,	qµµO2_labelµ:µNAND2µportµmap(µAµ=>µI1,µBµ=>µI2,µZµ=>µO2);¡,	¬µµO3_labelµ:µOR2µportµmap(µAµ=>µI1,µBµ=>µI2,µZµ=>µO3);¡,	æµµO4_labelµ:µMUX21µportµmap(µAµ=>µI1,µBµ=>µI2,µSµ=>µI3,µZµ=>µO4);¡,
 µµO5_labelµ:µAOI22µportµmap(µAµ=>µI1,µBµ=>µI2,µCµ=>µI3,µDµ=>µI4,µZµ=>µO5);¡,
[µµµU6µ:µDFFµportµmap(µDµ=>µI1,µCPµ=>µCLK,µQµ=>µO6,µQNµ=>µO7);¡,
•endµSTRUCTURAL_VIEW;’$»D“I501ileaf_page_string1:18-7¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿ¤18³7¡þÉ²Figure 18³1´µshowsµtheµsix³gateµschematicµforµExample 18³1.¡,{²&Figure 18³1³TestµCircuitµNetlistµNetwork¡,;²¥	öäÃËÁÊË¡ÄlÀlÝ¡ÄlÝ¦Ý¡Ä¦ÝµÏ¡ÄµÏ¦À¡Ä¦ÀlÀÆÃÃ¡Äoðo­¡Äo­²Ó¡Ä²ÓoðÆÃÊËÃ¡ÄoÏ1ÏÆÃÃÊË¡Å°Æ°ÛÉÆ°Ñ°ÑÆÃÊËÃ¡ÄÉÓÿÓÆÃÃÊË¡Ä¼q¡Äqqq¡Äqq¼qÆÃÃÊË¡Ìÿÿÿÿÿÿö_ÿÿÿÿÿÿö_ÿÿÿÿÿü<Ùîçî?àb¼qdq¼qÆÃÃ¡Ìÿÿÿÿÿÿ÷íÿÿÿÿÿÿðü`ÁV®Ú#ìCì›ìCÆÃÃÊË¡Åî;îP;îEîEÆÃÊËÃ¡ÄCBCÆÃÃÊË¡ÅÄgÄ|ÝgÄqÄqÆÃÃ¡Å+Æ+×;Æ+Ï+ÏãÇÆÃÃ¡ÄÅ‹z‹¡Äz‹zæ¡ÄzæÅæÆÃÃÊË¡Ìÿÿÿÿÿÿö_ÿÿÿÿÿÿö_ÿÿÿÿÿü<Ù÷\÷´èØÅæmæÅæÆÃÃ¡Ìÿÿÿÿÿÿ÷íÿÿÿÿÿÿðü`Á^‹¶‹â˜õ¸õõ¸ÆÃÃ¡Ä÷¸5¸ÆÃÃ¡ÌÿÿÿÿÿÿôÑÿÿÿÿÿÿÁJÿÿÿÿÿô¶æ'!'y ¦°N°¦°ÆÃÃ¡Ìÿÿÿÿÿÿö–ÿÿÿÿÿÿ½
'åJL¢L['~'Ö'~ÆÃÃ¡ÌÿÿÿÿÿÿöSÿÿÿÿÿÿû÷ÿÿÿÿÿýŽöÃ"Ãzº£¬K¬£¬ÆÃÃ¡Ìÿÿÿÿÿÿ÷Þÿÿÿÿÿÿû³ŠyJP¢P¹^Ã~ÃÖÃ~ÆÃÃÊË¡Å+q+†Dq+|+|ÆÃÊËÃ¡ÄH~z~ÆÃÃ¡ÌÿÿÿÿÿÿôÑÿÿÿÿÿÿÁJÿÿÿÿÿô¶Ì÷t÷ÌÑóvvÆÃÃ¡Ìÿÿÿÿÿÿö–ÿÿÿÿÿÿ½
'£ŸqŸÐ­÷Ñ÷)÷ÑÆÃÃ¡ÌÿÿÿÿÿÿöSÿÿÿÿÿÿû÷ÿÿÿÿÿýŽö“u“Í‰ðsÿÿsÿÆÃÃ¡Ìÿÿÿÿÿÿ÷Þÿÿÿÿÿÿû³Š€£r£‰°“Ñ“)“ÑÆÃÃ¡Ä÷Ñ)ÑÆÃÃÊË¡Ähh9¡Äh9¢9¡Ä¢9±*¡Ä±*¢¡Ä¢hÆÃÃ¡Äpp)¡Äp)«)¡Ä«)¹¡Ä¹«¡Ä«pÆÃÃ¡ÄlFlc¡Älc¦c¡Ä¦cµT¡ÄµT¦F¡Ä¦FlFÆÃÃ¡Äpp%¡Äp%«%¡Ä«%¹¡Ä¹«¡Ä«pÆÃÊËÃ¡ÄPÏºÏÆÃÃ¡Äm.².ÆÃÃÊË¡Äv²v9¡Äv9Á9¡ÄÁ9Á²¡ÄÁ²v²ÆÃÃ¡ÄÃ	x	¡Äx	xe¡ÄxeÃeÆÃÃÊË¡Ìÿÿÿÿÿÿö_ÿÿÿÿÿÿö_ÿÿÿÿÿü<ÙõÛõ3æVÃekeÃeÆÃÃ¡Ìÿÿÿÿÿÿ÷íÿÿÿÿÿÿðü`Á\	´	àó7óó7ÆÃÃ¡Äõ737ÆÃÃÊË¡Äz8z)¡Äz)9)¡Ä9)98¡Ä98z8ÆÃÃ¡Å>>!W>>ÆÃÊËÃ¡Äx¼ÆÃÃ¡ÄtT¸TÆÃÃ¡Ä3Ï3_ÆÃÃ¡Ä3_v_ÆÃÃ¡Ät¸ÆÃÃÊË¡Äz/—¡Ä—zÆÃÃ¡Ä›¶›è¡Ä›è]è¡Ä]è]ÆÃÊËÃ¡ÄqX7XÆÃÃÊË¡Äð.ðŸ¡ÄðŸzŸÆÃÊËÃ¡ÄzÍ7ÍÆÃÃ¡Ä‹¸ð¸ÆÃÃ¡Ä†î7îÆÃÃ¡ÄvV7VÆÃÃ¡ÄvŒðŒÆÃÃÊË¡Ä€P€n¡Ä€nºn¡ÄºnÈ_¡ÄÈ_ºP¡ÄºP€PÆÃÃ¡Ä€€)¡Ä€)º)¡Äº)È¡ÄÈº¡Äº€ÆÃÃ¡Ä€5€R¡Ä€RºR¡ÄºRÈC¡ÄÈCº5¡Äº5€5ÆÃÃ¡Ä€Ä€á¡Ä€áºá¡ÄºáÈÓ¡ÄÈÓºÄ¡ÄºÄ€ÄÆÃÃ¡Ä€Â€ß¡Ä€ßºß¡ÄºßÈÑ¡ÄÈÑºÂ¡ÄºÂ€ÂÆÃÃ¡Ä€a€~¡Ä€~º~¡Äº~Èo¡ÄÈoºa¡Äºa€aÆÃÃ¡Ä€k€ˆ¡Ä€ˆºˆ¡ÄºˆÈz¡ÄÈzºk¡Äºk€kÆÃÃ¡Ä575a¡Ä5a¿aÆÃÃ¡Ä7¶7—¡Ä7—·—ÆÃÊËÃ¡Äâo~oÆÃÃ¡ÄÑ~ÑÆÃÃ¡ÄâÓ~ÓÆÃÃ¡Ä)C~CÆÃÃ¡Ä9_~_ÆÃÃ¡Ä_~ÆÃÃÊË¡Åèˆè™ùˆè‘è‘ÇÆÃÃ¡Åè&è7ù&è.è.ÇÆÃÃ¡Åè¯èÀù¯è¸è¸ÇÆÃÃ¡Å+æ+ö;æ+î+îÇÆÃÃ¡Å+N+_;N+V+VÇÆÃÃ¡Å&P&`7P&X&XÇÆÃÃ¡ÅXX"iXXÇÆÃÃ¡Å&Å&Ö7Å&Í&ÍÇÆÃ²$¡'8I2¡+ØI1¡0I4¡+^I3¡(CLK¡êåO1¡íQO2¡åÚO3¡åuO4¡ñ{O5¡édO6¡é$O7²¡Ê;¡þø²Sharingµtheµinputµpinsµmakesµcreatingµinputµtestµvectorsµeasier.µIn¡þAthisµexample,µitµisµpracticalµforµaµsingleµnetlistµtoµcontainµallµcellsµof¡þŠtheµtechnologyµlibraryµbeingµverified.µWhenµyouµareµtestingµaµlarge¡þÒlibrary,µhowever,µyouµmayµwantµtoµuseµmoreµthanµoneµnetlist.’»yD“I501ileaf_page_string1:18-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,æ,Ð¡Ä,Ð	cÐ¡Ä	cÐ	cæ¡Ä	cæ,æÆÃÁÊËÃ¡ÄþÐÊÐÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³8¡,Õ²Verifying´µFunctionality¡þ²To´µoptimizeµlogicµnetworksµproperly,µDesignµCompilerµrequiresµa¡þ×databaseµthatµdescribesµtheµBooleanµfunctionµofµtheµelementsµinµthe¡þ targetµtechnologyµlibrary.µIfµtheseµBooleanµfunctionsµareµincorrectly¡þidescribedµinµtheµlibrary,µDesignµCompilerµcanµcreateµinvalidµcircuits.¡þ±Toµpreventµthis,µyouµmustµensureµthatµtheµBooleanµfunction¡þúattributesµgivenµinµtheµtechnologyµlibraryµmatchµtheµfunctions¡þCdescribedµinµtheµcorrespondingµsimulationµlibrary.¡þ ²Preparing´µforµFunctionµVerification¡þ»²To´µfollowµtheµfunctionµverificationµprocedure,µuseµanµaccurate¡þsimulatorµandµaµsimulationµlibraryµthatµisµknownµtoµbeµfunctionally¡þLcorrect.¡þëToµprepareµforµtesting,µyouµneedµtheµfollowingµitems:¡þm²S¡Xm²SynopsysµDesignµCompilerµsoftware¡þÞ²S¡XÞ²Aµtechnologyµlibraryµtoµtest¡þP²S¡XP²Theµtestµcircuitµnetlistµdescribedµinµtheµpreviousµsection¡þÁ²S¡XÁ²TheµsimulatorµfromµtheµresidentµCAEµenvironment¡þ	3²S¡X	3²Theµsimulationµlibraryµcorrespondingµtoµtheµtechnologyµlibrary¡X	yyouµwantµtoµtest¡þ	ë²S¡X	ë²Theµsimulationµtestµvectors¡þ
\²S¡X
\²Theµsimulationµoutputµcomparisonµprogramµ(optional)¡þ
Î²S¡X
Î²Theµtest³mappingµlibraryµcreatedµspecificallyµforµ¡Xfunctionµverification’yhD“I501ileaf_page_string1:18-9¥	öäÃËÁâÊË¡Ä,á,Ë¡Ä,Ë	cË¡Ä	cË	cá¡Ä	cá,áÆÃÁÊËÃ¡ÄþËÊËÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿ¤18³9¡þÉ²When´µyouµareµtestingµtheµfunctionµdescriptionsµinµtheµtechnology¡þlibrary,µyouµneedµtoµincludeµonlyµcellsµwithµfunctionµattributesµinµthe¡þZtestµcircuitµnetlist.µAvoidµincludingµcellsµwithoutµfunctionµstatements,¡þ£unlessµyouµhaveµsimulationµmodels.µWhenµtheµsimulation¡þìcomparisonµisµperformed,µunmappedµgatesµareµcomparedµagainst¡þ4copiesµofµthemselves.¡þµToµverifyµtheµfunctionalityµofµaµtechnologyµlibrary,¡þ"1.¡X"Createµtheµtest³mappingµlibrary.¡þ…2.¡X…Mapµtheµtestµcircuitµnetlistµontoµtheµtest³mappingµlibrary.¡þùNote:²¡XB²Atµthisµpointµinµtheµprocess,µyourµdesignµisµdescribedµonlyµin¡X‹termsµofµtheµcellsµfromµtheµtest³mappingµlibrary.µTheµdesign¡XÓremainsµfunctionallyµidenticalµtoµtheµdesignµdescribedµinµtheµtest¡Xcircuitµnetlist,µbutµitµisµdescribedµsolelyµinµtermsµofµtheµgateµtypes¡Xeinµtheµtest³mappingµlibrary.¡þÒ3.¡XÒSimulateµbothµtheµoriginalµtestµcircuitµnetlistµandµtheµmapped¡Xdesign.¡þ{4.¡X{Compareµtheµresultsµofµbothµsimulations.¡þ²Creating´µtheµTest³MappingµLibraryµ¡þ˜²The´µfirstµnewµitemµtoµprepareµisµaµtest³mappingµlibrary.µUseµthisµas¡þàtheµtargetµlibraryµforµmappingµtheµtestµcircuitµnetlistµyouµcreated.µThis¡þ	)libraryµisµasµsimpleµandµsmallµasµpossible,µcontainingµonlyµtwoµcells:¡þ	qanµinverterµandµaµtwo³inputµNORµgate.¡þ	òTheseµtwoµgatesµconstituteµtheµabsoluteµminimalµlibraryµusedµfor¡þ
:mappingµandµoptimizationµwithµDesignµCompiler.µByµusingµaµsimple¡þ
ƒlibrary,µyouµcanµensureµthatµtheµresultsµofµtheµmappingµreflectµthe¡þ
Ìvalidityµofµtheµtechnologyµlibraryµbeingµtested.µExample 18³2µisµa¡þsampleµtest³mappingµlibrary.’h£D“I501ileaf_page_string1:18-10¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³10¡,É²&Example 18³2³Sample´µTest³MappingµLibrary¡þ3²library(test_map_lib)´µ{¡þvµ/*µ2³inputµNORµgateµ*/¡þ¹µcell(NOR_2)µ{¡þüµµµµpin(A)µ{¡þ@µµµµµµdirectionµ:µinputµ;¡þƒµµµµ}¡þÆµµµµpin(B)µ{¡þ	µµµµµµdirectionµ:µinputµ;¡þLµµµµ}¡þµµµµpin(X)µ{¡þÒµµµµµµdirectionµ:µoutputµ;¡þµµµµµµfunctionµ:µ"(A+B)'"µ;¡þYµµµµµµtiming()µ{¡þœµµµµµµµµrelated_pinµ:µ"AµB"µ;¡þßµµµµµµ}¡þ"µµµµ}¡þeµ}¡þ¨µ/*µINVERTERµgateµ*/¡þìµcell(INV)µ{¡þ/µµµµpin(A)µ{¡þrµµµµµµdirectionµ:µinputµ;¡þµµµµµ}¡þøµµµµpin(X)µ{¡þ;µµµµµµdirectionµ:µoutputµ;¡þ~µµµµµµfunctionµ:µ"A'"µ;¡þÂµµµµµµtiming()µ{¡þ	µµµµµµµµrelated_pinµ:µ"A"µ;¡þ	Hµµµµµµ}¡þ	‹µµµµ}¡þ	Îµ}¡þ
}¡þ
Ì²Include´µonlyµtheµminimumµinformationµrequiredµforµeachµcellµinµthe¡þtestµlibraryµfile.µVerifyµthisµfileµbyµvisualµinspection.’£¡D“I501ileaf_page_string1:18-11¥	öäÃËÁâÊË¡Ä,j,T¡Ä,T	cT¡Ä	cT	cj¡Ä	cj,jÆÃÁÊËÃ¡ÄþTÊTÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿŠ18³11¡þÉ²Note:²¡X²Design´µCompilerµreadsµinµaµtechnologyµlibraryµcontainingµany¡XZcell.µAnyµlibraryµcanµbeµusedµtoµgenerateµaµVHDLµlibrary.µThe¡X£technologyµlibraryµmustµcontainµatµleastµaµtwo³inputµNORµandµan¡Xìinverter.µTheµminimum,µhowever,µisµnotµsufficientµforµallµdesigns.¡X4Theµminimumµsufficientµtechnologyµlibraryµtoµhandleµaµdesign¡X}consistsµofµtheµsetµofµcellsµdescribedµinµVerifyingµTechnology¡XÆandµVHDLµLibrariesµTogether"µlaterµinµthisµchapter.¡þVToµprepareµthisµlibraryµforµtheµfunctionµverificationµtest,µcompileµand¡þžsaveµitµusingµtheseµtwoµcommands:¡þ²lc_shell>´µ²)read_libµtest_map_lib.lib¡þM²lc_shell>µ²)write_libµtest_map_lib¡þß²The´µresultµisµaµtechnologyµlibraryµnamedµtest_map_lib.db.¡þ¤²Mapping´µtheµTestµCircuitµNetlist¡þ1²The´µnextµstepµisµtoµmapµtheµtestµcircuitµnetlistµofµlibraryµcellsµontoµthe¡þytwoµcellsµdescribedµinµtest_map_lib.db.µToµdoµthis,µfollowµthese¡þÂsteps:µ¡þ:1.¡X:Setµtheµfollowingµvariablesµinµdc_shell:¡,š²-dc_shell>´µ²Clink_libraryµ=µ{µyour_technology_library.db,test_map_lib.dbµ}¡,Ï²-dc_shell>µ²Ctarget_libraryµ=µtest_map_lib.db¡þ	C²2.¡X	CRead´µinµtheµtestµcircuitµnetlist.µThisµexampleµusesµtheµVHDL¡X	‰format,µbutµyouµcanµuseµanyµsupportedµnetlistµformat.¡þ	ó3.¡X	óMapµtheµnetlistµontoµtheµtestµlibraryµwithµtheµfollowing²&¡X
:²commands:¡X
 ²dc_shell>´µ²)readµ³fµvhdlµTEST_CIRCUIT.NET¡X
Û²dc_shell>µ²)translate’¡nD“I501ileaf_page_string1:18-12¥	öäÃËÁâÊË¡Ä,®,˜¡Ä,˜	c˜¡Ä	c˜	c®¡Ä	c®,®ÆÃÁÊËÃ¡Äþ˜Ê˜ÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³12¡þÉ²Note:²¡X²At´µthisµpointµinµtheµprocess,µyouµhaveµaµdesignµcontainingµonly¡XZtheµcellsµfromµtheµtest³mappingµlibrary.µTheµdesignµisµfunctionally¡X£identicalµtoµtheµdesignµdescribedµinµtheµtestµcircuitµnetlistµandµthe¡Xìdesignµisµdescribedµsolelyµinµtermsµofµtheµtwoµgateµtypesµinµthe¡X4test³mappingµlibrary.¡þ¹4.¡X¹Exportµtheµdesignµtoµtheµsimulationµenvironment:¡X)²dc_shell>´µ²)writeµ³fµvhdlµTEST_CIRCUITµ³oµTEST_MAPPED.NET¡X]µ¡þ»²This´µcommandµsavesµtheµmappedµdesignµinµaµfileµcalled¡þTEST_MAPPED.NET².¡þè²Creating´µtheµSimulationµTestµVectors¡þ‡²You´µnowµhaveµtwoµnetlists:µ¡þ²S¡X²TEST_CIRCUIT.NET²&,µ²whichµusesµtheµtechnologyµlibraryµyouµare¡XSverifying²&.¡þÆ²²S¡XÆ²TEST_MAPPED.NET,µwhichµisµtheµresultµofµmappingµyourµ¡Xtestµcircuitµnetlistµontoµtheµtwoµcellsµthatµyouµknowµareµ¡XSaccuratelyµmodeled.’nçD“I501ileaf_page_string1:18-13¥	öäÃËÁâÊË¡Ä,x,b¡Ä,b	cb¡Ä	cb	cx¡Ä	cx,xÆÃÁÊËÃ¡ÄþbÊbÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿŠ18³13¡þÉ²The´µnextµstepµisµtoµsimulateµbothµofµtheµnetlistsµandµcompareµthe¡þreportedµfunctionality.µToµdoµthis,¡þ–1.¡X–Createµaµsetµofµsimulationµinputµvectorsµtoµuseµinµboth¡XÝsimulations.¡þQ2.¡XQGenerateµtheµpatternµfileµbyµusingµtheµlanguageµofµyour¡X—simulationµenvironment.µYouµcanµsimulateµallµpossibleµinput¡XÞpatternsµinµcasesµwhereµtheµnumberµofµinputµpinsµisµsmall.¡þQ3.¡XQSeparatelyµtestµthoseµcellsµhavingµmoreµthanµ20µinputµpins.µUse¡X˜theµsameµmethodologyµcoupledµwithµaµtargetedµfunction¡XÞtest³vectorµset.¡þ±²Simulating´µtheµMappedµandµOriginalµTestµNetlists¡þQ²Run´µtheµsimulatorµonµbothµnetlists.µForµconvenience,µyouµcanµcreate¡þ™aµsuper³netlistµthatµcontainsµbothµtheµmappedµandµtheµoriginal¡þânetlists.µOnµthisµnetlist,µeachµpairµofµcorrespondingµoutputµpins¡þ+connectedµwithµanµXORµgateµidentifiesµallµsituationsµwhereµtwo¡þscorrespondingµoutputµpinsµareµnotµidentical.¡þTheµprocessµisµtakenµoneµstepµfurtherµbyµconnectingµtheµoutputµpins¡þ_ofµtheµexclusive³ORµgatesµwithµORµgates.µWithµthisµconnection,¡þ§thereµisµaµsingleµsuper³moduleµoutputµtoµmonitor.µTheµlibraryµis¡þðfunctionallyµcorrectµifµtheµoutputµofµthisµORµgateµisµnotµhighµafterµall¡þ	8eventsµfromµeachµinputµvectorµhaveµsettled.’çD“I501ileaf_page_string1:18-14¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,E,/¡Ä,/	c/¡Ä	c/	cE¡Ä	cE,EÆÃÁÊËÃ¡Äþ/Ê/ÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³14¡þÏ²Identifying´µFunctionµDescriptionµErrors¡þn²After´µyouµhaveµtheµresultsµofµbothµsimulations,µcompareµtheµresults¡þ¶andµsearchµforµdiscrepancies.µManyµvendorsµprovideµaµtoolµfor¡þÿcomparingµtheµresultsµofµtwoµsimulationµoutputµpins.µIfµyouµhaveµthis¡þHcapability,µrunµthatµtool.µ¡þêIfµyouµdoµnotµhaveµaµsimulation³outputµcomparisonµprogram,µyou¡þ3mustµperformµtheµdiscrepancyµcheckµmanually.µEveryµdiscrepancyµin¡þ|theµsimulationsµisµaµfunctionalµinconsistencyµbetweenµyour¡þÄsimulationµlibraryµandµyourµtechnologyµlibrary.¡þgWhenµnoµdiscrepanciesµexist,µtheµtechnologyµandµsimulation¡þ°librariesµareµfunctionallyµconsistent.¡þRCombinationalµcellsµwithµtheµdont_touchµattributeµareµnotµverifiedµby¡þ›thisµprocedure;µlikeµblackµboxes,µtheseµcellsµareµnotµmapped.¡þ²Verifying´µTechnologyµandµVHDLµLibrariesµTogether¡þ²You´µcanµverifyµtheµfunctionalityµofµyourµtechnologyµlibraryµandµthe¡þgcorrespondingµVHDLµlibraryµatµtheµsameµtime.µTheµstepsµareµthe¡þ°sameµasµlistedµinµtheµsectionµonµPreparingµforµFunctionµVerification"¡þøearlierµinµthisµchapter.µVariationsµtoµthisµbasicµprocedureµareµneeded¡þ	Atoµtestµtheµtwoµlibrariesµconcurrently.’éD“I501ileaf_page_string1:18-15¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³15¡þÏ²Creating´µtheµTest³MappingµLibrary¡þd²You´µneedµtheµfollowingµsetµofµcellsµinµtheµtest³mappingµlibraryµto¡þ¬supportµallµtechnologyµlibrariesµforµthisµprocedure:¡þ*²S¡X*²Anµinverter.¡þ™²S¡X™²Aµtwo³inputµNORµgate.¡þ²S¡X²Aµthree³stateµbuffer,µifµusedµinµtheµlibrary.¡þv²S¡Xv²AµDµflip³flopµwithµpreset,µclear,µandµtwoµcomplementaryµoutput¡X¼pins.µWhenµbothµcontrolµsignalsµareµactive,µtheµoutputµpinsµare¡Xbothµ0.¡þq²S¡Xq²AµDµflip³flopµwithµpreset,µclear,µandµtwoµcomplementaryµoutput¡X¸pins.µWhenµbothµcontrolµsignalsµareµactive,µtheµoutputµpinsµare¡Xþbothµ1.¡þˆWhenµyouµcreateµtheµDBµimageµofµtheµtest³mappingµlibrary,µcreateµa¡þÐVHDLµlibraryµasµwellµandµanalyzeµit:¡þK²lc_shell>´µ²)read_libµ²Ntest_map_lib²).lib¡þ†²lc_shell>µ²)write_libµ²Ntest_map_lib¡þÂ²lc_shell>µ²)write_libµ³fµvhdlµ²Ntest_map_lib¡þ“²Mapping´µtheµTestµCircuitµNetlist¡þ	(²To´µmapµtheµtestµcircuitµnetlistµontoµyourµtestµmapµlibrary,µuseµthese¡þ	qcommands:¡þ	ë²dc_shell>´µ²)vhdlout_write_componentsµ=µFALSE¡þ
'²dc_shell>µ²)vhdlout_bit_typeµ=µ"MVL7";¡þ
c²dc_shell>µ²)vhdlout_bit_vector_typeµ=µ"MVL7_VECTOR";¡þ
Ÿ²dc_shell>µ²)vhdlout_use_packagesµ=µ{synopsys.types.all¡þ
Ú²µµµµµµµµµµ²Ntechnology²).COMPONENTS.all}¡þ²dc_shell>µ²)link_path={²Ntechnology²).db,µ²Ntest_map_lib²).db}’éD“I501ileaf_page_string1:18-16¥	öäÃËÁâÊË¡Ä,g,Q¡Ä,Q	cQ¡Ä	cQ	cg¡Ä	cg,gÆÃÁÊËÃ¡Ä,QÊQÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³16¡þÃ²dc_shell>´µ²)target_library={²Ntest_map_lib²).db}¡þý²dc_shell>µ²)symbol_library={generic.sdb}¡þ8²dc_shell>µ²)readµ³fµtdlµ²Ntest_circuit²).²Ntdl¡þs²dc_shell>µ²)writeµ³fµvhdlµ²Ntest_circuit²)µ-outputµ²Nnet_lib²).vhd¡þ­²dc_shell>µ²)max_areaµ0¡þè²dc_shell>µ²)set_structureµfalseµ³timingµfalse¡þ#²dc_shell>µ²)set_flattenµ³phaseµtrueµ³effortµlow¡þ]²dc_shell>µ²)compile¡þ˜²dc_shell>µ²)writeµ³fµvhdlµ²Ntest_circuit²)µ³output¡þÓ²µµµµµµµµµµ²Nnet_test_map²).vhd¡þ•²Completing´µtheµVerification¡þ²Create´µtheµsimulationµtestµvectorsµasµdescribedµpreviously.¡þ©RunµVHDLµsimulationµonµbothµnet_lib.vhdµandµnet_test_map.vhd,¡þòandµcompareµtheµsimulationµresults.µSimulationsµdifferµinµunknown¡þ;behavior;µreferµtoµtheµsectionµaboutµXµhandlingµforµsimulationµin¡þƒ²&LibraryµCompilerµReferenceµManualµVolumeµ2²µforµadditional¡þÌinformation.¡,§²Verifying´µTimingµParameters¡þH²You´µneedµtoµverifyµtimingµparametersµforµtwoµreasons:¡þ¾1.¡X¾Whenµyouµworkµwithµseveralµdifferentµtoolsµinµaµsingleµdesign¡X	environment,µyouµmustµensureµthatµallµtheµtoolsµuseµconsistent¡X	Ktechnologyµinformation.¡þ	³2.¡X	³DesignµCompilerµmustµhaveµaccurateµtimingµinformationµtoµuse¡X	úwhenµitµsynthesizesµandµoptimizesµyourµdesigns.µInaccurate¡X
AtimingµinformationµcanµcauseµDesignµCompilerµtoµcreate¡X
‡less³than³optimalµdesigns.µBadµtimingµinformationµcanµeven¡X
ÎcauseµDesignµCompilerµtoµcreateµnewµcircuitsµthatµrepresentµa¡Xdegradationµinµperformanceµfromµtheµoriginal.’ýD“I501ileaf_page_string1:18-17¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³17¡þÉ²Both´µofµtheseµrequirementsµareµmetµbyµdeterminingµhowµcloselyµthe¡þresultsµfromµDesignµCompiler'sµtimingµcalculationsµtrackµtheµresults¡þZgeneratedµbyµtheµtimingµsimulator.¡þV²TestingµParameters¡þË²Theµfollowingµsectionsµdescribeµtheµmethodµforµverifyingµtheµtiming¡þparametersµinµaµtechnologyµlibrary,µdescribingµimportantµparameters¡þ\toµtestµandµhowµtoµdeviseµtestsµforµthem:¡þì²S¡Xì²GeneralµTestingµMethodology¡þh²S¡Xh²TestingµBasicµCellµTimingµParameters¡þå²S¡Xå²TestingµtheµInterconnectµModels¡þa²S¡Xa²TestingµEnvironmentalµScaling¡þToµverifyµthatµtheµparameterµvalueµentryµisµcorrect,µuseµtheµ¡þJreport_libµ-timingµcommand,µdescribedµinµChapterµ3,µUsingµthe¡þ’LibraryµCompilerµShellµInterface."¡þFTheµdivide³and³conquerµapproachµtoµparameterµtestingµisµimportant¡þinµdeterminingµsourcesµofµdiscrepanciesµandµinµdifferentiating¡þØalgorithmicµdifferencesµinµtheµtoolsµfromµlibraryµparameterµerrors.¡þ	ŒToµverifyµtheµtimingµparameters,µyouµneed¡þ
²S¡X
²Theµtestµcircuitµnetlist¡þ
˜²S¡X
˜²TheµDesignµCompilerµprogram¡þ²S¡X²Aµtimingµsimulatorµorµanalyzer’ý£D“I501ileaf_page_string1:18-18¥	öäÃËÁâÊË¡Ä,‹,u¡Ä,u	cu¡Ä	cu	c‹¡Ä	c‹,‹ÆÃÁÊËÃ¡ÄþuÊuÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³18¡þÉ²This´µisµtheµprocedure:¡þ@1.¡X@RunµaµDesignµCompilerµtimingµreportµonµtheµtestµcircuitµnetlist.¡þ¨2.¡X¨Runµaµsimulationµtimingµanalyzerµonµtheµtestµcircuitµnetlist.¡þ3.¡XCompareµtheµresults.¡þÅ²General´µTestingµMethodology¡þO²This´µsectionµdescribesµaµgeneralµmethodologyµforµtestingµtimingµarcs¡þ—associatedµwithµnetsµandµcellsµwithµtheµreport_delay_calculation¡þàcommand.¡þmUseµtheµreport_delay_calculationµcommandµtoµdisplayµdetailed¡þ¶timingµcalculationµinformationµaboutµbothµcellµarcsµandµnetµarcsµas¡þÿshownµinµFigure 18³2.µThisµinformationµisµespeciallyµhelpfulµwhen¡þGdebuggingµorµverifyingµtimingµdata.¡,à²&Figure 18³2³NetµandµCellµArcs¡,a²¥	öäÃ¡Ìÿÿÿÿÿÿ¬Zÿÿÿÿÿÿ¨ÿÿÿÿÿÿÿ"2ùÿùu¤ïÌ¤ÿù#¤ãâÇÆÃÃâÊË¡Ä£#¡Ä##¡Ä#£âÇÆÃâÊËÃ¡Äý§"§ÆÃÃ¡Äýò"òÆÃÃÊË¡ÅïÄïÔÿÄïÌïÌâÇÆÃâÊËÃ¡ÄÿÌÌÆÃÃ¡Ìÿÿÿÿÿÿ©‚ÿÿÿÿÿÿóñÿÿÿÿÿÿW›¸x¬§Çò«<S<«<âÇÆÃâÃ¡Ä­§<§ÆÃÃ¡Ä­<<<ÆÃÃ¡Í=§d®†Î”òÍ”ò{+X3==âÇÆâÃ¡ÄžÌÃÌÆÃÃ¡ÄžÃÆÃÃ¡Ä•ò»òÆÃÁÊËÃ¡Ä ÌžÌÆÃ²¡cVNet Arc¡¿.Cell ArcÃ¡Ä°$ÖÆÃÃÊË¡Ä1÷Ö¡ÄÖ=Þ¡Ä=Þ7ë¡Ä7ë1÷ÇÆÃÊËÃ¡Ä´$¦ÛÆÃÃÊË¡ÄtÛ¦Û¡Ä¦Û|ö¡Ä|öxé¡ÄxétÛÇÆÃÃÊË¡ÌÿÿÿÿÿÿîhÿÿÿÿÿÿÿÍÿÿÿÿÿÿ–`g¸8àG±|xx·¼·	·¼ÆÃÃÊË¡ÄÍ¶ÌÛ¡ÄÌÛ³»¡Ä³»À¸¡ÄÀ¸Í¶ÇÆÃÊËÃ¡ÄwŠwÆÃ²¡Êa¡þ	²Note:²¡X	J²Ifµyouµwantµtheµreport_delay_calculationµcommandµtoµdisplay¡X	“confidentialµlibraryµdata,µyouµmustµloadµtheµlibraryµinµsource.µYou¡X	Ücanµdoµthisµwithµtheµread_libµcommand.¡þ
iThisµisµtheµsyntaxµofµtheµreport_delay_calculationµcommand:¡þ
Ü²report_delay_calculation´µ³fromµ²(pin_name²µ³toµ²(pin_name’£}D“I501ileaf_page_string1:18-19¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³19¡þÉ²-from´µpin_name¡XDefinesµtheµstartingµpointµofµaµtimingµarcµwithinµyourµdesign.¡þx-toµpin_name¡XÁDefinesµtheµendingµpointµofµaµtimingµarcµwithinµyourµdesign.¡þFForµaµ²&cell²µtimingµarc,µuseµtheµinputµandµoutputµpinsµofµaµcommonµleaf¡þŽcellµthatµhasµaµtimingµarcµdefinedµbetweenµthemµinµtheµlibrary.¡þ1Forµaµ²&net²µtimingµarc,µuseµaµdriverµandµaµloadµonµaµcommonµnet.µPort¡þznamesµareµallowedµinµplaceµofµaµpinµnameµforµnetµarcs.¡þIfµthereµisµaµcellµtimingµarcµbetweenµpins,µtheµdetailsµofµtheµ²&cell²µarc¡þedelayµcalculationµwillµbeµdisplayedµinµtheµtimingµarcµreport.µIfµthere¡þ®areµpinsµthatµareµpartµofµtheµsameµnet,µtheµdetailsµofµtheµ²&net²µarc¡þödelayµcalculationµwillµbeµdisplayedµinµtheµtimingµarcµreport.¡þ™Theµfollowingµconditionsµproduceµanµerrorµwithµnoµdelayµinformation¡þâdisplayed:¡þg²S¡Xg²Aµtechnologyµlibraryµwasµnotµloadedµinµsourceµformat.¡þÚ²S¡XÚ²Thereµareµnoµcellµorµnetµdelayµarcsµbetweenµtheµspecifiedµpins.¡þN²S¡XN²Youµspecifiedµanµundefinedµpin.¡þÁ²S¡XÁ²Theµspecifiedµpinµisµassociatedµwithµaµnonleafµcell.¡þ	5²S¡X	5²Youµspecifiedµmoreµthanµoneµpinµforµtheµ³fromµorµ³toµoption.¡þ	©²S¡X	©²Youµspecifiedµanµarcµtypeµbetweenµpinsµthatµisµnotµsupported.¡þ
:Theµformatµofµtheµtimingµreportµoutputµvariesµbasedµonµtheµtypeµof¡þ
ƒdelayµmodelµandµinterconnectµdelayµtreeµtypeµ(forµnetµdelayµarcs).µIf¡þ
Ìdelayµvaluesµhaveµbeenµback³annotatedµforµaµspecifiedµarc,µthe¡þannotatedµdelayµratherµthanµcalculatedµdelayµisµgiven.’}#D“I501ileaf_page_string1:18-20¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³20¡þÉ²Example 18³3´µshowsµoneµtypeµofµtimingµarcµreportµthatµisµgenerated¡þforµtheµoutputµofµaµcellµarcµinµaµgenericµCMOSµlibrary.µTheµtiming¡þZreportsµforµdifferentµtypesµofµlibrariesµsuchµasµnonlinearµlookµsimilar.¡,²&Example 18³3³Cell³ArcµOutput¡þc²From´µ:µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµU1/A¡þ Toµ:µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµU1/X¡þÝarcµtype:µµµµµµµµµµµµµµµµµµµµµµµµµµµcell¡þarcµsense:µµµµµµµµµµµµµµµµµµµµµµµµµµinverting¡þWInputµnetµtransitionµtimes:µDt_riseµ=µ0,µDt_fallµ=µ0¡þÑRiseµDelayµcomputation:¡þrise_intrinsicµµµµµµµµµµµµµµµµµµµµµµ0µ+¡þJrise_slopeµ*µDt_fallµµµµµµµµµµµµµµµµ0µ*µ0µ+¡þ‡rise_resistanceµ*µ(pin_capµ+µwire_cap)µ/µdriver_count¡þÄ0.2µ*µ(0µ+µ0.53)µ/µ1¡þrise_transition_delayµ:µµµµµµµµµµµµµ0.106¡þ>------------------------------------------¡þ{Totalµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ0.106¡þ¸FallµDelayµcomputation:¡þõfall_intrinsicµµµµµµµµµµµµµµµµµµµµµµ0µ+¡þ1fall_slopeµ*µDt_riseµµµµµµµµµµµµµµµµ0µ*µ0µ+¡þnfall_resistanceµ*µ(pin_capµ+µwire_cap)µ/µdriver_count¡þ«0.15µ*µ(0µ+µ0.53)µ/µ1¡þèfall_transition_delayµ:µµµµµµµµµµµµµ0.0795¡þ%------------------------------------------¡þbTotalµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ0.0795’#KD“I501ileaf_page_string1:18-21¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿŠ18³21¡þÏ²Debugging´µwithµtheµreport_delay_calculation¡þCommand¡þ¹²You´µcanµuseµtheµreport_delay_calculationµcommandµtoµhelpµdebug¡þdelayµcalculationsµalongµaµcriticalµpath.µToµdoµthis,µfirstµlocateµa¡þJcriticalµpathµinµaµdesignµwithµtheµreport_timingµ³pathµfullµ³input_pins¡þ“commandµtoµgetµaµlistingµsimilarµtoµthisµone:¡þ²´µµPointµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµIncrµµµµµµµPath¡þQµ¡þ…----------------------------------------------------------¡þÂµµinputµexternalµdelayµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.00µf¡þþµµi2µ(in)µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.00µf¡þ;µµcell1/i2µ(lower1)µµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.00µf¡þxµµcell1/C/Bµ(AN2)µµµµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.00µf¡þµµµcell1/C/Zµ(AN2)µµµµµµµµµµµµµµµµµµµµµµµµ0.82µµµµµµµ0.82µf¡þòµµcell1/o1µ(lower1)µµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.82µf¡þ/µµcell2/i1µ(lower2)µµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.82µf¡þlµµcell2/C/Aµ(IV)µµµµµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ0.82µf¡þ©µµcell2/C/Zµ(IV)µµµµµµµµµµµµµµµµµµµµµµµµµ0.38µµµµµµµ1.20µr¡þæµµcell2/o1µ(lower2)µµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ1.20µr¡þ"µµo1µ(out)µµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ0.00µµµµµµµ1.20µr¡þ_µµdataµarrivalµtimeµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµµ1.20¡þú²The´µ³input_pinsµoptionµcausesµtheµinputµpinsµtoµbeµlistedµinµtheµpath¡þCinµadditionµtoµtheµoutputµpinsµtypicallyµseen.µNext,µyouµcanµuseµthe¡þŒreport_delay_calculationµcommandµtoµprintµtheµdetailsµofµaµcellµdelay¡þÔarcµbyµgivingµitµtheµinputµandµoutputµpinµofµaµleafµcellµalongµtheµpath.¡þ	Thisµisµanµexample:¡þ	ž²report_delay_calculation´µ³fromµcell1/C/Bµ³toµcell1/C/Z’KŸD“I501ileaf_page_string1:18-22¥	öäÃËÁâÊË¡Ä,K,5¡Ä,5	c5¡Ä	c5	cK¡Ä	cK,KÆÃÁÊËÃ¡Äþ5Ê5ÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³22¡þÉ²To´µprintµtheµdetailsµofµaµnetµdelayµarc,µuseµaµdriverµandµaµloadµpinµon¡þtheµsameµnetµalongµtheµpath.µTheµpinsµmustµbeµassociatedµwithµleaf¡þZcells.µThisµisµanµexampleµthatµisµvalidµbecauseµbothµcellsµareµleaf¡þ£cells:¡þ²report_delay_calculation´µ³fromµcell1/C/Zµ³toµcell2/C/A¡þŸ²The´µfollowingµcommandµisµinvalidµbecauseµthereµisµnoµnetµdelayµarc¡þèassociatedµwithµtheµfromµpinµbecauseµitµisµnotµonµaµleafµcell:¡þZ²report_delay_calculation´µ³fromµcell2/i1µ³toµcell2/C/A¡þê²Operating´µconditionsµandµwireµloadsµareµconsideredµwhenµyou¡þ3generateµaµtimingµarcµreport,µbutµtimingµrangesµareµnot.µThisµis¡þ|becauseµtimingµrangesµtypicallyµapplyµtoµanµentireµpath,µasµopposed¡þÄtoµaµsingleµtimingµarc.¡þ…²Testing´µBasicµCell³TimingµParameters¡þ²Test´µallµtimingµparametersµandµrelatedµinformationµusedµtoµdescribe¡þWcellsµinµaµtechnologyµlibrary.µTheseµparametersµinclude¡þÍ²S¡XÍ²Intrinsicµdelay¡þ6²S¡X6²Resistance¡þŸ²S¡XŸ²Capacitance¡þ	²S¡X	²Inputµslope¡þ	q²S¡X	q²Setup¡þ	Ú²S¡X	Ú²Hold¡þ
C²S¡X
C²Risingµandµfallingµedge¡þ
«²S¡X
«²Area¡þ²S¡X²Rangesµforµpiecewiseµlinearµmodel’ŸvD“I501ileaf_page_string1:18-23¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³23¡þÏ²Intrinsic´µDelay¡þn²To´µtestµintrinsicµdelaysµthatµareµunloaded³gateµdelayµvalues,µrunµa¡þ¶DesignµCompilerµtimingµreportµonµtheµtestµdesignµdescribedµearlier.¡þÿUseµtheµfollowingµcommands:²¡þ€²dc_shell>²)´µread²µ³²)f²µ²)vhdlµTEST_CIRCUIT.NET¡þ½²dc_shell>²)µreport_timingµ>µtest.intrinsic¡þX²Then´µrunµaµtimingµsimulationµorµanalysisµonµtheµtestµdesign.¡þûCompareµtheµresultsµofµtheseµtests.µIfµtheµoutputµcapabilitiesµofµthe¡þCsimulatorµallowµit,µwriteµaµsmallµprogramµtoµcompareµtheµtwoµoutput¡þŒvalues.µSynopsysµstronglyµencouragesµtheµdevelopmentµofµsuchµa¡þÕprogram.¡þwIfµyouµhaveµaµdefault_wire_loadµorµdefault_operating_conditions¡þÀattributeµdefinedµinµyourµlibrary,µuseµtheµset_wire_loadµor¡þ	set_operating_conditionsµcommandµtoµsetµtheµwire_loadµand¡þQoperating_conditionsµtoµnull.µForµexample,¡þÒ²dc_shell>´µ²)set_wire_loadµ""¡þ²dc_shell>µ²)set_operating_conditionsµ""¡þì²Resistance´µ(StandardµDelayµModel)¡þ	‹²Test´µtheµresistanceµparametersµdescribedµinµtheµtechnologyµlibrary¡þ	Ôforµeachµcellµunderµatµleastµtwoµloadingµconditions.µTheseµareµthe¡þ
resistanceµparametersµusedµinµtheµstandardµtimingµdelayµmodel:¡þ
¡²S¡X
¡²rise_resistanceµ¡þ²S¡X²fall_resistanceµ’v®D“I501ileaf_page_string1:18-24¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³24¡þÉ²Using´µtheµsameµdesignµasµforµintrinsicµdelay,µvaryµtheµloadµatµeach¡þoutputµpinµwithµtheµDesignµCompiler²&µ²set_loadµcommandµforµeach¡þZoutputµpin,µasµillustratedµinµExample 18³4.¡,²&Example 18³4³TestingµStandard³DelayµResistanceµParameters¡þj²dc_shell>´µ²)readµ³fµvhdlµTEST_CIRCUIT.NET¡þ¨²dc_shell>µ²)set_loadµ2µall_outputs()¡þå²dc_shell>µ²)report_timingµ>µtest.resis_load_2¡þ"²dc_shell>µ²)set_loadµ4µall_outputs()¡þ`²dc_shell>µ²)report_timingµ>µtest.resis_load_4¡þý²Run´µaµsimulationµusingµtheµsameµtwoµloadingµconditionsµifµyour¡þFsimulatorµletsµyouµsetµloadingµatµoutputµpins.µIfµtheµsimulatorµcannot¡þŽsetµalternateµloadµvaluesµatµmoduleµoutputµpins,µyouµmustµgenerate¡þ×thisµeffectµbyµaddingµadditionalµloadµgatesµtoµeachµmoduleµoutput.¡þ_1.¡X_Addµoneµinverter.¡þÕ2.¡XÕAddµtwoµinvertersµtoµeachµoutputµpinµbyµconnectingµtheµinput¡Xpinsµandµconnectingµtheµoutputµpins.¡þõ²Resistance´µ(PiecewiseµLinearµDelayµModel)¡þ™²Test´µtheµresistanceµparametersµforµeachµcellµunderµatµleastµtwo¡þâloadingµconditions.µTheseµareµtheµresistanceµparametersµusedµinµthe¡þ	+piecewiseµlinearµtimingµdelayµmodel:¡þ	²²S¡X	²²rise_pin_resistance¡þ
(²S¡X
(²fall_pin_resistanceµ¡þ
ž²S¡X
ž²rise_delay_interceptµ¡þ²S¡X²fall_delay_intercept’®ÞD“I501ileaf_page_string1:18-25¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³25¡þÉ²Use´µtheµtestµdesignµdescribedµearlierµinµthisµchapter.µVaryµtheµwire¡þlengthµandµloadµatµeachµoutputµpin.µToµvaryµtheµwireµlength,¡þ¦1.¡X¦Connectµtheµoutputµofµtheµtestµcircuitµtoµaµloadµcircuit.µUseµa¡Xìsmallµµgateµsuchµasµanµinverterµforµtheµloadµcircuit.¡þl2.¡XlMakeµsureµyouµcheckµeachµrangeµdefinedµbyµtheµpiece_define¡X²statement.µForµexample,µpiecesµ0,µ1µandµ2µareµtestedµinµthe¡Xùexampleµbelow.µTheµwireµloadµmodelµdefinesµtheµwireµlength¡X?addedµforµeachµadditionalµloadingµgate.µThisµisµanµexample:¡þ¼²¡…¼dc_shell>´µ²)readµ³fµvhdlµTEST_CIRCUIT.NET¡þû²¡…ûdc_shell>µ²)set_wire_loadµdefault¡þ;²¡…;dc_shell>µ²)report_timingµ>µtest.resis_load_piece_0¡þz²¡…zdc_shell>µ²)readµ³fµvhdlµTEST_CIRCUIT_piece_1.NET¡þ¹²¡…¹dc_shell>µ²)set_wire_loadµdefault¡þø²¡…ødc_shell>µ²)report_timingµ>µtest.resis_load_piece_1¡þ7²¡…7dc_shell>µ²)readµ³fµvhdlµTEST_CIRCUIT_piece_2.NET¡þw²¡…wdc_shell>µ²)set_wire_loadµdefault¡þ¶²¡…¶dc_shell>µ²)report_timingµ>µtest.resis_load_piece_2¡þ7²3.¡X7Run´µaµsimulationµonµeachµofµtheµdifferentµnetlists.¡þ¶4.¡X¶Compareµtheµresultsµofµtheµsimulationµwithµtheµtimingµreports¡XýgeneratedµbyµDesignµCompiler.¡þó²Capacitance¡þ	©²Testingµcapacitanceµoutputµpinµvalues,µwhichµareµoftenµzeroµin¡þ	òtechnologyµlibraries,µisµimplicitµinµtheµverificationµofµbothµintrinsic¡þ
:delayµandµresistance.µYouµneedµtoµdeviseµadditionalµtestsµonlyµfor¡þ
ƒinputµpinµcapacitanceµvalues.µUseµtheµsameµdesignµasµforµintrinsic¡þ
Ìdelay,µbutµvaryµtheµloadµatµeachµinputµpinµwithµtheµDesignµCompiler¡þset_driveµcommand.’ÞÈD“I501ileaf_page_string1:18-26¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³26¡þÉ²Example¡þ²dc_shell>´µ²)readµ³fµvhdlµTEST_CIRCUIT.NET¡þG²dc_shell>µ²)set_driveµ2µall_inputs()¡þ€²dc_shell>µ²)report_timingµ>µtest.incap_drive_2¡þ¸²dc_shell>µ²)set_driveµ4µall_inputs()¡þñ²dc_shell>µ²)report_timingµ>µtest.incap_drive_4¡þx²If´µyourµsimulatorµallowsµyouµtoµvaryµtheµeffectiveµdriveµatµdesign¡þÁinputµpins,µinputµpinµcapacitanceµvalidationµisµnotµdifficult.µIfµthe¡þ
simulatorµcannotµvaryµtheµeffectiveµdriveµatµtheµinputµpins,µyouµmust¡þRaddµinvertersµorµbuffersµatµeveryµinputµpinµtoµgenerateµaµdriveµatµthe¡þ›pin.¡þTheµpin'sµdelayµvalue,µinµturn,µdependsµonµtheµinputµpinµcapacitance¡þ_underµtest.µForµthisµtest,µyouµneedµonlyµaµsingleµsimulationµwithµa¡þ§nonzeroµdriveµvalueµatµtheµinputµpins.¡þI²Input´µSlope¡þÁ²Use´µtheµsameµbasicµdesignµusedµforµfunctionµverificationµtoµbegin¡þ	testingµeachµgate'sµsensitivityµtoµchangesµinµriseµtimeµandµinputµfall¡þRtime.µTheµtestµforµtheµinputµsensitivityµtoµstepµfunctionsµisµimplicitµin¡þ›theµtestsµforµintrinsicµdelayµandµresistanceµparameters.¡þToµtestµnonzeroµriseµandµfallµtimes,µuseµtheµDesignµCompiler²&¡þ^²set_loadµandµset_driveµ³riseµorµset_driveµ³fallµcommandsµtoµchange¡þ§theµinputµriseµandµfallµtime.µForµexample,µ¡þ	C²Example¡þ	ˆ²dc_shell>´µ²)readµ³fµvhdlµTEST_CIRCUIT.NET¡þ	Á²dc_shell>µ²)set_loadµ2µall_inputs()¡þ	ú²dc_shell>µ²)set_driveµ2µall_inputs()¡þ
3²dc_shell>µ²)report_timingµ>µtest.slope_rc_4¡þ
l²dc_shell>µ²)set_loadµ2µall_inputs()¡þ
¥²dc_shell>µ²)set_driveµ4µall_inputs()¡þ
Ý²dc_shell>µ²)report_timingµ>µtest.slope_rc_8’È&D“I501ileaf_page_string1:18-27¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³27¡þÉ²To´µtestµriseµtimeµandµfallµtimeµsensitivity,µyouµmustµcontrolµtheµinput¡þpinµriseµtimeµinµtheµsimulator.µTheµsimulatorµmayµhaveµcommandsµto¡þZdoµthisµeitherµdirectlyµorµbyµaµcombinationµofµsettingµaµdriveµvalue¡þ£andµaµloadµvalueµatµtheµinputµpins.µIfµsuchµcommandsµareµnot¡þìavailable,µyouµcanµalterµtheµinputµriseµtimeµbyµaddingµanµinverterµat¡þ4eachµinputµpin.¡þ×Ifµtheµsensitivityµparametersµareµsmall,µanµadditionalµloadµsuchµas¡þ twoµorµthreeµadditionalµinverters,µmightµbeµrequiredµatµtheµoutputµof¡þheachµaddedµinverter.¡þL²Setup¡þì²Setupµtimesµareµtreatedµasµconstraintµequationµparametersµby¡þ4DesignµCompiler.µToµcheckµtheµparametersµofµconstraintµequations,¡þ}deviseµdynamicµtestsµthatµcheckµbothµtheµviolatingµconditionµandµthe¡þÆcomplyingµconditionµatµtheµboundaryµofµviolation.¡þhImplementµtheµtestµinµDesignµCompilerµbyµusingµaµcombinationµof¡þ±theµset_input_delayµcommandµandµtheµmax_periodµconstraintµtoµset¡þúupµtheµdynamicµconditionsµforµaµholdµcheck.µ¡þœForµexample,µifµyouµhaveµaµpositiveµedge³triggeredµDµflip³flopµwithµa¡þåsetupµtimeµrequirementµofµ4.µForµsimplicity,µassumeµthatµonlyµinteger¡þ	-timeµvaluesµareµassigned.’&VD“I501ileaf_page_string1:18-28¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³28¡þÉ²To´µtestµtheµboundaryµviolationµcondition,µuseµtheµfollowing¡þcommands:¡þ“²dc_shell>´µ²)set_input_delayµ³fallµ1µd¡þÐ²Performingµset_input_delayµonµportµ`d'.¡þ1¡þJdc_shell>µ²)max_periodµ3µCLK¡þ‡²Performingµmax_periodµonµclockµ`CLK'¡þÄ1¡þdc_shell>µ²)report_constraintsµ³verbose¡þ=²Information:µUpdatingµdesignµinformation...µ(UID³85)¡þ·************************************¡þôReportµ:µconstraint¡þ1µµµµ³verbose¡þnDesignµ:µDESIGN¡þ«Versionµ:µv3.0¡þèDateµµµµ:µTueµ1997¡þ$************************************¡þa1.µmax_periodµ3.000000µ{µCLKµ}¡þÛWorst:µµµµµµµµµµµµµµµµµq_reg/D¡þMaxµDataµPathµµµµµµµµµµµµ1.00¡þU+µLibraryµSetupµµµµµµµµµµ4.00¡þ’³µMinµActiveµClockµµµµµµµ0.00¡þÏ³µ(ClockµPeriodµ*µµµµµµµµ3.00¡þµµµµPeriodµMultiplier)µµµ1.00¡þH+µMinusµClockµSkewµµµµµµµ0.00¡þ…-----------------------------¡þÂDeltaµCostµµµµµµµµµµµµµµ2.00µ(VIOLATED)¡þ	<Theµminimumµclockµperiodµisµ5.00µforµsignalµ`CLK'µ(on`q_reg/D').¡þ	y1’VôD“I501ileaf_page_string1:18-29¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³29¡þÉ²In´µtheµsimulator,µyouµcanµuseµinputµvectorsµthatµgenerateµthe¡þset_input_delayµandµmax_periodµsignalµbehaviorµforµtheµsetup¡þZcheck.µIfµsetupµandµholdµcheckingµisµprovidedµbyµtheµsimulator,µyou¡þ£canµuseµtheµoutputµlistingµtoµverifyµthatµbothµsystemsµhaveµfoundµthat¡þìtheµsignalµcompliesµwith,µorµviolates,µtheµtimingµrequirementsµofµthe¡þ4cell.µInµtheµsimulator,µtheµvectorµspecificationµmightµlookµsomething¡þ}likeµthis:¡þú²time´µ0µ:µD_PORTµ=µ0,µCLOCK_PORTµ=µ0;²(µ/*initµsignalsµ*/¡þ6²timeµ100:µD_PORTµ=µ1;µµµµ²(µ/*applyµdataµsignalµchangeµ*/¡þs²timeµ103:µCLOCK_PORTµ=µ1;²(µ/*applyµclkµatµperiodµboundaryµofµ3*/¡þ²The´µsimulatorµoutputµwillµalsoµshowµaµviolation.¡þ§Validationµofµtheµboundaryµconditionµforµcomplianceµlooksµlikeµthis:¡þ$²dc_shell>´µ²)set_input_delayµ³fallµ1µD¡þa²Performingµset_input_delayµonµportµ`D'.¡þ1¡þÙdc_shell>µ²)max_periodµ5µCLK¡þ²Performingµmax_periodµonµclockµ`CLK'.¡þR1¡þŽdc_shell>µ²)report_constraintsµ³verbose¡þÊ²Information:µUpdatingµdesignµinformation...µ(UID³85)¡þC************************************¡þReportµ:µconstraint¡þ¼µµµµ³verbose¡þøDesignµ:µflop¡þ	4Versionµ:µv3.0¡þ	pDateµµµµ:µTueµ1997¡þ	­************************************¡þ
%1.µmax_periodµ5.000000µ{µCLKµ}¡þ
žWorst:µµµµµµµµµµµµµµµµµq_reg/D¡þ
ÚMaxµDataµPathµµµµµµµµµµµµ1.00¡þ+µLibraryµSetupµµµµµµµµµµ4.00’ô´D“I501ileaf_page_string1:18-30¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³30¡þÃ²³´µMinµActiveµClockµµµµµµµ0.00¡þ³µ(ClockµPeriodµ*µµµµµµµµ5.00¡þ=µµµPeriodµMultiplier)µµµµ1.00¡þz+µMinusµClockµSkewµµµµµµµ0.00¡þ¶-----------------------------¡þóDeltaµCostµµµµµµµµµµµµµµµ0.00µ(MET)¡þmTheµminimumµclockµperiodµisµ5.00µforµsignalµ`CLK'µ(onµ`q_reg/d')¡þª1¡þ$Inµtheµsimulator,µtheµvectorµspecificationµlooksµlike¡þXthis:¡þ•timeµ0µ:µD_PORTµ=µ0,µCLOCK_PORTµ=µ0;µµ²(µ/*initµsignalsµ*/¡þÑ²timeµ100:µD_PORTµ=µ1;µµµµ²(µ/*applyµdataµsignalµchangeµ*/¡þ²timeµ104:µCLOCK_PORTµ=µ1;²(µ/*applyµclkµatµperiodµboundaryµofµ4*/¡þ©²The´µsimulatorµoutputµwillµshowµcompliance.µInµsomeµsimulators,µyou¡þòmayµhaveµtoµrunµtoolsµthatµpostprocessµtheµsimulationµresultsµto¡þ;determineµifµtheyµadhereµtoµtimingµrules.¡þ²Hold¡þ¾²HoldµtimesµareµtreatedµasµconstraintµequationµparametersµbyµDesign¡þCompiler.µToµcheckµtheµvaluesµofµconstraintµequationµparametersµin¡þOtheµtechnologyµlibrary,µdeviseµdynamicµtestsµthatµcheckµbothµthe¡þ˜violatingµconditionµandµtheµcomplyingµconditionµatµtheµboundaryµof¡þáviolation.¡þ	ƒForµholdµtimeµverification,µuseµtheµsameµapproachµyouµdidµforµsetup¡þ	Ìtimeµverification.µUseµtheµsameµexampleµasµdescribedµforµsetupµtime¡þ
validation,µexceptµassignµaµholdµtimeµconstraintµofµ2,µandµtestµthe¡þ
]boundaryµviolationµconditionµwithµtheµfollowingµcommands:’´JD“I501ileaf_page_string1:18-31¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³31¡þÃ²dc_shell>´µ²)set_input_delayµ1µD_PORT¡þü²dc_shell>µ²)max_periodµ4µCLOCK_PORT¡þ5²dc_shell>µ²)report_constraintsµ³verbose¡þ§²2.µClocks_at_holdµ4.000000µ{µCLOCK_PORTµ}¡þWorst:µµµµµµµµµµµµµµµµµU1/D¡þRMaxµActiveµClockµµµµµµµ0.00¡þ‹+µLibraryµHoldµµµµµµµµµ2.00¡þÄ³µMinµDataµPathµµµµµµµµ1.00¡þý-----------------------------¡þ6DeltaµCostµµµµµµµµµµµµµ1.00µ(VIOLATED)¡þ¾²In´µtheµsimulator,µtheµequivalentµvectorµspecificationµlooksµlikeµthis:¡þ$²time´µ0µ:µD_PORTµ=µ0,µCLOCK_PORTµ=µ0;µ²(/*µinitµsignalsµ*/¡þ]²timeµ100:µCLOCK_PORTµ=µ1;µ²(/*µapplyµclkµ*/¡þ–²timeµ101:µD_PORTµ=µ1;µµµµµ²(µ/*µapplyµdataµsignalµchangeµ*/¡þ²The´µsimulatorµoutputµwillµalsoµshowµaµviolation.¡þ”Useµtheµfollowingµcommandsµtoµvalidateµtheµboundaryµconditionµfor¡þÝcomplianceµinµDesignµCompiler:¡þC²dc_shell>´µ²)set_input_delayµ2µD_PORT¡þ|²dc_shell>µ²)max_periodµ4µCLOCK_POR;¡þµ²dc_shell>µ²)report_constraintsµ³verbose¡þ'²2.µClocks_at_holdµ4.000000µ{µCLOCK_PORTµ}¡þ™Worst:µµµµµµµµµµµµµµµµµU1/D¡þÒMaxµActiveµClockµµµµµµµ0.00¡þ	+µLibraryµHoldµµµµµµµµµ2.00¡þ	D³µMinµDataµPathµµµµµµµµ2.00¡þ	}-----------------------------¡þ	¶DeltaµCostµµµµµµµµµµµµµ0.00µ(MET)¡þ
>²In´µtheµsimulator,µtheµequivalentµvectorµspecificationµlooksµlikeµthis:¡þ
¤²time´µ0µ:µD_PORTµ=µ0,µCLOCK_PORTµ=µ0;µ²(µµ/*µinitµsignalsµ*/¡þ
Ý²timeµ100:µCLOCK_PORTµ=µ1;µ²(/*µapplyµclkµ*/¡þ²timeµ102:µD_PORTµ=µ1;µµ²(µ/*µapplyµdataµsignalµchangeµ*/’JD“I501ileaf_page_string1:18-32¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³32¡þÉ²The´µsimulatorµoutputµwillµalsoµshowµcompliance.µInµsomeµsimulators,¡þyouµmayµhaveµtoµrunµtoolsµthatµpost³processµtheµsimulationµresultsµto¡þZdetermineµifµtheyµadhereµtoµtimingµrules.¡þ,²Rising´µandµFallingµEdges¡þÀ²You´µcanµvalidateµpinsµthatµhaveµtimingµarcsµbyµusing¡þ	timing_type:rising_edgeµorµtiming_type:falling_edge.µUseµa¡þQcombinationµofµtheµDesignµCompilerµreportingµfeaturesµandµtheµlogic¡þšsimulatorµofµtheµtargetµenvironment.µ¡þ2UseµtheµDesignµCompilerµset_input_delayµ³riseµandµset_input_delay¡þz³fallµcommandsµsoµthatµeventsµoccurµatµtheµinputµpinsµatµtheµsame¡þÃtimeµasµtheyµoccurµinµtheµsimulation.µ¡þZInµtheµsimulator,µdesignµaµtwo³vectorµinputµsetµthatµappliesµbothµthe¡þ£activeµedgeµandµtheµinactiveµedgeµtoµtheµedge³sensitiveµinputµpin.¡þ;Ifµyouµspecifyµtheµeventµtriggerµcorrectlyµinµtheµtechnologyµlibrary,¡þƒonlyµtheµtriggerµeventµpropagatesµthroughµtheµcellµinµDesign¡þÌCompiler'sµtimingµreport.µTheµnontriggeringµeventµisµmasked.µThese¡þresultsµwillµbeµreflectedµinµtheµsimulator'sµoutput.¡þæ²Area¡þ	z²Youµcanµuseµtheµtestµcircuitµnetlistµtoµverifyµtheµareaµparametersµof¡þ	Ãtheµtechnologyµlibraryµyouµwantµtoµtest.µDesignµCompiler'sµreport¡þ
³areaµcommandµreportsµtheµtotalµareaµofµtheµdesign.µToµcompare¡þ
Tthisµvalueµwithµtheµactualµareaµbyµmanualµinspection,µuseµthe¡þ
followingµcommand:¡þ²dc_shell>´µ²)reportµ³area’êD“I501ileaf_page_string1:18-33¥	öäÃËÁâÊË¡Ä,	v,	`¡Ä,	`	c	`¡Ä	c	`	c	v¡Ä	c	v,	vÆÃÁÊËÃ¡Äþ	`Ê	`ÆÃ¥	öä¥	öä¡µÁ²Verifying´µCMOSµLibraries¡Ô¤ÿŠ18³33¡þÏ²Ranges´µforµPiecewiseµLinearµModel¡þY²Using´µtheµpiece_defineµattributeµstatement,µyouµcanµdefineµthe¡þ¡rangesµforµpiecesµinµtheµpiecewiseµlinearµtimingµdelayµmodelµatµthe¡þêlibraryµlevel.µToµverifyµtheµranges,µuseµtheµreport_libµcommand:¡þ]²lc_shell>´µ²)report_libµTEST_CIRCUIT¡þí²Look´µforµtheµfollowingµsectionµinµtheµlibraryµreport:¡þ`²Piecewise´µLinearµDelayµModel:¡þÎµPieceµµµµµµµµµµµµLength¡þ	µ----------------------------------------¡þDµµµ1µµµµµµµµ0.0µ<=µlengthµ<µ50.0¡þµµµ2µµµµµµµ50.0µ<=µlengthµ<µ100.0¡þ¹µµµ3µµµµµµ100.0µ<=µlength¡þJ²The´µpiecewiseµlinearµequationsµinµthisµlibraryµuseµthreeµpiecesµwith¡þ“breakµpointsµatµ50µandµ100µmils.¡þ Whenµtheµpiece_typeµisµcapacitance,µtheµreportµdisplays¡þ“²Piecewise´µLinearµDelayµModel:¡þPieceµµµµµµµµµµµµµµPinµCapacitance¡þ<---------------------------------------------¡þwµµ1µµµµµµµµ0.0µ<=µcapacitanceµ<µµµµµ1.5¡þ²µµ2µµµµµµµµ1.5µ<=µcapacitanceµ<µµµµµ4.3¡þìµµ3µµµµµµµµ4.3µ<=µcapacitance¡þ	°²Testing´µtheµInterconnectµModels¡þ
:²You´µmustµtestµeachµwire_loadµgroupµinµtheµtechnologyµlibrary.µYou¡þ
ƒcanµuseµaµsimpleµinverterµtreeµdesignµtoµtestµtheµwire³load¡þ
Ìspecifications.µSetµupµtheµtestµdesignµtoµtestµaµrangeµofµfanout¡þcounts.µ’êîD“I501ileaf_page_string1:18-34¥	öä¥	öä¡8Á²âVerifying´µCMOSµLibraries¡.18³34¡þÉ²For´µexample,µdesignµaµcircuitµinµwhichµoneµinputµinverterµsupplies¡þtheµinputµsignalsµforµtwoµinverters,µoneµofµwhichµsuppliesµtheµinput¡þZsignalµforµthreeµinverters,µandµtheµotherµsuppliesµtheµinputµsignalµfor¡þ£four,µandµsoµon,µoutµtoµtheµhighestµfanoutµvalueµdefinedµinµthe¡þìwire_loadµgroup.¡þŽExample 18³5µshowsµaµpossibleµtestµcircuitµinµnetlistµformatµand¡þ×Figure 18³3µshowsµtheµsameµtestµcircuitµasµaµschematic.¡,‰²&Example 18³5³FanoutµTestµNetlist¡þà²entity´µFANOUT_TESTµis¡þµµµport(µI1,µI2µ:µinµBIT;µµO1,µO2,µO3,µO4,µO5µ:µoutµBIT);¡þ–endµFANOUT_TEST;¡þarchitectureµSTRUCTURAL_VIEWµofµFANOUT_TESTµis¡þMµµµcomponentµINVH¡þŠµµµµµµport(µAµ:µinµBIT;µµZµ:µoutµBIT);¡þÇµµµendµcomponent;¡þAbegin¡þºµµµO1µ<=µI1;¡þ÷µµµO2µ<=µI2;¡þ4µµµO4µ<=µI2;¡þqµµµO5µ<=µI2;¡þëµµµU1µ:µINVHµµportµmap(µAµ=>µI2,µZµ=>µO3);¡þ	eendµSTRUCTURAL_VIEW;’î™D“I501ileaf_page_string1:18-35¥	öä¥	öä¡µÁ²âVerifying´µCMOSµLibraries¡Ô¤ÿŠ18³35¡,&²&Figure 18³3³Fanout´µTestµCircuitµSchematic¡,è²¥	öäÃËÁÊË¡ÄS–SS¡ÄSS–x¡Ä–xS–ÆÃÊËÃ¡ÄSttÆÃÃÊË¡Å”l”­l”v”vÆÃÊËÃ¡Ä­xãxÆÃÃÊË¡ÅOO_OOãÇÆÃÃ¡Ä=ú=¡Ä=w¡Äw†¡Ä†wú¡Äwú=úÆÃÃ¡Ä'š'W¡Ä'Wi}¡Äi}'šÆÃÊËÃ¡Ä'xèxÆÃÃÊË¡Ågpg…€pg{g{ÆÃÊËÃ¡Ä€}¶}ÆÃÃÊË¡ÄYÈY…¡ÄY…œ«¡Äœ«YÈÆÃÊËÃ¡ÄY§§ÆÃÃÊË¡Å™ž™³²ž™©™©ÆÃÊËÃ¡Ä²«é«ÆÃÃÊË¡Ä$Ì$‰¡Ä$‰g¯¡Äg¯$ÌÆÃÊËÃ¡Ä$«å«ÆÃÃÊË¡Åe¢e·~¢e­e­ÆÃÊËÃ¡Ä~¯´¯ÆÃÃÊË¡Ä"f"#¡Ä"#eI¡ÄeI"fÆÃÊËÃ¡Ä"EäEÆÃÃÊË¡Åc<cQ|<cGcGÆÃÊËÃ¡Ä|I²IÆÃÃÊË¡ÄY0Yí¡ÄYíœ¡ÄœY0ÆÃÊËÃ¡ÄYÆÃÃÊË¡Å™™²™™ÆÃÊËÃ¡Ä²éÆÃÃÊË¡Ä$4$ò¡Ä$òg¡Äg$4ÆÃÊËÃ¡Ä$åÆÃÃÊË¡Åee~eeÆÃÊËÃ¡Ä~´ÆÃÃÊË¡ÄÉ(Éå¡ÄÉå¡ÄÉ(ÆÃÊËÃ¡ÄÉŠÆÃÃÊË¡Å	þ	"þ		ÆÃÊËÃ¡Ä"YÆÃÃÊË¡Ä”,”é¡Ä”é×¡Ä×”,ÆÃÊËÃ¡Ä”UÆÃÃÊË¡ÅÕÕîÕÕÆÃÊËÃ¡Äî$ÆÃÃÊË¡Ä'þ'»¡Ä'»iá¡Äiá'þÆÃÊËÃ¡Ä'ÜèÜÆÃÃÊË¡ÅgÔgé€ÔgÞgÞÆÃÊËÃ¡Ä€á¶áÆÃÃ¡Ät‹tÆÃÃÊË¡Ä=f=ƒ¡Ä=ƒwƒ¡Äwƒ†t¡Ä†twf¡Äwf=fÆÃÃ¡ÄôÜWÜ¡ÄWÜWÆÃÃ¡ÄE¡ÄEEÆÃÃ¡Ä½n½‹¡Ä½‹÷‹¡Ä÷‹}¡Ä}÷n¡Ä÷n½nÆÃÃ¡Ä½Ò½ï¡Ä½ï÷ï¡Ä÷ïá¡Äá÷Ò¡Ä÷Ò½ÒÆÃÃ¡Ä¸6¸S¡Ä¸SóS¡ÄóSE¡ÄEó6¡Äó6¸6ÆÃÃ¡Ä¸ž¸»¡Ä¸»ó»¡Äó»­¡Ä­óž¡Äóž¸žÆÃÃ¡Ä¸¸(¡Ä¸(ó(¡Äó(¡Äó¡Äó¸ÆÃÃ¡Ä+’+O¡Ä+Omu¡Ämu+’ÆÃÊËÃ¡Ä+qìqÆÃÃÊË¡Åkhk}„hksksÆÃÊËÃ¡Ä„u»uÆÃÃÊË¡Ä/ö/³¡Ä/³rÙ¡ÄrÙ/öÆÃÊËÃ¡Ä/ÕðÕÆÃÃÊË¡ÅpÌpá‰Ìp×p×ÆÃÊËÃ¡Ä‰Ù¿ÙÆÃÃÊË¡Ä/V/¡Ä/r9¡Är9/VÆÃÊËÃ¡Ä/4ð4ÆÃÃÊË¡Åp,pA‰,p6p6ÆÃÊËÃ¡Ä‰9¿9ÆÃÃÊË¡Ä¶s¡ÄsH˜¡ÄH˜¶ÆÃÊËÃ¡Ä”Ç”ÆÃÃÊË¡ÅFŒF¡_ŒF–F–ÆÃÊËÃ¡Ä_˜•˜ÆÃÃÊË¡Ä		Ó¡Ä	ÓLø¡ÄLø	ÆÃÊËÃ¡Ä	ôËôÆÃÃÊË¡ÅJìJcìJöJöÆÃÊËÃ¡Äcø™øÆÃÃÊË¡Ä	~	;¡Ä	;L`¡ÄL`	~ÆÃÊËÃ¡Ä	\Ë\ÆÃÃÊË¡ÅJTJicTJ^J^ÆÃÊËÃ¡Äc`™`ÆÃÃÊË¡Ä	æ	£¡Ä	£LÉ¡ÄLÉ	æÆÃÊËÃ¡Ä	ÄËÄÆÃÃÊË¡ÅJ¼JÑc¼JÇJÇÆÃÊËÃ¡ÄcÉ™ÉÆÃÃ¡Äë4ë­ÆÃÃ¡ÄÆÄÆÆÃÃ¡ÄÀuÀ9ÆÃÃ¡Äš˜šÉÆÃÃÊË¡Å ±# ©©ÇÆÃÃ¡Åç ç±ø ç©ç©ÇÆÃÃ¡Å'ÇÆÃÃ¡Å½½Î½½ÇÆÃÃ¡ÅãdãuôdãlãlÇÆÃÃ¡ÅçÈçÙøÈçÐçÐÇÆÃÃ¡Å¼Ì¼ÝÌÌ¼Õ¼ÕÇÆÃÃ¡Å¹Œ¹ÊŒ¹”¹”ÇÆÃÃ¡Å½è½øÎè½ð½ðÇÆÃÃ¡Å½X½iÎX½`½`ÇÆÃÃ¡Å–ð–§ð–ø–øÇÆÃÃ¡Å–\–m§\–e–eÇÆÃ²$¡ö†I1¡òI2¡%‚O1¡,æO2¡(RO3¡ ²O4¡('O5²¡Êè¡þ"´µ¡þÇ²In´µthisµexample,µtheµlibraryµunderµtestµhasµtwoµwireµloadµmodels¡þdefined:µSMALL_CHIP_WIREµandµBIG_CHIP_WIRE.µAssumeµthe¡þXtestµcircuitµinverterµtreeµisµalsoµinµaµVHDLµnetlistµnamed¡þ¡FANOUT_TEST.NET.¡þ	2First,µcollectµDesignµCompilerµtimingµreportsµonµtheµtestµcircuitµnetlist¡þ	zbyµusingµbothµofµtheµdefinedµwireµloadµmodels:¡þ	ï²dc_shell>´µ²)readµ³fµvhdlµFANOUT_TEST.NET¡þ
*²dc_shell>µ²)set_wire_loadµSMALL_CHIP_WIRE¡þ
e²dc_shell>µ²)report_timingµ>µfanout_test.small_chip¡þ
 ²dc_shell>µ²)set_wire_loadµBIG_CHIP_WIRE¡þ
Û²dc_shell>µ²)report_timingµ>µfanout_test.big_chip’™ÝD“I501ileaf_page_string1:18-36¥	öäÃËÁâÊË¡Ä,¼,¦¡Ä,¦	c¦¡Ä	c¦	c¼¡Ä	c¼,¼ÆÃÁÊËÃ¡Äþ¦Ê¦ÆÃ¥	öä¥	öä¡8Á²Verifying´µCMOSµLibraries¡.18³36¡þÉ²Then´µrunµtheµtimingµsimulatorµonµtheµfanoutµtestµcircuitµnetlistµand¡þcompareµtheµresultsµwithµthoseµgeneratedµbyµDesignµCompiler.¡þö²Testing´µEnvironmentalµScaling¡þ•²Use´µaµdesignµwithµaµsingleµinverterµtoµtestµtheµenvironmentalµscaling¡þÞperformedµunderµallµdefinedµconditions.µGenerateµaµDesign¡þ&Compilerµtimingµreportµforµeachµoperating_conditionsµgroupµinµthe¡þolibrary.µ¡þInµtheµfollowingµexample,µtheµthreeµoperatingµconditionµgroups,¡þZBCMIL,µNOM,µandµWCMIL,µareµtestedµbyµusingµtheµtestµcircuitµnetlist¡þ£SINGLE_INV.NET,µwhichµcontainsµoneµinverter:¡þ$²dc_shell>²)´µreadµ³fµvhdlµSINGLE_INV.NET¡þa²dc_shell>µ²)set_operating_conditionsµBCMIL¡þž²dc_shell>µ²)report_timingµ>µsingle_inv.bcmil¡þÛ²dc_shell>µ²)set_operating_conditionsµNOM¡þ²dc_shell>µ²)report_timingµ>µsingle_inv.nom¡þU²dc_shell>µ²)set_operating_conditionsµWCMIL¡þ’²dc_shell>µ²)report_timingµ>µsingle_inv.wcmil¡þ-²Compare´µtheµresultsµwithµthoseµfromµsimpleµtwo³inputµvector¡þusimulations,µwhereµtheµsimulationµdelayµvaluesµwereµcomputedµwith¡þ¾theµvaluesµfromµtheµcorrespondingµdelayµenvironments.µThisµtest¡þ	alsoµperformsµanµimplicitµcheckµonµtheµenvironmentalµscalingµfactors¡þ	Oinµtheµtechnologyµlibrary.’ÝÐOPS m:m:D€‚Document:cmosÿ‚Last saved on:Tue, Dec 9, 1997 17:52:38ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°wst:helvps12b±:                                ,$1$$$$!'$$*$'!'$!$!/!!,'                                                 $$$$$$2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:helvps8±:							!								!									!!!!°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:courps12±:                                                                                          2                                       °wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps16b±:********************************"%%<0'%%%%%%%%%%%''')A0000-)40%0)804-40-)0-?--)'%%)%)%))%<))))%)%4%%"'"*********************************%%%%*%*%*********%**%***)000000C0----*044444*40000**)%%%%%%<%%%%%*))))))*)))))**%*%"C%**C*********%%"******C***************%****C***?°wst:helvps18b±:////////////////////////////////&**C6,***********,,,.I66662.:6*6.>6:2:62.62G22.,**.*.*..*C....*.*:**&,&/////////////////////////////////****/*/*/////////*//*///.666666K62222/6:::::/:6666//.******C*****/....../.....//*/*&K*//K/////////**&//////K///////////////*////K///G°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°-wst:courps10±-:*°.wst:helvps60±.:žžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžFFS‹‹Þ§8SSa’F‹FF‹‹‹‹‹‹‹‹‹‹FF’’’‹þ§§µµ§™ÃµF}§‹ÐµÃ§Ãµ§™µ§ì§§™FFFu‹8‹‹}‹‹F‹‹88}8Ð‹‹‹‹S}F‹}µ}}}TAT’SžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžžS‹‹‹‹ž‹Sž]‹žžžSžžžžžž†Fžž[‹žžž™§§§§§§úµ§§§§FFFFžµÃÃÃÃÃžÃµµµµžž™‹‹‹‹‹‹Þ}‹‹‹‹FFFFž‹‹‹‹‹‹ž™‹‹‹‹žž}žF‹}úS‹žžúžžžžžžžžž‹‹SSSžžžžžžú*žžžžžžžžžžžžžžž‹žžžžúžžžì°/wst:helvps72±/:¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾SSd§§ÈCddu¯S§SS§§§§§§§§§§SS¯¯¯§1ÈÈÙÙÈ·éÙS–È§úÙéÈéÙÈ·ÙÈÈÈ·SSS§C§§–§§S§§CC–Cú§§§§d–S§–Ù–––dNd¯d¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾d§§§§¾§d¾o§¾¾¾d¾¾¾¾¾¾¡S¾¾n§¾¾¾·ÈÈÈÈÈÈ,ÙÈÈÈÈSSSS¾Ùééééé¾éÙÙÙÙ¾¾·§§§§§§–§§§§SSSS¾§§§§§§¾·§§§§¾¾–¾S§–,d§¾¾,¾¾¾¾¾¾¾¾¾§§ddd¾¾¾¾¾¾,2¾¾¾¾¾¾¾¾¾¾¾¾¾¾¾§¾¾¾¾,¾¾¾°Cwst:courps10b±C:*°wwst:helvps48±w:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~88Coo²…,CCNu8o88oooooooooo88uuuoË………zœ8d…o§œ…œ…z…½……z888^o,oodoo8oo,,d,§ooooCd8oddddC4CuC~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Coooo~oC~Jo~~~C~~~~~~k8~~Io~~~z………………È…………8888~œœœœœ~œ~~zoooooo²doooo8888~oooooo~zoooo~~d~8odÈCo~~È~~~~~~~~~ooCCC~~~~~~È!~~~~~~~~~~~~~~~o~~~~È~~~½åååå å@å€å¿ÿåÿÿåÿÿÿÿå	ÿÿÿÿå
ÿÿÿÿåÿÿåÿÿåÿÿå€å®å™™ÿÿNîÍáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿîîÿÿ»»ÿÿá»»îî»»îî»»îî»»îî»»îî»»îî»»îî»»îîáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáDDDDDDDDDDDDDDDDáDDDDDDDDá@@@@@@@@ááÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáBB$$$$BBBB$$$$BBá€€@@  €€@@  áÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’7¶ŠD“I501ileaf_page_string1:A-1¥	öäÃËÁâÊË¡Ä,ç,Ñ¡Ä,Ñ	cÑ¡Ä	cÑ	cç¡Ä	cç,çÆÃÁÊËÃ¡Ä,ÑÊÑÆÃ¥	öäÃÁÊË¡Ä,	s,	]¡Ä,	]	c	]¡Ä	c	]	c	s¡Ä	c	s,	sÆÃÁÊËÃ¡Äþ	]Ê	]ÆÃ¥	öä²-¡°¡Ï°¡ž°¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿ¸A³1¡,m²²wA².â²/¥	öä¡Ïm²â¡,J²	Sample´µCMOSµTechnologyµLibrary¡¶²¥	öäÁÊËÃ¡Ä,šÊšÆÃ¡	ö¶¡þ@This´µappendixµisµaµcompleteµexampleµofµaµCMOSµtechnologyµlibrary,¡þ‰includingµenvironments,µk³factors,µwireµloadingµinformation,µandµcell¡þÑdescriptions.µCommentsµthroughoutµtheµlibraryµillustrateµavailable¡þmodelingµtechniques.µTheµexampleµisµbasedµonµaµstandardµtiming¡þcdelayµmodel.¡,'²Library´µEnvironment¡þ¹²The´µfirstµsectionµofµtheµtechnologyµlibraryµdefinesµtheµlibrary¡þ	environment,µasµdescribedµinµChapterµ17,µBuildingµEnvironments."¡þ	­²Library´µGroup¡þ
+²A´µtechnologyµlibraryµstartsµwithµtheµlibraryµgroupµstatement.µA¡þ
sclosingµbraceµisµtheµlastµentryµinµtheµlibraryµfile.¡þ
Ý²library(example)´µ{’Š‚D“I501ileaf_page_string1:A-2¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,ñ,Û¡Ä,Û	cÛ¡Ä	cÛ	cñ¡Ä	cñ,ñÆÃÁÊËÃ¡ÄþÛÊÛÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³2¡þÏ²Date,´µRevision¡þn²Use´µtheµdateµandµrevisionµattributesµinµtheµtechnologyµlibrary;µthey¡þ¶provideµaµquickµandµeasyµwayµtoµverifyµtheµdateµofµtheµlastµeditµand¡þÿtheµassignedµversionµnumber.µTheµdateµandµrevisionµvaluesµare¡þHreportedµforµtheµcompiledµtechnologyµlibraryµbyµusingµtheµreport_lib¡þcommandµfromµDesignµCompiler.¡þ²date´µ:µ"Novemberµ12,µ1996";¡þOrevisionµ:µ4.0µ;¡þ+²Default´µCellµAttributes¡þÊ²Library³defined´µdefaultµvaluesµforµtheµcellµattributesµare¡þL²default_inout_pin_cap´µµµµµµµµ:µµ1.3µ;¡þ€default_inout_pin_fall_resµµµ:µµ0.0µ;¡þ´default_inout_pin_rise_resµµµ:µµ0.0µ;¡þèdefault_input_pin_capµµµµµµµµ:µµ1.3µ;¡þdefault_intrinsic_fallµµµµµµµ:µµ1.3µ;¡þOdefault_intrinsic_riseµµµµµµµ:µµ1.3µ;¡þƒdefault_output_pin_capµµµµµµµ:µµ0.0µ;¡þ·default_output_pin_fall_resµµ:µµ0.0µ;¡þëdefault_output_pin_rise_resµµ:µµ0.0µ;¡þdefault_slope_fallµµµµµµµµµµµ:µµ0.0µ;¡þSdefault_slope_riseµµµµµµµµµµµ:µµ0.0µ;¡þ‡default_fanout_loadµµµµµµµµµµ:µµ1.0µ;¡þ»default_max_fanoutµµµµµµµµµµµ:µ10.0µ;’‚D“I501ileaf_page_string1:A-3¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿ¸A³3¡þÏ²k³Factors¡þn²Use´µtheµfollowingµk³factorsµtoµcalculateµtheµintrinsicµdelaysµonµaµnet¡þ¶accordingµtoµvariationsµinµprocess,µtemperature,µandµvoltage:¡þ8²k_process_cell_leakage_power´µ:µµ0.5¡þuk_process_drive_fallµµµµµµµµµ:µµ1.3µ;¡þ©k_process_drive_riseµµµµµµµµµ:µµ1.3µ;¡þæk_process_internal_powerµµµµµ:µµ0.0µ;¡þk_process_intrinsic_fallµµµµµ:µµ1.3µ;¡þMk_process_intrinsic_riseµµµµµ:µµ1.3µ;¡þk_process_pin_capµµµµµµµµµµµµ:µµ0.0µ;¡þµk_process_slope_fallµµµµµµµµµ:µµ1.3µ;¡þék_process_slope_riseµµµµµµµµµ:µµ1.3µ;¡þk_process_wire_capµµµµµµµµµµµ:µµ0.0µ;¡þQk_process_wire_resµµµµµµµµµµµ:µµ1.3µ;¡þŽk_temp_cell_leakage_powerµµµµ:µµ1.0¡þÂk_temp_drive_fallµµµµµµµµµµµµ:µµ0.007µ;¡þõk_temp_drive_riseµµµµµµµµµµµµ:µµ0.007µ;¡þ2k_temp_internal_powerµµµµµµµµ:µµ0.0µ;¡þfk_temp_intrinsic_fallµµµµµµµµ:µµ0.007µ;¡þšk_temp_intrinsic_riseµµµµµµµµ:µµ0.007µ;¡þÎk_temp_pin_capµµµµµµµµµµµµµµµ:µµ0.0µ;¡þk_temp_slope_fallµµµµµµµµµµµµ:µµ0.0µ;¡þ6k_temp_slope_riseµµµµµµµµµµµµ:µµ0.0µ;¡þjk_temp_wire_capµµµµµµµµµµµµµµ:µµ0.0µ;¡þžk_temp_wire_resµµµµµµµµµµµµµµ:µµ0.0µ;¡þÚk_volt_cell_leakage_powerµµµµ:µµ0.75¡þk_volt_drive_fallµµµµµµµµµµµµ:µ³0.19µ;¡þBk_volt_drive_riseµµµµµµµµµµµµ:µ³0.19µ;¡þk_volt_internal_powerµµµµµµµµ:µµ0.0µ;¡þ³k_volt_intrinsic_fallµµµµµµµµ:µ³0.19µ;¡þçk_volt_intrinsic_riseµµµµµµµµ:µ³0.19µ;¡þ	k_volt_pin_capµµµµµµµµµµµµµµµ:µµ0.0µ;¡þ	Ok_volt_slope_fallµµµµµµµµµµµµ:µµ0.0µ;¡þ	ƒk_volt_slope_riseµµµµµµµµµµµµ:µµ0.0µ;¡þ	¶k_volt_wire_capµµµµµµµµµµµµµµ:µµ0.0µ;¡þ	êk_volt_wire_resµµµµµµµµµµµµµµ:µµ0.0µ;’D“I501ileaf_page_string1:A-4¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,J,4¡Ä,4	c4¡Ä	c4	cJ¡Ä	cJ,JÆÃÁÊËÃ¡Äþ4Ê4ÆÃ¥	öäÃÁÊË¡Ä,°,š¡Ä,š	cš¡Ä	cš	c°¡Ä	c°,°ÆÃÁÊËÃ¡ÄþšÊšÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³4¡þÏ²Units¡þh²Sample´µunitµattributesµforµtheµlibraryµare¡þæ²time_unit´µ:µ"1ns";¡þvoltage_unitµ:µ"1V";¡þNcurrent_unitµ:µ"1uA";¡þ‚pulling_resistance_unitµ:µ"1kohm";¡þ¶capacitive_load_unit(µ0.1,ffµ);¡þ„²Nominal´µOperatingµConditions¡þ²Nominal´µoperating³conditionµvaluesµforµtheµlibraryµare¡þ›²nom_process´µµµµµ:µµ1.0µ;¡þ×nom_temperatureµ:µ25.0µ;¡þnom_voltageµµµµµ:µµ5.0µ;¡þê²Custom´µOperatingµConditions¡þ„²The´µlistµbelowµcontainsµcustomµoperatingµconditionsµdefinedµforµthis¡þÍlibrary.µSomeµcommonµoperating³conditionµnamesµusedµare¡þWCCOMµ(WorstµCaseµCommercial),µBSTCCOMµ(BestµCase¡þ^Commercial),µandµWCMILµ(WorstµCaseµMilitary).¡þÜ²´µµµµµoperating_conditions(BEST)µ{¡þ	µµµµµµµµµµµprocessµ:µ1.1µ;¡þ	Cµµµµµµµµµµµtemperatureµ:µ11.0µ;¡þ	wµµµµµµµµµµµvoltageµ:µ4.6µ;¡þ	«µµµµµµµµµµµtree_typeµ:µbest_case_treeµ;¡þ	ßµµµµµµ}¡þ
µµµµµoperating_conditions(TYPICAL)µ{¡þ
Gµµµµµµµµµµµprocessµ:µ1.3µ;¡þ
{µµµµµµµµµµµtemperatureµ:µ31.0µ;¡þ
¯µµµµµµµµµµµvoltageµ:µ4.6µ;¡þ
âµµµµµµµµµµµtree_typeµ:µbalanced_treeµ;¡þµµµµµµ}’úD“I501ileaf_page_string1:A-5¥	öäÃËÁâÊË¡Ä,i,S¡Ä,S	cS¡Ä	cS	ci¡Ä	ci,iÆÃÁÊËÃ¡ÄþSÊSÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿ¸A³5¡þÃ²´µµµµµoperating_conditions(WORST)µ{¡þ÷µµµµµµµµµµprocessµ:µ1.7µ;¡þ+µµµµµµµµµµtemperatureµ:µ55.0µ;¡þ_µµµµµµµµµµvoltageµ:µ4.2µ;¡þ’µµµµµµµµµµtree_typeµ:µworst_case_treeµ;¡þÆµµµµµ}¡þ£²Power´µLookupµTables¡þB²It´µisµnecessaryµtoµdefineµtheµpower_lut_templateµgroupµinµtheµlibrary¡þ‹toµcreateµaµlookupµtableµforµpower.¡þ²power_lut_template(output_by_cap1_cap2_and_trans)´µ{¡þI¡…Ivariable_1µ:µtotal_output1_net_capacitanceµ;¡þ†¡…†variable_2µ:µtotal_output2_net_capacitanceµ;¡þÃ¡…Ãvariable_3µ:µinput_transition_timeµ;¡þ¡…index_1µ("0.0,µ5.0,µ20.0")µ;¡þ=¡…=index_2µ("0.0,µ5.0,µ20.0")µ;¡þy¡…yindex_3µ("0.0,µ1.0,µ2.0")µ;¡þ¶}¡þ0power_lut_template(output_by_cap_and_trans)µ{¡þm¡…mvariable_1µ:µtotal_output_net_capacitanceµ;¡þª¡…ªvariable_2µ:µinput_transition_timeµ;¡þç¡…çindex_1µ("0.0,µ5.0,µ20.0")µ;¡þ$¡…$index_2µ("0.0,µ1.0,µ2.0")µ;¡þa}¡þÚpower_lut_template(input_by_trans)µ{¡þ	¡…	variable_1µ:µinput_transition_timeµ;¡þ	T¡…	Tindex_1µ("0.0,µ1.0,µ2.0")µ;¡þ	‘}’ú©D“I501ileaf_page_string1:A-6¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³6¡þÏ²Timing³Range´µModels¡þf²Timing´µrangesµdefineµscalingµfactorsµwhichµareµappliedµtoµoperating¡þ¯conditions.µTheµdefinitionsµtakeµintoµaccountµvariationsµinµthe¡þ÷operatingµconditionsµforµwhichµtheµchipµwasµoptimized.¡þ’Theµtiming_rangeµscalingµfactorsµareµusedµonlyµtoµdriveµthe¡þÛoptimizationµofµtheµcircuit.µTheµscaledµdelaysµareµnotµavailable¡þ$throughµDesignµCompilerµreports.µTiming³rangeµmodelsµare¡þ ²´µµµµtiming_range(BESTCASE){¡þÜµµµµµµµµfaster_factorµ:µ0.94µ;¡þµµµµµµµµslower_factorµ:µ0.98µ;¡þTµµµµ}¡þµ¡þÌµµµµtiming_range(WORSTCASE){¡þµµµµµµµµfaster_factorµ:µ1.07µ;¡þDµµµµµµµµslower_factorµ:µ1.19µ;¡þµµµµ}¡þT²Wire´µLoadµModels¡þì²The´µwireµloadµmodelsµinµtheµfollowingµexampleµcontainµthe¡þ4informationµthatµDesignµCompilerµusesµtoµestimateµtheµinterconnect¡þ}wiringµdelays.µTheµdesignerµusingµtheseµmodelsµknowsµthatµthe¡þÆaverageµnetµlengthsµfitµoneµofµtheµmodelsµinµtheµexample.µBecause¡þ	dieµsizingµdirectlyµaffectsµwireµlength,µwireµloadµmodelsµare¡þ	Wcommonlyµbasedµonµdieµsizesµandµareµnamedµaccordingly.¡þ	òNote:²¡X
:²Youµcanµdefineµmultipleµfanoutµorµlengthµpairsµtoµdeclareµthe¡X
ƒdelayµforµaµgivenµnumberµofµloadsµexplicitly.µIfµtheµnumberµof¡X
Ìloadsµexceedsµtheµvalueµdeclared,µtheµlastµvalueµpairµandµthe¡Xslopeµvalueµareµusedµtoµcalculateµtheµdelay.’©D“I501ileaf_page_string1:A-7¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿ¸A³7¡þÃ²´µµµµwire_load(SMALL)µ{¡þ÷µµµµµµµµresistanceµ:µ0µ;¡þ+µµµµµµµµcapacitanceµ:µ1.3µ;¡þ_µµµµµµµµareaµ:µ0µ;¡þ’µµµµµµµµslopeµ:µ0.176µ;¡þÆµµµµµµµµfanout_length(1,0.41);¡þúµµµµµµµµfanout_length(2,0.62);¡þ.µµµµµµµµfanout_length(3,0.78);¡þbµµµµ}¡þŸµµµµwire_load(AVERAGE)µ{¡þÓµµµµµµµµresistanceµ:µ0µ;¡þµµµµµµµµcapacitanceµ:µ1.3µ;¡þ;µµµµµµµµareaµ:µ0µ;¡þnµµµµµµµµslopeµ:µ0.789µ;¡þ¢µµµµµµµµfanout_length(1,1.47)µ;¡þÖµµµµ}¡þµµµµwire_load(LARGE)µ{¡þGµµµµµµµµresistanceµ:µ0µ;¡þ{µµµµµµµµcapacitanceµ:µ1.3µ;¡þ¯µµµµµµµµareaµ:µ0µ;¡þãµµµµµµµµslopeµ:µ1.293µ;¡þµµµµµµµµfanout_length(1,1.68)µ;¡þJµµµµ}¡þ‡µµµµwire_load(HUGE)µ{¡þ»µµµµµµµµresistanceµ:µ0µ;¡þïµµµµµµµµcapacitanceµ:µ1.3µ;¡þ#µµµµµµµµareaµ:µ0µ;¡þWµµµµµµµµslopeµ:µ1.567µ;¡þ‹µµµµµµµµfanout_length(1,1.89)µ;¡þ¿µµµµ}¡þüµµµµwire_load_selection(normal)µ{¡þ/µµµµµµµµwire_load_from_area(0,100,"SMALL");¡þcµµµµµµµµwire_load_from_area(100,200,"AVERAGE");¡þ—µµµµµµµµwire_load_from_area(200,400,"LARGE");¡þËµµµµµµµµwire_load_from_area(400,1000,"HUGE");¡þÿµµµµ}¡þ	<µµµµdefault_wire_load_modeµµµµµµµ:µµenclosedµ;¡þ	pµµµµdefault_wire_load_selectionµµ:µµnormal;’:D“I501ileaf_page_string1:A-8¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡Ä,ÊÆÃ¥	öäÃÁÊË¡Ä,,¡Ä,	c¡Ä	c	c¡Ä	c,ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,×,Á¡Ä,Á	cÁ¡Ä	cÁ	c×¡Ä	c×,×ÆÃÁÊËÃ¡ÄþÁÊÁÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³8¡,Õ²Cell´µDescriptions¡þµ²You´µdoµnotµneedµtoµdefineµtheµcellµattributes,µk³factors,µor¡þýenvironmentsµbeforeµyouµdefineµtheµcellµdescriptionsµandµtestµthe¡þFfunctionalityµofµtheµcells.µTheµcellµdescriptionsµareµoftenµdefinedµfirst.¡þR²Power´µTie¡þ
²Power´µtieµorµlogicµ1µcell:¡þœ²cell(POWER_TIE)´µ{¡þÜµµareaµ:µ0µ;¡þµµpin(Z)µ{¡þZµµµµdirectionµ:µoutputµ;¡þšµµµµfunctionµ:µ"1"µ;¡þÙµµ}¡þ}¡þ²Ground´µTie¡þÉ²Ground´µtieµorµlogicµ0µcell:¡þ	[²cell(GROUND_TIE)´µ{¡þ	šµµareaµ:µ0µ;¡þ	Úµµpin(Z)µ{¡þ
µµµµdirectionµ:µoutputµ;¡þ
Xµµµµfunctionµ:µ"0"µ;¡þ
˜µµ}¡þ
×}’:öD“I501ileaf_page_string1:A-9¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öäÃÁÊË¡Ä,´,ž¡Ä,ž	cž¡Ä	cž	c´¡Ä	c´,´ÆÃÁÊËÃ¡ÄþžÊžÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿ¸A³9¡þÏ²Pull³Up¡þn²Pull³up´µcell:¡þï²cell(PULL_UP_CELL)´µ{¡þ#µµareaµ:µ0µ;¡þWµµauxiliary_pad_cellµ:µtrueµ;¡þ‹µµpin(Z)µ{¡þ¿µµµµdirectionµ:µoutputµ;¡þüµµµµmulticell_pad_pinµ:µtrue;¡þ9µµµµconnection_classµ:µ"INPAD_NETWORK";¡þuµµµµdriver_typeµ:µpull_upµ;¡þ©µµµµpulling_resistanceµ:µ10000;¡þÝµµ}¡þ}¡þî²Pull³Down¡þ²Pull³down´µcell:¡þ²cell(PULL_DOWN_CELL)´µ{¡þBµµareaµ:µ0µ;¡þvµµauxiliary_pad_cellµ:µtrueµ;¡þªµµpin(Z)µ{¡þÞµµµµdirectionµ:µoutputµ;¡þµµµµmulticell_pad_pinµ:µtrue;¡þOµµµµconnection_classµ:µ"INPAD_NETWORK";¡þŒµµµµdriver_typeµ:µpull_downµ;¡þ¿µµµµpulling_resistanceµ:µ1000;¡þóµµ}¡þ	'}’ö‡D“I501ileaf_page_string1:A-10¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³10¡þÏ²Two³Input´µANDµGate¡þn²In´µtheµcellµbelow,µtimingµarcsµareµidenticalµforµpathsµAµtoµZµandµBµto¡þ¶Z,µsoµonlyµoneµtimingµgroupµisµneeded.µBothµpinsµareµdefinedµinµthe¡þÿrelated_pinµattributeµstatement.¡þ²cell(AN2)´µ{¡þ½µµareaµ:µ2µ;¡þúµµpin(A)µ{¡þ7µµµµdirectionµ:µinputµ;¡þtµµµµcapacitanceµ:µ1.3µ;¡þ±µµ}¡þîµµpin(B)µ{¡þ+µµµµdirectionµ:µinputµ;¡þhµµµµcapacitanceµ:µ1.3µ;¡þ¥µµ}¡þáµµpin(Z)µ{¡þµµµµdirectionµ:µoutputµ;¡þ[µµµµfunctionµ:µ"Aµ*µB"µ;¡þ˜µµµµtiming()µ{¡þÕµµµµµµintrinsic_riseµ:µ0.58µ;¡þµµµµµµintrinsic_fallµ:µ0.69µ;¡þOµµµµµµrise_resistanceµ:µ0.1378µ;¡þŒµµµµµµfall_resistanceµ:µ0.0465µ;¡þÉµµµµµµrelated_pinµ:µ"AµB"µ;¡þµµµµ}¡þBµµµµinternal_power()¡þµµµµµµrelated_pinµ:µ"AµB"µ;¡þ¼µµµµµµpowerµ(output_by_cap_and_trans)µ{¡þùµµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",¡þ	-µµµµµµµµµµµµµµµµµµ"1.0,µ1.5,µ2.8")µ;¡þ	jµµµµµµ}¡þ	§µµµµ}¡þ	äµµ}¡þ
 }’‡ D“I501ileaf_page_string1:A-11¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³11¡þÏ²Two³Input´µORµGate¡þl²In´µthisµcell,µpinsµAµandµBµhaveµtheµsameµdirectionµandµinput¡þ´capacitance,µsoµtheyµareµgroupedµintoµoneµpinµgroup.µTheµtiming¡þýarcsµfromµAµtoµZµandµBµtoµZµareµdifferent,µsoµdefineµtwoµtiming¡þFgroups.¡þÆ²cell(OR2)´µ{¡þµµareaµ:µ2µ;¡þ?µµpin(AµB)µ{¡þ|µµµµdirectionµ:µinputµ;¡þ¹µµµµcapacitanceµ:µ1.3µ;¡þõµµ}¡þ2µµpin(Z)µ{¡þoµµµµdirectionµ:µoutputµ;¡þ«µµµµfunctionµ:µ"A+B"µ;¡þèµµµµtiming()µ{¡þ%µµµµµµintrinsic_riseµ:µ0.37µ;¡þaµµµµµµintrinsic_fallµ:µ0.79µ;¡þžµµµµµµrise_resistanceµ:µ0.1378µ;¡þÛµµµµµµfall_resistanceµ:µ0.0662µ;¡þµµµµµµrelated_pinµ:µ"A"µ;¡þTµµµµ}¡þ‘µµµµtiming()µ{¡þÎµµµµµµintrinsic_riseµ:µ0.46µ;¡þ
µµµµµµintrinsic_fallµ:µ0.87µ;¡þGµµµµµµrise_resistanceµ:µ0.1378µ;¡þ„µµµµµµfall_resistanceµ:µ0.0662µ;¡þÀµµµµµµrelated_pinµ:µ"B"µ;¡þýµµµµ}¡þ	:µµµµinternal_power()¡þ	vµµµµµµrelated_pinµ:µ"AµB"µ;¡þ	³µµµµµµpowerµ(output_by_cap_and_trans)µ{¡þ	ðµµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",¡þ
$µµµµµµµµµµµµµµµµµµ"1.0,µ1.5,µ2.8")µ;¡þ
`µµµµµµ}¡þ
µµµµ}¡þ
Úµµ}¡þ}’ ÇD“I501ileaf_page_string1:A-12¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³12¡þÏ²Two³Input´µNANDµGate¡þn²Pin´µnamesµinµtheµfollowingµµtwo³inputµ²NAND²µgateµstartµwithµnumbers¡þ¶insteadµofµlettersµandµmustµbeµenclosedµinµquotes.µWhenµusedµinµa¡þÿfunctionµattributeµstatement,µprecedeµeachµquotationµmarkµwithµa¡þHbackslashµ(µ\µ);µotherwise,µtheµquotationµmarkµterminatesµthe¡þfunctionµstring.¡þ²cell(ND2)´µ{¡þOµµareaµ:µ2µ;¡þŒµµpin("1A"µ"1B")µ{¡þÈµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ1.3µ;¡þBµµ}¡þµµpin(Z)µ{¡þ¼µµµµdirectionµ:µoutputµ;¡þùµµµµfunctionµ:µ"!(\"1A\"µ*µ\"1B\")"µ;¡þ6µµµµtiming()¡þsµµµµµµintrinsic_riseµ:µ0.39µ;¡þ°µµµµµµintrinsic_fallµ:µ0.23µ;¡þìµµµµµµrise_resistanceµ:µ0.0879µ;¡þ)µµµµµµfall_resistanceµ:µ0.0465µ;¡þfµµµµµµrelated_pinµ:µ"1Aµ1B"µ;¡þ£µµµµ}¡þàµµµµinternal_power()¡þµµµµµµrelated_pinµ:µ"AµB"µ;¡þZµµµµµµpowerµ(output_by_cap_and_trans)µ{¡þ—µµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",¡þËµµµµµµµµµµµµµµµµµµ"1.0,µ1.5,µ2.8")µ;¡þ	µµµµµµ}¡þ	Dµµµµ}¡þ	µµ}¡þ	¾}’ÇûD“I501ileaf_page_string1:A-13¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³13¡þÏ²Inverter¡þn²This´µcellµisµanµinverterµgates.µItµhasµaµtimingµarcµfromµinputµpinµAµto¡þ¶outputµpinµY.¡þ8²cell(IVDA)´µ{¡þlµµareaµ:µ1µ;¡þ µµpin(A)µ{¡þÔµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ1.3µ;¡þ;µµ}¡þoµµpin(Y)µ{¡þ£µµµµdirectionµ:µoutputµ;¡þ×µµµµfunctionµ:µ"A'"µ;¡þµµµµtiming()µ{¡þ?µµµµµµintrinsic_riseµ:µ0.49µ;¡þsµµµµµµintrinsic_fallµ:µ0.37µ;¡þ§µµµµµµrise_resistanceµ:µ0.1438µ;¡þÚµµµµµµfall_resistanceµ:µ0.0623µ;¡þµµµµµµrelated_pinµ:µ"A"µ;¡þBµµµµ}¡þµµµµinternal_power()µ{¡þ¼µµµµµµrelated_pinµ:µ"A"µ;¡þùµµµµµµrise_power(output_by_cap_and_trans)µ{¡þ6µµµµµµµµvalues("2.5,µ3.7,µ4.3")µ;¡þsµµµµµµ}¡þ°µµµµµµfall_power(output_by_cap_and_trans)µ{¡þìµµµµµµµµvalues("2.6,µ3.8,µ4.4")µ;¡þ)µµµµµµ}¡þfµµµµ}¡þšµµ}¡þÎ}’ûKD“I501ileaf_page_string1:A-14¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³14¡þÏ²Eight³to³One´µMultiplexer¡þ\²This´µcellµisµanµeight³to³oneµmultiplexerµwithµcomplementaryµoutput¡þ¥pins.µTheµcellµnameµstartsµwithµaµnumber,µsoµitsµnameµmustµbe¡þíenclosedµinµquotes.¡,\²-cell("8inputMUX")´µ{¡,‘µµareaµ:µ15µ;¡,Æµµpin(D0µD1µD2µD3µD4µD5µD6µD7)µ{¡,úµµµµdirectionµ:µinputµ;¡,/µµµµcapacitanceµ:µ2µ;¡,dµµ}¡,™µµpin(AµBµC)µ{¡,Îµµµµdirectionµ:µinputµ;¡,µµµµcapacitanceµ:µ1.3µ;¡,8µµ}¡,mµµpin(Z)µ{¡,¡µµµµdirectionµ:µoutputµ;¡,Öµµµµfunctionµ:µ"((D0µA'B'C')+(D1µAµB'C')+(D2µA'BµC')+µ\¡,µµµµµµµµµµµµµµµµ(D3µAµBµC')+(D4µA'B'C)+(D5µAµB'C)+µ\¡,9µµµµµµµµµµµµµµµµ(D6µA'BµC)+(D7µAµBµC))"µ;¡,£/*µStatementsµthatµextendµbeyondµoneµlineµrequireµtheµline³continuation¡,Ðcharacter,µwhichµisµtheµbackslashµ(\).µµ*/¡,µµµµtiming()µ{¡,:µµµµµµintrinsic_riseµ:µ1.11µ;¡,oµµµµµµintrinsic_fallµ:µ1.34µ;¡,¤µµµµµµrise_resistanceµ:µ0.137µ;¡,Ùµµµµµµfall_resistanceµ:µ0.078µ;¡,µµµµµµrelated_pinµ:µ"D0µD1µD2µD3µD4µD5µD6µD7"µ;¡,Cµµµµ}¡,wµµµµtiming()µ{¡,¬µµµµµµintrinsic_riseµ:µ1.67µ;¡,áµµµµµµintrinsic_fallµ:µ2.41µ;¡,	µµµµµµrise_resistanceµ:µ0.137µ;¡,	Kµµµµµµfall_resistanceµ:µ0.078µ;¡,	€µµµµµµrelated_pinµ:µ"AµBµC"µ;¡,	µµµµµ}¡,	êµµµµinternal_power()µ{¡,
µµµµµµrelated_pinµ:µD0,µD1,µD2,µD3,µD4,µD5,µD6,µD7,µA,µB,µCµ;¡,
Sµµµµµµequal_or_opposite_outputµ:µ"ZB"µ;¡,
ˆµµµµµµpower(output_by_cap1_cap2_and_trans)µ{¡,
½µµµµµµµµvalues("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,µ2.8",\¡Ë
½¡R
½¡Ê
½¡Ê
½¡,
ë¡þ
ë¡…
ë¡
ë"2.1,µ3.6,µ4.2",µ"1.6,µ2.0,µ3.4",µ"0.9,µ1.5,µ2.7".\¡R
ë¡Ê
ë¡Ê
ë¡,¡þ¡…¡¡“"2.0,µ3.5,µ4.1",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.4,µ2.6")µ;’K@D“I501ileaf_page_string1:A-15¥	öäÃËÁâÊË¡Ä,¢,Œ¡Ä,Œ	cŒ¡Ä	cŒ	c¢¡Ä	c¢,¢ÆÃÁÊËÃ¡ÄþŒÊŒÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³15¡,½²-´µµµµµµ}¡,óµµµµ}¡,)µµ}¡,`µµpin(ZB)µ{¡,–µµµµdirectionµ:µoutputµ;¡,Ìµµµµfunctionµ:µ"((D0µA'B'C')+(D1µAµB'C')+(D2µA'BµC')+µ\¡,µµµµµµµµµµµµµµµµ(D3µAµBµC')+(D4µA'B'C)+(D5µAµB'C)+µ\¡,9µµµµµµµµµµµµµµµµ(D6µA'BµC)+(D7µAµBµC))'"µ;¡,oµµµµtiming()µ{¡,¥µµµµµµintrinsic_riseµ:µ1.11µ;¡,Üµµµµµµintrinsic_fallµ:µ1.34µ;¡,µµµµµµrise_resistanceµ:µ0.137µ;¡,Hµµµµµµfall_resistanceµ:µ0.078µ;¡,µµµµµµrelated_pinµ:µ"D0µD1µD2µD3µD4µD5µD6µD7"µ;¡,µµµµµ}¡,Xµµµµtiming()µ{¡,Žµµµµµµintrinsic_riseµ:µ1.67µ;¡,Äµµµµµµintrinsic_fallµ:µ2.41µ;¡,ûµµµµµµrise_resistanceµ:µ0.137µ;¡,1µµµµµµfall_resistanceµ:µ0.078µ;¡,gµµµµµµrelated_pinµ:µ"AµBµC"µ;¡,žµµµµ}¡,Ôµµ}¡,
}¡þÊ²CJKµFlip³Flop¡þ_²This´µcellµisµaµJKµflip³flopµwithµclear.µWhenµCDµgoesµactive,µIQµ(the¡þ§internalµstateµforµtheµQµpin)µisµforcedµlow,µandµIQNµ(theµinternalµstate¡þðforµtheµQNµpin)µisµforcedµhigh.¡þ	o²cell(JKflipflop)´µ{¡þ	«µµareaµ:µ11µ;¡þ	èµµpin(J)µ{¡þ
$µµµµdirectionµ:µinputµ;¡þ
aµµµµcapacitanceµ:µ1.3µ;¡þ
µµµµtiming()µ{¡þ
Úµµµµµµtiming_typeµ:µsetup_risingµ;¡þµµµµµµintrinsic_riseµ:µ1.5µ;’@uD“I501ileaf_page_string1:A-16¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³16¡þÃ²´µµµµµµintrinsic_fallµ:µ1.5µ;¡þÿµµµµµµrelated_pinµ:µ"CP"µ;¡þ:µµµµ}¡þvµµµµtiming()µ{¡þ²µµµµµµtiming_typeµ:µhold_risingµ;¡þíµµµµµµintrinsic_riseµ:µ0.0µ;¡þ)µµµµµµintrinsic_fallµ:µ0.0µ;¡þeµµµµµµrelated_pinµ:µ"CP"µ;¡þ µµµµ}¡þÜµµ}¡þµµpin(K)µ{¡þSµµµµdirectionµ:µinputµ;¡þµµµµcapacitanceµ:µ1.3µ;¡þËµµµµtiming()µ{¡þµµµµµµtiming_typeµ:µsetup_risingµ;¡þBµµµµµµintrinsic_riseµ:µ1.5µ;¡þ~µµµµµµintrinsic_fallµ:µ1.5µ;¡þºµµµµµµrelated_pinµ:µ"CP"µ;¡þõµµµµ}¡þ1µµµµtiming()µ{¡þmµµµµµµtiming_typeµ:µhold_risingµ;¡þ¨µµµµµµintrinsic_riseµ:µ0.0µ;¡þäµµµµµµintrinsic_fallµ:µ0.0µ;¡þ µµµµµµrelated_pinµ:µ"CP"µ;¡þ[µµµµ}¡þ—µµ}¡þÓµµpin(CP)µ{¡þµµµµdirectionµ:µinputµ;¡þJµµµµcapacitanceµ:µ1.3µ;¡þ†µµµµinternal_power()µ{¡þÁµµµµµµpower(input_by_trans)µ{¡þýµµµµµµµµvalues("1.5,µ2.5,µ4.7")µ;¡þ	9µµµµµµ}¡þ	uµµµµ}¡þ	°µµµµmin_pulse_width_lowµµ:µ1.10µ;¡þ	ìµµµµmin_pulse_width_highµ:µ1.10µ;¡þ
(µµ}¡þ
cµµpin(CD)µ{¡þ
Ÿµµµµdirectionµ:µinputµ;¡þ
Ûµµµµcapacitanceµ:µ2µ;¡þµµµµtiming()µ{’uQD“I501ileaf_page_string1:A-17¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³17¡þÃ²´µµµµµµtiming_typeµ:µrecovery_risingµ;¡þÿµµµµµµintrinsic_riseµ:µ0.6µ;¡þ;µµµµµµintrinsic_fallµ:µ0µ;µ/*µmustµbeµ0µ*/¡þxµµµµµµrelated_pinµ:µ"CP";¡þ´µµµµ}¡þðµµ}¡þ-µµff(IQ,IQN)µ{¡þiµµµµnext_stateµ:µ"µ(J'µK'µIQ)µ+µ(JµK')µ+µ(JµKµIQ')µ"µ;¡þ¥µµµµclocked_onµ:µ"CP"µ;¡þâµµµµclearµ:µ"CD'"µ;¡þµµ}¡þZµµpin(Q)µ{¡þ—µµµµdirectionµ:µoutput¡þÓµµµµfunctionµ:µ"IQ"µ;¡þµµµµtiming()µ{¡þLµµµµµµtiming_typeµ:µrising_edgeµ;¡þˆµµµµµµintrinsic_riseµ:µ1.21µ;¡þÄµµµµµµintrinsic_fallµ:µ0.97µ;¡þµµµµµµrise_resistanceµ:µ0.1487µ;¡þ=µµµµµµfall_resistanceµ:µ0.0693µ;¡þyµµµµµµrelated_pinµ:µ"CP"µ;¡þ¶µµµµ}¡þòµµµµtiming()µ{¡þ.µµµµµµtiming_typeµ:µclearµ;¡þkµµµµµµtiming_senseµ:µpositive_unateµ;¡þ§µµµµµµintrinsic_fallµ:µ0.79µ;¡þãµµµµµµfall_resistanceµ:µ0.0693µ;¡þ µµµµµµrelated_pinµ:µ"CD"µ;¡þ\µµµµ}¡þ˜µµµµinternal_power()µ{¡þÔµµµµµµrelated_pinµ:µCP,µCDµ;¡þ	µµµµµµequal_or_opposite_outputµ:µQNµ;¡þ	Mµµµµµµpower(output_by_cap1_cap2_and_trans)µ{¡þ	‰µµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ\¡þ	½µµµµµµµµ"1.0,µ1.5,µ2.8",µ"2.1,µ3.6,µ4.2",µ"1.6,µ\¡þ	ñµµµµµµµµ2.0,µ3.4",µ"0.9,µ1.5,µ2.7",µ"2.0,µ3.5,µ\¡þ
%µµµµµµµµ4.1",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.4,µ2.6")µ;¡þ
aµµµµµµ}¡þ
žµµµµ}¡þ
Úµµ}¡þµµpin(QN)µ{’QîD“I501ileaf_page_string1:A-18¥	öäÃËÁâÊË¡Ä,f,P¡Ä,P	cP¡Ä	cP	cf¡Ä	cf,fÆÃÁÊËÃ¡ÄþPÊPÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³18¡þÃ²´µµµµdirectionµ:µoutputµ;¡þÿµµµµfunctionµ:µ"IQN"µ;¡þ<µµµµtiming()µ{¡þxµµµµµµtiming_typeµ:µrising_edgeµ;¡þµµµµµµµintrinsic_riseµ:µ1.29µ;¡þñµµµµµµintrinsic_fallµ:µ1.61µ;¡þ.µµµµµµrise_resistanceµ:µ0.1723µ;¡þjµµµµµµfall_resistanceµ:µ0.0553µ;¡þ§µµµµµµrelated_pinµ:µ"CP"µ;¡þãµµµµ}¡þ µµµµtiming()µ{¡þ\µµµµµµtiming_typeµ:µpresetµ;¡þ™µµµµµµtiming_senseµ:µnegative_unateµ;¡þÕµµµµµµintrinsic_riseµ:µ1.36µ;¡þµµµµµµrise_resistanceµ:µ0.1723µ;¡þOµµµµµµrelated_pinµ:µ"CD"µ;¡þ‹µµµµ}¡þÈµµ}¡þ}¡þ ²D´µFlip³Flop¡þ;²This´µcellµisµaµDµflip³flop.¡,´²-cell(flipflop1)´µ{¡,êµµareaµ:µ7µ;¡, µµpin(D)µ{¡,Wµµµµdirectionµ:µinputµ;¡,µµµµcapacitanceµ:µ1.3µ;¡,Ãµµµµtiming()µ{¡,ùµµµµµµtiming_typeµ:µsetup_risingµ;¡,	0µµµµµµintrinsic_riseµ:µ0.9µ;¡,	fµµµµµµintrinsic_fallµ:µ0.9µ;¡,	œµµµµµµrelated_pinµ:µ"CP"µ;¡,	Óµµµµ}¡,
	µµµµtiming()µ{¡,
?µµµµµµtiming_typeµ:µhold_risingµ;¡,
vµµµµµµintrinsic_riseµ:µ0.5µ;¡,
¬µµµµµµintrinsic_fallµ:µ0.5µ;¡,
âµµµµµµrelated_pinµ:µ"CP"µ;¡,µµµµ}’î»D“I501ileaf_page_string1:A-19¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³19¡,½²-´µµ}¡,óµµpin(CP)µ{¡,*µµµµdirectionµ:µinputµ;¡,aµµµµinternal_power()µ{¡,˜µµµµµµpower(input_by_trans)µ{¡,Ïµµµµµµµµvalues("1.5,µ2.5,µ4.7");¡,µµµµµµ}¡,=µµµµ}¡,tµµµµcapacitanceµ:µ1.3µ;¡,ªµµµµmin_pulse_width_highµ:µ1.5µ;¡,áµµµµmin_pulse_width_lowµµ:µ1.5µ;¡,µµ}¡,Oµµff(IQ,IQN)µ{¡,†µµµµnext_stateµ:µ"D"µ;¡,½µµµµclocked_onµ:µ"CP"µ;¡,ôµµ}¡,+µµpin(Q)µ{¡,aµµµµdirectionµ:µoutputµ;¡,˜µµµµfunctionµ:µ"IQ"µ;¡,Ïµµµµtiming()µ{¡,µµµµµµtiming_typeµ:µrising_edgeµ;¡,=µµµµµµintrinsic_riseµ:µ1.11µ;¡,tµµµµµµintrinsic_fallµ:µ1.43µ;¡,«µµµµµµrise_resistanceµ:µ0.1513µ;¡,áµµµµµµfall_resistanceµ:µ0.0544µ;¡,µµµµµµrelated_pinµ:µ"CP"µ;¡,Oµµµµ}¡,†µµµµinternal_power()µ{¡,½µµµµµµrelated_pinµ:µ"CP"µ;¡,ôµµµµµµequal_or_opposite_outputµ:µ"QN"µ;¡,+µµµµµµpower(output_by_cap1_cap2_andµtrans)µ{¡,bµµµµµµµµvalues("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,µ2.8",\¡Ëb¡Rb¡Êb¡Êb¡,¡þ¡…¡"2.1,µ3.6,µ4.2",µ"1.6,µ2.0,µ3.4",µ"0.9,µ1.5,µ2.7".\¡R¡Ê¡Ê¡,½¡þ½¡…½¡½¡“½"2.0,µ3.5,µ4.1",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.4,µ2.6")µ;¡,ôµµµµµµ}¡,	+µµµµ}¡,	aµµ}¡,	˜µµpin(QN)µ{¡,	Ïµµµµdirectionµ:µoutputµ;¡,
µµµµfunctionµ:µ"IQN"¡,
=µµµµtiming()µ{¡,
tµµµµµµtiming_typeµ:µrising_edgeµ;¡,
«µµµµµµintrinsic_riseµ:µ1.58µ;¡,
âµµµµµµintrinsic_fallµ:µ1.56µ;¡,µµµµµµrise_resistanceµ:µ0.1513µ;’»öD“I501ileaf_page_string1:A-20¥	öäÃËÁâÊË¡Ä,5,¡Ä,	c¡Ä	c	c5¡Ä	c5,5ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³20¡,½²-´µµµµµµfall_resistanceµ:µ0.0544µ;¡,óµµµµµµrelated_pinµ:µ"CP"µ;¡,*µµµµ}¡,aµµ}¡,˜}¡þo²D´µFlip³FlopµwithµClearµandµSet¡þ²This´µcellµisµaµDµflip³flopµwithµclearµandµsetµpin.µIfµtheµCDµandµSDµpins¡þW(clearµandµset)µareµbothµactive,µbothµoutputµpins,µQµandµQN,µgoµto¡þ logicµ0.¡,²-cell(flipflop2)´µ{¡,Rµµareaµ:µ9µ;¡,‰µµpin(D)µ{¡,Àµµµµdirectionµ:µinputµ;¡,÷µµµµcapacitanceµ:µ1.3µ;¡,-µµµµtiming()µ{¡,dµµµµµµtiming_typeµ:µsetup_risingµ;¡,›µµµµµµintrinsic_riseµ:µ0.8µ;¡,Òµµµµµµintrinsic_fallµ:µ0.8µ;¡,µµµµµµrelated_pinµ:µ"CP"µ;¡,?µµµµ}¡,vµµµµtiming()µ{¡,­µµµµµµtiming_typeµ:µhold_risingµ;¡,ãµµµµµµintrinsic_riseµ:µ0.5µ;¡,µµµµµµintrinsic_fallµ:µ0.5µ;¡,Qµµµµµµrelated_pinµ:µ"CP"µ;¡,‡µµµµ}¡,¾µµ}¡,õµµpin(CP)µ{¡,	,µµµµdirectionµ:µinputµ;¡,	bµµµµinternal_power()µ{¡,	™µµµµµµpower(input_by_trans)µ{¡,	Ðµµµµµµµµvalues("1.5,µ2.5,µ4.7");¡,
µµµµµµ}¡,
=µµµµ}¡,
tµµµµcapacitanceµ:µ1.3µ;¡,
«µµµµmin_pulse_width_highµ:µ1.10µ;¡,
âµµµµmin_pulse_width_lowµµ:µ1.10µ;¡,µµ}’öXD“I501ileaf_page_string1:A-21¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³21¡,½²-´µµpin(CD)µ{µµµµ/*µClearµDataµ*/¡,óµµµµdirectionµ:µinputµ;¡,*µµµµcapacitanceµ:µ2µ;¡,`µµµµtiming()µ{¡,–µµµµµµtiming_typeµ:µrecovery_risingµ;¡,Íµµµµµµintrinsic_riseµ:µ0.1µ;¡,µµµµµµintrinsic_fallµ:µ0µ;µ/*µµmustµbeµ0µ*/¡,:µµµµ}¡,pµµ}¡,§µµpin(SD)µ{µµµ/*µSetµDataµµµµ*/¡,Ýµµµµdirectionµ:µinputµ;¡,µµµµcapacitanceµ:µ2µ;¡,Jµµµµtiming()µ{¡,€µµµµµµtiming_typeµ:µrecovery_risingµ;¡,·µµµµµµintrinsic_riseµ:µ0.5µ;¡,íµµµµµµintrinsic_fallµ:µ0µ;µ/*µµmustµbeµ0µ*/¡,$µµµµµµrelated_pinµ:µ"CP";¡,Zµµµµ}¡,‘µµ}¡,Çµµffµ(IQ,µIQN)µ{¡,þµµµµnext_stateµ:µ"D"µ;¡,4µµµµclocked_onµ:µ"CP"µ;¡,kµµµµclearµ:µ"CD'"µ;¡,¡µµµµpresetµ:µ"SD'"µ;¡,×µµµµclear_preset_var1µ:µLµ;¡,µµµµclear_preset_var2µ:µLµ;¡,Dµµ}¡,{µµpin(Q)µ{¡,±µµµµdirectionµ:µoutputµ;¡,èµµµµfunctionµ:µ"IQ"µ;¡,µµµµtiming()µ{¡,Uµµµµµµtiming_typeµ:µrising_edgeµ;¡,‹µµµµµµintrinsic_riseµ:µ1.21µ;¡,Áµµµµµµintrinsic_fallµ:µ1.33µ;¡,øµµµµµµrise_resistanceµ:µ0.1487µ;¡,	.µµµµµµfall_resistanceµ:µ0.0563µ;¡,	eµµµµµµrelated_pinµ:µ"CP"µ;¡,	›µµµµ}¡,	Òµµµµtiming()µ{¡,
µµµµµµtiming_typeµ:µclearµ;¡,
?µµµµµµtiming_senseµ:µpositive_unateµ;¡,
uµµµµµµintrinsic_fallµ:µ0.83µ;¡,
¬µµµµµµfall_resistanceµ:µ0.0563µ;¡,
âµµµµµµrelated_pinµ:µ"CD"µ;¡,µµµµ}’X<D“I501ileaf_page_string1:A-22¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³22¡,½²-´µµµµtiming()µ{¡,óµµµµµµtiming_typeµ:µpresetµ;¡,*µµµµµµtiming_senseµ:µnegative_unateµ;¡,aµµµµµµintrinsic_riseµ:µ1.33µ;¡,˜µµµµµµrise_resistanceµ:µ0.1487µ;¡,Ïµµµµµµrelated_pinµ:µ"SD"µ;¡,µµµµ}¡,=µµµµinternal_power()µ{¡,tµµµµµµpower(output_by_cap1_cap2_and_trans)µ{¡,ªµµµµµµµµvalues("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",µ"1.0,µ1.5,µ2.8",\¡Ëª¡Rª¡Êª¡Êª¡,Ø¡þØ¡…Ø¡Ø"2.1,µ3.6,µ4.2",µ"1.6,µ2.0,µ3.4",µ"0.9,µ1.5,µ2.7",\¡RØ¡ÊØ¡ÊØ¡,¡þ¡…¡¡“"2.0,µ3.5,µ4.1",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.4,µ2.6")µ;¡,=µµµµµµ}¡,tµµµµµµwhenµ:µ"Sµ+µR"µ;¡,ªµµµµµµequal_or_opposite_outputµ:µ"QN"µ;¡,áµµµµµµrelated_pinµ:µ"CP"µ;¡,µµµµ}¡,Oµµµµinternal_power()µ{¡,†µµµµµµpower(output_by_cap_and_trans)µ{¡,½µµµµµµµµvalues("1.8,µ3.4,µ4.0",µ"1.5,µ1.9,µ3.3",µ"0.8,µ1.3,µ2.5")µ;¡,ôµµµµµµ}¡,*µµµµµµrelated_pinµ:µ"SµR"µ;¡,aµµµµ}¡,˜µµ}¡,Ïµµpin(QN)µ{¡,µµµµdirectionµ:µoutputµ;¡,=µµµµfunctionµ:µ"IQN"µ;¡,tµµµµtiming()µ{¡,«µµµµµµtiming_typeµ:µrising_edgeµ;¡,áµµµµµµintrinsic_riseµ:µ1.73µ;¡,µµµµµµintrinsic_fallµ:µ1.66µ;¡,Oµµµµµµrise_resistanceµ:µ0.1513µ;¡,†µµµµµµfall_resistanceµ:µ0.0544µ;¡,½µµµµµµrelated_pinµ:µ"CP"µ;¡,ôµµµµ}¡,	+µµµµtiming()µ{¡,	aµµµµµµtiming_typeµ:µpresetµ;¡,	˜µµµµµµtiming_senseµ:µnegative_unateµ;¡,	Ïµµµµµµintrinsic_riseµ:µ1.36µ;¡,
µµµµµµrise_resistanceµ:µ0.1723µ;¡,
=µµµµµµrelated_pinµ:µ"CD"µ;¡,
tµµµµ}¡,
«µµµµtiming()µ{¡,
âµµµµµµtiming_typeµ:µclearµ;¡,µµµµµµtiming_senseµ:µpositive_unateµ;’<¿D“I501ileaf_page_string1:A-23¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³23¡,½²-´µµµµµµintrinsic_fallµ:µ0.95µ;¡,óµµµµµµfall_resistanceµ:µ.0544µ;¡,*µµµµµµrelated_pinµ:µ"SD"µ;¡,aµµµµ}¡,—µµµµinternal_power()µ{¡,Îµµµµµµpower(output_by_cap_and_trans)µ{¡,µµµµµµµµvalues("0.5,µ0.9,µ1.3",µ"0.3,µ0.7,µ1.1",µ"0.2,µ0.5,µ0.9")µ;¡,;µµµµµµ}¡,rµµµµµµrelated_pinµ:µ"SµR"µ;¡,©µµµµ}¡,ßµµ}¡,}’¿"D“I501ileaf_page_string1:A-24¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡6Â²Sample´µCMOSµTechnologyµLibrary¡4A³24¡þÏ²D´µLatch¡þg²This´µcellµisµaµDµlatch.¡,Þ²-cell(D_LATCH)´µ{¡,µµareaµ:µ5;¡,Jµµpin(D)µ{¡,€µµµµdirectionµ:µinput;¡,¶µµµµcapacitanceµ:µ1;¡,ìµµµµtiming()µ{¡,"µµµµµµtiming_typeµ:µsetup_falling;µ/*ToµfallingµedgeµofµGµ*/¡,Xµµµµµµintrinsic_riseµ:µ0.650;¡,Žµµµµµµintrinsic_fallµ:µ0.650;¡,Äµµµµµµrelated_pinµ:µ"G";¡,úµµµµ}¡,0µµµµtiming()µ{¡,fµµµµµµtiming_typeµ:µhold_falling;µµ/*ToµfallingµedgeµofµGµ*/¡,œµµµµµµintrinsic_riseµ:µ0.650;¡,Òµµµµµµintrinsic_fallµ:µ0.650;¡,µµµµµµrelated_pinµ:µ"G";¡,>µµµµ}¡,tµµ}¡,ªµµpin(G)µ{¡,àµµµµdirectionµ:µinput;¡,µµµµcapacitanceµ:µ1;¡,‚µµ}¡,¸µµpin(CD)µ{¡,îµµdirectionµ:µinput;¡,$µµcapacitanceµ:µ1;¡,Zµµ}¡,µµlatchµ("IQ","IQN")µ{¡,Æµµdata_inµ:µ"D";¡,üµµenableµ:µ"G";¡,	2µµclearµ:µ"CD'";¡,	hµµ}¡,	žµµpin(Q)µ{¡,	Ôµµµµdirectionµ:µoutput;¡,

µµµµfunctionµ:µ"IQ";¡,
@µµµµinternal_power()µ{¡,
vµµµµµµrelated_pinµ:µD,µG,µCD'µ;¡,
¬µµµµµµequal_or_opposite_outputµ:µQNµ;¡,
âµµµµµµpower(output_by_cap_and_trans)µ{¡,µµµµµµµµvalues("0.5,µ0.9,µ1.3",µ"0.3,µ0.7,µ1.1",µ"0.2,µ0.5,µ0.9")µ;’"§D“I501ileaf_page_string1:A-25¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³25¡,½²-´µµµµµµ}¡,óµµµµ}¡,*µµµµtiming()µ{¡,`µµµµµµtiming_typeµ:µrising_edge;µµ/*µArcµactivatesµwhenµ*/¡,–µµµµµµintrinsic_riseµ:µ0.89;µµµµµµ/*µenableµgoesµactiveµ*/¡,Íµµµµµµintrinsic_fallµ:µ0.86;µµµµµµ/*µ(rises).µµµµµµµµµµµ*/¡,µµµµµrise_resistanceµ:µ0.1458;¡,:µµµµµfall_resistanceµ:µ0.0653;¡,pµµµµµrelated_pinµ:µ"G";¡,§µµµµ}¡,Ýµµµµtiming()µ{¡,µµµµµµintrinsic_riseµ:µ0.65¡,Jµµµµµµintrinsic_fallµ:µ0.77;¡,€µµµµµµrise_resistanceµ:µ0.1458;¡,·µµµµµµfall_resistanceµ:µ0.0653;¡,íµµµµµµtiming_senseµ:µpositive_unate;¡,$µµµµµµrelated_pinµ:µ"D";¡,Zµµµµ}¡,‘µµµµtiming()µ{¡,Çµµµµµµtiming_typeµ:µclear;¡,þµµµµµµtiming_senseµ:µpositive_unate;¡,4µµµµµµintrinsic_fallµ:µ0.87;¡,kµµµµµµfall_resistanceµ:µ0.0677;¡,¡µµµµµµrelated_pinµ:µ"CD";¡,×µµµµ}¡,µµ}¡,Dµµpin(QN)µ{¡,{µµµµdirectionµ:µoutput;¡,±µµµµfunctionµ:µ"IQN";¡,èµµµµtiming()µ{¡,µµµµµµtiming_typeµ:µrising_edge;¡,Uµµµµµµintrinsic_riseµ:µ1.18;¡,‹µµµµµµintrinsic_fallµ:µ1.37;¡,Áµµµµµµrise_resistanceµ:µ0.1443;¡,øµµµµµµfall_resistanceµ:µ0.0523;¡,	.µµµµµµrelated_pinµ:µ"G";¡,	eµµµµ}¡,	›µµµµtiming()µ{¡,	Òµµµµµµintrinsic_riseµ:µ0.61¡,
µµµµµµintrinsic_fallµ:µ0.71;¡,
?µµµµµµrise_resistanceµ:µ0.1443;¡,
uµµµµµµfall_resistanceµ:µ0.0523;¡,
¬µµµµµµtiming_senseµ:µnegative_unate;¡,
âµµµµµµrelated_pinµ:µ"D";¡,µµµµ}’§PD“I501ileaf_page_string1:A-26¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³26¡,½²-´µµµµtiming()µ{¡,óµµµµµµtiming_typeµ:µpreset;¡,*µµµµµµtiming_senseµ:µnegative_unate;¡,aµµµµµµintrinsic_riseµ:µ0.87;¡,—µµµµµµrise_resistanceµ:µ0.0677;¡,Îµµµµµµrelated_pinµ:µ"CD";¡,µµµµ}¡,;µµ}¡,r}’PD“I501ileaf_page_string1:A-27¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³27¡þÏ²Three³State´µInverter¡þe²This´µcellµisµaµthree³stateµinverter.¡þá²cell(TRI_INV2)´µ{¡þµareaµ:µ3µ;¡þYµµpin(A)µ{¡þ•µµµµdirectionµ:µinputµ;¡þÑµµµµcapacitanceµ:µ2µ;¡þµµ}¡þIµµpin(E)µ{¡þ…µµµµdirectionµ:µinputµ;¡þÁµµµµcapacitanceµ:µ2µ;¡þýµµ}¡þ9µµpin(Z)µ{¡þuµµµµdirectionµ:µoutputµ;¡þ±µµµµfunctionµ:µ"A'"µ;¡þíµµµµthree_stateµ:µ"E"µ;¡þ)µµµµtiming()µ{¡þfµµµµµµintrinsic_riseµ:µ0.41µ;¡þ¢µµµµµµintrinsic_fallµ:µ0.75µ;¡þÞµµµµµµrise_resistanceµ:µ0.14µ;¡þµµµµµµfall_resistanceµ:µ0.07µ;¡þVµµµµµµrelated_pinµ:µ"A"µ;¡þ’µµµµ}¡þÎµµµµtiming()µ{¡þ
µµµµµµtiming_typeµ:µthree_state_enableµ;¡þFµµµµµµintrinsic_riseµ:µ0.41µ;¡þ‚µµµµµµintrinsic_fallµ:µ0.75µ;¡þ¾µµµµµµrise_resistanceµ:µ0.14µ;¡þúµµµµµµfall_resistanceµ:µ0.07µ;¡þ	6µµµµµµrelated_pinµ:µ"E"µ;¡þ	rµµµµ}¡þ	®µµµµtiming()µ{¡þ	êµµµµµµtiming_typeµ:µthree_state_disableµ;¡þ
&µµµµµµintrinsic_riseµ:µ0.25µ;¡þ
bµµµµµµintrinsic_fallµ:µ0.35µ;¡þ
žµµµµµµrise_resistanceµ:µ0.14µ;¡þ
Úµµµµµµfall_resistanceµ:µ0.07µ;¡þµµµµµµrelated_pinµ:µ"E"µ;’aD“I501ileaf_page_string1:A-28¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³28¡þÃ²´µµµµ}¡þµµµµinternal_power()µ{¡þ=µµµµµµrelated_pinµ:µA,µEµ;¡þzµµµµµµwhenµ:µ"E'"µ;¡þ¶µµµµµµpower(output_by_cap_and_trans)µ{¡þóµµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",¡þ'µµµµµµµµµµµµµµµµµµ"1.0,µ1.5,µ2.8")µ;¡þdµµµµµµ}¡þ¡µµµµ}¡þÞµµµµinternal_power()µ{¡þµµµµµµrelated_pinµ:µA,µEµ;¡þXµµµµµµpower(output_by_cap_and_trans)µ{¡þ•µµµµµµµµµµvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,µ3.5",¡þÈµµµµµµµµµµµµµµµµµµ"1.0,µ1.5,µ2.8")µ;¡þµµµµµµ}¡þBµµµµ}¡þµµ}¡þ¼}’a¬D“I501ileaf_page_string1:A-29¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³29¡þÏ²Pad´µCell¡þj²This´µcellµisµanµoutputµpad.µTheµdont_touchµandµdont_useµattribute¡þ²definitionsµinµtheµcellµdescriptionµpreventµDesignµCompilerµfrom¡þûoptimizingµanµoutputµpadµcellµorµreplacingµaµcoreµcellµwithµaµpadµcell.¡þšNote:²¡Xâ²Youµmustµdescribeµpadµcellsµfunctionallyµifµyouµintendµtoµuseµthe¡X+TestµCompilerµtoµcheckµfaultµcoverageµandµgenerateµtest¡Xspatternsµforµyourµchipµdesigns.¡þò²´µµµoutput_voltage(GENERAL)µ{¡þ.µµµµµvolµ:µ0.4µ;¡þkµµµµµvohµ:µ2.4µ;¡þ§µµµµµvominµ:µ³0.3µ;¡þäµµµµµvomaxµ:µVDDµ+µ0.3µ;¡þ µµµ}¡þ]µµµinput_voltage(µCMOSµ)µ{¡þ™µµµµµvilµ:µ0.3µ*µVSS;¡þÖµµµµµvihµ:µ0.7µ*µVSS;¡þµµµµµviminµ:µ³0.5;¡þOµµµµµvimaxµ:µVSSµ+µ0.5;¡þ‹µµµ}¡þÈ¡…Ècell(OUTBUF)µ{¡þ¡…¡areaµ:µ0.000000;¡þA¡…A¡Apad_cellµ:µtrue;¡þ}¡…}¡}pin(D)µ{¡þº¡…º¡º¡“ºdirectionµ:µinput;¡þö¡…ö¡ö¡“öcapacitanceµ:µ1.800000;¡þ	3¡…	3¡	3}¡þ	o¡…	o¡	opin(PAD)µ{¡þ	¬¡…	¬¡	¬¡“	¬directionµ:µoutput;¡þ	è¡…	è¡	è¡“	èis_padµ:µtrue;¡þ
$¡…
$¡
$¡“
$drive_currentµ:µ2.0;¡þ
a¡…
a¡
a¡“
aoutput_voltageµ:µGENERAL;¡þ
¡…
¡
¡“
functionµ:µ"D";¡þ
Ú¡…
Ú¡
Ú¡“
Útiming()µ{¡þ¡…¡¡“¡intrinsic_fallµ:µ9.348001’¬þD“I501ileaf_page_string1:A-30¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³30¡þÃ²¡…Ã¡Ã¡“Ã¡Ãintrinsic_rise´µ:µ8.487000¡þ¡…¡¡“¡fall_resistanceµ:µ0.186960¡þ=¡…=¡=¡“=¡=rise_resistanceµ:µ0.169740¡þz¡…z¡z¡“z¡zrelated_pinµ:"D";¡þ¶¡…¶¡¶¡“¶}¡þó¡…ó¡ó¡“óinternal_power()µ{¡þ0¡…0¡0¡“0¡0related_pinµ:µA,µEµ;¡þm¡…m¡m¡“m¡mwhenµ:µ"E'"µ;¡þª¡…ª¡ª¡“ª¡ªpower(output_by_cap_and_trans)µ{¡þç¡…ç¡ç¡“ç¡ç¡¡çvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,¡þ¡…¡¡“¡¡¡¡(2.1,µ3.5","1.0,µ1.5,µ2.8")µ;¡þX¡…X¡X¡“X¡X}¡þ•¡…•¡•¡“•}¡þÑ¡…Ñ¡Ñ¡“Ñinternal_power()µ{¡þ¡…¡¡“¡related_pinµ:µA,µEµ;¡þK¡…K¡K¡“K¡Kpower(output_by_cap_and_trans)µ{¡þˆ¡…ˆ¡ˆ¡“ˆ¡ˆ¡¡ˆvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,¡þ¼¡…¼¡¼¡“¼¡¼¡¡¼¡(¼3.5",µ"1.0,µ1.5,µ2.8")µ;¡þù¡…ù¡ù¡“ù¡ù}¡þ6¡…6¡6¡“6}¡þs¡…s¡s}¡þ°¡…°}’þ&D“I501ileaf_page_string1:A-31¥	öäÃËÁâÊË¡Ä,•,¡Ä,	c¡Ä	c	c•¡Ä	c•,•ÆÃÁÊËÃ¡ÄþÊÆÃ¥	öä¥	öä¡óÂ²Sample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³31¡þÏ²Bidirectional´µPadµCell¡þi²This´µcellµisµaµbidirectionalµpadµcellµwithµanµinoutµpin.¡þæ²cell(BIBUF)´µ{¡þ#¡…#areaµ:µ0.000000;¡þ_¡…_pad_cellµ:µtrue;¡þœ¡…œpin(EµDµ)µ{¡þØ¡…Ø¡Ødirectionµ:µinput;¡þ¡…¡capacitanceµ:µ1.800000;¡þQ¡…Q}¡þ¡…pin(Yµ)µ{¡þÉ¡…É¡Édirectionµ:µoutput;¡þ¡…¡functionµ:µ"PAD";¡þB¡…B¡Bdriver_typeµ:µ"open_sourceµpull_up";¡þ~¡…~¡~pulling_resistanceµ:µ10000;¡þ»¡…»¡»timing()µ{¡þ÷¡…÷¡÷¡“÷intrinsic_fallµ:µ2.952000¡þ4¡…4¡4¡“4intrinsic_riseµ:µ3.075000¡þp¡…p¡p¡“pfall_resistanceµ:µ0.500000¡þ¬¡…¬¡¬¡“¬rise_resistanceµ:µ0.500000¡þé¡…é¡é¡“érelated_pinµ:"PAD";¡þ%¡…%¡%}¡þa¡…a¡ainternal_power()µ{¡þž¡…ž¡ž¡“žrelated_pinµ:µ"EµD"µ;¡þÚ¡…Ú¡Ú¡“Úwhenµ:µ"E'"µ;¡þ¡…¡¡“power(output_by_cap_and_trans)µ{¡þS¡…S¡S¡“S¡Svaluesµ("2.1,µ3.6,µ4.2",µ"1.6,µ2.0,¡þ‡¡…‡¡‡¡“‡¡‡¡¡‡3.4",µ"0.9,µ1.5,µ2.7")µ;¡þÃ¡…Ã¡Ã¡“Ã}¡þ	¡…	¡	}¡þ	<¡…	<¡	<internal_power()µ{¡þ	x¡…	x¡	x¡“	xrelated_pinµ:µ"EµD"µ;¡þ	µ¡…	µ¡	µ¡“	µpower(output_by_cap_and_trans)µ{¡þ	ñ¡…	ñ¡	ñ¡“	ñ¡	ñvaluesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,¡þ
%¡…
%¡
%¡“
%¡
%¡¡
%3.5",µ"1.0,µ1.5,µ2.8")µ;¡þ
a¡…
a¡
a¡“
a}¡þ
ž¡…
ž¡
ž}¡þ
Ú¡…
Ú}¡þ¡…pin(PADµ)µ{’&–D“I501ileaf_page_string1:A-32¥	öä¥	öä¡6Â²âSample´µCMOSµTechnologyµLibrary¡4A³32¡þÃ²¡…Ã¡Ãdirection´µ:µinout;¡þÿ¡…ÿ¡ÿis_padµ:µtrue;¡þ;¡…;¡;drive_currentµ:µ2.0;¡þw¡…w¡woutput_voltageµ:µGENERAL;¡þ²¡…²¡²input_voltageµ:µCMOS;¡þî¡…î¡îfunctionµ:µ"D";¡þ*¡…*¡*three_stateµ:µ"E";¡þf¡…f¡ftiming()µ{¡þ¢¡…¢¡¢¡“¢timing_typeµ:µthree_state_enableµ;¡þÞ¡…Þ¡Þ¡“Þintrinsic_fallµ:µ19.065001¡þ¡…¡¡“intrinsic_riseµ:µ17.466000¡þV¡…V¡V¡“Vfall_resistanceµ:µ0.381300¡þ’¡…’¡’¡“’rise_resistanceµ:µ0.346860¡þÍ¡…Í¡Í¡“Írelated_pinµ:"E";¡þ	¡…	¡	}¡þE¡…E¡Etiming()µ{¡þ¡…¡¡“timing_typeµ:µthree_state_disableµ;¡þ½¡…½¡½¡“½intrinsic_fallµ:µ17.088001¡þù¡…ù¡ù¡“ùintrinsic_riseµ:µ15.656000¡þ5¡…5¡5¡“5fall_resistanceµ:µ0.330300¡þq¡…q¡q¡“qrise_resistanceµ:µ0.255860¡þ¬¡…¬¡¬¡“¬related_pinµ:"E";¡þè¡…è¡è}¡þ$¡…$¡$timing()µ{¡þ`¡…`¡`¡“`intrinsic_fallµ:µ9.348001¡þœ¡…œ¡œ¡“œintrinsic_riseµ:µ8.487000¡þØ¡…Ø¡Ø¡“Øfall_resistanceµ:µ0.186960¡þ¡…¡¡“rise_resistanceµ:µ0.169740¡þP¡…P¡P¡“Prelated_pinµ:"D";¡þŒ¡…Œ¡Œ}¡þÇ¡…Ç¡Çinternal_power()µ{¡þ	¡…	¡	¡“	related_pinµ:µ"EµD"µ;¡þ	?¡…	?¡	?¡“	?whenµ:µ"E'"µ;¡þ	{¡…	{¡	{¡“	{power(output_by_cap_and_trans)µ{¡þ	·¡…	·¡	·¡“	·¡	·valuesµ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,¡þ	ë¡…	ë¡	ë¡“	ë¡	ë¡¡	ë3.5",µ"1.0,µ1.5,µ2.8")µ;¡þ
'¡…
'¡
'¡“
'}¡þ
c¡…
c¡
c}¡þ
Ÿ¡…
Ÿ¡
Ÿinternal_power()µ{¡þ
Ú¡…
Ú¡
Ú¡“
Úrelated_pinµ:µ"EµD"µ;¡þ¡…¡¡“power(output_by_cap_and_trans)µ{’–&D“I501ileaf_page_string1:A-33¥	öä¥	öä¡óÂ²âSample´µCMOSµTechnologyµLibrary¡À¤ÿŸA³33¡þÃ²¡…Ã¡Ã¡“Ã¡Ãvalues´µ("2.2,µ3.7,µ4.3",µ"1.7,µ2.1,¡þ÷¡…÷¡÷¡“÷¡÷¡¡÷3.5",µ"1.0,µ1.5,µ2.8")µ;¡þ4¡…4¡4¡“4}¡þq¡…q¡q}¡þ­¡…­}¡þê}’&ÐOPS m:m:D€‚Document:Glossaryÿ‚Last saved on:Tue, Dec 9, 1997 17:52:43ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°wst:helvps8b±:					 								!									!!!!°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°wst:helvps14b±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4*"           """#9****'#-* *#0*-'-*'#*'7''#"  # # ## 4#### # -  "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%% %% %%%#******:*''''%*-----%-****%%#      4     %######%#####%% % : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°&wst:helvps14i±&:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+ååÿÿÿÿå€ÿÿåÖ
«6å@å€å€€€åÿÿåÿÿå	€ÿÿå
GÒff~”å å¿ÿå™™ÿÿNîÍá@@à  @@@à  @áàààààààà±±±±±±±±áªªªªªªªªªªªªªªªªáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáªªUUªªUUªªUUªªUUªªUUªªUUªªUUªªUUáUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿUUÿÿáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡áÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáððððððððððððððððáýýßßßßßßýýýýýýßßßßßßýýýýÉ<É ÉxÉ ÉÉdÉPÉ(É	ä’œïD“I501ileaf_page_string1:GL-1¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡À¤ÿšGL³1¡,m²	¥	öä¡JmGlossary¡þ²attribute¡þj²Coding´µthatµassignsµpropertiesµtoµobjectsµsuchµasµpins,µcellsµand¡þ°entireµlibraries.µExamplesµofµattributesµareµdirection,µfunction,µand¡þõmax_fanout.¡þk²capacitance¡þ¶²Theµloadµplacedµonµaµnetworkµasµseenµbyµaµdrivingµpin.µExamplesµof¡þûloadingµonµaµnetµareµinput³pinµcapacitance,µwireµloadµcapacitance,¡þAandµback³annotatedµcapacitance.¡þ·²cell¡þ²Aµsingleµunitµorµelementµinµaµlibrary¤ÿü.µCellsµareµdefinedµatµtheµlibrary¡þGgroupµlevel.¡þ½²cellµgroup¡þ	²Theµpartµofµtheµlibraryµthatµcontainsµtheµdescriptionµofµoneµcell.¡þ	~²combinational¡þ	É²Logicµthatµdependsµonlyµonµtheµinputµforµcomputingµvalues.µAn¡þ
exampleµofµaµcombinationalµcellµisµaµNANDµgate.¡þ
„²comments¡þ
Ï²Notesµincludedµinµtheµlibraryµtextµforµexplanation.µLibraryµCompiler¡þignoresµcomments.’ïD“I501ileaf_page_string1:GL-2¥	öä¥	öäâ²¡4GL³2¡þÉ²connect´µdelay¡þ²Theµdelayµcausedµbyµtheµwiresµthatµconnectµtheµelementsµofµa¡þYdesign.¡þà²constraint¡þ+²Aµmeasurableµcircuitµcharacteristicµforµareaµandµtiming.µConstraints¡þqdefineµtheµDesignµCompilerµgoalsµduringµsynthesis.¡þø²dc_shell¡þC²TheµcommandµlineµinterfaceµtoµDesignµCompiler¤ÿý.¡þÊ²defineµstatement¡þ²Theµmethodµforµdefiningµnewµattributesµforµuseµinµsymbolµand¡þZtechnologyµlibraries.¡þá²delayµscaling¡þ,²Theµcalculationµef¤ÿÿfectsµofµmanufacturingµprocess,µoperating¡þqtemperature,µandµsupplyµvoltageµonµtheµtimingµofµaµcircuit.¡þø²DesignµAnalyzer¡þC²AµtoolµinµDesignµCompilerµthatµdisplaysµschematicsµonµaµterminalµor¡þ‰printsµthemµonµaµplotter¤ÿý.µDesignµAnalyzerµusesµtheµinformationµinµa¡þÎsymbolµlibrary¤ÿü.¡þU²ExtendedµBooleanµStateµT¤ÿüableµ(EBST)¡þ ²AµcompleteµexpandedµsetµofµtableµrulesµforµwhichµallµLµandµH¡þæpermutationsµofµtheµtableµinputsµareµexplicitlyµspecified.¡þ	m²edge¡þ	·²Theµedgeµofµaµclockµpulse,µeitherµ²&rising²µorµ²&falling².¡þ
>²EDIF¡þ
‰²AnµacronymµforµElectronicµDataµInterchangeµFormat.µEDIFµisµa¡þ
Ïstandardµtext³basedµfileµformatµforµexchangingµinformationµbetween¡þCAEµtools.’×D“I501ileaf_page_string1:GL-3¥	öä¥	öäâ²¡À¤ÿšGL³3¡þÉ²environment¡þ²The´µtimingµvariablesµforµmanufacturingµprocess,µoperating¡þYtemperature,µvoltage,µandµwireµloadsµinµaµlibrary¤ÿü.¡þÏ²fanout¡þ²Theµbranchingµconnectionsµfromµaµdrivingµpinµtoµitsµdrivenµpins.¡þ²ff/groupµformat¡þÚ²Sequentialµformatµsupportedµinµv3.1µLibraryµCompilerµwhichµconsists¡þ ofµtheµf¤ÿÿfµandµlatchµgroups.¡þ•²functionµattribute¡þà²Theµstatementµthatµdescribesµtheµlogicalµ(Boolean)µoperationµofµa¡þ&cell'¤ÿÿsµoutputµpinµinµtermsµofµitsµinputµpinsµandµstate.¡þ›²group¡þæ²Aµnamedµcollectionµofµstatementsµ(whichµmayµincludeµotherµgroups)¡þ,thatµdefinesµanµelementµofµtheµlibrary¤ÿü.µAµtechnologyµlibraryµcontains¡þqlibrary¤ÿü,µcell,µtest_cell,µpin,µtype,µbus,µtiming,µwire_load,µand¡þ·operating_conditionsµgroups.µAµsymbolµlibraryµcontainsµlibrary¤ÿü,µlayer¤ÿý,¡þüandµsymbolµgroups.¡þr²input_map¡þ½²Output³specificµportµmappingµtoµtableµinputs.¡þ2²inputµnode¡þ}²Aµvirtualµinputµportµinµstatetableµwhichµcanµonlyµbeµread.¡þó²interconnectµdelay¡þ	>²Aµtimingµdelayµcausedµbyµtheµconnectionµmediaµ(wires)µandµthe¡þ	ƒloadingµofµtheµoutputµpin.¡þ	ù²internalµcoreµcell¡þ
D²Aµcellµthatµmakesµupµtheµcoreµofµanµintegratedµcircuit,µasµopposedµto¡þ
‰aµpadµcell,µwhichµisµtheµspecialµcellµatµtheµchipµboundariesµthat¡þ
Ïallowsµcommunicationsµwithµotherµintegratedµcircuitsµoutsideµthe¡þchip.’×HD“I501ileaf_page_string1:GL-4¥	öä¥	öäâ²¡4GL³4¡þÉ²internal´µnode¡þ²Aµvirtualµinputµportµinµstatetableµwhichµcanµbeµreadµandµwrittenµto.¡þYSynonymousµwithµinternalµstate.¡þÑ²intrinsicµdelay¡þ²Anµinternalµdelayµofµaµcellµindependentµofµitsµplacementµinµaµdesign.¡þ“²layers¡þÞ²DrawingµlayersµthatµareµusedµbyµtheµSchematicµV¤ÿÿiewerµtoµpresent¡þ#information.¡þ›²LibraryµCompiler¡þæ²AµSynopsysµproductµthatµtranslatesµtextµdescriptionsµofµa¡þ+technology'¤ÿÿsµcomponentsµtoµSynopsys'µinternalµdatabaseµformatµfor¡þquseµwithµDesignµCompiler¤ÿý.¡þè²libraryµgroup¡þ3²Aµgroupµthatµdescribesµtheµentireµlibraryµfile.¡þª²localµdelay¡þõ²Theµtimingµdelayµfromµtheµinputµpinµofµaµgateµtoµtheµinputµpinµofµthe¡þ;nextµgateµonµtheµnetwork.¡þ²²operatingµcondition¡þý²Theµmanufacturingµprocess,µoperatingµtemperature,µandµsupply¡þCvoltageµyouµwantµtoµuseµwithµaµdesign.¡þº²outputµlogic¡þ	²Combinationalµfunctionµofµinternalµnodesµandµports.¡þ	|²padµcell¡þ	Ç²Aµspecialµcellµatµtheµchipµboundariesµthatµallowsµcommunicationµwith¡þ
otherµintegratedµcircuitsµoutsideµtheµchip,µasµopposedµtoµanµinternal¡þ
Rcoreµcellµthatµmakesµupµtheµcoreµofµanµintegratedµcircuit.¡þ
Ê²pin¡þ²Aµpartµofµaµcell.µPinsµareµeitherµinput,µoutput,µorµbidirectional.’HD“I501ileaf_page_string1:GL-5¥	öä¥	öäâ²¡À¤ÿšGL³5¡þÉ²pin´µgroup¡þ²Aµgroupµthatµdescribesµtheµlogicµandµtimingµcharacteristicsµofµaµpin.¡þYPinµgroupsµoccurµinµcellµandµtest_cellµgroupsµinµtechnologyµlibraries.¡þò²resistance¡þ=²Theµdriveµofµtheµoutputµpinsµonµaµnetwork.¡þÕ²sequential¡þ ²Aµtypeµofµlogicµmadeµupµofµstorageµorµregisterµelements.µExamples¡þeofµstorageµelementsµareµflip³flopsµandµlatches.¡þþ²slopeµsensitivity¡þI²Theµdegreeµtoµwhichµtheµrampµtimeµofµtheµinputµsignalµaf¤ÿÿfectsµthe¡þŽdelayµinµaµcell.¡þ'²specialµsymbol¡þq²AµgraphicµelementµusedµbyµDesignµCompiler¤'¤ÿÿsµSchematicµV¤ÿÿiewer¡þ·thatµisµnotµaµcellµsymbol.µExamplesµincludeµof¤ÿÿf³sheetµconnectorsµand¡þüpowerµsymbols.µSpecialµsymbolsµareµstoredµinµtheµsymbolµlibrary¤ÿü.¡þ•²StateµT¤ÿüable¡þà²AµcompleteµsetµofµtableµrulesµwhichµcoversµallµLµandµHµpermutations¡þ%ofµtheµtableµinputs.¡þ¾²statement¡þ	²Theµmajorµsyntacticµelementµofµaµlibraryµdescription.¡þ	¡²statetableµformat¡þ	ì²SeeµExtendedµBooleanµStateµT¤ÿúable.¡þ
„²symbol¡þ
Ï²TheµgraphicµrepresentationµofµanµASICµcomponentµusedµbyµDesign¡þCompiler¤'¤ÿÿsµSchematicµV¤ÿÿiewerµandµstoredµinµaµsymbolµlibrary¤ÿü.’D“I501ileaf_page_string1:GL-6¥	öä¥	öäâ²¡4GL³6¡þÉ²symbol´µlibrary¡þ²Aµlibraryµthatµcontainsµtheµschematicµsymbolsµforµallµcellsµinµa¡þYparticularµASICµlibrary¤ÿü.µLibraryµCompilerµcanµacceptµsymbolµlibrary¡þŸinputµfroµCAEµsystems,µEDIFµformatµfiles,µorµtextµfilesµcontaining¡þäinstructionsµforµgeneratingµtheµsymbols.µSchematicµV¤ÿÿiewerµusesµthe¡þ*schematicµorµsymbolµlibrary¤ÿü.¡þ²tableµinputs¡þè²Theµsetµofµtheµcurrentµinputµnodes,µdelayedµinputµnodes,µand¡þ.delayedµinternalµnodesµwhichµdefinesµaµcompleteµstate.¡þ¡²tableµrule¡þì²Givenµtheµtokenµvaluesµofµtheµcurrentµinputµnodes,µdelayedµinput¡þ1nodes,µandµdelayedµinternalµnodes,µaµtableµruleµspecifiesµwhatµthe¡þwresultµisµtoµbeµinµtheµsetµ{L,µH,µX,µN}.¡þê²tableµtoken¡þ5²Legalµvaluesµforµtheµinputµnodesµandµinternalµnodes.¡þ¨²technologyµlibrary¡þó²Aµlibraryµthatµcontainsµtheµinformationµforµtheµavailableµcomponents.¡þ9TheµtechnologyµofµeachµlibraryµisµspecificµtoµaµparticularµASIC¡þ~vendor¤ÿý.µTheµtechnologyµofµaµgivenµlibraryµisµdeterminedµbyµtheµcell¡þÄfunctionµandµtimingµattributesµcontainedµinµtheµlibrary¤ÿü.µDesign¡þ	Compilerµuseµtheµtechnologyµlibraryµforµsynthesisµandµoptimization.¡þ}²three³stateµcell¡þÇ²Aµcellµwithµthreeµpossibleµoutputµstates.¡þ	;²timingµarcs¡þ	†²Arcsµthatµdetermineµtheµpathµandµtimingµrelationshipsµusedµinµtiming¡þ	Ëcalculations.µTheµtimingµvaluesµonµtimingµarcsµcanµbeµaf¤ÿÿfectedµby¡þ
settingµdelaysµandµoperatingµenvironmentµfactors.¡þ
„²timingµgroup¡þ
Ï²Theµpartµofµaµcellµdescriptionµthatµprovidesµtimingµandµpath¡þinformation.’!D“I501ileaf_page_string1:GL-7¥	öä¥	öäâ²¡À¤ÿšGL³7¡þÉ²timing´µranges¡þ²Groupsµthatµdescribeµstatisticalµvariationsµinµoperatingµcondition¡þYef¤ÿÿfectsµonµtheµperformanceµofµaµcircuit.¡þÛ²transitionµtime¡þ&²Theµtimeµrequiredµforµaµpinµtoµchangeµstate.¡þ§²transitionµdelay¡þò²Aµtimingµdelayµcausedµbyµtheµtimeµitµtakesµtheµdrivingµpinµtoµchange¡þ8state.¡þ¹²wireµloadµgroup¡þ²Aµdescriptionµofµtheµparametersµtoµuseµinµcalculatingµwireµareaµand¡þIlengthµforµdelayµanalysis.’!ÐOPS m:m:D€‚Document:Indexÿ‚Last saved on:Tue, Dec 9, 1997 17:52:49ÿ„ileafileafƒ	öä°wst:helvps11±:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°wst:helvps14±:%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  4'"           """ ;''**'#-*' 0*-'-*'#*'7''#       0     *"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    % % %%%%%%%%%%% %%%#'''''':*''''%*-----%-****%%#      4    %      %#    %%% : %%:%%%%%%%%%  %%%%%%:
%%%%%%%%%%%%%%% %%%%:%%%7°wst:helvps10±:%	+!#!!(				#*!!!!!!%****(°	wst:helvps24±	:????????????????????????????????!88YC!!':88888888888:::8fCCHHC=NH2C8SHNCNHC=HC^CC=/888288882S8888!282H222!!:!?????????????????????????????????!8888?8!?%8???!??????6??%8???=CCCCCCdHCCCC?HNNNNN?NHHHH??=888888Y28888?888888?=8888??2?82d!8??d?????????88!!!??????d???????????????8????d???^°wst:timsps10±:#!'%(!%***%°wst:helvps12±:                                ,!3!!$$!'$!*$'!'$!$!/!!*$                                                 !!!!!!2$!!!! $''''' '$$$$  ,     2  2               2                   2   /°%wst:helvps18±%:////////////////////////////////**C2,***********,,,*L22662.:6&2*>6:2:62.62G22.#***&****&>****&*&6&&&,/////////////////////////////////****/*/*/////////(//*///.222222K62222/6:::::/:6666//.******C&****/******/.****//&/*&K*//K/////////**//////K///////////////*////K///G°*wst:helvps11i±*:)
/!!$!&!$$!!+



&!.!!$$$$$$!!!!)....+°Xwst:dutch10±X¿ '"#####) """( "" " )  *"*##!!!      ," """""#"""""  #**9 %.%   """"""""    """   """""")  åååå å@å€å¿ÿåÿÿáýýßßßßßßýýýýýýßßßßßßýýýýá((nn‚‚ìì((ÀÀ‚‚((nn‚‚ìì((ÀÀ‚‚á‚‚((nnˆˆ€€àà‚‚((nnˆˆ€€ààáüüüüüüüüáüüxxüüxxáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáÀÀ``00ÀÀ``00á00``ÀÀ00``ÀÀáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá	ððððððððððððððððððððððððððððððððá
ððxx<<‡‡ÃÃááððxx<<‡‡ÃÃááá<<xxððááÃÃ‡‡<<xxððááÃÃ‡‡É<É ÉxÉ ÉÉdÉPÉ(É	ä’¼2D“I501ileaf_page_string1:IN-1¥ÿþ˜	öBÁâÊËÃ¡Ä,›Ê›ÆÃ¥	öä¥	öä¥	öä²¡À¤ÿ©IN³1¡,m²	¥	öä¡JmIndex¡,G²%Symbols¡,›².synopsys_lc.setup´µfile,µUNIXµenviroment¡,Ívariables,µ3³6¡,!µ(commandµsubstitution),µ3³40¡,I{µ}µµ(groupµcontents),µ5³4¡,‡%µ(UNIXµsystemµprompt),µ3³3¡,Ä*µ(wildcardµcharacter),µ3³53¡,>µ(redirectµoutput),µ3³13¡,@>>µ(appendµoutput),µ3³14¡,~\µ(continuationµcharacter),µ3³12,µ5³3¡,6²%A¡,Š²absoluteµpathµname,µ3³10¡,Èaddingµaµmodule,µ4³19¡,	addressµattribute¡R	<inµmemory_readµgroup,µ10³7¡R	rinµmemory_writeµgroup,µ10³8¡,	°address_widthµattribute,µinµmemoryµgroup,¡,	ã10³5¡,
 aliasµcommand,µ3³37¡,
^Analyzeµmenu,µ4³22¡R
”compareµdialogµbox,µ4³23¡R
ËLibraryµReportµdialogµbox,µ4³24¡,	appendµoutputµ(>>),µ3³14¡-2approachµdirections,µ6³19¡-qarcµattribute,µ6³18¡-°area¡Sæunitsµofµmeasure,µ5³9¡Swireµattribute,µ17³22¡-\areaµattribute¡S’²*Seeµalso²µpads¡SÉverification,µ18³32¡-areaµattribute,µcellµgroup,µ8³4¡-Garithmeticµoperators,µ3³13¡-†arrayµvalue,µofµbase_type,µ8³68¡-Åattributeµstatement¡Sûcomplex,µ2³5,µ5³6¡S2defined,µ2³4¡Sidefinition,µ5³5¡SŸsimple,µ2³4,µ5³5¡-Þattributes¡S	definingµdefault,µ2³1¤ÿý1¡S	Kdefiningµnew¤ÿý,µ5³7¡S	‚reportµon,µ3³28¡-	Áattributes,µsymbolµlibrary¡S	÷cellµattributes,µ6³20¡S
.generalµattributes,µ6³24¡S
egraphicµattributes,µ6³18¡S
›layerµgroup,µ6³14¡S
Òspecialµsymbols,µ6³1¤ÿý1¡S	templateµattributes,µ6³27’2
üD“I501ileaf_page_string1:IN-2¥	öä¥	öäâ²¡4IN³2¡,Àattributes,´µtechnologyµlibrary¡Rõcellµgroup,µ8³2¡R+cellµinternalµpowerµattributes,µ13³16¡Racellµroutabilityµattributes,µ8³18¡R–defaults,µ7³23¡RÌdocumentationµattributes,µ7³7¡Rexample,µ7³23¡R7generalµattributes,µ7³5¡Rmpadµattributes,µ7³12,µ1¤ÿý1³3¡R£piecewiseµlinearµattributes,µ7³1¤ÿý1¡RØpinµgroup,µ8³20³8³30¡Rprocessingµattributes,µ7³20¡RDunitµattributes,µ7³9¡,€auxiliaryµpadµcells¡Rµauxiliary_pad_cellµattribute,µ2³31,µ8³10,¡è1¤ÿý1³7¡Rusing,µ1¤ÿý1³7¡RSwhenµtoµuse,µ8³10¡,auxiliary_pad_cellµattribute.µ²*See²µauxiliary¡,Ápadµcells¡,h²%B¡,·²backslashµ(\),µ3³5¡,óbalanced_treeµvalueµofµtree_type,µ17³16¡,/base_typeµattribute,µ8³68¡,kbest_case_treeµvalueµofµtree_type,µ17³16¡,§bidirectionalµpads,µ1¤ÿý1³4¡,ãbitµwidthµofµmulti-bitµcell,µ9³16¡,bit_fromµattribute,µ8³69¡,[bit_toµattribute,µ8³69¡,—bit_widthµattribute,µ8³69,µ8³71¡,Óblocks¡R		complexµinterfaceµtiming,µ15³2,µ15³13¡R	?describingµwithµinterfaceµtiming,µ15³6¡,	{blueµattribute,µ6³15¡,	·Booleanµevalationµofµnon-Booleanµtypes,¡,	é3³46¡,
%Booleanµfunctionµverification,µ18³8¡,
aBooleanµoperators,µ13³21¡,
boundaryµcondition¡R
Óvalidation,µ18³29¡Rverification,µ18³30¡SÀviolation,µ18³28,µ18³30¡-úbracesµ({µ})µinµgroupµstatements,µ5³4¡-5breakµcommand,µ3³52¡-pbuf¤ÿÿfers¡S¥bidirectionalµpadµexample,µ1¤ÿý1³25¡SÚclockµbuf¤ÿÿferµexample,µ1¤ÿý1³22¡Sinputµbuf¤ÿÿferµexample,µ1¤ÿý1³20¡SEinputµbuf¤ÿÿferµwithµhysteresisµexample,µ1¤ÿý1³21¡Szmulticellµpadµexample,µ1¤ÿý1³27¡S¯outputµbuf¤ÿÿferµexample,µ1¤ÿý1³23¡-êbundleµgroup¡Sdirectionµattribute,µ9³46¡STmembersµattribute,µ8³79¡SŠpinµattributes,µ8³78¡S¿usesµof,µ8³78¡-úbundleµpin,µfunctionµattribute,µ8³79¡-4bus¡Sjreversingµorder¤ÿý,µ8³52¡SŸsampleµdescription,µ8³74¡-Úbusµgroup¡Sbus_typeµattribute,µ8³71¡SDdefiningµbusedµpins,µ8³68¡Sydefinition,µ8³71¡S®directionµattribute,µ9³46¡Säinµmulti-bitµflip-flopµregisters,µ9³16¡Sinµmulti-bitµlatchµregisters,µ9³27¡SNsampleµbusµdescription,µ8³74¡-‰busµpin¡S¾defining,µ8³68¡Sódefiningµwithµtypeµgroup,µ8³70¡S(functionµattribute,µ8³50,µ8³68¡S^namingµconvention,µ8³72,µ8³73¡S“overridingµdefaultµattributes,µ8³72¡SÈspecifyingµdefaultµattributes,µ8³72¡-	busµpinµgroup¡S	8example,µ8³72¡S	mrangeµofµbusµmembers,µ8³73¡-	¨busµripper¤ÿý,µdefined,µ6³21¡-	ãbus_holdµdriverµtype,µ8³31¡-
bus_naming_styleµattribute,µ7³6¡-
Xbus_net_layer¤ÿý,µ6³13¡-
“bus_net_name_layer¤ÿý,µ6³13¡-
Îbus_net_type_layer¤ÿý,µ6³13¡-bus_osc_layer¤ÿý,µ6³13’
ü
çD“I501ileaf_page_string1:IN-3¥	öä¥	öäâ²¡À¤ÿ©IN³3¡,Àbus_osc_name_layer¤ÿý,´µ6³13¡,übus_port_layer¤ÿý,µ6³13¡,7bus_port_name_layer¤ÿý,µ6³13¡,sbus_port_width_layer¤ÿý,µ6³13¡,¯bus_ripper_layer¤ÿý,µ6³13¡,ëbus_ripper_name_layer¤ÿý,µ6³13¡,'bus_ripper_type_layer¤ÿý,µ6³13¡,cbus_typeµattribute,µ8³71¡,²%C¡,V²CAEµsystemµsymbols,µusingµread_lib¡,‰command,µ6³5¡,Äcapacitance¡Rúdefiningµrangeµforµindexedµvariables,µ7³12¡R0loadµunits,µ7³10,µ1¤ÿý1³8¡Remax_capacitanceµattribute,µ8³43¡R›min_capacitanceµattribute,µ8³44¡RÐpinµattribute,µ8³27¡Rscaling,µ17³42¡R<setting,µ2³37¡Rqwireµattribute,µ17³22¡,­capacitanceµattribute,µdefinition,µ8³27¡,écapacitance,µpinµattribute,µ7³24¡Rscaling,µ17³42¡RTsettingµdefault,µ17³2,µ17³3¡,capacitiveµpower¤ÿý,µdefined,µ13³4¡,Ìcapacitive_load_unitµattribute,µ7³10,µ1¤ÿý1³8¡,cd,µUNIXµcommand,µ3³42¡,Ccellµattributes,µsymbolµlibrary¤ÿý,µ6³20¡,cellµdegradation¡Rµdefined,µ8³45¡Rêinµnonlinearµdelayµmodels,µ8³45¡R	 inµtimingµreport,µ16³22¡,	\cellµgroup¡R	‘areaµattribute,µ8³4¡R	Çbundleµgroup,µ8³78¡R	übusµgroup,µ8³71¡R
2cell_footprintµattribute,µ8³5¡R
hdefined,µ8³2¡R
dont_faultµattribute,µ8³6¡R
Ódont_touchµattribute,µ8³6¡Rdont_useµattribute,µ8³7¡SÀexample,µ8³16¡Sõhandle_negative_constraintµattribute,µ8³7¡S*internal_powerµgroup,µ13³16¡S_is_clock_gating_cellµattribute,µ8³8¡S”is_padµattribute,µ8³9¡SÉmap_onlyµattribute,µ8³9¡Sþnaming,µ8³2¡S3pad_cellµattribute,µ8³9¡Shpad_typeµattribute,µ8³10,µ1¤ÿý1³3¡Spinµdefinitions,µ2³22¡SÒpinµgroup,µ8³21¡Spin_equalµattribute,µ8³10¡S<pin_oppositeµattribute,µ8³1¤ÿý1¡Sqpreferredµattribute,µ8³12¡S¦routing_trackµgroup,µ8³18¡SÛscaling_factorsµattribute,µ8³12¡Sscan_groupµattribute,µ8³13¡SDtypeµgroupµattribute,µ8³15¡Syvhdl_nameµattribute,µ8³15¡-´cell_degradationµgroup,µdefined,µ8³45¡-îcell_fallµgroup¡S#defined,µ14³38¡SWdefiningµdelayµarcs,µ14³37¡SŒinµnonlinearµdelayµmodels,µ14³14¡-Æcell_footprintµattribute,µ7³21,µ8³5¡-cell_layer¤ÿý,µ6³13¡-;cell_leakage_powerµattribute,µ7³24,µ13³7¡-ucell_name_layer¤ÿý,µ6³13¡-¯cell_ref_name_layer¤ÿý,µ6³13¡-écell_riseµgroup¡Sdefined,µ14³38¡SSdefiningµdelayµarcs,µ14³37¡Sˆinµnonlinearµdelayµmodels,µ14³14¡-Âcells,µ16³7¡S÷²*Seeµalso²µcellµgroup¡S	,reportµonµattributes,µ3³28¡S	aattributes,µ6³20¡S	–definingµinµtutorial,µ2³16¡x	Êfunction,µ2³16¡x	ÿpower¤ÿý,µ2³16¡x
4structure,µ2³16¡x
itiming,µ2³16¡S
ždefiningµinternalµpower¤ÿý,µ13³16¡S
Óimportanceµofµcaseµinµnaming,µ8³88¡Sleakageµpower¤ÿý,µ13³7’
ç
:D“I501ileaf_page_string1:IN-4¥	öä¥	öäâ²¡4IN³4¡RÀminimum´µinµaµlibrary¤ÿý,µ2³18¡Röminimumµrequirements,µ7³22¡R-modelingµforµpower¤ÿý,µ13³5¡Rcreportingµinformation,µ3³28¡Ršscaledµattributes,µ8³12¡RÐsequentialµtiming,µ15³3¡Rtiming,µdif¤ÿÿferencesµinµspecifying,µ15³7¡R=timing,µinterpreting,µ15³3¡,|check_testµcommand,µ12³13,µ12³16¡,»checkingµlibraries,µ3³33,µ18³4¡,ùcircleµattribute,µ6³18¡,8clearµattribute¡Rnforµflip-flops,µ9³6,µ9³9¡R¥forµlatches,µ9³22¡,ãclearµtimingµarc¡Rdefinition,µ14³28¡RPuseµof,µ14³26¡,clockµattribute¡RÆdefaultµconditions,µ8³48¡Rüdefinition,µ8³48¡,;clockµbuf¤ÿÿfer¤ÿý,µ1¤ÿý1³22¡,yclockµpads,µ1¤ÿý1³3¡,¸clockµpin¡Rîactiveµedge,µ9³5¡R%min_periodµattribute,µ8³49¡R[min_pulse_widthµattributes,µ8³49¡R’setupµandµholdµchecks,µ14³59,µ14³60¡,Ñclock_gate_enableµattribute,µ8³24¡,clock_layerµattribute,µ6³13¡,Nclocked-scanµmethodology¤ÿý,µtestµcell¡,€modelingµexample,µ12³38¡,¿clocked_onµattribute,µ9³5,µ9³6,µ9³8¡Rõinµmemory_writeµgroup,µ10³8¡,	4clocked_on_alsoµattribute,µ9³5,µ9³6¡R	jinµmaster-slaveµflip-flop,µ9³12¡,	©CMOSµdefaultµattributes,µ7³23¡,	èCMOSµpinµgroupµexample,µ8³66¡,
&CMOSµtechnologyµlibrary¤ÿý.µ²*See²µtechnology¡,
Ylibrary¡,
—colonµ(:)µinµrangeµofµbusµmembers,µ8³73¡,
Öcolumn_addressµattribute,µmemoryµgroup,¡,10³5,µ10³6¡-Àcombinationalµcells,µcombinationalµlogic,¡-ò2³24¡-,combinationalµpath,µoutputµpropogation¡-_delay¤ÿý,µ15³1¤ÿý1¡-™combinationalµtimingµarc¡SÎdefinition,µ14³3¡Suseµof,µ14³3¡->commandµaliases,µ3³36¡-xcommandµinterface,µ3³1¡-²commandµlog,µ3³5¡-ìcommandµscripts,µ3³43³3³54¡-'commandµsubstitution,µ3³40¡-acommand_log_fileµvariable,µ3³5¡-›commands¡SÐalias,µ3³37¡Sbreak,µ3³52¡S:check_test,µ12³13,µ12³16¡Spcompare_lib,µ3³33,µ6³27¡S¥continue,µ3³51¡SÚcontrolµflow¤ÿý,µ3³46³3³50¡Screate_schematic,µ6³22¡SDencrypt_lib,µ3³35¡Syentering,µ3³14¡S®exit,µ3³8¡Sãforeach,µ3³50¡Sgroup_variable,µ3³56¡SMhelp,µ3³15¡S‚helpµusing,µ3³15¡S·history¤ÿý,µ3³38¡Sìif,µ3³47¡S!include,µ3³43¡SVinsert_test,µ12³13¡SŒlist,µ3³10,µ3³31¡SÁoverview¤ÿý,µ3³36³3³49¡Söquit,µ3³8¡S	+read,µ3³20¡S	`read_lib,µ3³17¡x	•-fµedifµoption,µ6³5¡S	Êredirectingµoutput,µ3³13¡S	ÿreexecuting,µ3³40¡S
4remove_lib,µ3³34¡S
iremove_variable,µ3³56¡S
žreport_lib,µ3³26¡S
Óscripts,µ3³43³3³54¡Sshell,µ3³42³3³44’
:D“I501ileaf_page_string1:IN-5¥	öä¥	öäâ²¡À¤ÿ©IN³5¡RÀstatus,´µ3³44¡Rösyntax,µ3³1¤ÿý1¡R,unalias,µ3³37¡RcUNIX,µ3³42³3³44¡R™update_lib,µ3³22¡RÏwhich,µ3³1¤ÿý1¡Rwhile,µ3³48¡R<write_lib,µ3³18¡,zcommentµattribute,µ7³8¡,¸comments,µadding,µ5³8¡,öCompareµdialogµbox,µ4³23¡,4compare_libµcommand,µ3³33,µ6³27,µ18³3¡,rcompiledµlibraries¡R¨andµDesignµCompiler¤ÿý,µ1³9¡RÞloading,µ3³20¡Rtransferring,µ1³9¡,Scomplexµattribute,µsyntaxµofµstatement,µ5³6¡,‘complexµsequentialµblock,µinterfaceµtiming,¡,Ã15³13¡,conditionµexpression,µevaluatingµasµBoolean,¡,43³46¡,qconditionalµtimingµconstraints,µattributesµand¡,¤groups,µ14³82¡,âconnectionµclass¡Rconnection_classµattribute,µ8³27¡ROdefault,µ8³28¡R…universal,µ8³28¡,Ãconnection_classµattribute¡Rù²*Seeµalso²µconnectionµclass;µmultipadµcells¡R/toµµconnectµmulticellµpadµpins,µ1¤ÿý1³7¡Rftoµconnectµmulticellµpadµpins,µ8³60¡,¤constrained_pin_transition,µvalueµfor¡,Ötransitionµconstraint,µ14³64¡,	constraint¡R	Jevaluation,µ17³20¡R	inµtimingµreport,µ16³12¡R	·parameterµverification,µ18³27¡,	õconstraintµattribute,µdefined.µ²*See²¡,
(minimum_periodµgroup¡,
econstraint_highµattribute,µdefined.µ²*See²¡,
˜min_pulse_widthµgroup¡,
Öconstraint_lowµattribute,µdefined.µ²*See²¡,min_pulse_widthµgroup¡-Àcontinuationµcharacterµ(\),µ3³12,µ5³3¡-øcontinueµcommand,µ3³51¡-1controlµflowµcommands,µ3³46³3³50¡-jcontrolµsignalsµinµmulti-bitµregister¤ÿý,µ9³16,¡-œ9³27¡-ÕControl-c,µ3³7¡-Control-d,µ3³8¡-Fcoreµcells,µdefining,µ2³18¡-~create_schematicµcommand,µ6³22¡-·creatingµlibraries,µ1³4,µ2³5¡-ðcreatingµvariables,µ3³55¡-(current,µunitsµofµmeasure,µ7³10¡-acurrent_unitµattribute,µ1¤ÿý1³10,µ1¤ÿý1³13¡S•²*Seeµalso²µdrive_currentµattribute¡-²%D¡-`²Dµflip-flop¡S•auxiliaryµclockµmodelingµexample,µ12³42¡SÉCMOSµpiecewiseµlinearµdelayµmodel,¡žû14³95¡S0CMOSµstandardµdelayµmodel,µ14³92,µ14³98¡Sef¤ÿÿfµgroupµexample,µ9³8¡S™positiveµedge-triggeredµexample,µ9³13¡SÎsingle-stageµexample,µ9³1¤ÿý1¡Stestµcellµmodelingµexample,µ12³23,µ12³25¡S7timingµarcs,µ14³70¡-odata_inµattributeµforµlatches,µ9³22¡-¨data_typeµattribute,µ8³69¡-àdatabase,µSynopsysµinternalµformat,µ1³4¡-datasheet,µsample,µ2³20¡-Rdateµattribute,µ7³8¡-Šdc_shell,µexiting,µ3³8¡-Ãdc_shellµcommands¡S÷compare_lib,µ18³3¡S	,report_lib,µ17³20¡S	`set_operating_conditions,µ17³17¡S	•set_timing_ranges,µ17³19¡S	Éset_wire_load,µ17³25¡-
default¡S
6CMOSµattributes,µ7³23¡S
kconnectionµclass,µ8³28¡S
Ÿforµenvironmentµattributes,µ2³1¤ÿý1¡S
Ôpinµattributes,µ7³23¡Stimingµattributes,µ7³23’:D“I501ileaf_page_string1:IN-6¥	öä¥	öäâ²¡4IN³6¡,Àdefault´µtimingµvariables,µ17³4¡,üdefault_cell_leakage_power¤ÿý,µ17³13¡,9default_fall_delay_interceptµattribute,µ7³24¡,udefault_fall_delay_interceptµattribute,µ17³6¡,±default_fall_pin_resistanceµattribute,µ7³24,¡,ä17³6¡, default_fanout_loadµattribute,µ7³24,µ17³3¡,]default_inout_pin_capµattribute,µ7³24,µ17³2¡,™default_inout_pin_fall_resµattribute,µ7³24,¡,Ë17³4¡,default_inout_pin_rise_resµattribute,µ7³24,¡,:17³4¡,wdefault_input_pin_capµattribute,µ7³24,µ17³2¡,³default_intrinsic_fallµattribute,µ7³24,µ17³5,¡,å17³6¡,"default_intrinsic_riseµattribute,µ7³24,µ17³5,¡,T17³6¡,‘default_max_capacitanceµattribute,µ7³24¡,Ídefault_max_fanoutµattribute,µ7³24,µ17³3¡,	default_max_transitionµattribute,µ7³24,µ17³3¡,Fdefault_max_utilizationµattribute,µ7³24,µ17³1¤ÿý1¡,‚default_min_porosity¤ÿý,µ17³12¡,¿default_min_porosityµattribute,µ7³24¡,ûdefault_operating_conditionsµattribute,µ7³25,¡,.17³13¡,jdefault_output_pin_capµattribute,µ7³25,µ17³3¡,¦default_output_pin_fall_resµattribute,µ7³25,¡,Ù17³4¡,default_output_pin_rise_resµattribute,µ7³25,¡,H17³5¡,„default_rc_fall_coef¤ÿÿficientµattribute,µ7³25¡,Àdefault_rc_rise_coef¤ÿÿficientµattribute,µ7³25¡,ýdefault_referenceµcapacitance,µ7³25¡,	9default_rise_delay_interceptµattribute,µ7³25,¡,	l17³6¡,	¨default_rise_pin_resistanceµattribute,µ7³25,¡,	Ú17³6¡,
default_slope_fallµattribute,µ7³25,µ17³5¡,
Sdefault_slope_riseµattribute,µ7³25,µ17³5¡,
default_wire_loadµattribute,µ17³7¡,
Ìdefault_wire_load_modeµattribute,µ17³8¡,default_wire_load_resistance,µ17³1¤ÿý1¡-Àdefineµstatement,µdefined,µ5³7¡-údefiningµcells,µ2³16¡-5degradationµtables¡Sjforµtransitionµdelay¤ÿý,µ14³43¡S variables,µ14³44¡-Údelay¤ÿý,µunitsµofµmeasure,µ5³9¡-DELA¤ÿýYµLine,µ16³17¡-Pdelayµmodel¡S…²*Seeµalso²µdelay_modelµattribute¡Sºandµtimingµgroupµattributes,µ14³13¡Sïdelay_modelµattribute,µ2³9¡S%piecewiseµlinear¤ÿý,µ17³6¡xZpieceµverification,µ18³33¡Sstandard,µ17³4¡SÄsupported,µ2³6,µ14³8¡Súuseµof,µ14³8¡-4delayµpropagation,µdefined,µ14³39¡-odelayµscaling¡S¤exampleµfactors,µ17³53¡SÚintrinsicµdelay¤ÿý,µ17³39¡Spinµcapacitance,µ17³42¡SDslope-sensitivity¤ÿý,µ17³40¡Syverification,µ18³36¡S®wireµcapacitance,µ17³42¡-édelay¤ÿý,µinterconnect,µ17³22¡-$delay_modelµattribute,µ7³6,µ14³13¡-_delays,µinµtimingµreport,µ16³17¡-™delimiters,µforµcomments,µ5³8¡-ÔDesignµAnalyzer¡S	andµsymbolµlibraries,µ1³3,µ6³1¡S>symbolµlibraryµrequirements,µ1³8¡-yDesignµCompiler¡S®andµcompiledµlibraries,µ1³9¡Säandµtechnologyµlibraries,µ1³3¡S	calculatingµdelayµestimates,µ2³10¡-	Tdesignµfiles,µ3³9¡-	Ždesignµruleµcheckingµattributes,µ8³38¡-	Édesignµruleµconstraints¡S	þmax_capacitance,µ8³43¡S
4max_fanout,µ8³40¡S
imax_transition,µ8³42¡S
žmin_capacitance,µ8³44¡S
Ómin_fanout,µ8³41¡Smin_transition,µ8³43’: D“I501ileaf_page_string1:IN-7¥	öä¥	öäâ²¡À¤ÿ©IN³7¡RÀsetting´µloadµvalues,µ2³37¡,þdesigns,µmemoryµfiles,µ3³10¡,<directionµattribute,µ9³46¡Rs²*Seeµalso²µpads¡R©definition,µ8³24¡Ràofµbusµpin,µ8³72¡Rofµtestµpin,µ12³6¡RLvalues,µ9³46¡,‹documentationµattributes,µ7³7¡,Édont_faultµattribute¡Rcellµgroup,µ8³6¡R6pinµgroup,µ8³26¡,tdont_touchµattribute,µ8³6¡,³dont_useµattribute,µ8³7¡,ñdouble-latchµLSSDµmethodology¤ÿý,µtestµcell¡,#modelingµexample,µ12³32¡,bdowntoµattribute,µ8³69¡, driveµcapability¤ÿý,µ14³32¡,Þdrive_currentµattribute,µ8³63,µ1¤ÿý1³10,µ1¤ÿý1³13¡R²*Seeµalso²µcurrent_unitµattribute;µpads¡,Sdriverµtypes,µsignalµmappings,µ8³34¡,‘driver_typeµattribute,µ8³30,µ1¤ÿý1³4¡RÈmultipleµdriverµtypes,µ8³37¡,dynamicµpower¤ÿý,µdefined,µ13³2¡,Ä²%E¡,²echo_include_commandsµvariable,µ3³43¡,Xedge-sensitiveµtimingµarcs,µ14³24¡,–edge-triggered,µflip-flops,µ9³4¡,ÔEDIFµinterface¡R	andµset_meter_scaleµattribute,µ6³1¤ÿý1¡R	Aattachingµaµpropertyµnameµtoµaµripper¤ÿý,µ6³20¡R	xcreatingµsymbolµlibraries,µ6³3¡R	®customµsymbolµlibrary¤ÿý,µ6³6¡,	ìEDIFµsymbolµlibrary¡R
#andµCAEµsystemµsymbols,µ6³5¡R
Yreadingµin,µ3³18,µ6³5¡,
˜enableµattribute,µinµmemory_writeµgroup,¡,
Ê10³9¡,enableµattributeµforµlatches,µ9³24¡-Àenableµpinµofµthree-stateµfunction,µ14³21¡-ûEncryptµLibraryµdialogµbox,µ4³15¡-7encrypt_libµcommand,µ3³35¡-sencryptingµVHDLµsourceµlibraries,µ3³35¡-®endpoint,µtimingµarc,µ14³3¡-êenvironment¡S creatingµmodels,µ2³9¡SUdefaultµattributes,µ2³1¤ÿý1¡S‹describing,µ17³1¡xÀ²*Seeµalso²µoperating_conditionsµgroup¡Söscalingµfactors.µ²*See²µk-factors¡-1environmentµattributes,µverification,µ18³36¡-menvironmentµdescriptions,µ1³6¡-©equal_or_opposite_outputµattribute,µ13³16¡-äerror¤ÿý,µidentifyingµinµaµlibrary¤ÿý,µ18³14¡- errorµconditions,µduplicationµofµpinµnames,¡-R5³3¡-Žexclamationµpointµ(!),µ3³40¡-Êexitµcommand,µ3³8¡-exitingµLibraryµCompiler¤ÿý,µ4³21¡-Aexplicitµnetlistµformat,µ8³89¡-ä²%F¡-2²fall_constraintµgroup¡Shmodelingµloadµdependency¤ÿý,µ14³49¡Sžnoµchangeµconstraintµholdµtime,µ14³78¡SÓsetupµandµholdµconstraints,µ14³63¡-fall_current_slope_after_thresholdµattribute,¡-A8³65,µ1¤ÿý1³14¡-}fall_current_slope_before_threshold¡-¯attribute,µ8³65,µ1¤ÿý1³14¡-ëfall_delay_interceptµattribute,µ7³24¡S	!definition,µ14³34¡S	Vinµpiecewiseµlinearµdelayµmodels,µ14³14¡S	Œscaling,µ17³45¡S	Áspecifyingµdefaultµvalue,µ17³6¡-	ýfall_pin_resistanceµattribute,µ7³24¡S
2definition,µ14³35¡S
hinµpiecewiseµlinearµdelayµmodels,µ14³14¡S
scaling,µ17³44¡S
Óspecifyingµdefaultµvalue,µ17³6¡Sverification,µ18³24’ 
çD“I501ileaf_page_string1:IN-8¥	öä¥	öäâ²¡4IN³8¡,Àfall_power´µgroup¡Röindex_1µattribute,µ13³22¡R-index_2µattribute,µ13³22¡Rcindex_3µattribute,µ13³22¡R™internal_powerµgroup,µ13³22¡RÐvaluesµattribute,µ13³23¡,fall_propagationµgroup¡REdefined,µ14³39¡R{definingµdelayµarcs,µ14³37¡R±inµnonlinearµdelayµmodels,µ14³14¡,ðfall_resistanceµattribute,µ7³24,µ7³25¡R&definition,µ14³32¡R]inµlinearµdelayµmodels,µ14³14,µ14³32¡R“specifyingµdefaultµvalue,µ17³4¡RÉuseµof,µ1¤ÿý1³9¡Rverification,µ18³23¡,>fall_time_after_thresholdµattribute,µ8³65,¡,q1¤ÿý1³14¡,¯fall_time_before_thresholdµattribute,µ8³65,¡,á1¤ÿý1³14¡, fall_transitionµgroup¡RVdefined,µ14³38¡Rdefiningµdelayµarcs,µ14³37¡RÃinµnonlinearµdelayµmodels,µ14³14¡,fall_transition_degrationµgroup,µdefined,¡,414³43¡,rfalling_edgeµvalue,µvalueµforµtiming_type¡,¥attribute,µ14³24¡,ãfanout¡Randµwireµlengthµestimation,µ17³22¡RPcontrolµsignalsµinµmulti-bitµregister¤ÿý,µ9³16,¡‚9³27¡R¹setting,µ2³37¡Rïspecifyingµmaximum,µ8³39¡R	&specifyingµminimum,µ8³41¡R	\testµnetlistµexample,µ18³34¡,	šfanout_areaµattribute,µ17³29¡,	Ùfanout_capacitanceµattribute,µ17³29¡,
fanout_lengthµattribute,µ17³23,µ17³29¡,
Ufanout_loadµattribute,µ7³24,µ8³38¡R
Œspecifyingµdefaultµvalue,µ17³3¡,
Êfanout_resistanceµattribute,µ17³29¡,faster_factorµattribute,µ17³18¡-Àf¤ÿÿfµgroup,µ9³4¡Sõmaster-slaveµflip-flop,µ9³12¡S)single-stageµDµflip-flop,µ9³1¤ÿý1¡-cf¤ÿÿf_bankµgroup,µ9³15¡-Fileµmenu¡SÑEncryptµLibraryµdialogµbox,µ4³15¡SReadµLibraryµDialogµbox,µ4³7¡S;UpdateµLibraryµdialogµbox,µ4³17¡SpW¤ÿÿriteµLibraryµdialogµbox,µ4³12¡-©fileµname¡SÞsymbolµlibrary¤ÿý,µ2³7,µ6³4¡Stechnologyµlibrary¤ÿý,µ2³7¡-Mfiles¡S.synopsys_lc_setup,µ3³6¡S¶format,µdefault,µ3³17¡Sëmemoryµfilesµvs.µUNIXµsourceµfiles,µ3³10¡S namingµconventions,µ5³2¡SUVHDLµlibrary¤ÿý,µconsistingµof,µ3³19¡-ŽFindµmenu,µ4³6¡-Èflip-flop¡SýD,µ9³8,µ9³1¤ÿý1,µ9³13¡S2describing,µ9³4¡Sfinvertedµoutput,µ2³25¡S›JK,µ9³8¡SÐJKµwithµscan,µ9³1¤ÿý1¡Smaster-slave,µ9³12¡S:non-invertedµoutput,µ2³25¡Sosingle-stage,µ9³9¡S£stateµdeclarationµexamples,µ9³54¡-Ýflip-flopsµandµlatches,µ9³2¡-font¡SKinµsymbolµlibraries,µ6³7¡S€usedµonµaµlayer¤ÿý,µ6³14¡-ºfootprint,µ7³21,µ8³5¡-óforeachµcommand,µ3³50¡-	-functionµattribute¡S	bbusµvariablesµin,µexample,µ8³74¡S	—defined,µ8³50¡S	ËimportanceµinµT¤ÿûestµCompiler¤ÿý,µ8³52¡S
ofµbundledµpins,µ8³79¡S
5ofµbusedµpins,µ8³50¡S
jofµflip-flopµbank,µ9³16¡S
Ÿofµgroupedµpins,µ8³52¡S
Ôofµlatchµbank,µ9³27¡Sofµtestµpin,µ12³6’
ç	ÀD“I501ileaf_page_string1:IN-9¥	öä¥	öäâ²¡À¤ÿ©IN³9¡RÀrequired´µforµstorageµdevices,µ9³13¡Röusingµbusedµpinsµin,µ8³68¡R+validµBooleanµoperators,µ8³51¡Raverification,µ18³9¡R—verifyingµfunctionality¤ÿý,µ18³8¡,Ófunctionµverification,µmethodology¤ÿý,µ18³8¡,~²%G¡,Î²genericµsymbolµlibrary¤ÿý,µ6³4¡,generic_symbol_library¤ÿý,µlc_shellµvariable,µ6³6¡,Ggraphicµattributes,µ6³18¡,„graphicalµuserµinterface,µ2³55¡,Àgreenµattribute,µ6³15¡,ýgroupµstatements¡R2bundle,µ8³78¡Rhbus,µ8³71¡Ržcell,µ8³2¡RÔdefinition,µ2³4,µ5³4¡R	generalµsyntax,µ2³4,µ5³4¡R?internalµpower¤ÿý,µ13³16¡Runaming,µ5³4¡R«operating_conditions,µ17³15¡Rápin,µ8³20¡winµtest_cellµgroup,µ12³5¡RLsymbolµlibrary¤ÿý,µ6³7¡R‚technologyµlibrary¤ÿý,µ7³4¡R¸test_cell,µ12³5,µ12³13¡Rîtiming,µ14³7¡,*group_variableµcommand,µ3³56¡,fgroupingµvariables,µ3³56¡,	²%H¡,	b²handle_negative_constraintµattribute,µ8³7¡,	žhelpµcommand,µ3³15¡,	ÚHelpµdialogµbox,µ4³31¡,
help,µgetting,µ3³15¡,
Shierarchy_layerµattribute,µ6³13¡,
hierarchy_name_layerµattribute,µ6³13¡,
Ìhigh-activeµclockµsignal,µ9³6¡,highlight_layerµattribute,µ6³13¡-Àhistoryµcommand,µ3³38¡-þholdµconstraints¡S4andµVHDLµlibraryµgenerator¤ÿý,µ14³61¡Sjdefined,µ14³58¡S hold_fallingµvalue,µ14³61¡S×hold_risingµvalue,µ14³61¡Sinµlinearµdelayµmodels,µ14³61¡SCinµnonlinearµdelayµmodels,µ14³63¡Szinµpiecewiseµlinearµdelayµmodels,µ14³63¡S°inµtimingµreport,µ16³12¡Særelated_pinµattribute,µ14³61¡-$holdµtimes,µverification,µ18³30¡-bhold_fallingµvalue¡S˜defined,µ14³61¡SÎvalueµforµtiming_typeµattribute,µ14³64¡-hold_risingµvalue¡SCdefined,µ14³61¡Syvalueµforµtiming_typeµattribute,µ14³64¡-·hysteresisµattribute¡Síandµpads,µ2³34¡S#definition,µ8³63¡SYexample,µ1¤ÿý1³21¡Susing,µ1¤ÿý1³1¤ÿý1¡-I²%I¡-²ifµcommand,µ3³47¡-Ûimplementing,µ17³18¡-implicitµnetlistµformat.µ²*See²µorder-based¡-Lnetlist¡-Šin-placeµoptimization,µ2³40,µ7³20¡-Çin_osc_symbolµattribute,µ6³1¤ÿý1¡-	in_place_swap_modeµattribute,µ2³40,µ7³20,¡-	88³5¡-	vin_port_symbolµattribute,µ6³1¤ÿý1¡-	´includeµcommand,µ3³43¡-	ñindexµvariables,µdefiningµrangeµfor¤ÿý,µ7³12¡-
/index_1µattribute¡S
ffall_powerµgroup,µ13³22¡S
œpowerµgroup,µ13³25¡S
Òpower_lut_templateµgroup,µ7³18¡Srise_powerµgroup,µ13³27’	À
ëD“I501ileaf_page_string1:IN-10¥	öä¥	öäâ²¡4IN³10¡,Àindex_2´µattribute¡R÷fall_powerµgroup,µ13³22¡R.powerµgroup,µ13³25¡Repower_lut_templateµgroup,µ7³18¡Rœrise_powerµgroup,µ13³27¡,Ýindex_3µattribute¡Rfall_powerµgroup,µ13³22¡RKpowerµgroup,µ13³25¡R‚power_lut_templateµgroup,µ7³18¡R¹rise_powerµgroup,µ13³27¡,úinfiniteµtemplate,µ6³28,µ6³29¡,:initializationµfile,µ3³6¡,zinout_osc_symbolµattribute,µ6³12¡,»inout_port_symbolµattribute,µ6³1¤ÿý1¡,ûinput¡R2holdµconstraint,µ15³8¡Risetupµconstraint,µ15³8¡,ªinputµpads,µ2³34,µ1¤ÿý1³10¡Rá²*Seeµalso²µpads¡,!inputµvectors,µinµsimulation,µ18³13¡,binput_mapµattribute¡R™andµinternal_nodeµattribute,µ8³56,µ9³42¡RÐdelayedµoutputs,µ9³44¡Rsequentialµcellµnetwork,µ9³45¡,Hinput_net_transition,µ14³10¡,ˆinput_transition_time,µ7³18¡,Èinput_voltageµattribute,µ8³61¡,	input_voltageµgroup,µ7³13,µ1¤ÿý1³9,µ1¤ÿý1³10¡R@²*Seeµalso²µpads¡,€insert_testµcommand,µ12³13¡,Áinterconnectµdelay¤ÿý,µandµwire_loadµgroup,¡,ó17³22¡,	4interconnectµmodel¡R	kdefining,µ2³13,µ17³16¡R	¢verification,µ18³33¡,	âinterconnectµpower¤ÿý.µ²*See²µswitchingµpower¡,
#interfaceµtimingµofµaµcomplexµblock,µ15³2¡,
cInterfaceµT¤ÿþimingµSpecification¡R
šbenefits,µ15³4¡R
Ñdefined,µ15³2¡Rdescribingµblocksµwith,µ15³6¡SÀexamples,µ15³22¡Söinterfaceµtimingµrelationships¡x-examples,µ15³8¡xdinterpreting,µ15³19¡Sšpolicy¤ÿý,µ15³7,µ15³20¡SÑspecifyingµinµLibraryµCompiler¤ÿý,µ15³7¡Susingµblocks,µ15³18¡-Finterface_timingµattribute,µ15³20¡-…internalµdatabaseµformatµofµlibraryµfiles,µ1³4¡-Äinternalµpinµtype,µ9³46¡-internalµpins,µtimingµarcs,µ9³49¡-Binternalµpower¡Sycalculating,µ13³31¡S¯defined,µ13³3,µ13³8¡Sælibraryµexample,µ13³30¡Smodelingµchoices,µ13³9¡SSreportµon,µ16³8¡SŠtemplateµinformation,µ16³5¡-Éinternal_nodeµattribute,µ8³56¡Sÿ²*Seeµalso²µoutputµpinµgroup¡S6input_mapµattribute,µ9³43¡-uinternal_powerµgroup¡S«definition,µ13³16¡Sâequal_or_opposite_outputµattribute,µ13³16¡Sfall_powerµattribute,µ13³22¡SOone-dimensionalµtable,µ13³28¡S†powerµgroupµattribute,µ13³24¡S¼related_pinµattribute,µ13³20¡Sórise_powerµattribute,µ13³26¡S*three-dimensionalµtable,µ13³29¡S`two-dimensionalµtable,µ13³29¡S—whenµattribute,µ13³20¡-Öinternal_powerµlookupµtable,µ13³10¡-	interruptµcharacter¤ÿý,µControl-c,µ3³7¡-	Sintrinsicµdelay¡S	Šdefined,µ14³29¡S	Áforµinputµpin,µ14³30¡S	÷forµoutputµpin,µ14³29¡S
.inµlinearµdelayµmodels,µ14³30¡S
einµnonlinearµdelayµmodels,µ14³31¡S
›inµpiecewiseµlinearµmodels,µ14³31¡S
Òscalingµfactors,µ17³39¡Sverification,µ18³23’
ëPD“I501ileaf_page_string1:IN-11¥	öä¥	öäâ²¡À¤ÿIN³11¡,Àintrinsic_fall´µattribute,µ7³24¡Rödefined,µ14³30¡R,inµlinearµdelayµmodels,µ14³14,µ14³30¡Raspecifyingµdefaultµvalue,µ17³5,µ17³6¡,žintrinsic_riseµattribute,µ7³24¡RÔdefinition,µ14³30¡R
inµlinearµdelayµmodels,µ14³14,µ14³30¡R@specifyingµdefaultµvalue,µ17³5,µ17³6¡Rvwithµpresetµandµclearµtimingµarcs,µ14³28¡,²inverted_outputµattribute,µ8³25¡Rènon-invertedµoutput,µ8³25,µ9³45¡Rstatetableµformat,µ9³45¡,[inverterµwithµthree-stateµoutput,µ14³21¡,˜is_padµattribute,µ8³9,µ8³60,µ1¤ÿý1³4¡RÎ²*Seeµalso²µpads¡,
ITS.µ²*See²µInterfaceµT¤ÿþimingµSpecification¡,¸²%J¡,	²JKµflip-flop,µ9³1¤ÿý1¡R?example,µ9³1¤ÿý1,µ14³25¡Ruf¤ÿÿfµgroupµdeclaration,µ9³8¡,#²%K¡,t²k-factors¡Rªdefined,µ2³10,µ17³35¡Ràexampleµof,µ17³53¡Rintrinsicµdelay¤ÿý,µ17³39¡RLpinµcapacitance,µ17³42¡R‚pinµresistance,µ17³44,µ17³46¡R¸processµattributes¡wîcellµpower¤ÿý,µ17³46¡w	#driveµfall/rise,µ17³41¡w	Yfallµdelayµintercept,µ17³45¡w	holdµrise/fallµconstraints,µ17³48¡w	Åinternalµpower¤ÿý,µ17³46¡w	ûintrinsicµfall/riseµdelay¤ÿý,µ17³39¡w
1minimumµperiod,µ17³51¡w
gminimumµpulseµwidth,µ17³50¡w
pinµcapacitance,µ17³42¡w
Órecoveryµrise/fallµconstraints,µ17³49¡wriseµdelayµintercept,µ17³45¡xÀriseµpinµresistance,µ17³44¡x÷setupµriseµconstraints,µ17³57¡x.setupµrise/fallµconstraints,µ17³48,µ17³49¡xeslopeµfall/rise,µ17³40¡xœwireµcapacitance,µ17³42¡xÓwireµresistance,µ17³43¡S
slope-sensitivity¤ÿý,µ17³40¡SAtemperatureµattributes¡xxcellµleakageµpower¤ÿý,µ17³46¡x¯driveµfall/rise,µ17³42¡xæfallµdelayµintercept,µ17³45¡xfallµpinµresistance,µ17³44¡xTholdµrise/fallµconstraints,µ17³48¡x‹internalµpower¤ÿý,µ17³46¡xÃintrinsicµfall/riseµdelay¤ÿý,µ17³40¡xúminimumµperiod,µ17³51¡x1minimumµpulseµwidth,µ17³50¡xhpinµcapacitance,µ17³42¡xŸrecoveryµrise/fallµconstraints,µ17³50¡xÖriseµpinµresistance,µ17³44¡xsetupµriseµconstraints,µ17³57¡xDsetupµrise/fallµconstraints,µ17³48,µ17³49¡x{slopeµfall/rise,µ17³41¡x²wireµcapacitance,µ17³43¡xéwireµresistance,µ17³43¡S voltageµattributes¡xWcellµleakageµpower¤ÿý,µ17³46¡xŽdriveµfall/rise,µ17³42¡xÅfallµdelayµintercept,µ17³45¡xüfallµpinµresistance,µ17³44¡x3holdµrise/fallµconstraints,µ17³48¡xkinternalµpower¤ÿý,µ17³46¡x¢intrinsicµfall/riseµdelay¤ÿý,µ17³40¡xÙminimumµperiod,µ17³51¡x	minimumµpulseµwidth,µ17³50¡x	Gpinµcapacitance,µ17³43¡x	~recoveryµrise/fallµconstraints,µ17³50¡x	µriseµpinµresistance,µ17³44¡x	ìsetupµrise/fallµconstraints,µ17³49,µ17³57¡x
#slopeµfall/rise,µ17³41¡x
Zwireµcapacitance,µ17³43¡x
‘wireµresistance,µ17³43¡S
Èwireµcapacitance,µ17³42¡-keyµbox,µ6³30’P	ÆD“I501ileaf_page_string1:IN-12¥	öä¥	öäâ²¡4IN³12¡,Õ²%L¡,(²landscape´µattribute,µ6³28¡,flandscape,µtemplateµorientation,µ6³27¡,¤languageµconcepts,µ2³3¡,álatch,µ9³2¡Rwithµsignalµbundles,µ8³80¡,Ulatchµgroup,µ9³21¡R‹invertedµoutput,µ2³25¡RÁnon-invertedµoutput,µ2³25¡,ÿlatch_bankµgroup,µ9³26¡,=layerµgroup,µ6³12¡Rsblueµattribute,µ6³15¡R©fonts,µ6³14¡Rßgreenµattribute,µ6³15¡Rline_widthµattribute,µ6³14¡RLredµattribute,µ6³15¡R‚scalable_linesµattribute,µ6³15¡R¸set_fontµattribute,µ6³14¡Rîvisibleµattribute,µ6³14¡,,lc_shell¡Rbcommandµlog,µ3³5¡R˜commandµsyntax,µ3³1¤ÿý1¡RÏexampleµsession,µ3³7¡Rexiting,µ3³8¡R;interrupting,µ3³7¡Rqinvoking,µ3³3¡w§options,µ3³4¡RÞoperators,µ3³13¡Rreadingµinµsourceµfiles,µ3³17¡RJsetupµfile,µ3³6¡R€using,µ2³55¡,¾lc_shellµcommands¡Rô²*Seeµalso²µcommands¡R	*using,µ3³7¡,	hlc_shell_statusµvariable,µ3³44¡,	¥leakageµpower¤ÿý,µdefined,µ13³7¡,	ãleakage_powerµgroup,µ13³7¡,
!leakage_power_unitµattribute,µ7³1¤ÿý1¡,
^level-sensitiveµmemoryµdevices,µ9³21¡,
œlibraries¡R
Òchecking,µ3³33¡Rcomparing,µ3³33¡SÀdisplayingµinformation,µ3³26¡Söencrypting,µ3³35¡S-example,µ5³9¡Scidentifyingµerrors,µ18³14¡Sšintroduction,µ1³4¡SÐlisting,µ3³31¡Sloading,µ3³20¡S=namingµconventions,µ5³3¡Ssreadingµin,µ3³17¡Sªremoving,µ3³34¡Sàroutability¤ÿý,µ8³19¡Supdating,µ3³22¡-ULibraryµCompiler¡S‹exiting,µ4³21¡SÂfunctions,µ4³2¡Søinterface,µ4³4¡S/menuµbar¤ÿý,µ4³5¡Sestarting,µ4³2¡Sœsyntax,µ5³1¡SÒsyntaxµrules,µ2³3¡-libraryµdefaults,µinµreportµinformation,µ16³4¡-Olibraryµfile¡S…comparing,µ18³3¡S¼namingµconventions,µ5³2¡Sòreadingµintoµlc_shell,µ3³17¡S)writingµtoµdisk,µ3³18¡-glibraryµgroup¡Saddingµtoµanµexistingµlibrary¤ÿý,µ3³22¡SÔattributes,µ2³8¡S
defined,µ7³2¡SAnaming,µ2³8¡Swtechnologyµattribute,µ2³8¡-¶libraryµgroupµ(technologyµlibrary)¡Sìdefaultµpinµattributes,µ17³2¡S	"defaultµtimingµattributes,µ17³4,µ17³6¡S	Ydefault_operating_conditionsµattribute,¡ž	‹17³13¡S	Âdefault_wire_loadµattribute,µ17³7¡S	ødefault_wire_load_modeµattribute,µ17³8¡S
/interceptµdelayµscalingµfactors,µ17³45¡S
eintrinsicµdelayµscalingµfactors,µ17³39¡S
œmax_wired_emittersµattribute,µ17³12¡S
Òpinµresistanceµscalingµfactors,µ17³44¡Sslope-sensitivityµscalingµfactors,µ17³40’	Æ&D“I501ileaf_page_string1:IN-13¥	öä¥	öäâ²¡À¤ÿIN³13¡,Àlibrary´µgroupµstatements¡Rõmultipleµpowerµsupplies,µexample,µ13³44¡R+power_supply¤ÿý,µ13³38¡waexample,µ13³42¡,œlibraryµgroup,µsymbolµlibrary¡RÒgeneric,µ6³4¡Rgroupµstatement,µ6³7¡R=in_osc_symbolµattribute,µ6³1¤ÿý1¡Rsin_port_symbolµattribute,µ6³1¤ÿý1¡R¨inout_osc_symbolµattribute,µ6³12¡RÞinout_port_symbolµattribute,µ6³1¤ÿý1¡Rlogic_0_symbolµattribute,µ6³1¤ÿý1¡RIlogic_1_symbolµattribute,µ6³1¤ÿý1¡Rout_osc_symbolµattribute,µ6³1¤ÿý1¡R´out_port_symbolµattribute,µ6³1¤ÿý1¡Rêset_meter_scaleµattribute,µ6³1¤ÿý1¡Rset_route_gridµattribute,µ6³10¡RUspecialµsymbolµattributes,µ6³1¤ÿý1¡,‘libraryµgroup,µtechnologyµlibrary¡RÆattributes,µexample,µ7³23¡Rübus_naming_styleµattribute,µ7³6¡R2capacitive_load_unitµattribute,µ7³10¡Rgcommentµattribute,µ7³8¡Rcurrent_unitµattribute,µ7³10,µ1¤ÿý1³10,µ1¤ÿý1³13¡RÒdateµattribute,µ7³8¡Rdefaultµattributes,µ7³23¡R>delay_modelµattribute,µ7³6¡Rsdocumentationµattributes,µ7³7¡R©groupµstatement,µ7³4¡RÞin_place_swap_modeµattribute,µ7³20¡Rinput_voltageµgroup,µ7³13¡RIleakage_power_unitµattribute,µ7³1¤ÿý1¡Rlibrary_featuresµattribute,µ7³21¡Rµminimumµcellµrequirements,µ7³22¡Rêpadµattributes,µ7³12,µ1¤ÿý1³3¡R	 piece_defineµattribute,µ7³12¡R	Upiece_typeµattribute,µ7³1¤ÿý1¡R	‹pulling_resistance_unitµattribute,µ7³10¡R	Árevisionµattribute,µ7³8¡R	örouting_layersµattribute,µ7³6¡R
,simulationµattribute,µ7³22¡R
atechnologyµattribute,µ7³5¡R
—time_unitµattribute,µ7³9¡R
Ívoltage_unitµattribute,µ7³9,µ7³14,µ1¤ÿý1³9¡,libraryµsyntax,µ2³3¡-Àlibrary_featuresµattribute,µ7³21¡-÷lineµattribute,µ6³18¡-/line_widthµattribute,µ6³14¡-flink_library¤ÿý,µdc_shellµvariable,µ15³18¡-žlistµcommand,µ3³10,µ3³31,µ18³3¡-Õlistingµvariables,µ3³55¡-loadµdependency¡SAinµreportµinformation,µ16³6¡Sumodeling,µ14³47¡S©related_output_pinµattribute,µ14³49¡-álogic_0_symbolµattribute,µ6³1¤ÿý1¡-logic_1_symbolµattribute,µ6³1¤ÿý1¡-Plookupµtables¡S„²*Seeµalso²µlu_table_templateµgroup¡S¸forµdeviceµdegradationµconstraints,µ8³47¡Sìforµmodelingµloadµdependency¤ÿý,µ14³49¡S!internal_power¤ÿý,µ13³10¡SUpower¡x‰one-dimensionalµtable,µ13³28¡x½three-dimensionalµtable,µ13³29¡xñtwo-dimensionalµtable,µ13³29¡S%rulesµforµdefining.µ²*See²µlu_table_template¡žXgroup¡SŒsyntaxµforµlookupµtableµgroup,µ14³1¤ÿý1¡-Älow-active¡Søclearµsignal,µ9³9,µ14³70¡S,clockµsignal,µ9³6¡-cls,µUNIXµcommand,µ3³42¡-›LSSDµtestµelement,µmodelingµexample,¡-Í12³32¡-lu_table_templateµgroup¡S9breakpoints,µ7³18,µ14³1¤ÿý1¡Smforµdeviceµdegradationµconstraints,µ8³45¡S¡modelingµloadµdependency¤ÿý,µ14³48¡SÖsyntax,µ14³9¡S	
variables,µ14³9¡-	„²%M¡-	Ç²manµpages,µdisplayingµwithµhelpµcommand,¡-	ù3³16¡-
1map_onlyµattribute,µ8³9¡-
imapping,µ18³9¡-
 master-slave¡S
Ôclocks,µ9³5¡Sflip-flop,µ9³12’&WD“I501ileaf_page_string1:IN-14¥	öä¥	öäâ²¡4IN³14¡,Àmax_capacitance´µattribute,µdefinition,µ8³43¡,ýmax_fanoutµattribute,µ7³24¡R3definition,µ8³39¡Rispecifyingµdefaultµvalue,µ17³3¡RŸspecifyingµglobally¤ÿý,µ8³41¡,Ümax_periodµconstraint,µ18³27¡,max_transitionµattribute,µ7³24¡ROdefinition,µ8³42¡R†specifyingµdefaultµvalue,µ17³3¡,Ãmax_wired_emittersµattribute,µ17³12¡,membersµattribute,µ8³79¡,=memoryµcells,µstatetableµformat,µ10³2¡,zmemoryµfiles,µUNIXµsourceµfiles,µdif¤ÿÿferences,¡,­3³10¡,êmemoryµgroup¡R checkingµerrorsµin,µ10³9¡RVcomponents,µ10³4¡,“memoryµmodules¡RÉexamples,µ10³13¡Rÿmodeling,µ10³1¡,=memory_readµgroup,µcomponents,µ10³6¡,zmemory_writeµgroup,µcomponents,µ10³7¡,·MentorµGraphicsµCAEµinterface,µcreating¡,ésymbolµlibraries,µ6³3¡,'menuµbar¡R]Analyze,µ4³22¡R“File,µ4³6³4³1¤ÿý1¡RÉHelp,µ4³31¡RÿOptions,µ4³27¡R5V¤ÿÿiew¤ÿý,µ4³30¡,rmin_capacitanceµattribute,µdefinition,µ8³44¡,¯min_fanoutµattribute,µdefinition,µ8³41¡,ìmin_periodµattribute,µdefinition,µ8³49¡,	*min_pulse_widthµattributes,µdefinition,µ8³49¡,	gmin_pulse_widthµgroup,µdefined,µ14³86¡,	¤min_transitionµattribute,µdefinition,µ8³43¡,	áminimum_periodµgroup,µdefined,µ14³87¡,
modelingµdelayµcalculationµscalingµfactors,¡,
Q2³10¡,
Žmodelingµmemoryµmodules,µ10³1¡,
Ëmodelingµtimingµarcs,µ2³28,µ14³6¡,modelingµwireµload,µ2³14¡-Àmodule,µadding,µ4³19¡-÷multibitµregisters¡S+flip-flop,µ9³15¡S`latch,µ9³26¡-—multicellµpads,µ1¤ÿý1³5¡SË²*Seeµalso²µauxiliaryµpadµcell¡Sauxiliary_pad_cellµattribute,µ1¤ÿý1³7¡S4connectingµpins,µ1¤ÿý1³7¡Shconnection_classµattribute,µ2³32,µ1¤ÿý1³7¡Sœdescribing.µ²*See²µpads¡SÐmulticell_pad_pinµattribute,µ2³32,µ8³60¡-multicell_pad_pinµattribute,µ2³32¡S<defined,µ8³60,µ1¤ÿý1³7¡-tmultipleµpaths,µ14³18¡-«multipleµpowerµsupplies,µexampleµlibrary¤ÿý,¡-Þ13³44¡-X²%N¡-œ²n-channelµopenµdrain,µ8³37¡-Ónamingµconventions,µfilename,µ5³2¡-negative-edge-triggeredµdevices,µ9³6¡-Bnegative_unateµvalue¡Svinµclearµarc,µ14³29¡S«inµpresetµarc,µ14³27¡Sßvalueµforµtiming_senseµattribute,µ14³27,¡ž14³29¡-Inet_layerµattribute,µ6³14¡-€net_name_layerµattribute,µ6³14¡-¸netlist¡Sìconsiderations,µ8³88¡S explicitµformat,µ8³89¡SUimplicitµformat.µ²*See²µnetlist,µorder-based¡S‰importanceµofµpinµorder¤ÿý,µ8³91¡S½order-based,µ8³88¡-ônext_stateµattribute,µ9³5,µ9³8¡-	,nextstate_typeµattribute,µ9³9¡-	dnoµchangeµconstraints¡S	˜andµconditionalµattributes,µ14³88¡S	Ìdefined,µ14³74¡S
inµlinearµdelayµmodels,µ14³77¡S
4inµnonlinearµdelayµmodels,µ14³78¡S
hinµtimingµreport,µ16³13¡-
 non_seq_hold_fallingµvalue¡S
Ôdefined,µ14³67¡Svalueµforµtiming_typeµattribute,µ14³65’W
¤D“I501ileaf_page_string1:IN-15¥	öä¥	öäâ²¡À¤ÿIN³15¡,Ànon_seq_hold_rising´µvalue¡Rödefined,µ14³67¡R-valueµforµtiming_typeµattribute,µ14³64¡,knon_seq_setup_fallingµvalue¡R¢defined,µ14³67¡RØvalueµforµtiming_typeµattribute,µ14³64¡,non_seq_setup_risingµvalue¡RMdefined,µ14³67¡R„valueµforµtiming_typeµattribute,µ14³64¡,Ânon_unateµvalue¡Røinµclearµarc,µ14³29¡R/inµpresetµarc,µ14³27¡Revalueµforµtiming_senseµattribute,µ14³27,¡˜14³29¡,Önonlinearµdelayµmodel,µinµreportµinformation,¡,	16³5¡,GNORµgateµexample,µ14³35¡,†nullµlist,µasµcommandµstatus,µ3³45¡,E²%O¡,›²of¤ÿÿf-sheetµconnectorsµsymbol,µ6³1¤ÿý1¡,ÙOPENµLOOK,µstarting,µ4³2¡,open_drainµdriverµtype,µ8³31¡,Vopen_sourceµdriverµtype,µ8³31¡,•operatingµconditions¡RË²*Seeµalso²µoperating_conditionsµgroup¡Randµscaledµcells,µ8³86¡R8atµoptimization,µ2³13¡,woperatingµconditionsµgroup,µpower_rail,¡,©17³17¡,èoperating_conditionsµgroup¡R	ef¤ÿÿfectµonµinputµvoltageµgroups,µ7³13¡R	Uef¤ÿÿfectµonµoutputµvoltageµgroups,µ7³14¡R	‹groupµstatement,µ17³15¡R	Âprocessµattribute,µ2³13,µ17³15¡R	øsettingµdefaultµgroup,µ17³13¡R
/specifyingµatµrunµtime,µ17³17¡R
etemperatureµattribute,µ2³13,µ17³16¡R
›tree_typeµattribute,µ2³13,µ17³16¡R
Òverification,µ18³36¡Rvoltageµattribute,µ2³13,µ17³16¡SÀvoltage_unitµattribute,µ1¤ÿý1³9¡-þoperator¤ÿý,µprecedenceµof,µ13³21¡-<operators¡Ssappendµ(>>),µ3³14¡S©arithmetic,µ3³13¡Sàlist,µ3³13¡Sredirectµ(>),µ3³13¡SLstring,µ3³13¡Sƒvariables,µ3³13¡-Áoptimization¡S÷cell_footprintµattribute,µ2³40¡S.dont_touchµattribute,µ8³6¡Sdin-place,µ2³40¡S›in-placeµoptimization,µ7³20¡SÑin_place_swap_modeµattribute,µ2³40¡Spad_cellµattribute,µ8³9¡S>prefer_tiedµattribute,µ8³57¡Stpreferredµattribute,µ8³12¡S«sizingµflip-flops,µ9³15¡Sástrategies,µ18³1¡-Optionsµmenu,µ4³27¡-^options,µ-help,µ3³15¡-œorder-basedµnetlist,µ8³88¡-Úosc_layerµattribute,µ6³14¡-osc_name_layerµattribute,µ6³14¡-Wout_osc_symbolµattribute,µ6³1¤ÿý1¡-•out_port_symbolµattribute,µ6³1¤ÿý1¡-Ôoutput,µredirecting,µ3³13¡-outputµpads,µ2³34,µ1¤ÿý1³1¤ÿý1¡SH²*Seeµalso²µpads¡-‡outputµpinµgroup¡S½internal_nodeµattribute,µ9³41¡Sóstate_functionµattribute,µ9³41,µ9³42¡S	*three_stateµattribute,µ9³41¡-	houtputµpropagation.µ²*See²µInterfaceµT¤ÿþiming¡-	›Specification¡-	Ùoutput_net_length,µ14³10¡-
output_net_pin_cap,µ14³10¡-
Uoutput_net_wire_cap,µ14³10¡-
”output_voltageµattribute,µ8³61¡-
Òoutput_voltageµgroup,µ7³14,µ1¤ÿý1³9,µ1¤ÿý1³12¡Sandµpads,µ2³34’
¤
D“I501ileaf_page_string1:IN-16¥	öä¥	öäâ²¡4IN³16¡,Õ²%P¡,%²p-channel´µopenµdrain,µ8³37¡,bpad_cellµattribute,µ8³9,µ1¤ÿý1³3¡R˜²*Seeµalso²µpads¡,Ôpad_typeµattribute,µ8³10,µ1¤ÿý1³3¡R
²*Seeµalso²µpads¡,Gpads¡R}areaµattribute,µ2³33¡R³attributes,µ7³12¡Rèauxiliaryµcells,µ2³31,µ1¤ÿý1³7¡Rauxiliary_pad_cellµattribute.µ²*See²µmulticell¡Qpads¡R‡bidirectional,µ1¤ÿý1³4¡R¼bidirectionalµpadµexample,µ1¤ÿý1³25¡Ròcells,µexamples,µ1¤ÿý1³19¡R(clock,µ1¤ÿý1³3¡R^clockµbuf¤ÿÿferµexample,µ1¤ÿý1³22¡R”connection_classµattribute.µ²*See²µmultipad¡Æcells¡Rüdefined,µ1¤ÿý1³2¡R2defined,µ2³30¡Rhdirectionµattribute,µ2³31¡Rždriveµcurrent,µ1¤ÿý1³13¡RÔdriveµcurrentµstrengthµattribute,µ8³63¡R	drive_currentµattribute,µ2³34¡R?hysteresis,µ8³63,µ1¤ÿý1³1¤ÿý1¡Ruhysteresisµattribute,µ2³34¡R«identifying,µ1¤ÿý1³3¡Ráinputµbuf¤ÿÿferµexample,µ1¤ÿý1³20¡Rinputµbuf¤ÿÿferµwithµhysteresisµexample,µ1¤ÿý1³21¡RLinputµpads,µ1¤ÿý1³10¡w‚²*Seeµalso²µµinputµpads¡R¸inputµvoltageµlevels,µ7³13,µ1¤ÿý1³10¡Rîinput_voltageµgroup,µ2³34¡R	$is_padµattribute,µ2³31¡R	Zmulticell,µ1¤ÿý1³5¡w	auxiliary_pad_cellµattribute,µ1¤ÿý1³7¡w	Åexample,µ1¤ÿý1³27¡R	ûmulticellµpads,µ2³32¡w
1²*Seeµalso²µmulticellµpads¡R
gmultipleµcellµconnections,µ8³60¡R
outputµbuf¤ÿÿferµexample,µ1¤ÿý1³23¡R
Óoutputµpads,µ1¤ÿý1³1¤ÿý1¡w²*Seeµalso²µoutputµpads¡SÀoutputµvoltageµlevels,µ1¤ÿý1³12¡Sõoutput_voltageµgroup,µ2³34¡S*padµpinµattributes,µ8³59,µ1¤ÿý1³4¡S_pad_cellµattribute,µ2³31,µ8³10¡S”pad_typeµattribute,µ2³31,µ8³10¡SÉpullup/pulldownµonµpin,µ8³62¡Sþreportingµinformation,µ1¤ÿý1³18¡S3requirements,µ1¤ÿý1³3¡Shslew-rateµcontrol,µ8³64,µ1¤ÿý1³13¡Sslew_controlµattribute,µ2³34¡SÒunitsµfor¤ÿý,µ2³33,µ1¤ÿý1³8¡Susingµconnectionµclasses,µ8³28¡S<voltageµranges,µ8³61¡Sqwireµload,µ1¤ÿý1³17¡-«parallelµsingle-bitµsequentialµcells,µ9³15¡-åpathµtracing¡Sarcsµandµtimingµanalysis,µ14³3¡SOdefiningµmultipleµpaths,µ14³18¡S„edge-sensitiveµtimingµarcs,µ14³24¡S¹timingµgroups,µ2³28,µ14³6¡-ópathname¡S(absolute,µ3³10¡S]relative,µ3³10¡S’usingµsearch_path,µ3³10¡-Ìpercentµsignµ(%),µ3³3¡-piece_defineµattribute,µ7³12,µ14³33¡S;verification,µ18³25,µ18³33¡-upiece_typeµattribute,µ7³1¤ÿý1¡-¯piecewiseµlinearµdelayµmodel¡Säattributes,µ7³1¤ÿý1¡Sdefaultµtimingµattributes,µ17³6¡SNpieceµverification,µ18³33¡Sƒreportµinformation,µ16³3¡S·verificationµofµresistance,µ18³24¡-òpinµattribute,µsymbolµlibrary¤ÿý,µ6³18¡-	,pinµgroup¡S	abundleµgroup,µpinµattributesµin,µ8³78¡S	–capacitanceµattribute,µ8³27¡S	Êclockµatttribute,µ8³48¡S	ÿclock_gate_enable_pinµattribute,µ8³24¡S
4connection_classµattribute,µ8³27¡S
idefined,µ8³20¡S
ždesignµruleµcheckingµattributes,µ8³38¡S
Ódirectionµattribute,µ8³24,µ9³46¡Sdont_faultµattribute,µ8³26’
ˆD“I501ileaf_page_string1:IN-17¥	öä¥	öäâ²¡À¤ÿIN³17¡RÀdrive_current´µattribute,µ8³63¡Rödriver_typeµattribute,µ8³30¡R,example,µ8³66¡Rbfall_current_slope_after_threshold¡•attribute,µ8³65¡RËfall_current_slope_before_threshold¡ýattribute,µ8³65¡R4fall_time_after_threshholdµattribute,µ8³65¡Rjfall_time_before_thresholdµattribute,µ8³65¡R fanout_loadµattribute,µ8³38¡RÖfunctionµattribute,µ8³50¡Rhysteresisµattribute,µ8³63¡RCinµaµtest_cellµgroup,µ12³5¡Ryinput_voltageµattribute,µ8³61¡R¯inverted_outputµattribute,µ8³25¡Råis_padµattribute,µ8³60¡Rmax_capacitanceµattribute,µ8³43¡RQmax_fanoutµattribute,µ8³39¡Rˆmax_transitionµattribute,µ8³42¡R¾min_capacitanceµattribute,µ8³44¡Rômin_fanoutµattribute,µ8³41¡R*min_periodµattribute,µ8³49¡R`min_pulse_widthµattributes,µ8³49¡R—min_transitionµattribute,µ8³43¡RÍmulticell_pad_pinµattribute,µ8³60¡Routput_voltageµattribute,µ8³61¡R9padµpinµattributes,µ8³59¡Ropin_func_typeµattribute,µ8³37¡R¥pulling_currentµattribute,µ8³62¡RÜpulling_resistanceµattribute,µ8³62¡Rrise_current_slope_after_threshold¡Dattribute,µ8³65¡Rzrise_current_slope_before_threshold¡­attribute,µ8³64¡Rãrise_time_after_thresholdµattribute,µ8³65¡R	rise_time_before_thresholdµattribute,µ8³65¡R	Pslew_controlµattribute,µ8³64¡R	†state_functionµattribute,µ8³55¡R	¼test_output_onlyµattribute,µ8³25¡R	òthree_stateµattribute,µ8³53¡R
(threshold-relatedµattributes,µ8³64¡,
fpinµgroupµstatement,µinternal_powerµgroup¡R
œequal_or_opposite_outputµattribute,µ13³16¡R
Òfall_powerµattribute,µ13³22¡Rpowerµgroup,µ13³24¡SÀrelated_pinµattribute,µ13³20¡Sõrise_powerµattribute,µ13³26¡S*whenµattribute,µ13³20¡-dpin_equalµattribute¡S˜busµvariablesµin,µ8³74¡SÍdefinition,µ8³10¡-pin_func_typeµattribute,µ8³37¡-Apin_layerµattribute,µ6³14¡-{pin_name_layerµattribute,µ6³14¡-µpin_oppositeµattribute¡Sêbusµvariablesµin,µexample,µ8³74¡Sdefinition,µ8³1¤ÿý1¡-Ypins¡SŽapproachµdirections,µsymbolµlibrary¤ÿý,µ6³19¡SÃcapacitance,µ17³42¡Søcapacitanceµattribute,µ2³23¡S-cellµgroup,µ8³10¡Sbcombinationalµorµsequentialµlogic,µ2³24¡S–comparisonµofµbusedµandµsingleµformats,¡žÉ8³73¡Sþconnectingµinµmulticellµpads,µ1¤ÿý1³7¡S3defaultµattributes,µtechnologyµlibrary¤ÿý,µ7³23¡Shdefining,µ8³23¡Sdefiningµfunction,µ8³50¡SÒdescribingµfunctionality¤ÿý,µ8³37¡Sdirectionµattribute.µ²*See²µpinµgroup¡S<ef¤ÿÿfectsµofµordering,µ8³89¡Sqfunction,µ2³23¡S¥logicalµinverse,µ8³1¤ÿý1¡SÚmultipleµpinsµinµaµgroup,µ8³22¡Snameµofµtestµcellµpin,µ12³5¡SDnamingµtestµpins,µ12³5¡Sypadµpinµattributes,µ8³59,µ1¤ÿý1³4¡S®pinµgroup,µ8³21¡Sãpin_equalµattribute,µ8³10¡S	pin_oppositeµattribute,µ8³1¤ÿý1¡S	Mreportµon,µ16³1¤ÿý1¡S	‚resistanceµscalingµfactor¤ÿý,µ17³44¡S	·settingµdriverµtype,µ8³30¡S	ìtiming.µ²*See²µtimingµgroup¡S
!withµcommonµattributes,µ8³22¡-
[polarityµtransition,µ14³17¡-
•port_layerµattribute,µ6³14¡-
Ïport_name_layerµattribute,µ6³14¡-portrait,µtemplateµorientation,µ6³27’ˆ
äD“I501ileaf_page_string1:IN-18¥	öä¥	öäâ²¡4IN³18¡,Àpositive_unate´µvalue¡Röinµclearµarc,µ14³28¡R,inµpresetµarc,µ14³27¡Ravalueµforµtiming_senseµattribute,µ14³27,¡”14³28¡,Ñpost-processingµtools,µ18³30¡,power¡RCcapacitiveµpowerµdefined,µ13³4¡Rycellµmodeling,µ13³5¡R¯cell_leakage_power¤ÿý,µ2³38¡Rådynamicµpowerµdefined,µ13³2¡Rinternalµpower¤ÿý,µcalculating,µ13³31¡RQinternal_power¤ÿý,µ2³38¡R‡internal_powerµgroup,µ13³16¡w½reportµon,µ3³26,µ16³8¡Róleakageµpowerµdefined,µ13³7¡R)leakage_power¤ÿý,µ2³38¡R_leakage_power_unit,µ2³38¡R”lookupµtemplateµvariables,µ7³17¡wÊinput_transition_time,µ7³18¡wtotal_output_net_capacitance,µ7³17¡w6total_output2_net_capacitance,µ7³17¡Rlpower_lut_templateµgroup,µ7³16¡R¢scalingµfactors,µ17³46¡RØstate-dependentµleakageµpower¤ÿý,µ13³7¡Rstaticµpowerµdefined,µ13³2¡RDswitchingµactivityµdefined,µ13³5¡,powerµgroup¡R¶inµinternal_powerµgroup,µ13³24¡Rìindex_1µattribute,µ13³25¡R"index_2µattribute,µ13³25¡RXindex_3µattribute,µ13³25¡RŽvaluesµattribute,µ13³25¡,Ëpowerµlookupµtableµtemplate,µexample,µ7³19¡,	powerµlookupµtables¡R	>one-dimensionalµtable,µ13³28,µ13³32¡R	sthree-dimensionalµtable,µ13³29,µ13³35¡R	©two-dimensionalµtable,µ13³29,µ13³34¡,	æpower_lut_templateµgroup,µdefining,µ7³16¡,
#power_lut_templateµreport,µexample,µ7³20¡,
`power_supplyµgroupµstatement,µ13³38¡R
–example,µ13³42¡,
Òprefer_tiedµattribute¡Rdefinition,µ8³56¡SÀLibraryµCompilerµlimitations,µ8³57¡Sõthree_stateµdegeneration,µ8³57¡-0preferredµattribute,µ8³12¡-lpresetµattribute¡S¡forµflip-flops,µ9³7,µ9³9¡S×forµlatches,µ9³22¡-presetµtimingµarc¡SGdefined,µ14³26¡S}useµof,µ14³26¡-¸processµattribute,µ17³15¡Sî²*Seeµalso²µoperating_conditionsµgroup¡-)processingµattributes,µ7³20¡-dpropagationµdelay¡Sšasµfunctionµofµsupplyµvoltage,µ17³37¡SÏasµfunctionµofµtemperature,µ17³38¡-
pull-downµcell¡S@auxiliaryµpadµcell,µ8³10¡Sudriverµtype,µ8³31¡S«resistanceµunit,µ7³10¡Sàresistance/current,µ8³62¡-pull-upµcell¡SQauxiliaryµpadµcell,µ8³10¡S†driverµtype,µ8³30¡S¼resistanceµunit,µ7³10¡Sñresistance/current,µ8³62¡-,pulling_currentµattribute,µ7³10,µ8³62,µ1¤ÿý1³10¡-hpulling_resistanceµattribute,µ8³62,µ1¤ÿý1³9¡-£pulling_resistance_unitµattribute,µ7³10,µ1¤ÿý1³9¡-Þpwd,µUNIXµcommand,µ3³42¡-~²%Q¡-Ì²quality¤ÿý,µachievingµfromµsynthesis,µ15³5¡-	quitµcommand,µ3³8¡-	§²%R¡-	ô²RAM,µspecifyingµwithµinterfaceµtiming,µ15³22¡-
0rangeµofµbusµmembers¡S
einµrelated_pin,µ14³16¡S
›specifying,µ8³73¡-
Örangesµinµpiecewiseµlinearµmodel,¡-verification,µ18³33’
ä
ÜD“I501ileaf_page_string1:IN-19¥	öä¥	öäâ²¡À¤ÿIN³19¡,Àranges´µofµwireµlength,µ7³12¡,ÿreadµcommand,µ3³20¡,>ReadµLibraryµdialogµbox,µ4³7¡,~read_libµcommand,µ3³17,µ6³33,µ8³57¡R´andµEDIFµlibraryµfile,µ6³5¡,ôreadingµinµlibraries,µ3³17¡,3recoveryµconstraints¡Rj²*Seeµalso²µrecovery_risingµand¡œrecovery_fallingµvalues¡RÓdefined,µ2³29,µ14³69¡R
inµtimingµreport,µ16³13¡,Irecovery_fallingµvalue¡R€using,µ14³71¡R¶valueµforµtiming_typeµattribute,µ14³65¡,örecovery_risingµvalue¡R,using,µ14³70¡Rcvalueµforµtiming_typeµattribute,µ14³65¡,¢redµattribute,µ6³15¡,âredirectµoutputµ(>),µ3³13¡,!reexecutingµcommands,µ3³40¡,`registers,µ9³15,µ9³26¡R—definingµsignalµbundles,µ8³78¡,Örelated_bus_pinsµattribute¡Rdefined,µ14³16¡RDinµallµdelayµmodels,µ14³14¡,ƒrelated_output_pinµattribute¡Rºdefined,µ14³49¡Rðinµnonlinearµdelayµmodels,µ14³14¡,0related_pinµattribute¡Rfbusµvariablesµin,µ8³74¡Rdefined,µ14³15¡RÔinµallµdelayµmodels,µ14³14¡R	inµholdµarcs,µ14³61¡R	Ainµsetupµarcs,µ14³60¡R	xinternal_powerµgroup,µ13³20¡,	·related_pin_transition,µvalueµforµtransition¡,	êconstraint,µ14³64¡,
)relativeµpathµname,µ3³10¡,
hremovalµconstraints¡R
Ÿdefined.µ²*See²µremoval_risingµvalueµand¡
Òremoval_fallingµvalue¡Rinµtimingµreport,µ16³13¡-Àremoval_fallingµvalue¡Sõusing,µ14³73¡S+valueµforµtiming_typeµattribute,µ14³65¡-gremoval_risingµvalue¡Susing,µ14³73¡SÒvalueµforµtiming_typeµattribute,µ14³65¡-remove_libµcommand,µ3³34¡-Jremove_variableµcommand,µ3³56¡-†removingµvariables,µ3³56¡-Âreportµcommand,µ18³32¡-þReportµdialogµbox,µ4³24¡-:report_delay_calculationµcommand,µ18³18¡-vreport_libµcommand¡S¬-full_tableµoption,µ10³3,µ10³1¤ÿý1¡Sá-powerµoption,µ16³8¡Slibraryµinformation,µ3³26¡SMmemoryµgroups,µ10³3,µ10³1¤ÿý1¡S‚piecewiseµlinearµranges,µ18³33¡S¸redirectµtoµfile,µ3³14¡Sîroutingµlayerµinformation,µ7³7¡S#statetableµformat,µ9³52¡SYtimingµrangesµinformation,µ17³20¡-•report_timingµcommand,µ18³21¡-Ñresistance¡Sspecifyingµdefaultµvalue,µ17³43¡S<unitsµofµmeasure,µ5³9¡Srwireµattribute,µ17³22¡-®resistanceµparameters,µverification,µ18³23,¡-à18³24¡-resistiveµdriverµtype,µ8³32¡-Xresistive_0µdriverµtype,µ8³32¡-”resistive_1µdriverµtype,µ8³32¡-Ðrevisionµattribute,µ7³8¡-	ripped_bits_propertyµattribute,µ6³20¡-	Hripped_pinµattribute,µ6³20¡-	„ripperµsymbol,µcreating,µ6³20¡-	Àriseµandµfallµtime¡S	öchanging,µ18³26¡S
+testing,µ18³26¡-
grise_constraintµgroup¡S
modelingµloadµdependency¤ÿý,µ14³49¡S
Ónoµchangeµconstraintµsetupµtime,µ14³78¡Ssetupµandµholdµconstraints,µ14³63’
Ü
yD“I501ileaf_page_string1:IN-20¥	öä¥	öäâ²¡4IN³20¡,Àrise_current_slope_after_threshold´µattribute,¡,ò8³65,µ1¤ÿý1³14¡,.rise_current_slope_before_threshold¡,aattribute,µ8³64,µ1¤ÿý1³14¡,rise_delay_interceptµattribute,µ7³25¡RÓdefined,µ14³34¡R	inµpiecewiseµlinearµdelayµmodels,µ14³14¡R>scaling,µ17³45¡Rtspecifyingµdefaultµvalue,µ17³6¡Rªverification,µ18³24¡,ærise_pin_resistanceµattribute,µ7³25¡Rdefined,µ14³34¡RQinµpiecewiseµlinearµdelayµmodels,µ14³14¡R‡scaling,µ17³44¡R½specifyingµdefaultµvalue,µ17³6¡,ùrise_powerµgroup¡R/index_1µattribute,µ13³27¡Rdindex_2µattribute,µ13³27¡Ršindex_3µattribute,µ13³27¡RÐinternal_powerµgroup,µ13³26¡Rvaluesµattribute,µ13³27¡,Brise_propagationµgroup¡Rwdefined,µ14³39¡R­definingµdelayµarcs,µ14³37¡Rãinµnonlinearµdelayµmodels,µ14³14¡,rise_resistanceµattribute,µ7³24¡RUdefined,µ14³32¡R‹inµlinearµdelayµmodels,µ14³14,µ14³32¡RÀspecifyingµdefaultµvalue,µ17³4,µ17³5¡Röuseµof,µ1¤ÿý1³9¡R,verification,µ18³23¡Rawithµpresetµandµclearµtimingµarcs,µ14³28¡,žrise_time_after_thresholdµattribute,µ8³65,¡,Ð1¤ÿý1³14¡,	rise_time_before_thresholdµattribute,µ8³65,¡,	?1¤ÿý1³14¡,	{rise_transitionµgroup¡R	±defined,µ14³38¡R	ædefiningµdelayµarcs,µ14³37¡R
inµnonlinearµdelayµmodels,µ14³14¡,
Xrise_transition_degrationµgroup,µdefined,¡,
‹14³43¡-Àrising_edgeµvalue,µvalueµforµtiming_type¡-òattribute,µ14³24¡-.routability¡Scaf¤ÿÿfectingµfactors,µ2³41¡S™allowedµinformation,µ8³20¡SÎdefault_min_porosityµattribute,µ2³41¡Srouting_layersµattribute,µ2³41¡S9routing_trackµgroup,µ8³18¡-trouting_layersµattribute,µ8³18¡Sª²*Seeµalso²µroutability¡-årouting_trackµgroup¡S²*Seeµalso²µroutability¡SPtotal_track_areaµattribute,µ8³19¡S†tracksµattribute,µ8³18¡-'²%S¡-u²SAMPLEµLine,µ16³20¡-°scalable_linesµattribute,µ6³15¡-ìscaled_cellµgroup,µ1¤ÿý1³1¤ÿý1¡S!example,µ8³87¡SWforµpadsµwithµhysteresis,µ8³63¡SŒreportµon,µ16³7¡SÂuseµof,µ8³87¡-ýscalingµfactors¡S3forµnonlinearµdelayµmodel,µ17³56¡Shintrinsicµdelay¤ÿý,µ17³39¡Sžpinµresistance,µ17³44,µ17³46¡SÓpower¤ÿý,µ17³46¡S	slope-sensitivity¤ÿý,µ17³40¡-Dscaling_factorsµattribute,µ8³12¡-€scanµcellµmodels,µverifying,µ12³13¡-»scanµinputµonµJKµflip-flop,µ9³1¤ÿý1¡-÷scanµstyle,µsetting,µ12³15¡-	2scan_groupµattribute,µ8³13¡-	mscannableµequivalents¡S	£verifyingµexistenceµof,µ12³16¡S	Øverifyingµmodelingµof,µ12³14¡-
schematicµtemplates,µ6³27¡-
Oscriptµfile,µ3³43¡-
‹SDFµfile,µgenerating,µ14³89’
yáD“I501ileaf_page_string1:IN-21¥	öä¥	öäâ²¡À¤ÿIN³21¡,Àsdf_cond´µattribute,µ14³55¡Rö²*Seeµalso²µwhenµattribute¡R,conditionalµtimingµconstraint,µ14³83¡Radefined,µ14³83¡R—inµmin_pulse_widthµgroup,µ14³87¡RÍinµminimum_periodµgroup,µ14³87¡Rstate-dependentµtimingµconstraint,µ14³55¡R9withµnoµchangeµconstraints,µ14³88¡,vsdf_cond_endµattribute¡R¬defined,µ14³85¡Râwithµnoµchangeµconstraints,µ14³88¡,sdf_cond_startµattribute¡RTdefined,µ14³84¡RŠwithµnoµchangeµconstraints,µ14³88¡,Çsdf_edgesµattribute¡Rýdefined,µ14³85¡R3withµnoµchangeµconstraints,µ14³88¡,osearch_pathµvariable,µ3³10¡,¬sequentialµcells¡Râ²*Seeµalso²µflip-flop;µlatchµgroup;µstatetable¡group¡RJoutputµpinµgroup,µ9³41¡R€outputµport,µ9³32¡R¶sequentialµlogic,µ2³25¡Rìstatetableµgroup,µ9³33¡,)sequentialµdeviceµattribute.µ²*See²µprefer_tied¡,[attribute¡,˜sequentialµtimingµarc¡RÎdefined,µ14³4¡Rtypes,µ14³4¡R:useµof,µ14³3¡,vset_arrivalµcommand,µ18³27,µ18³29,µ18³32¡,³set_dont_touch,µdc_shellµcommand,µ8³7¡,ðset_dont_use,µdc_shellµcommand,µ8³7¡,	-set_driveµcommand,µ18³25,µ18³26¡,	iset_fontµattribute,µ6³14¡,	¦set_infinite_template_locationµattribute,µ6³28,¡,	Ù6³29¡,
set_loadµcommand,µ18³24,µ18³26¡,
Rset_map_only¤ÿý,µdc_shellµcommand,µ8³9¡,
set_meter_scaleµattribute,µ6³8,µ6³1¤ÿý1¡,
Ìset_minimum_boundaryµattribute,µ6³20¡,set_operating_conditionsµcommand,µ17³17¡-Àset_route_gridµattribute,µ6³8,µ6³10¡-ùset_timing_rangesµcommand,µ17³19¡-3set_usable_areaµattribute,µ6³28,µ6³29¡-mset_wire_loadµcommand,µinµdc_shell,µ1¤ÿý1³17¡-¦set_wire_loadµcommand,µ17³25¡-àsettingµvariables,µ3³54¡-setupµandµholdµchecking,µ18³29¡-Ssetupµconstraints¡SˆandµVHDLµlibraryµgenerator¤ÿý,µ14³61¡S½defined,µ14³57¡Sòinµlinearµdelayµmodels,µ14³59¡S'inµnonlinearµdelayµmodels,µ14³63¡S\inµpiecewiseµlinearµdelayµmodels,µ14³63¡S‘inµtimingµreport,µ16³12¡SÆrelated_pinµattribute,µ14³60¡Súsetup_fallingµvalue,µ14³59¡S/setup_risingµvalue,µ14³59¡-isetupµfile,µ3³6¡-£setupµtimes,µverification,µ18³27¡-Üsetup_fallingµvalue¡Sdefiningµsetupµconstraint,µ14³59¡SFvalueµforµtiming_typeµattribute,µ14³59,¡žy14³64¡-²setup_risingµvalue¡Sçdefiningµsetupµconstraint,µ14³59¡Svalueµforµtiming_typeµattribute,µ14³59,¡žN14³64¡-ˆshµcommand,µ3³42¡-Âsheetµtemplate,µ6³27¡S÷example,µ6³28¡-0shellµcommands.µ²*See²µUNIXµcommands¡-jshort-circuitµpower¡SŸ²*Seeµalso²µinternalµpower¡SÔdefined.µ²*See²µinternalµpower¡-	signalµbehavior¤ÿý,µverification,µ18³29¡-	Gsignalµbundles,µdefining,µ8³78¡-	signalµmappingsµforµdriverµtypes,µ8³34¡-	ºsignal_typeµattribute,µ9³9,µ12³10¡S	ïofµtestµpin,µ12³6¡-
)simpleµattributeµstatement,µ5³5¡-
csimulation,µtestµvectors,µ18³12¡-
œsimulationµattribute,µ7³22¡-
Ösingle-latchµLSSDµmethodology¤ÿý,µtestµcell¡-modelingµexample,µ12³32’á
yD“I501ileaf_page_string1:IN-22¥	öä¥	öäâ²¡4IN³22¡,Àsizing´µsymbols,µ6³9¡,ÿskewµconstraints¡R6²*Seeµalso²µskew_risingµandµskew_falling¡ivalues¡R defined,µ14³79¡RÖinµtimingµreport,µ16³13¡,skew_fallingµvalue¡RMdefined,µ14³80¡R„valueµforµtiming_typeµattribute,µ14³64,¡¶14³80¡,öskew_risingµvalue¡R-defined,µ14³80¡Rdvalueµforµtiming_typeµattribute,µ14³64,¡–14³80¡,Öslaveµclock,µ9³5¡,slew-rateµcontrol¡RLattributes,µ1¤ÿý1³14¡Rƒattributesµexample,µ8³65¡Rºdefinition,µ8³64,µ1¤ÿý1³13¡,úslew_controlµattribute,µ8³64,µ1¤ÿý1³13¡R0²*Seeµalso²µpads¡,pslope¡R§describingµsensitivity¤ÿý,µ14³50¡RÞverification,µ18³26¡,slopeµattribute,µ17³23¡,]slope-sensitivityµscalingµfactors,µ17³40¡,slope_fallµattribute,µ7³25,µ14³51¡RÔinµlinearµdelayµmodels,µ14³14¡Rinµµpiecewiseµlinearµdelayµmodels,µ14³14¡,Jslope_riseµattribute,µ7³25,µ14³51¡Rinµlinearµdelayµmodels,µ14³14¡R¸inµpiecewiseµlinearµdelayµmodels,µ14³14¡Rïwithµpresetµandµclearµtimingµarcs,µ14³28¡,	.sourceµfile,µreadingµintoµlc_shell,µ3³17¡,	nsourceµfile,µtechnologyµlibrary¤ÿý,µ2³42¡,	®specialµsymbol¡R	åattributes,µ6³1¤ÿý1¡R
building,µ6³32¡R
Rdefined,µ6³2¡R
‰example,µ6³32¡,
Éspecialµsymbolµattributes,µ6³1¤ÿý1¡,SPICEµtool,µ2³20¡-ÀSRµlatch,µ9³25¡-standardµdelayµmodel¡S9defaultµtimingµattributes,µ17³4¡Sqverificationµofµresistance,µ18³23¡-³startpoint,µtimingµarc,µ14³3¡-ôstateµdeclaration¡S,clocked_onµattribute,µ9³5¡Scclocked_on_alsoµattribute,µ9³5¡-¥stateµtable,µcontrollingµoutcomeµwith¡-Øinverted_outputµattribute,µ8³25¡-stateµvariables¡SQforµflip-flops,µ2³27,µ9³5,µ9³8¡S‰forµlatches,µ9³27¡SÀforµmaster-slaveµflip-flops,µ9³12¡Søwithµfunctionµattribute,µ9³13,µ9³16¡-:state-dependentµtimingµattributes.µ²*See²¡-lsdf_condµattribute;µwhenµattribute¡-®state_functionµattribute,µ8³55¡Sæ²*Seeµalso²µoutputµpinµgroup¡-'statement¡S_attribute,µ5³5³5³7¡S—define,µ5³7¡SÎgroup,µ5³4¡Stypesµof,µ5³3¡-Hstatetableµformat¡Sinverted_outputµattribute,µ9³45¡S·memoryµcells,µ10³2¡Sîread_libµcommand,µ9³48,µ10³10¡S&recommendations,µ9³49¡S]report_libµcommand,µ9³52¡S•update_libµcommand,µ9³48,µ10³10¡-×statetableµgroup¡S	²*Seeµalso²µstatetableµformat¡S	Fsequentialµcells,µ9³33¡-	ˆstaticµpower¤ÿý,µdefined,µ13³2¡-	Êstringµoperators,µ3³13¡-
sub_symbolµattribute,µ6³24¡S
Cexample,µ6³25¡-
…subsymbols,µusing,µ6³26¡-
Çswitchingµactivity¤ÿý,µdefined,µ13³5¡-switchingµpower¤ÿý,µdefined,µ13³14’
y
–D“I501ileaf_page_string1:IN-23¥	öä¥	öäâ²¡À¤ÿIN³23¡,Àsymbol´µgroup¡R÷arcµattribute,µ6³18¡R-cellµattributes,µ6³20¡Rdcircleµattribute,µ6³18¡R›contentsµof,µ6³17¡RÒgraphicµattributes,µ6³18¡Rlandscapeµattribute,µ6³28¡R?lineµattribute,µ6³18¡Rvpinµattribute,µ6³18¡R­ripped_bits_property¤ÿý,µ6³20¡Rãripped_pinµattribute,µ6³20¡Rset_infinite_template_locationµattribute,¡M6³28¡Rƒset_minimum_boundaryµattribute,µ6³20¡Rºset_usable_areaµattribute,µ6³28¡Rñspecialµsymbols,µ6³32¡R(sub_symbolµattribute,µ6³24¡R_templateµattribute,µ6³27¡R•textµattribute,µ6³18¡RÌvariableµattribute,µ6³28¡,symbolµlibraries¡RBandµDesignµAnalyzer¤ÿý,µ1³3¡Rybuilding,µ6³1³6³21¡R°componentsµof,µ1³8¡Rçconsistencyµchecks,µ6³33¡Rcreating,µ6³2¡RTcreatingµinµASCIIµtext,µ1³4¡R‹creatingµwithµaµtextµfile,µ6³3¡RÂcreatingµwithµEDIFµinterface,µ6³3¡RøcreatingµwithµMentorµGraphics,µ6³3¡R/definingµvariables,µ6³8¡Rffilenames,µ6³4¡Rfonts,µ6³7,µ6³14¡RÓgeneric,µ6³4¡R	
layerµgroupµstatement,µ6³12¡R	Alibraryµgroupµstatement,µ6³7¡R	xrequirements,µ1³8¡R	¯sheetµtemplate,µ6³27¡R	åspecialµsymbols,µ6³2,µ6³1¤ÿý1,µ6³32¡R
structure,µ1³8¡R
Susingµcustom,µ6³6¡R
ŠusingµEDIFµinterface,µ6³6¡,
Ésymbolµlibrary¤ÿý,µfilename,µ2³7¡,symbol_library¤ÿý,µlc_shellµvariable,µ6³6¡-Àsymbols¡Sõbuildingµwithµsubsymbols,µ6³24¡S*definitionµexample,µ6³22¡S`dimensioning,µ6³9¡S•sizing,µ6³9¡SËspecialµsymbolµattributes,µ6³1¤ÿý1¡Sundefined,µ6³4¡-;Synopsysµinternalµdatabaseµformat,µ1³4¡-vsynthesis,µachievingµhigherµqualityµresults,¡-©15³5¡-äsynthesisµlibraries,µ1³3¡-synthesis-to-layoutµfeatures,µ2³40¡-½²%T¡-
²target_library¤ÿý,µdc_shellµvariable,µ15³18¡-Etechnologyµattribute,µ7³5¡Sz²*Seeµalso²µlibraryµgroup¡-¶technologyµlibraries¡Sëaddingµtoµanµexistingµlibrary¤ÿý,µ3³22¡S andµDesignµCompiler¤ÿý,µ1³3¡SVandµT¤ÿûestµCompiler¤ÿý,µ1³3¡S‹componentsµof,µ1³5¡SÀcreatingµinµASCIIµtext,µ1³4¡Södefinition,µ2³1¡S+filename,µ2³7¡S`generalµattributes,µ7³5¡S–minimumµcells,µ2³18¡SËstructure,µ1³7¡Ssyntax,µ7³2¡S6withµdelay¤ÿý,µ2³48¡-qtemperature,µunitsµofµmeasure,µ5³9¡-¬temperatureµattribute,µ17³16¡Sá²*Seeµalso²µoperating_conditionsµgroup¡-	template¡S	Rbuilding,µ6³28¡S	‡forµnonlinearµdelayµmodels,µ14³9¡S	½inµreportµinformation,µ16³5¡S	òinfiniteµtemplate,µ6³28¡S
'keybox,µ6³30¡S
]orientation,µ6³28¡S
’reportµforµnonlinearµdelayµmodelµ,µ16³5¡-
Ítemplateµattribute,µ6³27¡-template_layerµattribute,µ6³14’
–/D“I501ileaf_page_string1:IN-24¥	öä¥	öäâ²¡4IN³24¡,Àtemplate_text_layer´µattribute,µ6³14¡,þtestµcases,µcreating,µ12³14¡,;testµcircuit,µpreparationµforµverification,µ18³5¡,yT¤ÿûestµCompiler¤ÿý,µ2³38,µ12³1¡R°andµfunctionµattribute,µ8³52¡Ræandµtechnologyµlibraries,µ1³3¡,$testµpinµattributes¡RZfunction,µ12³6¡Rsignal_type,µ9³9,µ12³10¡,Îtestµvectors,µ2³38,µ12³1,µ18³12¡,test_cellµgroup¡RBnamingµtestµcellµpins,µ12³6¡Rxstatement,µ12³5,µ12³13¡,¶test_ouput_onlyµattribute,µ8³25¡,ôtextµattribute,µ6³18¡,2textµfileµsymbolµlibraries,µ6³3¡,ptext_layerµattribute,µ6³14¡,®three-stateµcell¡Rämodelingµexample,µ8³54,µ14³23¡Rprefer_tiedµattribute,µ8³57¡RQtiming_senseµattribute,µ14³18¡,Žthree_stateµattribute,µ8³53¡RÅinµmulti-bitµflip-flopµregisters,µ9³16¡Rûinµmulti-bitµlatchµregisters,µ9³27¡,9three_state_disable,µ14³21¡,wthree_state_enable,µ14³22¡,´threshold-relatedµattributes,µ8³64¡,òtimeµborrowing,µ15³20¡,0time_unitµattribute,µ7³9¡,ntiming¡R¤defaultµattributes,µ7³23¡RÛdescribingµdelay¤ÿý,µ14³1¡R	sequential,µ15³3¡R	Gsettingµconstraints,µ14³2¡R	}specifying,µdif¤ÿÿferences,µ15³7¡R	´static,µ15³3¡,	ñtimingµaccuracy¤ÿý,µunitsµofµmeasurement,µ5³8¡,
/timingµarc¡R
fclear¤ÿý,µ14³28¡R
œconstraintµarcµdefined,µ14³4¡R
Òdefined,µ14³3¡Rdefiningµidentical,µ14³15¡SÀdelayµarcµdefined,µ14³4¡Södiagram,µ14³3¡S,edge-sensitive,µ14³24¡Sbendpoint,µ14³3¡S˜internalµpins,µ9³49¡SÎmodeling,µ2³28,µ14³5,µ14³6¡Spreset,µ14³26¡S:startpoint,µ14³3¡SpwithµVHDLµlibraryµgenerator¤ÿý,µ14³7¡-®timingµgroup¡Säandµdelayµmodel,µ2³29¡Sattributesµinµtheµdelayµmodels,µ14³14¡SPdefined,µ14³6¡S†fall_delay_interceptµattribute,µ14³34¡S¼fall_pin_resistanceµattribute,µ14³35¡Sòfall_resistanceµattribute,µ14³32¡S(intrinsicµdelayµattributes,µ2³29¡S_intrinsic_fallµattribute,µ14³30¡S•intrinsic_riseµattribute,µ14³30¡SËrelated_pinµattribute,µ14³15¡Srise_delay_interceptµattribute,µ14³34¡S7rise_pin_resistanceµattribute,µ14³34¡Smrise_resistanceµattribute,µ14³32¡S£slope_fallµattribute,µ14³51¡SÙslope_riseµattribute,µ14³51¡Ssyntax,µ14³7¡SEtiming_senseµattribute,µ14³17¡S{timing_typeµattribute,µ14³19¡-¹timingµinformation¡Sïinµtimingµreport,µ16³12¡S%statistics,µ16³22¡-btimingµmodel¡S˜piecewiseµlinear¤ÿý,µ17³6¡xÏpieceµverification,µ18³33¡S	standard,µ17³4¡-	Btimingµranges.µ²*See²µtiming_rangeµgroup¡-	timingµvariables,µsettingµdefaults,µ17³4¡-	½timing,µinterface¡S	ó²*Seeµalso²µInterfaceµT¤ÿþimingµSpecification¡S
)benefits,µ15³4¡-
ftiming_rangeµgroup¡S
œexample,µ17³19¡S
Òfaster_factorµattribute,µ17³18¡Sspecifyingµatµrun-time,µ17³19’/
øD“I501ileaf_page_string1:IN-25¥	öä¥	öäâ²¡À¤ÿIN³25¡,Àtiming_sense´µattribute¡Rödefined,µ14³17¡R-inµallµdelayµmodels,µ14³14¡,ktiming_typeµattribute¡R¢defined,µ14³19¡RØdefiningµpresetµandµclearµarcs,µ14³26,¡14³28¡RAinµallµdelayµmodels,µ14³14¡Rxinµloadµdependencyµmodeling,µ14³48¡R®noµchangeµconstraintµvalues,µ14³75¡Rånon-sequentialµconstraintµvalues,µ14³67¡Rrecoveryµtimeµconstraintµvalues,µ14³70¡RRremovalµconstraintµvalues,µ14³73¡R‰setupµandµholdµarcµvalues,µ14³59,µ14³61¡R¿skewµconstraintµvalues,µ14³80¡Rövaluesµfor¤ÿý,µ14³19¡R,verification,µ18³32¡,ktopicµhelp,µ3³15¡,©total_output_net_capacitance,µ7³17,µ14³10¡,ètotal_output2_net_capacitance,µ7³17¡,'total_track_areaµattribute,µ8³19¡,etracksµattribute,µ8³18¡,¤transitionµdelay¡RÚ²*Seeµalso²µcell_fallµgroup;µcell_riseµgroup;¡fall_delay_interceptµattribute;¡?fall_pin_resistanceµattribute;¡rfall_propagationµgroup;µfall_transition¡¤group;µrise_delay_interceptµattribute;¡×rise_pin_resistanceµattribute;¡	rise_propagationµgroup;µrise_transition¡<group¡Rrdefined,µ14³32¡R©degradation,µ14³43¡Rßfall_resistanceµattribute,µ14³32¡R	inµlinearµdelayµmodels,µ14³32¡R	Linµnonlinearµdelayµmodels,µ14³36¡R	ƒinµpiecewiseµlinearµdelayµmodels,µ14³33¡R	¹lu_table_templateµgroup,µ14³9¡R	ðrise_resistanceµattribute,µ14³32¡,
.transitionµtime¡R
emax_transitionµattribute,µ8³42¡R
›min_transitionµattribute,µ8³43¡R
Òsetting,µ2³37¡Rthresholdsµforµpads,µ8³64¡-Àtranslation¡Sõflip-flopsµtoµnewµtechnology¤ÿý,µ9³15¡S)preferredµattribute,µ8³12¡-ctransparentµdevices,µ15³20¡-œtree_typeµattribute,µ17³16¡SÑ²*Seeµalso²µoperating_conditionsµgroup¡-
typeµattribute,µinµmemoryµgroup,µ10³4¡-Dtypeµgroup,µ8³70,µ8³71¡Sybase_typeµattribute,µ8³68¡S®bit_from,µ8³69¡Sâbit_toµattribute,µ8³69¡Sbit_widthµattribute,µ8³69¡SLdata_typeµattribute,µ8³69¡Sdefiningµbusedµpins,µ8³68¡S¶downtoµattribute,µ8³69¡Sêexample,µ8³69¡Sgroupµstatement,µ8³68¡STsampleµbusµdescription,µ8³74¡-typeµgroupµattribute,µ8³15¡-²%U¡-c²unaliasµcommand,µ3³37¡-œunate,µdefined,µ14³18¡-Öundefinedµsymbols,µ6³4¡-units¡SDarea,µ5³9¡Sycapacitiveµload,µ5³9,µ7³10,µ1¤ÿý1³8¡S®current,µ7³10,µ1¤ÿý1³10¡Sâdelay¤ÿý,µ5³9¡Sleakageµpower¤ÿý,µ7³1¤ÿý1¡SLpads,µ1¤ÿý1³8¡Spullingµresistance,µ7³10¡S¶resistance,µ5³9,µ1¤ÿý1³9¡Sêtemperature,µ5³9¡S	time,µ7³9¡S	Tvoltage,µ5³9,µ7³9,µ1¤ÿý1³9¡-	Žunitsµofµmeasurement,µ5³8¡S	ÂfromµASICµtechnology¤ÿý,µ2³17¡-	üuniversalµconnectionµclass,µ8³28¡-
5UNIXµcommands¡S
jcd,µ3³42¡S
Ÿls,µ3³42¡S
Ôpwd,µ3³42¡Ssh,µ3³42’
ø
“D“I501ileaf_page_string1:IN-26¥	öä¥	öäâ²¡4IN³26¡,ÀUNIX´µsourceµfiles,µmemoryµfiles,µdif¤ÿÿference,¡,ò3³10¡,.UpdateµLibraryµdialogµbox,µ4³17¡,jupdate_libµcommand,µ3³22¡R statetableµformat,µ9³48,µ10³10¡,G²%V¡,–²valuesµattribute,µdefinition,µ13³23,µ13³25,¡,È13³27¡,variableµattribute,µ6³28¡,@variable_layerµattribute,µ6³14¡,}variables¡R²command_log_file,µ3³5¡Rècreating,µ3³55¡Recho_include_commands,µ3³43¡RSgeneric_symbol_library¤ÿý,µ6³6¡R‰grouping,µ3³56¡R¾groups,µlisting,µ3³57¡Rôlc_shell_status,µ3³44¡R*listing,µ3³55¡R_overview¤ÿý,µ3³53³3³57¡R•removing,µ3³56¡RËsearch_path,µ3³10¡Rsetting,µ3³54¡R6sizing,µ6³9¡Rlsymbol_library¤ÿý,µ6³6¡,¨variables,µdc_shell¡RÝlink_library¤ÿý,µ15³18¡Rtarget_library¤ÿý,µ15³18¡,Overification¡R…area,µ18³32¡Rºconstraintµparameters,µ18³27¡Rðcreatingµaµtest-mappingµlibrary¤ÿý,µ18³9¡R	&creatingµtheµtestµvectors,µ18³12¡R	[delayµscaling,µ18³36¡R	‘holdµtimes,µ18³30¡R	Æidentifyingµfunctionµerrors,µ18³14¡R	üinterconnectµmodel,µ18³33¡R
2intrinsicµdelay¤ÿý,µ18³23¡R
gmappingµtheµnetlist,µ18³1¤ÿý1¡R
operating-conditionsµgroups,µ18³36¡R
Ópiece_defineµattribute,µ18³33¡Rpreparingµaµtestµcircuit,µ18³5¡SÀresistanceµparameters¡xõpiecewiseµlinearµmodel,µ18³24¡x+standardµdelayµmodel,µ18³23¡S`setupµtimes,µ18³27¡S–simulatingµtheµnetlists,µ18³13¡SËslope,µ18³26¡Stimingµparameters,µ18³22¡S6timing_type,µ18³32¡Slwire-lengthµrangeµinµpiecewiseµmodel,¡žž18³33¡SÔwire_loadµgroup,µ18³33¡-V¤ÿýerilogµnetlists,µ8³89¡SEflip-flopµdescription,µ8³91¡Szpinµorder¤ÿý,µ8³91¡-¶VHDLµsimulationµlibrary¤ÿý,µ2³35¡SëandµVHDLµsimulator¤ÿý,µ1³10¡S creating,µ3³20¡-\vhdl_nameµattribute,µ8³15¡-—V¤ÿÿiewµdialogµbox,µ4³30¡-Óvisibleµattribute,µ6³14¡-VIT¤ÿýALµmodel,µsettingµconstraintµhandling,µ8³8¡-Jvoltage,µ7³9¡S²*Seeµalso²µinput_voltageµgroup;¡ž²output_voltageµgroup¡Sçattribute,µ1¤ÿý1³9¡Sinputµandµoutputµlevels,µ7³13¡SRunitsµofµmeasure,µ5³9,µ7³9¡SˆvoltageµrangesµforµI/Os,µ8³61¡-Ãvoltageµattribute,µ17³16¡Sù²*Seeµalso²µoperating_conditionsµgroup¡-4voltage_unitµattribute,µ7³9,µ7³14,µ1¤ÿý1³9¡-Ö²%W¡-	$²warningµconditions,µduplicationµofµcell¡-	Wnames,µ5³3¡-	’whenµattribute¡S	È²*Seeµalso²µsdf_condµattribute¡S	ýconditionalµtimingµconstraint,µ14³83¡S
2defined,µ14³53,µ14³83¡S
hinµmin_pulse_widthµgroup,µ14³87¡S
inµminimum_periodµgroup,µ14³87¡S
Óinternal_powerµgroup,µ13³20¡Sstate-dependentµtimingµconstraint,µ14³52’
“wD“I501ileaf_page_string1:IN-27¥	öä¥	öäâ²¡À¤ÿIN³27¡RÀwith´µnoµchangeµconstraints,µ14³88¡,üwhen_endµattribute¡R2defined,µ14³84¡Rgwithµnoµchangeµconstraints,µ14³88¡,£when_startµattribute¡RÙdefined,µ14³83¡Rwithµnoµchangeµconstraints,µ14³88¡,Kwhichµcommand,µ3³1¤ÿý1¡,‡whileµcommand,µ3³48¡,Ãwildcardµcharacterµ(*),µ3³53¡,wire¡R5capacitance,µ17³42¡Rkinterconnectµdelay¤ÿý,µ17³22¡R¡lengthµestimation,µ17³22¡,Ýwireµload¡Rmodelingµforµpads,µ2³35¡RHwire_loadµgroup.µ²*See²µwire_loadµgroup¡R~wire_load_selectionµgroup.µ²*See²¡°wire_load_selectionµgroup¡,íwireµloadµmodel,µmodes¡R"enclosed,µ17³8¡RXsegmented,µ17³9¡RŽtop,µ17³8¡,Êwireµrouting,µ6³10¡,wire_loadµgroup,µ1¤ÿý1³17¡R<areaµattribute,µ17³22¡SÀcapacitanceµattribute,µ17³22¡Sõcomponentsµdefined,µ2³14¡S+fanout_lengthµattribute,µ17³23¡S`groupµstatement,µ17³21,µ17³22¡S–resistanceµattribute,µ17³22¡SËslopeµattribute,µ17³23¡Sspecifyingµatµrunµtime,µ17³25¡S6verification,µ18³33¡-qwire_load_from_area,µ17³32,µ17³33¡-­wire_load_modeµattribute,µsettingµdefault,¡-ß17³8¡-wire_load_selectionµgroup,µ17³7,µ17³21,¡-M17³30,µ17³33¡-‰wire_load_tableµgroup¡S¾fanout_areaµattribute,µ17³29¡Sôfanout_capacitanceµattribute,µ17³29¡S)fanout_lengthµattribute,µ17³29¡S_fanout_resistanceµattribute,µ17³29¡-šword_widthµattribute,µinµmemoryµgroup,µ10³5¡-Öworst_case_treeµvalueµofµtree_type,µ17³16¡-W¤ÿÿriteµLibraryµdialogµbox,µ4³12¡-Mwrite_libµcommand,µ3³18¡-î²%X¡-<²X-Windows,µstarting,µ4³2’w