Karakterisering av mikrokretselement

Uppgiften att karakterisera elementen i mikrokretsar är att erhålla beroenden av funktionsparametrarna för ett bibliotekselement eller block på varaktigheten av fronterna för signalerna vid ingången och på storleken på belastningskapacitanserna för givna uppsättningar av dessa värden. I kommersiella karaktäriseringssystem (SiliconSmart [1] , Virtuoso Liberate Characterization Solution [2] , Virtuoso Variety Statistical Characterization Solution [3] , Virtuoso Liberate MX Memory Characterization Solution [4] , Kronos Characterizer Plus [5] ) bygger sådana beroenden på bas för multipel elektrisk simulering i Hspice [6] , Spectre [7] och liknande kretssimuleringsprogram. När det gäller karakterisering av SF-block används som regel snabbkretssimuleringsprogram (NanoSim [8] , Ultrasim [9] etc.) för att bearbeta en stor mängd data.
I framtiden kan resultaten av karakteriseringen av bibliotekselement och SF-block användas i program för tidsanalys , energiförbrukningsanalys och brusanalys.

Moderna modeller för karakterisering av bibliotek av mikrokretselement

NLDM-modell

Synopsys stöder flera fördröjningsmodeller: CMOS Universal Delay Model, Piecewise Linear Delay Model, Non-Linear Delay Model (NLDM) och Composite Current Source (CCS) Model. Hittills har de två första modellerna praktiskt taget gått ur bruk på grund av deras ineffektivitet i att bedöma prestanda. NLDM-modellen är den vanligaste fördröjningsmodellen som används i ASIC-designprocessen.
NLDM-modellen skapas i processen med kretsmodellering när man karakteriserar element med olika utgångskopplingstider och utgångsbelastningskapacitanser [1] . Resultaten bildar en tabell med mängden fördröjning och tid för att växla utgången beroende på ingångskanten och belastningskapacitansen för varje brytare:

D ut ( S inp k , C ut l ), ​​​​k є [1: N S ], l є [1: N C ], S ut ( S inp k , C ut l ), ​​​​k є [1 : N S ], l є [1: N C ],

där D ut är utsignalen, S ut är varaktigheten för utsignalens framsida, S inp är varaktigheten för ingångssignalens front, C ut är belastningskapacitansen.
I framtiden kan en sådan tabell användas för att beräkna den kritiska vägen i en komplex krets utan att helt modellera hela elementet för att beräkna den resulterande fördröjningen av elementet. Sådana tabeller är konstruerade för varje båge av den logiska grafen båge ij = ( inp i , ut j ), om en förändring i det logiska tillståndet för inp i kan leda till att j växlas ut , och för olika riktningar av ingångs- och utgångsomkoppling (ökning). eller fall) för varje båge båge ij- tabeller byggs. Således kan upp till fyra tabeller D out ( S inp k , C out l ) och samma antal tabeller S out ( S inp k , C out l ) [2] associeras med varje båge . Vissa designsystem gör det också möjligt att för varje ljusbåge särskilja de logiska tillstånden för de andra ingångarna. Sedan ökar antalet tabeller associerade med varje båge ij i enlighet därmed. Förutom modeller av fördröjningar och utgångsfronter inkluderar NLDM-modellen värdena för effektiva ingångskapacitanser C inp r och C inp f för varje ingång på kretsen, separat för omkopplingsriktningarna för insignalen 0 -> 1 ( stiga) och 1 -> 0 (fall).
Elementfördröjningarna erhålls som ett resultat av flera Spice-simuleringar för varje uppsättning S inp och C out . Eftersom uppslagstabellen endast innehåller en liten uppsättning av S inp och C out , är det nödvändigt att uppskatta D out och S out för de erforderliga värdena för S inp och C out med hjälp av interpolation eller extrapolation . Eftersom stigtiden beror på två egenskaper kan flera exakta mätningar göras och registreras i en tabell. Kapacitansvärden kommer att plottas längs kolumnerna i tabellen, och varaktigheten för ingångsfronten kommer att plottas längs raderna. Cellerna i tabellen kommer att innehålla värdena för utgångsfrontens varaktighet. Simulatorn läser dessa data och kommer att använda dem för att beräkna stigtiden. Exakt samma tabell måste upprättas för att beräkna effekt- och kopplingsfördröjningar. Växlingsfördröjning är den tid som förflutit från det att insignalen passerar genom tröskelvärdet till det ögonblick då tröskelvärdet når utsignalen. Denna tid beror också på ingångsflankens varaktighet och den totala kapacitansen vid utgången. Problemen med att använda NLDM-modellen uppstår när utgångarna på grindar är anslutna till ingångarna på andra grindar genom verkliga sammankopplingar, vars modeller representeras av RC-nätverk (RLC-nätverk). Tillkomsten av nya nanometerteknologier åtföljs av uppkomsten av nya effekter, vågformerna blir mer olinjära, sammankopplingsmotstånden når flera kOhm. Dessa effekter måste beaktas för noggranna design- och tidsberäkningar. Modellens noggrannhet beror på den valda graden av förändring i belastningskapacitansen och varaktigheten av ingångsfronten, såväl som deras intervall av acceptabla värden för omkopplingstid och belastningskapacitanser. Om värdet på ingångskanten och belastningen faller inom gränserna för karakteriseringstabellen, beräknas fördröjningarna genom interpolation. Värdena för de omgivande fyra punkterna används för att bestämma fördröjningsvärdet med numeriska metoder. Problemet uppstår när någon parameter ligger utanför karakteriseringsintervallet. CAD stöder extrapoleringsalgoritmer för att erhålla denna fördröjning, men den överskattas ofta. Detta kan vara mycket användbart, eftersom ett överskattat värde lätt märks under statisk timinganalys, vilket ger utvecklare en möjlighet att rätta till situationen. NLDM-modellen låter dig beräkna fördröjningar snabbt, men på grund av ökande frekvens och minskande teknologistorlek är det relativa fel som introduceras av NLDM inte längre acceptabelt. Synopsys och Cadence har utvecklat nya modeller där utgående vågformer kan erhållas mer exakt, inklusive kretsfördröjningar. Dessa inkluderar CCS-modellen (Composite current source) av Synopsys [10] (otillgänglig länk) och ECSM-modellen (Effective current source model) av Cadence [11] .



 

CCS-modell

CCS (Composite Current Source) ger en hög noggrann beräkning av cellfördröjningar, sammankopplingar, ingångskantvaraktigheter och belastningskapacitans i närvaro av parasitiska element. För att uppnå den erforderliga noggrannheten för fördröjningsberäkningar i CCS används tre komponenter: en källkomponent, en mottagarkomponent och en reducerad beställd komponent för att beräkna falska RC-anslutningar [12] .
Den tillfälliga CCS-modellen består av två delar:

I ut = F ( t , S inp , C ut ),

där S inp är varaktigheten av ingångssignalens front, C ut är belastningskapacitansen. En källkomponent kan användas med eller utan en diskbänkskomponent.
Funktionen F ( t , S inp , C out ) med fasta värden på S inp och C out definieras som strömmen genom belastningskapacitansen C ut när en signal med främre S inp appliceras på gate-ingången .
I CCS-modellen lagras den del av strömfunktionen I ut ( t ), som har ett plustecken för stigfronten på utsignalen och ett minustecken för fallfronten, som en uppsättning diskreta punkter { t k , I ut k } på intervallet [ t 0 , t1 ] . När tröskelnivån 0,5· Vdd passeras av insignalen V inp ( t ), lagras tidsvärdet T ref i modellen.
Funktionstabeller I ut = F ( t , S inp , C ut ) är byggda för varje båge av grindlogikgrafen båge ij och separat för varje möjlig kombination av stigning/fall ingång och utgångsomkoppling. Beroenden I ut ( t ) som erhålls som ett resultat av elektrisk kretssimulering lagras i modellen i form av endimensionella tabeller. Antalet tidpunkter i sådana tabeller är inte reglerat. Uppenbarligen måste en kompromiss iakttas här mellan den erforderliga noggrannheten för att återställa funktionen I ut ( t ) från tabelldata och den erforderliga mängden minne för att lagra tabellerna F ( t , S inp , C ut ).

C _1 inp r | f ( S inp , C out ),
C _2 inp r | f ( S inp , C out ),

där C _1 är en tabell med effektiva ingångskapacitansvärden beräknade för den första halvan av ingångssignalkanten, och C _2 är en tabell över kapacitansvärden beräknade för den andra halvan av insignalskanten. Om det effektiva värdet av ingångskapacitansen svagt beror på kapacitansen för utlasten (detta är fallet för flerstegskretsar), är en förenklad representation av ingångsmodellen tillåten, nämligen:

C _1 inp r | f ( S inp ),
C _2 inp r | f ( Sinp ) .

I detta fall är endimensionella tabeller C _1 och C _2 inte associerade med bågarna arc ij , utan med ingångarna till grinden.
Före karakterisering mäts utgångsströmmen som en funktion av tiden för den specificerade ingångsstigtiden och utgångskapacitansen. Spänningsvågformen rekonstrueras baserat på strömmarna och motsvarande kapacitanser. För kapacitanser och ingångskanter där strömmätningar inte har gjorts används interpolation.
Volymen av utdata för CCS-modellen överstiger avsevärt volymen av utdata för NLDM-modellen, dock är antalet simuleringar av den elektriska kretsen i båda fallen detsamma, medan noggrannheten för CCS-modellen är nära noggrannheten av den fullständiga elektriska simuleringen.

ECSM-modell

Cadence CAD använder en ventiltidsmodell som liknar CCS-modellen, ECSM (Effective Current Source Model). ECSM är en förlängning av Liberty-formatet som ger ett sätt att lagra data som är kompatibelt med det befintliga fördröjningsbeskrivningsformatet [13] .
ECSM är en fördröjningsberäkningsmetod som använder en strömbaserad källmodell och en sänkmodell med variabel kapacitans för att exakt beräkna grindfördröjning. Denna metod är mer effektiv för att ta hänsyn till transistorernas icke-linjära beteende under omkoppling och möjliggör mer exakt simulering av sammankopplingar. Medan CCS använder strömmönster uttryckligen, använder ECSM spänningsmönster som konverteras till strömmönster under fördröjningsberäkning:

V ut = G ( t , S inp , C ut ),

där V ut är spänningen vid ventilens utgång, S inp är varaktigheten av ingångssignalens front, C ut är belastningskapacitansen.
Kapacitetstabeller används också som ingångsmodeller, men utan att dela upp dem i två tabeller C _1 och C _2, som man gör i CCS. ECSM-mottagarmodellen är skriven enligt följande:

C inp r | f ( S inp , C out ).

Värdena för funktionen V out ( t ) lagras i endimensionella tabeller för intervallet [ t 0 , t 1 ], där punkterna t 0 och t 1 bestäms av villkoret V out ( t ) є [ 0+ ε , Vdd–ε ], ε = konst .
Genom att använda ett stressdiagram är snabbare och mer exakt karakterisering av biblioteksceller möjlig.
Teoretiskt sett är CCS- och ECSM-drivrutinmodellerna ekvivalenta, eftersom funktionerna I ut ( t ) och V ut ( t ) är relaterade av ekvationen: I ut ( t ) = C ut ·( dV ut ( t )/ dt ). I praktiken kan dessa modeller leda till något olika resultat, eftersom funktionerna I ut ( t ) och V ut ( t ) skiljer sig åt i sina definitionsområden. Dessutom är beräkningen av I ut ( t ) från ekvationen oundvikligen åtföljd av numeriska fel.

Aktuella trender i utvecklingen av karakteriseringsmetoder

Karakterisering av logiska element

För att bilda modeller av logiska element utförs multipel modellering av elektriska kretsar av logiska element med hjälp av lämpliga program (till exempel Hspice) - den så kallade karakteriseringen av logiska element. Som nämnts ovan, i moderna CAD-system (Synopsys, Cadence, Mentor Graphics), är den vanligaste modellen för att karakterisera bibliotekselement och SF-block den icke-linjära NLDM-fördröjningsmodellen i Liberty-formatet. För att erhålla beroenden av de funktionella parametrarna för logiska element på varaktigheten av fronterna för ingångssignalerna S inp och på värdet på belastningskapacitanserna C ut , måste simuleringen utföras för de givna uppsättningarna av dessa värden:

{ S inp k }, k є [1 : N S ],
{ C out l }, l є [1 : N C ],

där värdena för N S och N C vanligtvis inte överstiger 10-20. För att erhålla tabellvärden för dessa beroenden är det således nödvändigt att utföra N S · N C -simuleringscykler, det vill säga ungefär flera hundra beräkningar av logiska elementkretsar.
Med hänsyn till att modeller av logiska element måste bildas för olika värden på matningsspänning Vdd och temperatur T , ökar antalet simuleringscykler flera gånger mer. Det antas att i en simuleringscykel beräknas alla nödvändiga parametrar, det vill säga fördröjningar och höjningar för alla utgångar av logiska element från alla dess ingångar, kapacitansen för alla ingångar, strömförbrukning, etc. Uppgiften att karakterisera logiska element är således en mycket tidskrävande procedur som kräver betydande beräkningsresurser. Typiskt kräver karakteriseringen av alla bibliotekselement ungefär flera tiotals timmars processortid. Därför är problemet med att påskynda karakteriseringsprocessen aktuellt [14] [3] [4] .
Vanligtvis används kommersiella elektriska simuleringsprogram för karakterisering, som tillåter användaren att ändra kretsens parametrar genom att göra ändringar i dess beskrivning. Detta innebär att för att utföra simulering, till exempel med ett annat värde på S inp k , behöver du göra ändringar i beskrivningarna av ingångskällor, utföra översättning av den ändrade beskrivningen, förbehandla dataförberedelser för simulering och sedan endast elektriska simulering av kretsen. Om denna process för stora kretsar tar en relativt liten del av den totala simuleringstiden, överstiger den för logiska element simuleringskostnaderna. Dessutom kan inte alla parametrar som krävs för karakterisering erhållas direkt med standardprogram. Till exempel kan en parameter som ingångskapacitansen för gate C inp endast beräknas med hjälp av lämplig databearbetning från simuleringsresultatfilen. Därför innefattar karakteriseringsprocessen även arbete med resultatfiler, vilket också påverkar de totala kostnaderna.
Tidskostnaderna för karakterisering är så höga att det finns ett behov av att skapa accelererade karakteriseringsmetoder med bibehållen acceptabel noggrannhet [5] . Sådana metoder inkluderar:

Karakterisering av minneselement

En särskilt tidskrävande procedur är processen för karakterisering av minneselement, i synnerhet flip-flops. Poängen är inte bara att kretsarna för sådana element som regel är mycket mer komplicerade än kretsarna för logiska grindar, utan också att det för minneselement är nödvändigt att beräkna sådana specifika parametrar som förinställda och hålltider för informationssignaler - T -inställning och T -håll [9] [10] . Låt oss först förklara vad dessa parametrar betyder. Vippor av D-typ har informationsingång D och timingingång C. Förändringen i utgångstillståndet för ingången inträffar när fronten av klocksignalen appliceras på ingång C. Utlösningstillståndet för utlösaren bestäms av värdet på signalen vid informationsingången D (och utlösarens interna tillstånd). För att D-vippan ska fungera smidigt är det nödvändigt att ställa in det erforderliga logiska tillståndet vid informationsingången (mer exakt, den erforderliga spänningen) lite tidigare än att klockpulsens framsida kommer till ingång C , och den är nödvändigt för att bibehålla tillståndet för ingång D under en tid efter passagen av front C (fig. 3).

Summan T setup + T hold bestämmer faktiskt utlösarens begränsande hastighet, så det är viktigt att känna till de minsta möjliga värdena för denna summa och var och en av termerna. Minimivärdena beror starkt på varaktigheten av fronterna av pulserna D och C , och, i mycket mindre utsträckning, på belastningskapacitansen vid triggerutgången. Därför, när man karakteriserar minneselement, begränsar man sig därför till att konstruera tabeller { T setup ( SD k , S C l )}, { T hold ( SD k , SC l )} erhållna vid ett värde av lastkapacitet ( SDk , SCl är varaktigheterna för fronterna av signalerna D respektive C ) .
Det finns inga metoder för att direkt beräkna minimivärdena för T setup och T hold , så sökmetoder används för att bestämma dem [8] . För att beräkna T - uppställningen ställs först fram- och bakkanten av pulsen D in, uppenbarligen långt från ankomstögonblicket för klockpulsen Tc . Denna position av fronterna bör säkerställa korrekt funktion av avtryckaren och minsta fördröjning av utsignalen T del 0 . Positionen för den stigande flanken av signalen D på tidsaxeln betecknas som t_p och lagras. När positionen för bakkanten av signalen D förblir oförändrad, rör sig den främre kanten åt höger till punkten Tc med en viss mängd Δt . Om samtidigt triggern fungerar korrekt, så beräknas fördröjningen av utsignalen T del och jämförs med T del 0 . Vanligtvis, när kanten på signalen D närmar sig Tc , med början från ett visst ögonblick, sker en ökning av fördröjningen av utsignalen. Om denna ökning av fördröjningen överskrider någon gräns som ställts in av användaren (betecknad som t_f ), så anses denna position för D- kanten vara ogiltig. Om avtryckaren däremot inte fungerar korrekt med den nya positionen för front D , så lagras även denna position som t_f . Slutligen, om vippan fungerar korrekt vid den nya kantpositionen och den relativa fördröjningsökningen inte överstiger den specificerade nivån, så betecknas den resulterande stigande kantpositionen som t_p och processen upprepas igen. Som ett resultat kommer ett segment [ t_p , t_f ] att erhållas, på den vänstra änden av vilken utlösaren fungerar korrekt, och på den högra änden - felaktigt. Vidare delas det resulterande segmentet i hälften, framkanten av signalen D skiftas till den erhållna punkten. Vidare, enligt algoritmen ovan, markeras den mottagna positionen som t_p eller t_f . Således reduceras sökintervallet tills det drar ihop sig till en punkt. Denna punkt kommer att vara den beräknade (med en given noggrannhet) förinställd tid T -inställning av triggern. Hålltiden T hold beräknas på liknande sätt, för detta förskjuts bakkanten av signalen D åt vänster med en fast stigande flank. Tänk också på algoritmen för att uppskatta minimivärdet för summan T sh = T setup + T hold . Fronterna för signalen D sätts långt från punkten Tc , som i föregående algoritm, och referensfördröjningen Tdel0 beräknas . Med en fast position på framkanten av signalen D uppskattas värdet T hold 0 . Bakkanten av signalen D sätts till position T C + T håll 0 , och vid denna flankposition utvärderas värdet T setup 0 . Således erhålls den första approximationen Tsh 0 = T setup 0 + T hold 0 . Vidare skiftas bakkanten av signalen D åt höger till positionen T hold 1 = T hold 0 + Δt , och nya värden T setup 1 och Tsh 1 = T setup 1 + T hold 1 beräknas . Om det visar sig att T sh 1 > T sh 0 , så måste därför minimum T sh sökas vid positionen för bakkanten på segmentet [ T C + T hold 0 , T C + T hold 1 ] . Annars måste du öka Δt och upprepa beräkningarna tills villkoret T sh 1 > T sh 0 är uppfyllt . Nu när intervallet för att söka efter minimum T sh har lokaliserats, kan vilken endimensionell sökalgoritm som helst användas för att hitta den. I synnerhet kan metoden med kvadratisk interpolation användas . En anmärkning måste göras här. Det är inte ovanligt att D- signalens fram- och bakkant närmar sig så mycket att de överlappar varandra (den så kallade pulsklippningen), men triggern fungerar korrekt [17] . Vid bestämning av Tsh måste denna klippning begränsas för att inte förlora möjligheten att beräkna fördröjningen av utsignalen, det vill säga toppen av den klippta pulsen bör inte vara lägre än 0,5· Vdd . Notera också att denna begränsning strikt relaterar positionen för de stigande och fallande flankerna av signalen D till varandra , vilket gör lösningen av problemet med att bestämma minimum av summan T setup + T hold tvetydig .


Anteckningar

  1. Bhasker J., Chadha R. Statisk timinganalys för nanometerdesigner: ett praktiskt tillvägagångssätt. Springer Science & Business Media, 2009. 572 sid.
  2. A.L. Stempkovsky, S.V. Gavrilov, A.L. Glebov. Metoder för logisk och logisk-tidsanalys av digital CMOS VLSI // Russian Academy of Sciences, Institute for Design Problems in Microelectronics, red. ed. A. L. Stempkovsky. Moskva, 2007. 224 sid.
  3. Parameswaran H., Shrivastava S. Accelererad karakterisering av kretsar för processvariationer inom formen. USA-patent 8813006, 12/055505, 2014.
  4. Gavrilov SV, Gudkova ON, Egorov Yu.B. Metoder för accelererad karakterisering av VLSI-cellbibliotek med föreskriven noggrannhetskontroll // Russian Microelectronics. 2011 Vol. 40. Nej. 7.Pp. 476-482.
  5. Stempkovsky A.L., Gavrilov S.V., Glebov A.L. Metoder för att förbättra effektiviteten av VLSI-tidsanalys // Informationsteknik. 2006. Nr 12. S. 2-12.
  6. Gavrilov S.V., Glebov A.L., Solovyov R.A. Detektering av falska ledningsbanor i statisk tidsanalys baserat på logiska implikationer. Universitetens handlingar. Elektronik, 2006, nr. 6.
  7. Stempkovsky A., Glebov A., Gavrilov S. Beräkning av stresssannolikhet för NBTI-medveten timinganalys // Proceedings of the 10th International Symposium on Quality Electronic Design, ISQED. San Jose, CA, 2009. Sid. 714-718.
  8. 1 2 Glebov A., Gavrilov S., Soloviev R., Zolotov V., Becer MR, Oh C., Panda R. Fördröj minskning av bruspessimism genom logiska korrelationer // IEEE/ACM International Conference on Computer-Aided Design, Digest of Technical Papers, ICCAD, 2004. Pp. 160-167.
  9. E. Salman, A. Dasdan, F. Taraporevala, K. Kuc¸ och E. G. Friedman. Pessimismminskning i statisk timinganalys med hjälp av ömsesidigt beroende inställnings- och hålltider // Proceedings of the 7th International Symposium on Quality Electronic Design, 2006. Pp. 159-164.
  10. Gavrilov S., Soloviev R., Sundareswaran S., Rajendran P. Interdependent setup-hold karakterisering och timinganalys. Physical Design & DFM Conference, Austin, USA, 14-16 maj 2008.