Dynamisk logik (digital elektronik)

I integrerad kretsdesign är dynamisk logik (eller ibland klockad logik ) en designmetod i kombinationslogikkretsar , särskilt de som implementeras i metall-oxid-halvledarteknologi (MOS). Den särskiljs från den så kallade statiska logiken genom att utnyttja tillfällig lagring av information i strö- och grindkapacitanser . Det var populärt på 1970-talet och har nyligen sett en ny uppkomst i designen av höghastighets digital elektronik , särskilt centrala bearbetningsenheter ( CPU). Dynamiska logiska kretsar är vanligtvis snabbare än statiska motsvarigheter och kräver mindre yta, men är svårare att designa. Dynamisk logik har en högre genomsnittlig hastighet av spänningsövergångar än statisk logik, men de kapacitiva lasterna som övergår är mindre så den totala strömförbrukningen för dynamisk logik kan vara högre eller lägre beroende på olika avvägningar. När man hänvisar till en viss logikfamilj räcker det dynamiska adjektivet vanligtvis för att särskilja designmetoden, t.ex. dynamisk CMOS eller dynamisk SOI -design.

Förutom användningen av dynamisk tillståndslagring via spänningar på kapacitanser, skiljer sig dynamisk logik från så kallad statisk logik genom att dynamisk logik använder en klocksignal i sin implementering av kombinationslogik. Den vanliga användningen av en klocksignal är att synkronisera övergångar i sekventiella logiska kretsar. För de flesta implementeringar av kombinationslogik behövs inte ens en klocksignal. Den statiska/dynamiska terminologin som används för att referera till kombinatoriska kretsar är relaterad till användningen av samma adjektiv som används för att särskilja minnesenheter, t.ex. statiskt RAM från dynamiskt RAM , genom att dynamiskt RAM lagrar tillstånd dynamiskt som spänningar på kapacitanser, som regelbundet måste uppdateras . Men det finns också skillnader i användning; klockan kan stoppas i lämplig fas i ett system med dynamisk logik och statisk lagring.

Statisk kontra dynamisk logik

Den största skillnaden mellan statisk och dynamisk logik är att i dynamisk logik används en klocksignal för att utvärdera kombinationslogik . I de flesta typer av logikdesign, kallad statisk logik , finns det alltid någon mekanism för att driva utsignalen antingen hög eller låg. I många av de populära logikstilarna, såsom TTL och traditionell CMOS , kan denna princip omformuleras som ett uttalande om att det alltid finns en lågimpedans DC-väg mellan utgången och antingen matningsspänningen eller jord . Som en sidoanteckning finns det naturligtvis ett undantag i denna definition i fallet med högimpedansutgångar, såsom en tri-state buffert ; men även i dessa fall är kretsen avsedd att användas inom ett större system där någon mekanism kommer att driva utsignalen, och de kvalificerar sig inte som skilda från statisk logik.

Däremot, inom dynamisk logik , finns det inte alltid en mekanism som driver utgången högt eller lågt. I den vanligaste versionen av detta koncept drivs utsignalen högt eller lågt under distinkta delar av klockcykeln. Under tidsintervallen när utgången inte drivs aktivt, får den strökapacitans att hålla en nivå inom ett visst toleransintervall för den drivna nivån.

Dynamisk logik kräver en lägsta klockfrekvens som är tillräckligt snabb för att utgångstillståndet för varje dynamisk grind används eller uppdateras innan laddningen i utgångskapacitansen läcker ut tillräckligt för att få utgångens digitala tillstånd att ändras, under den del av klockcykeln som utgången drivs inte aktivt.

Statisk logik har ingen minsta klockfrekvens - klockan kan pausas på obestämd tid. Även om det kan tyckas att det inte är särskilt användbart att göra ingenting under långa perioder, leder det till tre fördelar:

  • att kunna pausa ett system när som helst gör felsökning och testning mycket enklare, vilket möjliggör tekniker som enstaka steg .
  • att kunna köra ett system med extremt låga klockfrekvenser gör att lågeffektelektronik kan köras längre på ett givet batteri.
  • ett helt statiskt system kan omedelbart återupptas precis där det slutade; en person behöver inte vänta på att systemet startar eller återupptas.

Att kunna pausa ett system när som helst under vilken tid som helst kan också användas för att synkronisera CPU:n till en asynkron händelse. Även om det finns andra mekanismer för att göra detta, såsom avbrott, avfrågningsslingor, processorns tomgångsingångsstift (till exempel RDY på 6502 ) eller processorbusscykelförlängningsmekanismer såsom WAIT-ingångar, använder hårdvara för att grinda klockan till en statisk -core CPU är enklare, är mer tidsmässigt exakt, använder inget programkodminne och använder nästan ingen ström i CPU:n medan den väntar. I en grundläggande design, för att börja vänta, skulle CPU:n skriva till ett register för att ställa in en binär spärrbit som skulle ANDed eller ORed med processorklockan, vilket stoppade processorn. En signal från en kringutrustning skulle återställa denna spärr och återuppta CPU-drift. Hårdvarulogiken måste grinda låsstyringångarna efter behov för att säkerställa att en låsutgångsövergång inte orsakar att klocksignalnivån omedelbart ändras och orsakar en klockpuls, antingen hög eller låg, som är kortare än normalt.

I synnerhet, även om många populära processorer använder dynamisk logik, [ citat behövs ] är endast statiska kärnor — processorer designade med helt statisk teknologi — användbara i rymdsatelliter på grund av deras högre strålningshårdhet . [ bättre källa behövs ]

När den är korrekt designad kan dynamisk logik vara dubbelt så snabb som statisk logik. Den använder endast de snabbare N-transistorerna , vilket förbättrar transistorstorleksoptimeringarna. Statisk logik är långsammare eftersom den har dubbelt så stor kapacitiv belastning , högre tröskelvärden och använder långsamma P-transistorer för logik. Dynamisk logik kan vara svårare att arbeta med, men det kan vara det enda valet när ökad bearbetningshastighet behövs. De flesta elektronik som körs på över 2 GHz nuförtiden [ när ? ] kräver dynamisk logik, även om vissa tillverkare som Intel har designat chips med helt statisk logik för att minska strömförbrukningen. Observera att en minskning av strömförbrukningen inte bara förlänger drifttiden med begränsade strömkällor som batterier eller solpaneler (som i rymdfarkoster), utan det minskar också kraven på termisk design, vilket minskar storleken på nödvändiga kylflänsar, fläktar etc., vilket i tur minskar systemets vikt och kostnad.

Generellt sett ökar dynamisk logik avsevärt antalet transistorer som växlar vid varje given tidpunkt, vilket ökar strömförbrukningen jämfört med statisk CMOS. Det finns flera energispartekniker som kan implementeras i ett dynamiskt logikbaserat system. Dessutom kan varje skena förmedla ett godtyckligt antal bitar, och det finns inga strömslösande fel. Energibesparande klockstyrning och asynkrona tekniker är mycket mer naturliga inom dynamisk logik.

Exempel på statisk logik

Som ett exempel, betrakta den statiska logiska implementeringen av en CMOS NAND-grind:

CMOS NAND.svg

Denna krets implementerar den logiska funktionen

Om A och B båda är höga, kommer utgången att dras lågt. Om antingen A eller B är låga, kommer utgången att dras högt. Utgången dras alltid lågt eller högt.

Dynamisk logik exempel

Betrakta nu en dynamisk logisk implementering av samma logikfunktion:

Dlnand.svg

Den dynamiska logiska kretsen kräver två faser. Den första fasen, när klockan är låg, kallas inställningsfasen eller förladdningsfasen , och den andra fasen, när klockan är hög, kallas utvärderingsfasen . I inställningsfasen drivs utgången högt ovillkorligt (oavsett värdena på ingångarna A och B ). Kondensatorn , som representerar belastningskapacitansen för denna grind, laddas. Eftersom transistorn i botten är avstängd är det omöjligt för utgången att drivas lågt under denna fas.

Under utvärderingsfasen är klockan hög . Om A och B också är höga kommer utgången att dras lågt. Annars förblir utgången hög (på grund av belastningskapacitansen).

Dynamisk logik har några potentiella problem som statisk logik inte har. Till exempel, om klockhastigheten är för låg kommer utsignalen att avta för snabbt för att vara till nytta. Dessutom är utgången endast giltig för en del av varje klockcykel, så enheten som är ansluten till den måste sampla den synkront när den är giltig.

Dessutom, när både A och B är höga, så att utgången är låg, kommer kretsen att pumpa en kondensatorladdning från Vdd till jord för varje klockcykel, genom att först ladda och sedan ladda ur kondensatorn i varje klockcykel. Detta gör kretsen (med dess utgång ansluten till en hög impedans) mindre effektiv än den statiska versionen (som teoretiskt sett inte borde tillåta någon ström att flyta utom genom utgången), och när A- och B-ingångarna är konstanta och båda höga , dynamisk NAND-grind använder ström i proportion till klockfrekvensen , så länge den fungerar korrekt. Effektförlusten kan minimeras genom att hålla belastningskapacitansen låg. Detta minskar i sin tur den maximala cykeltiden, vilket kräver en högre minsta klockfrekvens; den högre frekvensen ökar då strömförbrukningen med det nämnda förhållandet. Därför är det omöjligt att minska tomgångsströmförbrukningen (när båda ingångarna är höga) under en viss gräns som härrör från en jämvikt mellan klockhastighet och belastningskapacitans.

En populär implementering är dominologik .

Se även

Allmänna referenser

  •   Sung-Mo Kang; Yusuf Leblebici (2003). CMOS digitala integrerade kretsar: analys och design (3:e upplagan). McGraw-Hill. ISBN 978-0-07-246053-7 . Kapitel 9, "Dynamiska logiska kretsar" (kapitel 7 i 2:a upplagan)
  •   R. Jacob Baker (2010). CMOS: Kretsdesign, layout och simulering (3:e upplagan). Wiley-IEEE. ISBN 978-0-470-88132-3 . Kapitel 14, "Dynamiska logiska grindar"
  •   Andrew Marshall; Sreedhar Natarajan (2002). SOI-design: analog, minne och digital teknik . Springer. ISBN 978-0-7923-7640-8 . Kapitel 7, "Dynamisk SOI-design"

externa länkar