Logikfamilien (4.2 MB)
Logikfamilien (4.2 MB)
Logikfamilien (4.2 MB)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
VLSI Design: <strong>Logikfamilien</strong><br />
<strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 1
� CMOS<br />
� Buffer<br />
� Pass Gate Logik<br />
� P-Last / Pseudo-NMOS<br />
� DCVS<br />
� Differentielle Logik CML<br />
� Dynamische Logik<br />
� ECL, TTL<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Übersicht<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 2
CMOS<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 3
CMOS = Complementary MOS<br />
� Die Einsen am Ausgang werden durch ein 'pullup' Netzwerk von Transistoren erzeugt, die Nullen durch<br />
ein 'pulldown' Netzwerk.<br />
� Pullup und Pulldown sind DUALE Netzwerke, sie enthalten je N PMOS / NMOS Transistoren.<br />
� Ein CMOS Gatter mit N Eingängen hat 2N Transistoren<br />
� CMOS ist sehr robust und daher die meistbenutzte Logikfamilie<br />
I 1<br />
I I2 I N<br />
I 1<br />
I 2<br />
I N<br />
PMOS<br />
Pullup<br />
Netz<br />
NMOS<br />
Pulldown<br />
Netz<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD<br />
GND<br />
Q<br />
Vorteile von CMOS:<br />
� volle Pegel (unabhängig von Versorgungsspannung,<br />
Parametervariationen und Transistorgrößen)<br />
�� daher i.d.R. hoher Störabstand<br />
� kein DC Stromverbrauch<br />
� Robust (Gatter funktionieren (logisch) immer, egal, wie<br />
die Transistoren dimensioniert sind)<br />
� Migration zu neuen Technologien einfach<br />
Nachteile:<br />
� nicht die schnellste Logikfamilie<br />
� für einige Schaltungen ungünstig (z.B. MUX)<br />
� Layouts oft nicht sehr kompakt<br />
� hohe Strom-Transienten während des Schaltens (Querstrom!)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 4
V GS<br />
VDD<br />
S<br />
D<br />
Warum PMOS für pullup ?<br />
� PMOS als Pullup ist ok: � NMOS als Pullup geht nicht:<br />
V DD<br />
0<br />
VGS ist unabhängig von der Ausgangsspannung<br />
⇒ der PMOS bleibt abgeschaltet<br />
� Entsprechend ist ein PMOS als Pulldown ungeeignet.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD<br />
V GS<br />
VDD<br />
D<br />
S<br />
NMOS:<br />
Schlechte '1'<br />
V DD<br />
V DD-V TN<br />
V GS sinkt mit steigender Ausgangsspannung<br />
⇒ der NMOS schaltet ab !<br />
Die Ausgangsspannung steigt nur bis V DD-V TN.<br />
Durch Substrateffekt sogar noch weniger !<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 5<br />
0
Konstruktion des pulldown - Teils<br />
� Serielle NMOS implementieren die NAND Funktion<br />
�� Parallele NMOS implementieren die NOR Funktion<br />
A<br />
B<br />
A B<br />
A • B<br />
A + B<br />
� Damit lassen sich alle Funktionen der Form Y = NOT (a + ab + cde + ...) darstellen<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 6
� Schaltbild zur Simulation der nachfolgenden Seiten:<br />
VLSI Design: <strong>Logikfamilien</strong><br />
PARAMETERS:<br />
Voff = 1<br />
{Voff}<br />
in<br />
V1<br />
Der CMOS Inverter<br />
MP<br />
MN<br />
0<br />
I<br />
I<br />
Vout<br />
3V<br />
V2<br />
3V<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 7
CMOS Inverter Transferkennlinie<br />
� Entstehung der Transferkennlinie:<br />
- Für jede Eingangsspannung werden die Ausgangskennlinien des NMOS und des PMOS gezeichnet.<br />
- Der Ausgang nimmt die Spannung am Schnittpunkt an (I D,N = I D,P).<br />
� Simulation mit VDD=3V, (W/L) N = (W/L) P = 0.8µm/0.25µm, V in = 0..3V in Schritten von 0.5V<br />
V in = 0.0V<br />
V in = 0.5V<br />
V in = 1.0V<br />
V in = 1.5V<br />
V in = 2.0V<br />
V in = 2.5V 3.0V<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V in = 3.0V<br />
V in = 2.5V<br />
V in = 2.0V<br />
V in = 1.5V<br />
V in = 1.0V<br />
V in = 0.0V 0.5V<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 8
CMOS Inverter Transferkennlinie<br />
� Details in der Schaltregion: Eingang 1.0V...2.0V in Schritten von 0.2 V<br />
1.8V<br />
2.0V<br />
1.6V<br />
VLSI Design: <strong>Logikfamilien</strong><br />
1.4V<br />
Schwelle<br />
~ 1.3V<br />
1.2V<br />
1.0V<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 9
VLSI Design: <strong>Logikfamilien</strong><br />
Test: Transfer Charakteristik (DC sweep)<br />
W P = 0.8µm,<br />
Schwelle<br />
~ 1.3V wie<br />
vorher W P = 1.6µm<br />
W P = 2.4µm<br />
W N = 0.8µm<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 10
� Für den NMOS ist V GS = V in, V DS = V out.<br />
Bereiche in der Transferkennlinie<br />
� Daher muß in Sättigung V out > V in – V TN sein.<br />
VDD<br />
V out<br />
NMOS off<br />
V TN<br />
V in<br />
VLSI Design: <strong>Logikfamilien</strong><br />
NMOS sat.<br />
NMOS lin.<br />
V out<br />
VDD<br />
V in<br />
� Für den PMOS ist V GS = VDD-V in, V DS = VDD-V out.<br />
� Das NMOS Diagramm ist daher um 180 0 gedreht.<br />
VDD<br />
V out<br />
V in<br />
PMOS lin.<br />
PMOS sat.<br />
S<br />
V out<br />
PMOS off<br />
VDD-|V TP| VDD<br />
V in<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 11
Bereiche in der Transferkennlinie<br />
NMOS off<br />
PMOS lin<br />
V IL<br />
� Die Schwellen sind etwa da, wo Steigungen = -1 sind.<br />
NMOS sat<br />
PMOS lin<br />
NMOS sat<br />
PMOS sat<br />
NMOS lin<br />
PMOS sat<br />
NMOS lin<br />
PMOS off<br />
� Beachte: Dies gilt für einen 'statischen' DC-Sweep. Beim dynamischen Schalten sind die Transistoren<br />
schneller im linearen Bereich, weil die Gatespannung dann VDD bzw. 0 ist.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V T<br />
V IH<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 12
Transientenanalyse<br />
� Simulation eines Inverters (Modelle 'nmos_simple' und 'pmos_simple' mit V T je 1V) mit 100fF Last.<br />
� V dsat = V GS – V T = 3V – 1V = 2V<br />
NMOS kommt etwa hier in<br />
den linearen Bereich. Die<br />
Entladung ist daher nicht<br />
mehr linear, sondern eher<br />
exponentiell (RC)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 13
Berechnung der Schwelle<br />
� Unter Vernachlässigung des Ausgangswiderstands kann man die Schwellenspannung V M abschätzen:<br />
Es muß gelten: I NMOS<br />
= I PMOS<br />
K N (W/L) N (V M-V TN) 2 = K P (W/L) P (VDD-V M-|V TP|) 2 (beide MOS in Sättigung!)<br />
r(<br />
VDD − VTP<br />
) + VTN<br />
βP<br />
VM = mit r = βN<br />
1 + r<br />
�� Für V VTN = |V |VTP| | wird die Forderung V VM= = VDD/2 durch r=1 erfüllt, d.h.<br />
K N (W/L) N = K P (W/L) P<br />
mit<br />
� Da normalerweise K N = 2...3 K P folgt für eine Schwelle auf halber Versorgung:<br />
(W/L) P = 2...3 x (W/L) N<br />
� In DSM hängt der Drainstrom nicht mehr quadratisch, sondern fast linear von der Gatespannung ab.<br />
Am Ergebnis ändert das nichts!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
β<br />
=<br />
K<br />
W<br />
L<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 14
Sensitivität der Schwelle<br />
� Trägt man die (vereinfachende) Formel auf, so findet man (VDD=3.0V, V TN=|V TP| =0.5V)<br />
Schwelle [V]<br />
3,0<br />
2,5<br />
2,0<br />
1,5<br />
1,0<br />
0,5<br />
0,0<br />
0 1 2 3 4 5<br />
β /β<br />
p n<br />
� Die Schwelle hängt recht unkritisch von k ab.<br />
� Wichtigeres Kriterium für k sind Anstiegs- und Abfallzeiten.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 15
Verzögerung = Durchlaufzeit<br />
� Durch den verlangsamten Signalanstieg am Ausgang schalten nachfolgende Stufen etwas verzögert:<br />
idealer<br />
buffer<br />
T PHL<br />
� Merke: - Durch Lastkapazitäten kommt es bei jedem Gatter zu Verzögerungen<br />
- Die Verzögerung steigt mit steigender kapazitiver Belastung des Ausgangs ('Fan-Out')<br />
- Fallende (T PHL) und steigende (T PLH) Flanke haben i.a. NICHT gleiche Verzögerung<br />
(sie werden durch unterschiedliche Transistoren gemacht!)<br />
- Die Verzögerungen und deren Lastabhängigkeiten müssen bei der Simulation genau<br />
berücksichtigt werden, denn sie limitieren letztlich die Geschwindigkeit einer Schaltung<br />
VLSI Design: <strong>Logikfamilien</strong><br />
T PLH<br />
'PLH': Propagation Low-High<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 16
� Hiermit ist meist Durchlaufzeit gemeint.<br />
Geschwindigkeit<br />
� Durchlaufzeit (t PLH, t PHL) entsteht durch die endliche Anstiegszeit des Ausgangssignals.<br />
� Wird durch eine Last die Anstiegszeit langsamer, so wird effektiv die Durchlaufzeit länger.<br />
Geschwindigkeit wird bestimmt durch:<br />
� Die Kapazität, die umgeladen werden muß. Die wichtigsten sind<br />
- Drain-Gate Überlapp (Drain-Bulk und Drain-Gate sind klein, da MOS meist in Sättigung oder aus)<br />
- Drain-Dioden Sperrschichtkapazitäten<br />
- Leitungskapazitäten<br />
- Eingangskapazität der nächsten Stufe (Gate-Kapazitäten)<br />
�� Die Transistorparameter: K, die Schwelle und das W/L der Transistoren<br />
� Die Versorgungsspannung (Höhere Versorgung ⇒ mehr Strom, aber auch höherer Hub)<br />
� Die Anstiegszeit des Eingangssignals<br />
Faustregel:<br />
� Wenn die Lastkapazitäten dominieren (Leitungen und C in der nächsten Stufen, also z.B. bei hohem<br />
Fan-Out) braucht man große Transistoren ('Treiber', 'buffer')<br />
� Ist die Last klein, so genügen kleine Transistoren<br />
Merke: Minimale Gate Verzögerung für 0.25µm-0.35µm Technologien ist etwa 50-100 ps<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 17
Geschwindigkeit<br />
� Näherungsweise Berechnung:<br />
- Lastkapazität wird konstant angenommen (Real: Diodenkapazitäten sind spannungsabhängig)<br />
- Als Entladestrom wird der Sättigungsstrom genommen (Real: Strom nimmt ab, wenn MOS aus Sättigung kommt)<br />
- Quadratisches Modell wird angenommen (nicht mehr gültig in DSM. Transistoren liefern dort weniger Strom)<br />
- Ausgangswiderstand wird vernachlässigt (das ist hier ein kleiner Fehler)<br />
� I = (K/2)(W/L) (VDD-V TN) 2<br />
� Linearer Abfall: ∆U / ∆t = I / C L.<br />
� ∆U = VDD /2<br />
� t pHL = C L x ∆U / I =<br />
C L VDD<br />
K (W/L) (VDD-VTN) 2<br />
K (W/L) (VDD-VTN) � Für V TN « VDD, also VDD-V TN ~ VDD:<br />
� t pHL ~<br />
C L<br />
K (W/L) VDD<br />
� Und entsprechend für die Anstiegszeit (mit dem PMOS)<br />
� Für gleiche Anstiegs- und Abfallzeiten muß k N = k P sein<br />
� Die Erhöhung von K (via W bei minimalem L) erhöht auch die Diffusions- und Überlappkapazität. C/K wird<br />
dann konstant. Das setzt ein unteres Limit für die Verzögerung<br />
V OUT<br />
� Erhöhung der Versorgungsspannung hilft, kostet aber viel Leistung (s.u.)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
t pHL<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 18<br />
t
� PSPICE mit nmos25, pmos25.<br />
� Externe Last von C L = 100fF ... 400 fF<br />
Transientensimulation<br />
� Man erkennt den linearen Anstieg der Verzögerung mit der Lastkapazität<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 19
Delay vs. VDD für DSM und 'grobe' Technologie<br />
� Vergleich MOS_simple / MOS_025<br />
für verschiedene<br />
Versorgungs-Spannungen<br />
� In DSM steigt der Drainstrom<br />
NICHT mehr quadratisch mit der<br />
Gatespannung (velocity<br />
saturation, mobility degradation)<br />
� Die Verbesserung in der<br />
Durchlaufzeit sollte daher<br />
geringer sein<br />
� Dies sieht man auch in der<br />
abgebildeten Simulation mit<br />
PSPICE<br />
VLSI Design: <strong>Logikfamilien</strong><br />
NMOS _simple<br />
(quadrat. Gesetz,<br />
Schwelle = 1V) NMOS25<br />
(Schwelle ~ 0.5V)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 20
� Aus Rabey, 1.2µm Technologie, 5V Versorgung:<br />
PMOS<br />
PMOS<br />
PMOS<br />
Abschätzung der Kapazitäten<br />
� Der Miller-Effekt ist hier vernachlässigt (s. nächste Seite)<br />
Überlapp<br />
Dioden<br />
Gates<br />
C[fF]<br />
1.6<br />
4.7<br />
3.5<br />
5.9<br />
3.8<br />
11.4<br />
� Diese grobe Analyse zeigt:<br />
- Kapazitäten des Treibers und des angeschlossenen Inverters sind vergleichbar<br />
- Der PMOS trägt viel zur Kapazität bei ⇒ ein kleinerer PMOS gibt eine kleinere mittlere Verzögerung (Mittelwert aus t PHL<br />
und t PLH). Man nimmt daher u.U. die leichte Reduktion im Störabstand und die Asymmetrie in t r und t f in Kauf<br />
- Bei kurzen Leitungen tragen diese wenig bei.<br />
� In DSM werden die MOS-Kapazitäten kleiner, die der Leitungen sinken relativ wenig ⇒ Die korrekte<br />
Abschätzung (Extraktion) der Leitungskapazitäten wird wichtiger!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Leitung<br />
2<br />
32.7<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 21
Miller Effekt<br />
� Eine Kapazität zwischen Ausgang und Eingang (C GD) trägt doppelt bei, da die beiden Kondensatorplatten<br />
ihre Potentiale in die entgegengesetzte Richtung ändern.<br />
� Dem Gate muß man die Ladung 2 x VDD x C GD zuführen<br />
� In der folgenden Simulation sieht man, was während des Übergangs passiert (ein Serienwiderstand<br />
reduziert die Impedanz der Signalquelle, um den Effekt besser sichtbar zu machen):<br />
� Der Miller-Effekt muß besonders bei<br />
analogen Schaltungen beachtet werden.<br />
V1 = 0<br />
V2 = 5<br />
TD = 0<br />
TR = 100p<br />
TF = 100p<br />
PW = 4n<br />
PER = 20n<br />
PARAMETERS:<br />
Cload = 100f<br />
vin<br />
V1<br />
R1<br />
10k<br />
V<br />
C1 {Cload}<br />
vgate<br />
VLSI Design: <strong>Logikfamilien</strong><br />
M2<br />
V<br />
M1<br />
0<br />
Simple<br />
out<br />
V<br />
Simple<br />
V2<br />
5V<br />
Gates<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 22
Einfluß der Anstiegszeit des Eingangssignals<br />
� Die Abschätzung und Simulationen wurden mit 'schnellen' Eingangssignalen gemacht.<br />
� Die MOS schalten dadurch sofort (bei t=0) ganz durch. In Wirklichkeit ist das Eingangssignal etwa so<br />
langsam wie das Ausgangssignal. Das führt zu einer weiteren Verzögerung.<br />
� Bei der genauen Charakterisierung von Zellen muß also ein realistisches Eingangssignal benutzt werden.<br />
Das ist z.B. in Verilog schwer zu modellieren!!<br />
� In guter Näherung findet man:<br />
VLSI Design: <strong>Logikfamilien</strong><br />
t p,real<br />
t p,Stufe<br />
2<br />
tp , real = t p,<br />
Stufe + ( tr<br />
/ 2)<br />
2<br />
t r<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 23
Leistungsverbrauch (1)<br />
� Ist bei Hochleistungs-ICs eines der dominierenden Probleme<br />
� Setzt sich aus mehreren Anteilen zusammen:<br />
1. Dynamischer Anteil zum Auf- und Entladen von Last- und parasitären Kapazitäten<br />
Die Ladung auf der Lastkapazität C List Q = VDD x C L. Mittlerer Strom bei Frequenz f: I = f x Q.<br />
Die mittlere Leistung ist daher<br />
P = I x VDD = f x VDD 2 x C l<br />
Während des Ladens wird ½ x C x VDD 2 im PMOS dissipiert, beim Entladen der Rest im NMOS.<br />
Dieser Anteil hängt nicht von den Transistoreigenschaften ab.<br />
⇒ Lastkapazität reduzieren<br />
⇒ Versorgungsspannung reduzieren<br />
⇒ Betriebsfrequenz reduzieren<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Leistung<br />
[W]<br />
Angabe im Datenblatt<br />
z.B. in µW / MHz<br />
VDD = 3V<br />
VDD = 2V<br />
Frequenz<br />
[Hz]<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 24
Leistungsverbrauch (2)<br />
2. Dynamischer Kurzschlußstrom zwischen VDD und Masse während des Schaltens<br />
Man findet (mit β = β N= β P und V T = V TN = V TP)<br />
P = (β/12)(VDD-2V T) 3 (τ/T)<br />
mit τ = Anstiegszeit, T = Periode<br />
⇒ Anstiegszeiten der Signale müssen kurz sein. (Selbst für Signale mit niedriger Frequenz!)<br />
2. Leckströme der Drain- und Sourcedioden. Hängt von deren Größe ab. P = VDD x I leak<br />
3. Leckstrom durch den Kanal (Subthreshold-Leakage, besonders bei niedrigen V T in DSM Prozessen)<br />
� Der Leistungsverbrauch eines Chips kann auch durch das Schaltungsdesign reduziert werden:<br />
- Weniger, optimierte Logik<br />
- Anzahl der Flanken (Pegelwechsel) reduzieren (Gray Code Zähler statt Binärzähler etc.)<br />
- Unbenutzte Teile abschalten<br />
- Parallelisieren, ...<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 25
� β= K x W/L muß maximiert werden, daher L = L min<br />
Wahl der Transistorgrößen<br />
� Für die Wahl des Verhältnisses von β p/β n gibt es verschiedene Kriterien:<br />
- Maximaler Störabstand, also V T = VDD/2 ⇒ β p = β n<br />
- gleiche Anstiegs- und Abfallzeiten ⇒ β p = β n<br />
- Minimale mittlere Verzögerung ⇒ β p < β n (Kapazität durch PMOS kleiner halten!)<br />
� Zusammen mit den Technologiekonstanten K N und K P legt man so W P/W N fest<br />
� Der Absolutwert von W N hängt von der zu treibenden Last ab.<br />
Je größer die Last, desto größer sollten die Ws sein.<br />
Damit steigt aber auch die Eingangskapazität.<br />
� Bei sehr großen Lasten sollte man daher lieber 'minimale' Inverter/Gatter benutzen und Buffer einfügen<br />
(s. später)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 26
A<br />
B<br />
CMOS NAND / NOR<br />
NAND2 A B F<br />
NOR2<br />
0 0 1<br />
F<br />
A B<br />
A<br />
B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
0 1 1<br />
1 0 1<br />
1 1 0<br />
A • B<br />
A<br />
B<br />
B<br />
A<br />
F<br />
A B<br />
A B F<br />
0 0 1<br />
0 1 0<br />
1 0 0<br />
1 1 0<br />
A + B<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 27
VLSI Design: <strong>Logikfamilien</strong><br />
Layouts von NAND und NOR<br />
Bei diesem speziellen Layout wurden<br />
'ringförmige' Transistoren benutzt (um<br />
Leckströme bei Bestrahlung der Chips zu<br />
vermeiden)<br />
In diesem Fall ist das NOR2 Gatter<br />
wesentlich kleiner als das NAND2 Gatter !<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 28
a<br />
b<br />
c<br />
a b c<br />
a<br />
b<br />
f<br />
komplexere Gatter<br />
a • b • c<br />
� Merke: Mehr als ~ 5 Eingänge sind ungebräuchlich (zu viele MOS in Serie)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
c<br />
NAND3<br />
b<br />
c<br />
a<br />
b f<br />
c<br />
a<br />
a<br />
b c<br />
'OR2NAND1' = ON21 (in AMS)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 29<br />
f
Weitere gemischte Gatter<br />
� Entsprechend kann man in CMOS direkt implementieren:<br />
etc.<br />
� Diese direkt implementierten Gatter benötigen bei N Eingängen 2N Transistoren (N x NMOS, N x PMOS)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 30
Stick Diagramm<br />
� Um die Topologie eines Layouts dazustellen zeichnet man 'Stick-Diagramme' mit vereinfachten FETs:<br />
� Was ist z.B. das hier ?<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD<br />
GND<br />
Gates<br />
in1 in2<br />
out<br />
GND<br />
PMOS-Bereich<br />
NMOS-Bereich<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 31
NOR2<br />
NAND2<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Gatter Schaltung und Layout<br />
Drain gemeinsam<br />
genutzt<br />
Kontakt nicht nötig ⇒ Gates können<br />
zusammengeschoben werden<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 32
a<br />
b<br />
c<br />
Zwei unterschiedliche Stick Layouts<br />
a b<br />
c<br />
a<br />
VLSI Design: <strong>Logikfamilien</strong><br />
b f<br />
c<br />
f<br />
a b c<br />
a c b<br />
Diffusion hat<br />
Unterbrechung<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 33<br />
f<br />
f
Wie findet man eine 'gute' Transistorreihenfolge ?<br />
� Eine 'gute' Transistorreihenfolge ergibt eine ununterbrochene Diffusion (kompaktes Layout)<br />
� Man sucht dazu eine Transistorreihenfolge, so daß die (Euler-) Pfade durch die NMOS und PMOS alle<br />
MOS erreichen.<br />
� Versorgungsspannung und Masse bilden jeweils einen Knoten<br />
� Gibt es 'kritische' Knoten, an denen eine ungerade Anzahl Netze zusammenläuft, muß man dort<br />
anfangen/ aufhören<br />
� Bei mehr als 2 Knoten mit ungerader Anzahl von Netzen gibt es keine Lösung. Die Diffusion muß dann<br />
unterbrochen werden.<br />
� Bei mehreren Lösungen wählt man z.B. so aus, daß Signale 'innen' liegen, Versorgungen 'außen'<br />
VLSI Design: <strong>Logikfamilien</strong><br />
kritische Knoten<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 34
a<br />
b<br />
a<br />
c<br />
c<br />
a<br />
VLSI Design: <strong>Logikfamilien</strong><br />
b<br />
kritische<br />
Knoten<br />
b f<br />
c<br />
f<br />
Beispiel 1<br />
f<br />
c b a<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 35
d<br />
a<br />
b<br />
a<br />
VLSI Design: <strong>Logikfamilien</strong><br />
e<br />
Y = a(d+e)+bc<br />
d<br />
e<br />
c<br />
f<br />
b<br />
c<br />
c⇒b⇒a⇒d⇒e<br />
Beispiel 2<br />
e d a b c<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 37<br />
f
Transistorgrößen in MOS Gattern<br />
� Betrachte z.B. NOR Funktion mit 3 Eingängen:<br />
� Die Serienschaltung der PMOS hat bei 3 identischen W/L<br />
die effektive Größe W/L Σ = 1/3 W/L.<br />
� Die Anstiegszeit wird daher 3 x langsamer als im Inverter.<br />
� Lösung (L ist bereits minimal):<br />
W der PMOS wird 3x größer gemacht als im Inverter<br />
(hier wären die PMOS also (2-3) x 3 = 8x größer als die<br />
NMOS...)<br />
� Dies führt jedoch zu sehr großen Eingangskapazitäten,<br />
insbesondere bei PMOS und bei Gattern mit vielen 'gestapelten'<br />
Transistoren.<br />
� Mehr als 3 gestapelte PMOS Transistoren werden daher kaum<br />
benutzt.<br />
� NAND Logik ist hier vorteilhaft, weil die PMOS dort parallel sind<br />
und die Größe nicht erhöht werden muß.<br />
('etwa 75% aller Logik benutzt NANDs' - laut 'design of high<br />
performance microprocessor circuits', IEEE Press)<br />
� Ein NAND mit 3 Eingängen hat also etwa gleich große NMOS<br />
und PMOS Transistoren.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
a<br />
b<br />
c<br />
a<br />
W/L<br />
W/L<br />
W/L<br />
b c<br />
W/3L = 1/3 W/L<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 38<br />
f
� Gleiche 'Pulldown'-Stärke (K P=2K N):<br />
Layoutvergleich: nor3 vs. nand3<br />
� (Wannen der PMOS u. Substratkontakte nicht gezeigt!)<br />
2 W 0<br />
3 W 0<br />
VLSI Design: <strong>Logikfamilien</strong><br />
nand3<br />
Evtl. R diff zu<br />
hoch !<br />
bent gate<br />
Kleinere<br />
Diffusion bringt<br />
hier nichts<br />
Redundanz<br />
(Yield,<br />
Widerstand)<br />
Diffusion<br />
sparen<br />
(Kapazität)<br />
nor3<br />
6 W 0<br />
W 0<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 39
Ideale Transistorgröße in komplexeren Gattern<br />
� Beispiel für relatives W/L eines komplexen Gatters für symmetrisches Schalten bzw. Schwelle = VDD/2<br />
bei K N=3K P:<br />
b<br />
a<br />
a<br />
d<br />
6<br />
6<br />
12<br />
12<br />
b<br />
c<br />
W/L = 3<br />
W/L = 1<br />
� Aber: In der Realität (Standardzellbibliotheken) wird dies oft nicht befolgt (gäbe sehr unschöne Layouts).<br />
� Wenn mehrere Eingänge gleichzeitig schalten, stimmt W/L nicht mehr!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
2<br />
2<br />
2<br />
c<br />
1<br />
f<br />
d<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 40
Kapazitäten der internen Knoten<br />
� Betrachte z.B. NAND Funktion mit 4 Eingängen:<br />
� Die Knoten zwischen den NMOS Transistoren haben<br />
parasitäre Kapazitäten (Dioden)<br />
� Die unteren Transistoren müssen daher höhere<br />
Kapazitäten umladen als die oberen: Die Verzögerung ist<br />
länger<br />
(Dieser Fall gilt, wenn die Lastkapazität klein oder<br />
vergleichbar zu den internen Kapazitäten ist.)<br />
Lösungen:<br />
� Zeitkritische Signale nahe am Ausgang anschließen<br />
� Transistoren 'unten' breiter machen, um den<br />
Durchgangswiderstand zu erniedrigen und die RC-Zeit zu<br />
reduzieren<br />
(Diese 'tapered layouts' werden jedoch kaum mehr<br />
benutzt, da die Layouts sehr unsystematisch werden!)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Hier muss der Poly-Active Abstand<br />
eingehalten werden, daher ist der<br />
Poly-Pitch auf dem Gate nicht<br />
minimal und die Diffusions-<br />
Kapazitäten sind unnötig hoch.<br />
Tapering bringt also nicht viel!<br />
0⇒1 A4 1<br />
A1 A2<br />
A3<br />
1<br />
A2<br />
1<br />
0⇒11<br />
A1<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 41
t p im NAND als Funktion des Fan-In<br />
� Der Serienwiderstand der NMOS führt zusammen mit den Kapazitäten der Zwischenknoten zu einem<br />
quadratischen Ansteigen der Abfallzeit und damit der Verzögerung t pHL<br />
� Gates mit hohem Fan-In (>3-4) vermeiden!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
tp (nssec)<br />
4.0<br />
3.0<br />
2.0<br />
1.0<br />
quadratic<br />
linear<br />
t pHL<br />
0.0<br />
1 3 5<br />
fan-in<br />
7 9<br />
t p<br />
t pLH<br />
AVOID LARGE FAN-IN GATES! (Typically not more than FI < 4)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 42
XOR<br />
� XOR / XNOR sind wichtige Funktionen (Vergleicher, Zähler, Parität)<br />
A<br />
B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
4 MOS<br />
6 MOS<br />
10 Transistoren<br />
A B A ⊕ B<br />
0 0 0<br />
0 1 1<br />
1 0 1<br />
1 1 0<br />
A⊕B<br />
A<br />
B<br />
je 2 MOS<br />
8 MOS<br />
12 Transistoren<br />
A⊕B<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 43
A<br />
B<br />
A<br />
B<br />
A B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
CMOS XOR Layout: 10 MOS<br />
A⊕B<br />
A B<br />
f<br />
B<br />
A<br />
4 kritische Punkte.<br />
Keine durchgehende Diffusion<br />
bei PMOS möglich !<br />
B A<br />
f<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 44
A<br />
B<br />
CMOS XOR Layout: 12 MOS<br />
A⊕B<br />
A B B<br />
A<br />
A<br />
A<br />
B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
B<br />
A<br />
B<br />
A<br />
B<br />
f<br />
A<br />
B<br />
A f B<br />
Die NMOS Transistoren lassen sich nicht<br />
(?) in der gleichen Reihenfolge anordnen<br />
Diese Verbindung kann man<br />
weglassen, ohne die Funktion zu<br />
beeinträchtigen. (Weil A, !A und<br />
B, !B immer komplementär sind!)<br />
Das hintere Gatter ist dann kein<br />
'echtes' CMOS mehr!<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 45
Volladdierer<br />
� Der Carry-Pfad muß optimiert werden, da das Carry durch viele Stufen 'rippeln' muß<br />
C in A B C out S !C out<br />
0 0 0 0 0 1<br />
0 0 1 0 1 1<br />
0 1 0 0 1 1<br />
0 1 1 1 0 0<br />
1 0 0 0 1 1<br />
1 0 1 1 0 0<br />
1 1 0 1 0 0<br />
1 1 1 1 1 0<br />
C out = AB + BC in + AC in<br />
S = ABC in + !C out • (A + B + C in)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A 0<br />
B 0<br />
A 1<br />
B 1<br />
Cin<br />
Cout<br />
Cout<br />
S 0<br />
S 1<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 46
Volladdierer: Carry-Erzeugung<br />
� Das Carry wird durch C out = AB + BC in + AC in gegeben.<br />
� Diese Funktion kann mit dem gemischten Gatter Y = !(AB+(A+B)C in) implementiert werden<br />
� Problem: 3 PMOS übereinander ('Stack height' = 3)<br />
� Da je zwei der 5 Eingänge des Y-Gatters identisch sind, kommen nicht alle Eingangskombinationen vor!<br />
C in<br />
B A<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A B<br />
A<br />
B<br />
!C out<br />
B<br />
A<br />
� Der PMOS Zweig kann umgeformt werden:<br />
(!A+!B)(!A!B+!C) = !A(!A!B+!C) + !B(!A!B+!C)<br />
= !A!B+!A!C+!A!B+!B!C = !A!B + (!A+!B)!C.<br />
� Das führt zu einem NICHT-CMOS-Gatter:<br />
B<br />
C in<br />
B A<br />
A<br />
A<br />
B<br />
!C out<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 47<br />
B<br />
A
Optimierter Volladdierer (invertierte Ausgänge)<br />
B<br />
C in<br />
A<br />
B A<br />
A<br />
B<br />
!C out<br />
!C out = !(AB + (B + A)C in)<br />
!S = !(ABC + !C out • (A + B + C in))<br />
VLSI Design: <strong>Logikfamilien</strong><br />
B<br />
A<br />
C in<br />
C in<br />
B<br />
A<br />
B A<br />
kein CMOS !<br />
24 Transistoren<br />
A<br />
B<br />
C in<br />
C in<br />
B<br />
A<br />
!S<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 48
Volladdierer mit alternierenden Stufen<br />
� Zum Geschwindigkeitsgewinn kann man jeweils invertierte Carry und Sum weitergeben<br />
� Ein- und Ausgänge jeder zweiten Stufe werden invertiert.<br />
� Das funktioniert, weil C out(A,B,C in) = !C out(!A,!B,!C in), etc.<br />
C in A B C out S !C out<br />
0 0 0 0 0 1<br />
0 0 1 0 1 1<br />
0 1 0 0 1 1<br />
0 1 1 1 0 0<br />
1 0 0 0 1 1<br />
1 0 1 1 0 0<br />
1 1 0 1 0 0<br />
1 1 1 1 1 0<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A 0<br />
B 0<br />
A 1<br />
B 1<br />
C in<br />
C out<br />
!C out<br />
S 0<br />
S 1<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 49
BUFFER<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 51
Treiben großer Lasten<br />
� Aufgabe: Treibe eine gegebene, große Last mit minimaler Verzögerung !<br />
� Beispiele sind Netze mit hohem Fanout, Pads (externe Lasten haben leicht 10pF!), Taktleitungen<br />
C L<br />
� Aus tP ~ sieht man, daß man K erhöhen muß, um das hohe CL zu tolerieren.<br />
K (W/L) VDD<br />
� Die Eingangskapazität eines großen Inverters ist aber hoch, so daß dieser wiederum schwer zu treiben<br />
ist. Das Problem ist also nur verschoben.<br />
klein<br />
� Man denke auch an die hohen Querströme, die wegen der langsamen Anstiegszeit des Eingangssignals<br />
im großen Inverter rechts fließen !!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Verzögerung<br />
hier<br />
Verzögerung<br />
hier<br />
groß<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 52
Inverterkette als Buffer<br />
� Lösung: Kette aus zunehmend größer werdenden Invertern. Gesucht: Vergrößerung α pro Stufe<br />
C IN<br />
αC IN<br />
α 2 C IN<br />
� Die Kette bestehe aus n Invertern, die um jeweils einen Faktor α größer werden<br />
� Die Verzögerung eines Inverters sei t P = α t P0<br />
(t (tP0 ist die Verzögerung beim Treiben eines gleichgroßen Inv., das Treiben des α-fach größeren dauert länger)<br />
� Die Gesamtverzögerung ist T = n t P = n α t P0<br />
� Es gilt C L = α n C IN oder n = ln (C L/C IN) / ln α<br />
� Also T(α) = n α tP0 = (α α / / ln α) ln (CL/CIN) tP0 � Hier ist nur α unbekannt. ∂T(α)/∂α = 0 liefert α = e = 2.718... und T min = e ln (C L/C IN) t P0<br />
� Jeder Inverter ist also etwa 3x so groß wie der vorhergehende<br />
� Man braucht ln(C L/C IN) Stufen<br />
� Aus verschiedenen Gründen (z.B. Minimierung des Querstroms oder der Fläche) sind etwas größere<br />
Verhältnisse (10) oft besser. Die Erhöhung der Verzögerung ist minimal (wenige %, s. Buch v. Veendrick).<br />
VLSI Design: <strong>Logikfamilien</strong><br />
C L<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 53
RC Verzögerung durch Leitungswiderstand<br />
� Das Treiben einer entfernten Last durch eine lange Leitung trägt die Leitung selbst durch ihr RC zur<br />
Verzögerung bei.<br />
0 1 N-1<br />
R 0<br />
lange Leiterbahn R 0, C 0: Widerstand / Kapazität pro Längeneinheit<br />
� Sehr pessimistische ‚worst case‘ Abschätzung = Elmore-Delay: Addition ALLER Rs und ALLER Cs<br />
N x R 0<br />
N x C 0<br />
RC ~ R 0C 0 x N 2<br />
Grobe Näherung !<br />
� Etwas genauer: Widerstand k (k=0..N-1) muß die Kapazität (N-k)C 0 aufladen. Alle RCs addieren:<br />
RC ~ Σ R 0 (N-k) C 0 = R 0C 0 [N 2 – 0.5 N (N-1)] = R 0C 0 [0.5 N (N+1)]<br />
k=0..N-1<br />
VLSI Design: <strong>Logikfamilien</strong><br />
C 0<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 54
RC vs. t pd<br />
� Ein RC Glied erzeugt am Ausgang ein Signal f(t) = exp(-t/RC)<br />
1<br />
0.5<br />
�� Zur Berechung der Verzögerungszeit sucht man t tRC mit f(t f(tRC)=0.5 )=0.5<br />
VLSI Design: <strong>Logikfamilien</strong><br />
0<br />
t RC<br />
f(t) = exp(-t/RC)<br />
⎛ t ⎞<br />
tRC<br />
exp⎜ − = 1<br />
⎟ ⇔ − = −ln<br />
RC 693<br />
2<br />
⎝ RC ⎠<br />
RC<br />
( 2)<br />
⇔ t = 0.<br />
RC<br />
RC ⋅<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 55<br />
t
RC Verzögerung mit Zwischen-Buffern<br />
� Idee: Nach Stücken der Länge M je einen Buffer mit Verzögerung t buf einfügen:<br />
1 M 1 M 1 M<br />
� Gesamtlänge: N Elemente<br />
� Anzahl Segmente: N SEG=N/M<br />
�� Anzahl Buffer: N NBUF=N/M-1 =N/M-1<br />
VLSI Design: <strong>Logikfamilien</strong><br />
t<br />
P<br />
( M)<br />
= N<br />
SEG<br />
⋅ t<br />
SEG<br />
+ N<br />
N<br />
= ⋅ 0 . 35 ⋅ R R0<br />
C<br />
M<br />
= 0.<br />
35 ⋅ R<br />
0<br />
C<br />
0<br />
0<br />
⋅ N<br />
BUF<br />
⋅ t<br />
BUF<br />
∂tP<br />
( M)<br />
N<br />
= 0.<br />
35 ⋅ R0C<br />
0 ⋅ N − ⋅ t<br />
2<br />
∂M<br />
M<br />
⇒ M =<br />
tBUF<br />
0.<br />
35 ⋅ R C<br />
= 1.<br />
7<br />
⎛ N ⎞<br />
⋅ M ⋅ ( M + 1 ) + ⎜ − 1 ⎟ ⋅ t<br />
⎝M<br />
⎠<br />
⎛ N ⎞<br />
⋅ ( M + 1)<br />
+ ⎜ − 1⎟<br />
⋅ tBUF<br />
⎝M<br />
⎠<br />
0<br />
0<br />
BUF<br />
=<br />
t<br />
R<br />
0<br />
0<br />
BUF<br />
C<br />
0<br />
BUF<br />
Optimale<br />
Anordnung<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 56
Beispiel 0.18µm Technologie<br />
� Betrachte Poly für 10µm lange Stücke, W=0.18µm (10/0.18 ~ 60 Squares)<br />
� R = 8 Ohm / square, W = 0.18µm. Also R 0=444 Ohm (für 10µm)<br />
� C ~ 1fF (für 10µm)<br />
� RC ~ 0.5ps für 10µm<br />
� Wann wird RC=20ps?<br />
20ps / 0.5ps = 40, sqrt(40) ~ 6.5 ⇒ Bei L=6.5 x 10µm = 65µm<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 57
VDD<br />
GND<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Typisches Buffer Layout<br />
Guardring<br />
Wannenkontakt<br />
Substratkontakt<br />
Drains werden von zwei<br />
Transistoren geteilt<br />
⇒ kleineres C<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 58
NMOS LOGIK<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 59
P-Last Logik ('pseudo – NMOS')<br />
� Die Logische Funktion wird durch ein NMOS Netzwerk erzeugt, eine P-Last zieht nach VDD<br />
- Das aktive NMOS Netzwerk ist wegen K N > K P vorteilhaft (Mobilität der Elektronen!)<br />
� Der PMOS wirkt (fast) als Stromquelle<br />
- Besser ist es, die Gatespannung aus einem Referenzstrom zu erzeugen. Man benötigt dann eine Biasspannung<br />
- Bei V Gate = GND hängt der Strom stark von VDD ab – schlecht, aber häufig benutzt (kein Bias benötigt)<br />
GND / bias<br />
Eingänge<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD<br />
NMOS<br />
Pulldown<br />
Netz<br />
Out<br />
a b<br />
nand2 nor2 !((a+b) c)<br />
c<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 60
Querstrom<br />
PMOS<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Übertragungsverhalten<br />
V out<br />
VDD<br />
V TN<br />
VDD<br />
VDD<br />
V in<br />
V Vin = VDD<br />
V in < VDD<br />
V in ≤ V TN<br />
Ausgangsspannung<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 61
SPICE Simulation<br />
� Hier: 'Simple' – Modelle mit verschieden langen PMOS<br />
� Langer PMOS: + niedriges Low-Level<br />
- langsame Anstiegszeit<br />
� Kurzer PMOS: - hohes Low-Level<br />
+ schnelle Anstiegszeit<br />
LP=4u<br />
VLSI Design: <strong>Logikfamilien</strong><br />
LP=1u<br />
V1 = 0<br />
V2 = 5<br />
TD = 10n<br />
TR = 1n<br />
TF = 1n<br />
PW = 100n<br />
PER = 200n<br />
in2<br />
V1<br />
V<br />
LP=1u<br />
W = 1u<br />
Simple L = {LP}<br />
MP2<br />
out<br />
PARAMETERS:<br />
LP = 5u<br />
V<br />
W = 1u<br />
Simple L = 1u<br />
MN2<br />
C1<br />
100f<br />
VDD2<br />
5<br />
0<br />
LP=4u<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 62
Berechnung V OL<br />
� Berechnung der Low-Ausgangsspannung aus der Ausgangskennlinie von NMOS und Last<br />
I quer<br />
V OL<br />
� NMOS ist im linearen Bereich, PMOS in Sättigung<br />
� Mit V T = V TN = |V TP|:<br />
NMOS<br />
PMOS<br />
VDD V Vout I NMOS = k N [(V DD – V T) V OL – ½ V OL 2 ] = ½ kP (V DD – V T) 2 = I PMOS<br />
� k p muß viel kleiner als k n sein !!!<br />
� Das low-level hängt stark von V DD ab – schlecht!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V OL = (V DD-V T) [1 – 1 – k P/k N]<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 63
d<br />
c<br />
b<br />
a<br />
nand4<br />
VLSI Design: <strong>Logikfamilien</strong><br />
out<br />
Pseudo-NMOS NAND4 Gatter<br />
VDD<br />
a b c d<br />
GND<br />
out<br />
n + -Kontakt<br />
N-Wanne<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 64
P-Last NOR6<br />
� Hier mit sehr langem PMOS. Sehr kompaktes Layout.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 65
Vorteile<br />
� Erfordert nur N+1 Transistoren (N NMOS, 1 PMOS)<br />
� Topologie sehr einfach<br />
� Kleine Eingangskapazität<br />
� Gut geeignet z.B. für Decoder<br />
Nachteile<br />
Pseudo-NMOS Logik<br />
� Statischer Stromverbrauch, wenn Ausgang auf Null ist<br />
� Abfall- und Anstiegszeiten u.U. stark asymmetrisch<br />
� Kleiner unterer Störabstand: V IL ~ V TN, V OL > 0<br />
�� Dimensionierung des PMOS ist kritisch ('ratioed logic'):<br />
- Er darf nicht zu groß sein, damit die NMOS den Ausgang noch gegen 'Null' (i.e. unter VIL) ziehen können<br />
- Er darf nicht zu klein sein, weil tpLH dann zu groß wird<br />
Anwendungen<br />
� Open-Drain Ausgang. Mehrere Ausgänge können verbunden werden.<br />
Mit einer Last ergibt sich eine ODER-Verknüpfung 'Wired-OR'<br />
(eigentlich NOR oder NAND...)<br />
� Die Last kann an eine andere Spannung angeschlossen werden als VDD:<br />
- Level-Shifter<br />
- Gunning Transceiver Logik (GTL) mit niedriger Abschlußspannung<br />
VLSI Design: <strong>Logikfamilien</strong><br />
wired-OR<br />
Block1 Block2<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 66
Pseudo NMOS mit Adaptiver Last<br />
� M1 wird aktiv eingeschaltet, wenn die Logik benötigt wird<br />
� Im ‚stand-by‘ - Modus sorgt ein schwacher M2 (kleines W/L) für statische High-Levels<br />
VLSI Design: <strong>Logikfamilien</strong><br />
enable M1 M2<br />
A B C<br />
nor3<br />
schwacher<br />
'Keeper'<br />
Out<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 67
PASS GATE LOGIK<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 68
Pass-Transistor Logik: Nur NMOS Schalter ?<br />
� Gleiches Problem wie bei CMOS:<br />
NMOS Transistoren machen 'gute' Nullen, aber 'schlechte' Einsen.<br />
� Genauer:<br />
VDD<br />
VDD<br />
Spannung hier steigt nur auf<br />
VDD – k x VTN<br />
(k durch Substrateffekt)<br />
� Problem: Statischer Stromverbrauch, Verlust an Störabstand<br />
� Daher: NMOS und PMOS parallel schalten<br />
VDD<br />
� Aber: Wenn man weiß, was man tut, ist u. U. auch nur ein NMOS ok…<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Der PMOS ist nicht<br />
ganz abgeschaltet<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 69
Pass Gate Logik<br />
� Elementarer Block: Transmission Gate aus PMOS und NMOS. Symbol wie ein Absperrhahn.<br />
IO<br />
� Beispiel Multiplexer<br />
VLSI Design: <strong>Logikfamilien</strong><br />
En<br />
!En<br />
A 1<br />
A 0<br />
IO IO<br />
!Sel<br />
Sel<br />
Sel<br />
Q<br />
En<br />
!En<br />
Nur 4 Transistoren!<br />
IO<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 70
Einschub: Widerstand eines MOS<br />
� Vom Widerstand kann man nur im linearen Bereich sprechen, d.h. wenn<br />
� In diesem Bereich gilt:<br />
0 < V DS « V GS – V T<br />
I D = K W/L [ (V GS – V T) V DS – ½ V DS 2 ] = K W/L [ VGS – V T – ½ V DS ] V DS<br />
� In der [] - Klammer kann man ½ V DS gegenüber V GS-V T vernachlässigen, also gilt näherungsweise<br />
� Also ist der Leitwert des Kanals<br />
I D ~ K W/L (V GS – V T) V DS<br />
g DS = I D / V DS ~ K W/L (V GS – V T), der Kehrwert ist der Widerstand<br />
� Einsetzen von Werten einer 0.35 µm Technologie ergibt (für einen minimalen NMOS bei 3.3V)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
g DS ~ 175 µA/V 2 x 0.8µm/0.35µm x (3.3V – 0.5V) ~ 1mA/V, d.h. 1kΩ<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 71
0<br />
Vin<br />
0<br />
Vtest<br />
Simulation: Widerstand Transmission Gate<br />
0.001<br />
0<br />
I<br />
I<br />
M3<br />
W = 0.8u<br />
L = 0.35u<br />
M2<br />
W = 0.8u<br />
L = 0.35u<br />
VDD<br />
� Auch hier muss der PMOS breiter als der NMOS gemacht werden<br />
� Typ. RC : 3kΩ x 3fF = 10ps, aber (3x3kΩ) x (3x3fF)=100ps!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD<br />
3.3<br />
PMOS<br />
W/L= 0.8/0.35<br />
NMOS<br />
W/L= 0.8/0.35<br />
Parallelschaltung<br />
V D ~ V S<br />
Durchlasswiderstand hat<br />
die Größenordnung 1kΩ<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 72
Problem bei niedrigen Versorgungsspannungen<br />
� Bei modernen Prozessen mit sehr kleinen Gatelängen sinken die Versorgungsspannungen, die<br />
Schwellenspannungen bleiben aber etwa gleich (wegen Subthreshold Leakage!)<br />
� Dies führt zu hohen Widerständen von Transmission-Gates im mittleren Spannungsbereich:<br />
R<br />
V T,P<br />
V T,N<br />
‘Hohe’ Versorgungsspannung<br />
V IN<br />
R<br />
V T,P<br />
V T,N<br />
‘Niedrige’ Versorgungsspannung<br />
� Wenn VDD < k1 V T,N + k2 |V T,P| wird, funktionieren die Schalter nicht mehr! (k1, k2 für Substrateffekt)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V IN<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 73
A 3<br />
A 2<br />
A 1<br />
A 0<br />
Sel0<br />
!Sel0<br />
Sel0<br />
!Sel<br />
0<br />
Sel<br />
0<br />
Sel1<br />
!Sel1<br />
Sel1<br />
MUX4<br />
Q<br />
12 Transistoren für 4 Bit !<br />
Sel1 Sel0 Q<br />
0 0 A 0<br />
0 1 A 1<br />
1 0 A 2<br />
1 1 A 3<br />
� Achtung: Zu viele (>4) in Serie geschaltete Transmission Gates führen zu hohen RC-Verzögerungen!<br />
� Verzögerung steigt (etwa) quadratisch mit der Anzahl MOS !!! (solange interne Caps dominieren)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 74
out<br />
A B A ⊕ B<br />
0 0 0<br />
0 1 1<br />
1 0 1<br />
1 1 0<br />
B B out<br />
A = 1 A = 0<br />
XOR mit Pass Gate Logik<br />
B<br />
A<br />
A<br />
A⊕B<br />
!A<br />
!B<br />
Möglichkeit 1:<br />
MUX<br />
4 MOS + 2 Inverter<br />
Vorsicht: Bei der Abschätzung der Geschwindigkeit muss man die MOS in den Schaltungen berücksichtigen,<br />
die die Signale A und B erzeugen!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
B<br />
B<br />
!A<br />
A⊕B<br />
B<br />
Möglichkeit 2:<br />
Raffiniert!<br />
4 MOS + 1 Inverter<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 75
Gated Inverter<br />
� Man kann bei gleicher Funktion das Layout vereinfachen:<br />
!Sel0<br />
!Sel0<br />
Sel0 Sel0<br />
!Sel0<br />
Sel0<br />
!Sel0<br />
Sel0<br />
� Die Schalttransistoren ('Sel') kommen nach 'innen' (nahe Ausgang), damit im abgeschalteten Zustand die<br />
kapazitive Last minimal ist.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 76
Tri-State Ausgang<br />
� Die zwei in Serie geschalteten MOS des Gated Inverters kann man verhindern (Ausgangsstrom!), indem<br />
man Logik vorschaltet.<br />
� Nicht-Invertierender Tri-State Buffer:<br />
en<br />
in<br />
en ⋅ in<br />
en ⋅ in<br />
� Sehr wichtiger Ausgangs-Typ in Bus-Systemen!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
out<br />
out in<br />
out<br />
en=0<br />
en=1<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 77
RC Verzögerung in Transmission Gates (wie vorher)<br />
1 2 N<br />
R eff<br />
N x R eff<br />
VLSI Design: <strong>Logikfamilien</strong><br />
N x C eff<br />
RC ~ R effC eff x N 2<br />
Grobe Näherung !<br />
C eff<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 78
D<br />
!LD<br />
Latch mit Gated Invertern - Stick Diagramm<br />
LD<br />
LD !LD<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
� Sehr kompakt<br />
D<br />
LD<br />
� Die 'extra' Transistoren des Gated-Inverters (im<br />
Vergleich zu einem Transmission Gate) fallen<br />
kaum ins Gewicht<br />
� Problematisch im Layout sind immer die<br />
Überkreuzungen von LD/!LD bzw. EN,!EN<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 79<br />
Q
Wdh: 'Pseudo'-statisches Latch<br />
� Implementierung in diesem Beispiel mit Transmission Gates<br />
D<br />
LD<br />
Q<br />
Q<br />
D<br />
� Achtung: Die LD-Signale der Transmission Gates dürfen sich nicht überlappen!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
!LD<br />
LD<br />
LD<br />
!LD<br />
Q<br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 80
Latch mit 'Keeper'<br />
� Die Speicherschleife wird nicht mehr ‚aufgebrochen‘ sondern ‚mit Gewalt‘ umgeworfen<br />
� Ähnlich RAM-Zelle, aber mit asymmetrischen Invertern<br />
D<br />
!LD<br />
LD<br />
Q<br />
Schwacher<br />
Inverter<br />
� Bringt nicht viel Flächengewinn, da die langen Transistoren im schwachen Inverter viel Platz brauchen<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 81
C in A B C out S P<br />
0 0 0 0 0 0<br />
0 0 1 0 1 1<br />
0 1 0 0 1 1<br />
0 1 1 1 0 0<br />
1 0 0 0 1 0<br />
1 0 1 1 0 1<br />
1 1 0 1 0 1<br />
1 1 1 1 1 0<br />
orange: C Cout = C Cin (P=1)<br />
weiss: Cout = A (oder B)<br />
A !A<br />
C i<br />
n<br />
Volladdierer mit Transmission Gates<br />
!C in<br />
Vorbereitung XORs: P=A⊕B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A<br />
B<br />
!A<br />
!A<br />
B<br />
A<br />
P<br />
!P<br />
(Ein Inverter für !P wäre langsamer)<br />
(P = ‚propagate‘)<br />
B<br />
B<br />
!C in<br />
C in<br />
!A<br />
!C in<br />
P<br />
P<br />
!P<br />
P<br />
!P<br />
MUXe: S=P⊕C in, C out=..<br />
S<br />
C out<br />
kritischer Pfad<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 82
'NMOS –Only' Transmission Gate Logik: ‚Level restore‘<br />
� ‚NMOS-Only‘ geht nicht direkt wegen des schlechten High-Pegels, statischen Stromverbrauchs etc. (s.o.)<br />
� Trick: Nutze einen PMOS 'Level-Restorer' um aus einer 'schlechten 1' ein VDD Niveau zu machen.<br />
⇒ 'full swing' wird wiederhergestellt:<br />
A<br />
B<br />
Q = !A • B<br />
X<br />
� Vorsicht: der PMOS muss richtig dimensioniert werden, damit auch 'schwache' Nullen bei A (z.B. aus<br />
seriellen NMOS Transistoren) den Knoten X noch nach Masse ziehen können<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 83
Komplizierter: Manchester Carry Chain Addierer<br />
φ<br />
C i,0<br />
P 0<br />
P 1<br />
V DD<br />
P 2<br />
M0 M1 M2 M3 M4<br />
3 2.5 2 1.5<br />
3.5 3 2.5 2 1.5 1<br />
G 0 G 1 G 2 G 3 G 4<br />
� Sehr kompakte und schnelle ‚full custom‘ Lösung zur Erzeugung von Carry.<br />
� Hier nicht weiter diskutiert….<br />
VLSI Design: <strong>Logikfamilien</strong><br />
4 3.5 3 2.5 2<br />
φ 1.5<br />
P 3<br />
P 4<br />
1<br />
0.5<br />
Total Area:<br />
225 µm × 48.6 µm<br />
C o,4<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 84
DIFFERENTIELLE<br />
CMOS LOGIK<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 85
Differenzielle Logik<br />
� Einige <strong>Logikfamilien</strong> erzeugen einen Ausgang Q und das Inverse !Q.<br />
� Sie benötigen neben den Eingängen I 1,...,I N meist auch die Inversen !I 1,...,!I N<br />
Vorteile:<br />
� Es werden viel weniger Logikfunktionen benötigt, da durch Vertauschen von Signalen die Negation<br />
erreicht wird. Für Fan-In = 2 werden nur 2 Gatter benötigt. Frage: Wieviele für Fan-In = 3?<br />
A<br />
!A<br />
B<br />
!B<br />
A • B<br />
Q<br />
!Q<br />
� Auch Funktionen mit Zustandsspeicherung sind sehr kompakt<br />
A<br />
!A<br />
B<br />
!B<br />
� Anstiegs- und Abfallzeit sind gleich.<br />
� Man kann mit kleinerem Signalhub arbeiten<br />
Nachteile:<br />
� Es müssen doppelt so viele Signale verlegt werden<br />
� Die Leistungsaufnahme bei 'full swing' Signalen wird verdoppelt<br />
� Es werden mindestens 2N+2 Transistoren für ein Gatter mit einem FanIn von N benötigt<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A • B<br />
Q<br />
!Q<br />
A<br />
!A<br />
B<br />
!B<br />
A + !B = !A • B<br />
Q<br />
!Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 86
DCVS Logik<br />
� DCVSL = differential (dual) cascode voltage switch logic<br />
� Ein 'Latch' aus zwei PMOS Transistoren wird von zwei komplementären NMOS – pulldown Netzen<br />
umgeschaltet<br />
� Durch positives Feedback ist das Umschalten sehr schnell, auch wenn die Eingangssignale langsam sind<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Eingänge<br />
out<br />
out<br />
Pulldown:<br />
F(i)<br />
Pulldown:<br />
!F(i) = F'(!i)<br />
(duales Netz)<br />
Eingänge<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 87
DCVS NAND<br />
out out<br />
a<br />
b a b<br />
Pulldown:<br />
F = !(ab)<br />
Pulldown:<br />
!F = !!ab = !(!a+!b)<br />
� Dieses Gatter kann für jede Funktion von zwei Variablen verwendet werden, in der genau einer der vier<br />
möglichen Ausgangszustände ausgewählt wird.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 88
a ⊕ b<br />
DCVS XOR<br />
b<br />
b b b<br />
a a<br />
a ⊕ b<br />
A B A ⊕ B<br />
0 0 0<br />
0 1 1<br />
1 0 1<br />
1 1 0<br />
� Dieses Gatter kann für jede Funktion von zwei Variablen verwendet werden, in der genau zwei der vier<br />
möglichen Ausgangszustände ausgewählt werden.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 89
a+(bc)<br />
a<br />
VLSI Design: <strong>Logikfamilien</strong><br />
DCVS Beispiel mit 3 Eingängen<br />
b a<br />
c b c<br />
a+(bc)<br />
F = a + (b⋅<br />
c) F = a + (b ⋅c)<br />
= a⋅<br />
(b ⋅c)<br />
= a⋅<br />
( b + c)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 90
V<br />
DCVS Inverter<br />
� Simulation mit PSPICE mit sehr langsamen Eingangssignalen (Anstiegs/Abfallzeit = 1µs)<br />
� Hier (W/L) P = (W/L) N<br />
inleft<br />
Simple Pleft<br />
V<br />
Vleft<br />
V1 = 0<br />
V2 = 5<br />
TR = 100n<br />
outleft<br />
Nleft<br />
Simple<br />
VCC<br />
0<br />
Pright<br />
outright<br />
Nright<br />
Simple<br />
Simple<br />
V<br />
V<br />
inright<br />
Vright<br />
V1 = 5<br />
V2 = 0<br />
TR = 100n<br />
Eingang rechts<br />
Eingang links<br />
� Ausgang ist sehr schnell durch das positive Feedback<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Ausgang links<br />
Ausgang rechts<br />
1µs !<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 91
VLSI Design: <strong>Logikfamilien</strong><br />
Detail: Querstrom beim Umschalten<br />
Querstrom 300µA<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 92
Ähnlich JK-FF: Getaktetes SR – FlipFlop<br />
� Sehr einfache Schaltung möglich:<br />
� Kreuzgekoppelte Inverter, die umgeworfen werden (ähnlich statische Speicherzelle)<br />
� Achtung: 'ratioed' Design: PMOS Transistoren dürfen nicht zu stark sein, sonst 'flippt' die Zelle nicht<br />
PHI<br />
S<br />
Q<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
PHI<br />
R<br />
Simulation @ 3V, L NMOS = 0.25µm<br />
L PMOS = 0.25/0.5/1 µm<br />
V Q,V !Q<br />
V PHI<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 93
Vorteile:<br />
� Statische Logik<br />
� kein DC-Stromverbrauch<br />
� Kleine Eingangskapazitäten<br />
� Schnelles Umschalten durch positive Rückkopplung<br />
� Volle CMOS Levels<br />
DCVS Logik<br />
� Weniger Gatter benötigt durch Verfügbarkeit der inversen Signale und durch komplexe Logikfunktionen<br />
Nachteile:<br />
� Mehr Transistoren<br />
�� 'Ratioed Logik': PMOS darf nicht zu groß sein<br />
� Hoher Querstrom beim Umschalten. NMOS-Netz treibt 'gegen' den PMOS bis er umschaltet<br />
� Höherer Routing-Aufwand durch komplementäre Signale<br />
� Höherer dynamischer Leistungsverbrauch<br />
(Nicht so klar: Doppelt so viele Signale, aber kleinere Eingangskapazitäten)<br />
Ausblick:<br />
� Es gibt auch differentielle CMOS <strong>Logikfamilien</strong>, die einen kleinen Signalhub haben<br />
� Viele Vorteile, aber schwierigeres Design<br />
� Sehr ähnlich wie ECL, aber mit MOS Transistoren<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 94
� CML = 'Current Mode Logik'<br />
CML<br />
� Gleiches Konzept wie Differential ECL aber ohne Emitter-Folger<br />
� Der Strom wird im Schalterbaum nach links oder rechts gelenkt<br />
� Durch das Fehlen des Buffers können große Lastkapazitäten schlecht getrieben werden.<br />
� Problem ist der Last-'Widerstand':<br />
- Ausgangslevels müssen zum Eingang passen<br />
- Levels sollten nicht stark vom Strom abhängen<br />
- Es gibt verschiedene Lösungen...<br />
� Schalterbaum ist wie bei DCVS<br />
� Umschaltspannungen sind (in starker Inversion)<br />
höher als bei ECL, in schwacher Inversion vergleichbar.<br />
� Einer der Vorteile:<br />
Konstantstromoperation - keine Spikes auf Versorgung<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD VDD<br />
Lasten<br />
Q !Q<br />
Schalterbaum<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 95
a ⊕ b<br />
VLSI Design: <strong>Logikfamilien</strong><br />
CML XOR<br />
b b b<br />
a a<br />
a ⊕ b<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 96
Q !Q<br />
!A A<br />
A<br />
!A !Q<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Inverter / Buffer<br />
Q<br />
CML LATCH<br />
Rückkopplung<br />
(wie bei CMOS)<br />
Q<br />
A<br />
1 0 1 0<br />
Q<br />
!A !Q<br />
0 1 0 1<br />
Latch (Speicherzelle)<br />
!Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 98
LD = 10<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
D – Latch in Differenzieller Logik<br />
D<br />
D<br />
LD LD<br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 99
DYNAMISCHE LOGIK<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 100
φ<br />
I 1<br />
I 2<br />
I N<br />
φ<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Dynamische Logik mit 'Precharge'<br />
NMOS<br />
Pulldown<br />
Netz<br />
Q<br />
2 Phasen:<br />
Precharge (φ=0):<br />
Ausgang wird auf 1 vorgeladen<br />
Evaluation(φ=1):<br />
Dieser NMOS unterbindet<br />
einen Querstrom während<br />
der Precharge-Phase<br />
Ausgang geht auf 0, falls pulldown aktiv.<br />
Nur EIN Übergang nach 0 ist möglich.<br />
Ähnlich: Komplementäre Schaltung mit PMOS pullup-Netz.<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 101
VLSI Design: <strong>Logikfamilien</strong><br />
Beispiel Dynamische Logik<br />
a<br />
b<br />
φ<br />
φ<br />
Q<br />
c<br />
Q = !(ab+c)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 102
φ<br />
c<br />
b<br />
a<br />
φ<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Layout eines dynamischen NAND3 Gatters<br />
Q<br />
c<br />
b<br />
a<br />
VDD<br />
phi<br />
GND<br />
out<br />
Sehr kleine<br />
Kapazität<br />
Größere<br />
Kapazität<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 103
Vorteile:<br />
� Nur N+2 Transistoren<br />
� Sehr einfache Layouts<br />
Dynamische Logik<br />
� Ratio-Less: Die Größe der Transistoren ist (relativ) unkritisch<br />
� Kein statischer Stromverbrauch<br />
� Schnelle Evaluation, da nur NMOS Kapazitäten<br />
� Full swing Logik<br />
Nachteile:<br />
� Kleiner unterer Störabstand (~V TN)<br />
� Benötigt Taktsignal<br />
� Nicht kaskadierbar....<br />
� Probleme durch Leckströme...<br />
� Probleme durch Ladungsumverteilung...<br />
� Probleme durch Ladungsinjektion...<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 104
φ<br />
D<br />
φ<br />
I leak<br />
Problem: Leckströme<br />
C L<br />
Q<br />
� Während der Evaluationsphase ist der Ausgang z.T. dynamisch.<br />
� Die Gesamtkapazität C L kann dann durch Leckströme I leak mit ∆U/∆T = I leak/C L entladen werden.<br />
� Hauptanteile an I leak kommen von den Draindioden der MOS und Subthreshold-Strömen<br />
VLSI Design: <strong>Logikfamilien</strong><br />
φ<br />
D<br />
Q<br />
precharge,<br />
Q ist<br />
statisch<br />
Q ist dynamisch,<br />
Entladung duch<br />
Leckströme !<br />
Q ist<br />
statisch<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 105<br />
t<br />
t<br />
t
φ<br />
a<br />
b<br />
φ<br />
� Schwacher PMOS hält Ausgang auf VDD<br />
Maßnahmen gegen Leckströme<br />
� Statischer Stromverbrauch während Evaluation<br />
� Ähnlich clocked pseudo-NMOS<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
φ<br />
a<br />
b<br />
φ<br />
� Wie ‚Level Restore‘ bei Pass Gates<br />
� Solange Q Null ist wird der dynamische Knoten<br />
mit einem PMOS nach 1 gezogen<br />
� Wird der dynamische Knoten in der Evaluation<br />
nach 0 entladen, so ‚lässt der PMOS los‘<br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 106
Problem: 'Charge redistribution'<br />
� Die Ausgangsspannung kann unerwünscht einbrechen, wenn ein entladener parasitärer Kondensator (hier<br />
zwischen MN2 und MN3) mit dem Ausgang verbunden wird.<br />
� Dies kann passieren, obwohl der Ausgang auf high bleiben sollte (Beispiel NAND, Eingang 'inlo' ist 0)<br />
V<br />
V<br />
V<br />
MP<br />
phi<br />
MN3<br />
inhi<br />
inlo<br />
MN2<br />
MN1<br />
out<br />
VLSI Design: <strong>Logikfamilien</strong><br />
0<br />
V<br />
V0<br />
3V<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 107
Einfluß der Kapazitäten<br />
� Drain des PMOS vergrößert ⇒ Kapazität des Ausgangsknotens größer ⇒ kleinere Störung<br />
VLSI Design: <strong>Logikfamilien</strong><br />
PHI<br />
Oberer<br />
Eingang<br />
AD = 6.4p<br />
AD = 0.64p<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 108
φ<br />
a<br />
b<br />
φ<br />
Gegenmaßnahme: Vorladen von Zwischenknoten<br />
φ<br />
Q<br />
� Alle Zwischenknoten (oder zumindest kritische mit viel Kapazität) werden vorgeladen.<br />
� Nachteil: totale Kapazität steigt, mehr Transistoren, höhere Last an Taktleitung<br />
� Alternativ: Zwischenkapazitäten sehr klein halten (Diffusion minimal, keine Kontakte)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 109
φ<br />
in<br />
Problem: 'Clock Feedthrough'<br />
Q<br />
Ladungsinjektion<br />
in ⇒ Q<br />
Ladungsinjektion<br />
Phi ⇒ Q<br />
Ausgang<br />
Takt<br />
t tr=1ns =1ns / 0.1ns<br />
� Das Taktsignal kann durch die Gate-Drain Kapazität des PMOS auf den Ausgang durchkoppeln<br />
� Die Stärke des Effekts hängt von der Anstiegszeit des Taktsignals und den Kapazitätsverhältnissen ab.<br />
� Der Effekt kann positiv ausgenutzt werden, da er den Störabstand erhöht. Etwas charge redistribution<br />
stört dann nicht mehr…<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 110
φ<br />
1<br />
Problem: Kaskadieren von N-Typ Precharge Gates<br />
Q 1<br />
φ φ<br />
φ<br />
Q 2<br />
1 1<br />
φ<br />
Q 1<br />
Eingang = 1!<br />
Q 1 = 1!<br />
� Direktes Kaskadieren von N-Typ precharge Gattern funktioniert NICHT, weil die Einsen in den vorderen<br />
Gattern (nach dem Precharge) die hinteren Gatter umschalten. Diese können dann nicht mehr den<br />
korrekten Wert annehmen, da pro precharge Phase nur EIN 1-0 Übergang möglich ist.<br />
� Lösungen: Inverter einfügen, N- und P- Stufen abwechseln<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q Q2 Q 2 müßte jetzt wieder auf 1 springen<br />
(Eingang des Gatters = 0), das geht<br />
in der dynamischen Logik aber nicht!<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 111
� Füge einen Inverter hinter jede N-Stufe<br />
Lösung1: Domino Logik<br />
� Die Ausgänge sind dann in der Precharge-Phase NULL und es gibt kein Problem<br />
� Problem: Alle Gatter sind NICHT-invertierend !<br />
φ φ<br />
A 1<br />
A 2<br />
A N<br />
φ<br />
NMOS<br />
Pulldown<br />
Netz<br />
B 2<br />
B N<br />
φ<br />
NMOS<br />
Pulldown<br />
Netz<br />
Level Restorer<br />
(schwacher PMOS)<br />
Beobachtung: Den unteren NMOS in den hinteren Stufen kann man weglassen (bei Phi=0 sind alle B i=0)!<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 112
Domino Effekt<br />
� Das Signal propagiert von links nach rechts durch und wirft eine Zelle nach der anderen um ('Domino')<br />
φ<br />
0<br />
0<br />
VLSI Design: <strong>Logikfamilien</strong><br />
0 0 0<br />
Gatter 1 Gatter 2 Gatter 3<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 113
� Abwechselnd N-Stufen und P-Stufen benutzen<br />
� Precharge der P-Stufen benutzt den inversen Takt.<br />
� Nachteil: PMOS-Teile sind langsamer<br />
φ<br />
A 1<br />
A 2<br />
A N<br />
φ<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Lösung2: NP-CMOS<br />
NMOS<br />
Pulldown<br />
Netz<br />
Q 1 = B 1<br />
φ<br />
B 2<br />
B N<br />
φ<br />
PMOS<br />
Pullup<br />
Netz<br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 114
P-Pullup<br />
φ<br />
A1<br />
φ<br />
Beispiel: NP CMOS Volladdierer (2 Bit)<br />
VDD<br />
B 1<br />
φ<br />
B 1<br />
A 1<br />
Carry (zeitkritisch)nahe Ausgang<br />
C i0<br />
φ<br />
φ<br />
Carry In<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V DD<br />
φ<br />
A 0 B 0 B 0<br />
N-Pulldown<br />
A 0<br />
φ<br />
Carry Out<br />
VDD<br />
C 2<br />
C i1<br />
A 1<br />
A 0<br />
N-Pulldown<br />
φ<br />
B 1<br />
φ<br />
φ<br />
B0<br />
φ<br />
V DD<br />
C i1<br />
V DD<br />
C i0<br />
A 1<br />
B 1<br />
φ<br />
V DD<br />
φ S1<br />
C i1<br />
V VDD Optimiertes Design: zweiter NMOS<br />
pulldown, um Kapazitäten der<br />
Zwischenknoten zu reduzieren<br />
φ<br />
B 0<br />
A0 Ci0 S 0<br />
Bit 1<br />
Bit 0<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 115
Beispiel: breites UND Gatter (Adressen-Decoder)<br />
� Betrachte UND Gatter mit 5 Eingängen. y = a 1a 2a 3a 4a 5 = !(a 1+a 2+a 3+a 4+a 5)<br />
ck<br />
a 3<br />
a 2<br />
a 1<br />
ck<br />
ck<br />
a 5<br />
a 4<br />
ck<br />
y ck<br />
!a 1 !a 2 !a 3<br />
y springt nur auf 1, wenn alle a i high sind !y bleibt nur auf 0, wenn alle !a i low sind<br />
Implementierung als Domino UND<br />
VLSI Design: <strong>Logikfamilien</strong><br />
ck<br />
ck<br />
ck<br />
!a 4<br />
!a 5<br />
Implementierung als Domino ODER<br />
Weniger NMOS in Serie: BESSER<br />
!y<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 116
Beispiel: breites UND Gatter (Adressen-Decoder)<br />
� Zum Vergleich: Implementierung als NP ODER. Die Logik im zweiten Gatter wird umgedreht<br />
!a 1<br />
ck<br />
ck<br />
!a 2<br />
1<br />
!a 3<br />
!ck<br />
a 4<br />
!ck<br />
y bleibt nur auf 0, wenn !a 1-!a 3 low sind a 4-a 5 high sind.<br />
� Sehr kompakt. Kann sehr einfach auf sehr viele Eingänge erweitert werden.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
a 5<br />
0<br />
y<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 117
Beispiel: breites ODER (z.B. f. Match im CAM)<br />
� Betrachte ODER mit sehr vielen Eingängen:<br />
a 1<br />
ck<br />
a 2<br />
ck<br />
�� Nachteil: 2 Transistoren in Serie können sehr große Bus-Last nicht so schnell umladen.<br />
a 3<br />
ck<br />
� Lösung: NMOS unten vermeiden, indem die a i während des Precharge (ck=0) abgeschaltet werden:<br />
a1 ck<br />
VLSI Design: <strong>Logikfamilien</strong><br />
a2 ck<br />
a3 ck<br />
a 4<br />
ck<br />
ck<br />
ck<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 118
Konzepte:<br />
� Domino oder NP Logik<br />
Zusammenfassung dynamische Logik<br />
� Level Restorer zur Reduktion von Leckströmen – 'pseudo-statisch'<br />
� Evtl. Precharge von internen Knoten!<br />
Vorteile:<br />
� Sehr kurze Durchlaufzeit in der Evaluationsphase (bis zu 2x schneller)<br />
� Full swing<br />
� Nicht 'ratioed'<br />
� Sehr einfache und kompakte Layouts<br />
Nachteile:<br />
� Nur nicht-invertierende Funktionen<br />
� Benötigt Takt<br />
� (Speicherzeit begrenzt)<br />
� Störabstand gering<br />
� Vorsicht vor Ladungsumverteilung (charge-redistribution)<br />
� Höherer Stromverbrauch durch Takt (bis zu 2x höher).<br />
Hängt auch von der Polarität der Implementierung ab.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 119
FLIPFLOPS IN<br />
DYNAMISCHER LOGIK<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 120
Dynamische Logik<br />
� In dynamischer Logik werden Knoten für kurze Zeit nicht getrieben.<br />
� Sie behalten ihren Spannungszustand durch die Kapazität des Knotens.<br />
� Die Speicherzeit ist beschränkt durch Leckströme (Dioden, Subthreshold Leitung der MOS)<br />
� Beispiel: Dynamisches Latch:<br />
VLSI Design: <strong>Logikfamilien</strong><br />
!LD<br />
D Q<br />
LD<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 121
CK<br />
D<br />
Dynamisches Ein-Phasen-FF<br />
!CK<br />
!CK CK<br />
� Vorsicht: CK und !CK müssen genau komplementär sein, sonst ist das FF für kurze Zeit transparent.<br />
Beste Lösung: interne Erzeugung von !CK.<br />
� Vorsicht: Klappt nicht bei langsamer Anstiegszeit von CK. Lösung: CK puffern (zweiter Inverter).<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 122
� Wie vorher, aber mit Gated Invertern.<br />
� Layout manchmal angenehmer<br />
VLSI Design: <strong>Logikfamilien</strong><br />
CKin<br />
Ein-Phasen FF: C 2 MOS<br />
!CK CK<br />
D<br />
Q<br />
CK<br />
!CK<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 123
'Echtes' Ein-Phasen dynamisches LATCH<br />
� Vermeidet das Problem des Überlappens von CK und !CK in FFs<br />
� Gibt es ähnlich mit invertiertem Ausgang und/oder invertierter Clock (PMOS in die Mitte)<br />
� Funktion: - Bei CK=1 (transparente Phase) hat man zwei in Serie geschaltete Inverter.<br />
- Bei CK=0 behält der Ausgang Q seinen Zustand dynamisch bei:<br />
Eine 1 bei Q kann nicht zu 0 werden, weil der hintere NMOS sperrt.<br />
Eine 0 bei Q kann nicht durch den PMOS zu einer 1 werden, weil der Zwischenknoten nicht 0 werden kann.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Zur Stabilisierung einer 1<br />
am Zwischenknoten<br />
D Q<br />
CK CK<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 125
True Single Phase Clocking: Svensson - FF<br />
� Durch geschicktes Hintereinanderschalten von single-Phase Latches bekommt man ein sehr schnelles und<br />
kompaktes Single-Phase-FF (hier auf positive Flanke getriggert) (Yuan, Svensson, 1989)<br />
D<br />
CK<br />
01 !D<br />
01<br />
CK<br />
CK<br />
a<br />
01<br />
� Funktion: - bei CK=0 ist der Ausgang hochohmig. Am Punkt a liegt !D an. Punkt b ist auf 1.<br />
- bei CK=1 und D=0: a ist 1. b springt auf 0. Ausgang geht auf 1 (=!D).<br />
Falls D jetzt noch auf 1 schaltet, geht a auf 0. b wird tristate 0,<br />
der Ausgang bleibt dabei unverändert!<br />
- bei CK=1 und D=1: a ist 0, der mittlere Teil blockiert. b bleibt auf 1, Ausgang geht auf 0 (=!D).<br />
Falls D jetzt noch auf 0 schaltet, wird a tristate.<br />
� Operation sehr trickreich<br />
� Dynamisch! Vorsicht vor Ladungsumverteilung und Ladungsinjektion. Sehr riskantes Design<br />
� In die erste Stufe kann zusätzlich Logik eingebaut werden<br />
VLSI Design: <strong>Logikfamilien</strong><br />
1<br />
b<br />
CK<br />
01<br />
0<br />
Q<br />
Z<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 126
TSPC - True Single Phase Clock Logic<br />
� Bei Implementierung mit Latches kann<br />
- Logik in die PU/PD Netze eingebaut werden<br />
- Logik zwischen die Stufen eingebaut werden<br />
In<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V DD<br />
PUN<br />
φ φ<br />
PDN<br />
Including logic into<br />
the latch<br />
V DD<br />
Static<br />
Logic<br />
V DD<br />
V DD<br />
φ φ Out<br />
Inserting logic between<br />
latches<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 127
Noch mehr TSPC<br />
� D-Flipflop, auf positive Flanke getriggert, 'split-output-latch'<br />
D<br />
φ<br />
V DD<br />
φ<br />
φ<br />
X<br />
V DD<br />
Y<br />
φ<br />
V DD<br />
D<br />
D<br />
φ<br />
V DD<br />
φ<br />
φ<br />
V DD<br />
φ<br />
V DD<br />
(a) Positive edge-triggered D flip-flop (b) Negative edge-triggered D flip-flop<br />
D<br />
VLSI Design: <strong>Logikfamilien</strong><br />
φ<br />
V DD<br />
φ<br />
V DD<br />
V DD<br />
(c) Positive edge-triggered D flip-flop<br />
using split-output latches<br />
D<br />
D<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 129
Vergleich einiger <strong>Logikfamilien</strong><br />
� CPL = 'Complementary Pass Transistor Logik': Differentielle Pass-Transistor Logik mit NMOS Transistoren<br />
mit (technologisch) reduzierter Schwelle.<br />
� Vorteile der Dynamischen Logik werden durch Zeitbedarf für Precharge relativiert<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 130
Zum Abschluß: Eine wahre Geschichte<br />
� In einem Design in 0.8µm Technologie befand sich folgende Struktur:<br />
PHI<br />
FF1<br />
� Beobachtungen:<br />
1mm lange Leitung<br />
- Bei kleiner werdender Versorgungsspannung gehen Einsen verloren<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Blaue Messung<br />
(nächste Seite)<br />
FF2<br />
Lila Messung<br />
(nächste Seite)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 131
Messung: auf der 1mm Leitung und hinter FF2<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD = 4.8V<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 132
Messung: auf der 1mm Leitung und hinter FF2<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VDD = 4.5V<br />
1 verloren<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 133
Messung: auf der 1mm Leitung und hinter FF2<br />
3.7 V<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 134
Erklärung<br />
� Schaltplan hinterer 'slave' Teil des FFs (schematisch)<br />
!CK<br />
CK<br />
Inv1 Inv2<br />
CK C BUS<br />
!CK<br />
� Nach der steigenden Flanke der Clock (CK=0..1) steigt das Eingangssignal an. Die Rückkopplung ist<br />
unterbrochen<br />
� Wenn CK=0 wird sollte sich am Ausgang nichts ändern. Die Feedback-Schleife wird geschlossen.<br />
� Ist der Ausgang noch nicht über die Schwelle des Inverters 1 angestiegen, so wird aber eine 0<br />
abgespeichert!!!!<br />
� Lösung: Ein (Minimum-Size) Buffer hinter dem FF genügt um die Geschwindigkeit mindestens zu<br />
verdoppeln...<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 135
Die Simulation zeigt den Effekt<br />
� Simulation mit extrahierten Kapazitäten der Leitung ergaben:<br />
VLSI Design: <strong>Logikfamilien</strong><br />
1.7-1.8 pF<br />
1.9-2.0 pF<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 136
ECL<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 137
Zentrales Element von ECL: das differentielle Paar<br />
� Der Strom im bipolaren Transistor ist I C ~ I S exp(U BE/U TH).<br />
Dabei ist der Sättigungsstrom I S eine Bauteilkonstante, und U Th = kT/q ~ 26mV@300K die Temperaturspannung.<br />
V 1<br />
I C1<br />
VLSI Design: <strong>Logikfamilien</strong><br />
I C2<br />
I<br />
C1<br />
= I<br />
S<br />
⎛ V − V<br />
exp⎜<br />
1<br />
⎝ UTh<br />
E<br />
⎞<br />
⎟,<br />
⎠<br />
I<br />
C2<br />
= I<br />
S<br />
⎛ V − V<br />
exp⎜<br />
2<br />
⎝ UTh<br />
V2 ⎛ V1<br />
− VE<br />
⎞<br />
IS<br />
exp⎜<br />
⎟<br />
V I ⎛ − ⎞ ⎛ ∆ ⎞<br />
E C1<br />
⎝ UTh<br />
⎠ V1<br />
V2<br />
V<br />
⇒ =<br />
= exp⎜<br />
⎟ = exp⎜<br />
⎟<br />
I C 2 ⎛ V 2 − V E ⎞<br />
⎜ ⎟<br />
⎝ UTh<br />
⎠ ⎝U<br />
Th<br />
I exp⎜<br />
⎟<br />
⎝ UTh<br />
⎠ ⎝U<br />
Th<br />
I<br />
⎠<br />
S exp<br />
⎝ UTh<br />
⎠<br />
I EE<br />
EE<br />
IEE IC1<br />
+ IC2<br />
IC2<br />
−x<br />
∆V<br />
= = 1 + = 1 + e mit x =<br />
I I I<br />
U<br />
C1<br />
x<br />
C1<br />
C1<br />
IC1 e<br />
∆U<br />
= = α mit x =<br />
I<br />
x<br />
1 + e<br />
U<br />
Th<br />
E<br />
⎞<br />
⎟<br />
⎠<br />
Th<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 138
Zentrales Element von ECL: das differentielle Paar<br />
� Strom im bipolaren Transistor I C ~ I S exp(U BE/U TH). Rechung s. Tafel.<br />
� Ergebnis:<br />
� Mit α = 0.01 ergibt das nur 115 mV (unabhängig von I EE!)<br />
� Kleiner Signalhub & die bipolaren Transistoren kommen nie in Sättigung ⇒ schnell.<br />
� SPICE Simulation:<br />
0Vdc<br />
V1<br />
Q1<br />
x<br />
IC1<br />
e<br />
∆U<br />
α<br />
= = α mit x = ⇒ V = V ± U ⋅ ln<br />
x<br />
IL , IH ref Th<br />
I 1 + e<br />
U<br />
1 − α<br />
EE<br />
Q2N2222<br />
1m<br />
VLSI Design: <strong>Logikfamilien</strong><br />
I<br />
Q2N2222<br />
I1<br />
Q2<br />
I EE=1mA<br />
I<br />
V2<br />
0<br />
5V<br />
Th<br />
99% bei<br />
115mV<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 139
ECL<br />
� ECL = 'Emitter Coupled Logik' - sehr schnelle Logik mit bipolaren Transistoren<br />
� Ein differentielles Paar lenkt I EE in einen der beiden Lastwiderstände.<br />
� Meist sind Ausgang und Komplement verfügbar.<br />
� Signalhub: ∆U = I EE x R C « V CC: 'low swing' (bei ECL: ca. 800mV)<br />
V CC<br />
V out1<br />
Last<br />
des<br />
E-Folgers V TRM<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V in<br />
Lastwiderstände<br />
V CC<br />
R C<br />
Differenzielles<br />
Paar<br />
I EE<br />
V EE<br />
Stromquelle<br />
V Ref<br />
V CC<br />
V out<br />
Emitter-Folger zum<br />
Treiben der Leitungen<br />
und der nächsten Stufen<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 140
V CC2<br />
0 V<br />
A B<br />
V EE<br />
OR/NOR Gate mit mehr Details<br />
~-1.3 V<br />
NOR OR<br />
Differentieller Verstärker Referenz Emitterfolger<br />
V CC2<br />
0 V<br />
~-0.85 V<br />
~-1.75 V<br />
V TERM<br />
-5.2 V ~ -2 V<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 141
ECL: Differenzverstärker und Emitterfolger<br />
V CC2 Spannungen V' hier:<br />
- V CC2<br />
- V CC2-R C×I EE<br />
A B<br />
V EE<br />
(Großer) 'Pulldown'-<br />
Widerstand (~50kΩ) zieht<br />
offene Eingänge auf 'low'<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Spannungen hier:<br />
- V' - V BE<br />
V ref muß zwischen<br />
V hi und V lo liegen<br />
'Schlechte' Stromquelle<br />
wird mit Widerstand<br />
(780Ω) implementiert<br />
Pulldown Widerstände z.B. 50Ω<br />
oder 100Ω zur Anpassung an die<br />
Leitungsimpedanz<br />
NOR OR<br />
V CC2<br />
V TERM<br />
V TERM meist > V EE<br />
zur Reduktion des<br />
Leistungsverbrauchs<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 142
VLSI Design: <strong>Logikfamilien</strong><br />
Erzeugung der Referenzspannung<br />
V REF ~ X - V BE<br />
V CC2<br />
V REF<br />
V EE<br />
GND<br />
907Ω<br />
4.98kΩ<br />
-5.2V<br />
Spannung X durch<br />
resistiven Teiler +<br />
Dioden festgelegt<br />
Dioden zur<br />
Temperaturkompensation<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 143
Wired-OR in ECL<br />
� Mehrere Ausgänge können direkt verbunden werden. Sie bekommen nur einen Pulldown-Widerstand.<br />
� Diese 'Wired-OR' kostet keinerlei Resourcen und spart Leistung<br />
VLSI Design: <strong>Logikfamilien</strong><br />
Gatter1 Gatter2<br />
A+B<br />
V CC2<br />
A+B+C+D<br />
V TERM<br />
V CC2<br />
C+D<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 144
ECL Gatter 1967<br />
� Bipolare Transistoren (und damit ECL) gab es lange vor CMOS !<br />
B<br />
C<br />
E<br />
VLSI Design: <strong>Logikfamilien</strong><br />
v 1<br />
A<br />
B<br />
v 2<br />
C<br />
n +<br />
n -<br />
v cc<br />
v 3<br />
R C1<br />
GROUND<br />
E<br />
n +<br />
p -<br />
R C2<br />
v bb<br />
v 02<br />
v 01<br />
R R E R E<br />
B<br />
p +<br />
C<br />
n +<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 145
Vorteile:<br />
� Statische Logik<br />
Zusammenfassung ECL<br />
� Sehr schnell (hohe Ströme, kleiner Hub, hohes g m der Bipolar-Transistoren), t p ~ 50ps<br />
� DC-Stromverbrauch (Konstantstrom!, keine 'Spikes' in der Versorgung)<br />
� Kurzschließen von Ausgängen ergibt eine ODER-Funktion ('Wired OR')<br />
Nachteile:<br />
� Hoher Stromverbrauch pro Gatter (100µA .. 1mA!)<br />
� V REF muß innerhalb des Signalhubs liegen. Absolutes Matching zwischen Chips nötig! Daher Signalhub in<br />
single ended ECL = 800mV » 115mV<br />
�� NAND Gatter unvorteilhaft wegen gestapelter Transistoren, die in Sättigung geraten können<br />
� Benötigt separates VTT (kann durch äquivalenten Spannungsteiler zwischen V CC und V EE ersetzt werden)<br />
� Inzwischen von DSM CMOS 'eingeholt'<br />
Verbesserung Differentielles ECL:<br />
� Anstelle V REF wird ein zweiter Eingang benutzt.<br />
� Man hat dann alle Vor/Nachteile von komplementärer Logik<br />
� Differentieller Eingang hat relativ gute 'Common mode rejection'<br />
(Ausgang bleibt unverändert, wenn sich DC-Niveau beider Eingänge gleichzeitig ändert)<br />
PECL, LVPECL:<br />
� Zur besseren Integration in CMOS inzwischen auch ('Positive ECL') mit VEE=GND, VCC=5V/3V<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 146
TTL<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 147
Vorläufer: Diode-Transistor-Logik (DTL)<br />
� Verwendung in früher (diskret aufgebauter) Logik<br />
� Beispiel NAND2-Gate:<br />
V CC<br />
Knoten wird auf '0.7V'<br />
gezogen, sobald mindestens<br />
einer der Eingänge 0V ist.<br />
Sonst ist er auf V CC-Potential<br />
– Ausgangsstrom des High-Levels wird durch Pullup-Widerstand limitiert<br />
– Low-Level ist nicht ganz GND (wie bei P-Last Logik)<br />
+ Ausgänge können verbunden werden und bilden so ein 'Wired-AND'<br />
� NOR Gate wird durch wired-AND gebildet: !(A+B) = !A ⋅ !B<br />
VLSI Design: <strong>Logikfamilien</strong><br />
A<br />
Knoten ist (idealisiert)<br />
0V oder '0.7V' (wegen B-E-Diode)<br />
B<br />
GND<br />
v cc<br />
Q<br />
Ausgang ist<br />
V CC oder (fast) Masse<br />
Transistor ist<br />
'OFF' oder 'ON'<br />
Q<br />
B A<br />
NOR2<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 148
Frühe Transistor-Transistor-Logik (TTL)<br />
� Eingangsstufe von DTL wird durch Transistoren ersetzt<br />
� Beispiel NAND2-Gate:<br />
C<br />
n +<br />
n -<br />
A B<br />
E<br />
n +<br />
Knoten ist (idealisiert)<br />
0V (A oder B = GND) oder<br />
'0.7V' (BE-Diode von M3)<br />
� Die Ansteuerung des Transistor-Gates ist verbessert<br />
� Die Low-Level am Eingang müssen sehr niedrig sein (V IL = 0.8V bei V CC = 5V)!<br />
� Ausgangsstrom des High-Levels immer noch durch Pullup-Widerstand limitiert. I L » I H<br />
� Ausgänge können verbunden werden und bilden so ein 'Wired-AND'<br />
VLSI Design: <strong>Logikfamilien</strong><br />
p -<br />
E<br />
n +<br />
B<br />
p +<br />
V CC<br />
A<br />
B<br />
GND<br />
M3<br />
Q<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 149
TTL mit Totem-Pole Ausgang<br />
� Ausgangsstufe wird durch zwei Transistoren ersetzt, die nach V CC oder Masse ziehen. Beispiel NAND2:<br />
A<br />
B<br />
V CC<br />
0V / 1.6V<br />
4kΩ 1.6kΩ 130Ω<br />
V CC / 0.8V<br />
GND<br />
� High-Level wird mit Transistor erzeugt,<br />
der abgeschaltet werden kann. Daher niedrigerer Stromverbrauch<br />
� Kein 'Wired-AND' am Ausgang mehr möglich<br />
M3<br />
Diode verhindert<br />
Stromfluß in M3<br />
für Q=GND<br />
� NOR Gates etwas komplizierter<br />
� Verbesserungen: Schottky-Diode verhindern Sättigung der Transistoren ⇒ 74Sxx oder 74LSxx (low power)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
GND / 0.8V<br />
1kΩ<br />
Q<br />
V CC-ε / 0V<br />
NOR2<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 150
0Vdc<br />
in<br />
VIN<br />
Q1<br />
4k 1.6k<br />
a<br />
Q2<br />
1k<br />
⇒ SPICE Simulation<br />
VLSI Design: <strong>Logikfamilien</strong><br />
V<br />
c<br />
b<br />
V<br />
SPICE Simulation TTL Inverter<br />
V<br />
Q4<br />
Q3<br />
130<br />
out<br />
I<br />
V<br />
V2<br />
0<br />
5V<br />
V(b) = V(c)<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 151
TTL Familien<br />
� Es gibt mehrerer verschiedene TTL <strong>Logikfamilien</strong>, die sich in der Geschwindigkeit, Leistungsaufnahme<br />
und der Treiberfähigkeit (Fan-Out) unterscheiden.<br />
� Grundidee bei den 'S' Familien ist der Einsatz von schnellen Schottky-Dioden (Metall-Si-Diode mit<br />
'Schwelle' von wenigen 100 mV), um die Sättigung der Bipolartransistoren (Kollektor wird wesentlich<br />
negativer als Basis, so daß die Basis-Kollektor Diode leitet) zu vermeiden:<br />
� Familien:<br />
- 74Sxx Schottky<br />
- 74LSxx Low Power Schottky<br />
- 74ASxx Advanced Schottky<br />
- 74ALSxx Advanced Low Power Schottky<br />
- 74Fxx Fast<br />
- ....<br />
VLSI Design: <strong>Logikfamilien</strong><br />
¼ 7400<br />
Dioden kappen<br />
negative<br />
EIngangssignale<br />
¼ 74S00 ¼ 74LS00<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 152
BiCMOS Logik<br />
� Durch die gleichzeitige Benutzung von Bipolar- und CMOS Transistoren auf einem Chip hat man mehr<br />
Möglichkeiten.<br />
� Meist werden die bipolaren Transistoren in Treiberstufen eingesetzt, um effizient hohe Kapazitäten<br />
umzuladen<br />
� In den meisten Technologien sind bipolare Transistoren jedoch nicht verfügbar...<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 153
� Bipolare Logiken (TTL, ECL) auf dem Rückzug<br />
� Mit NMOS und PMOS mehrere Möglichkeiten:<br />
- CMOS<br />
- P-Last-Logik<br />
- Pass-Gate-Logik<br />
- Dynamische Precharge Logik<br />
- Differentielle Logiken<br />
- andere...<br />
� Absoluter Mainstream (≥ 95%) ist CMOS<br />
Zusammenfassung<br />
�� Andere Typen in Nischen (Decoder, Sensorik, 'handoptimierte' Blöcke wie Addierer oder Multiplizierer...)<br />
� Als diskrete ICs entstehen immer neue Familien mit feinen Unterschieden:<br />
- Versorgungsspannung<br />
- Treiberfähigkeit<br />
- Dynamischer Stromverbrauch vs. Geschwindigkeit<br />
- Signalpegel<br />
- Kompatibilität mit anderen Familien (z.B. mit TTL: Schwelle muss niedriger liegen)<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 154
VERMISCHTES<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 155
� Sender hat NMOS Open-Drain Ausgang<br />
GTL Ausgangspegel<br />
� Externe Terminierung zu einer (niedrigen) Spannung VTT definiert High-Pegel<br />
� Niedrige Signalpegel reduzieren Elektromagnetische Emissionen (EMI) und Verlustleistung<br />
� Sender begrenzen z.T. die Anstiegszeit der Signale (zu schnelle Signale stören die Umgebung, EMI)<br />
� Kann als Pegelwandler ('Level-Shifter') benutzt werden: i.A. VTT ≠ VDD<br />
� Empfänger vergleicht Signal mit einer Schwelle, die aus VTT erzeugt wird. Sie liegt >VTT/2, da der low-<br />
Pegel nicht ganz Null sind.<br />
� Busse bilden Wired-AND Funktion<br />
� Störabstand ist recht klein<br />
� VTT = 1.2V für GTL, VTT = 1.5V für GTLP (GTL ‚Plus‘, etwas höherer Störabstand)<br />
Sender<br />
VLSI Design: <strong>Logikfamilien</strong><br />
VTT<br />
VTT<br />
R<br />
Vref<br />
2R<br />
Empfänger<br />
Differentieller<br />
Empfänger<br />
1.2V<br />
0.85V<br />
0.80V<br />
0.75V<br />
0.4V<br />
GND<br />
Pegel für<br />
VTT=1.2V<br />
VTT<br />
VIH Vref VIL V OL<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 156
Single ended:<br />
Signalpegel<br />
� TTL Niedrige Low-Levels, Asymmetrische Treiberfähigkeit. Signale daher meist active low.<br />
Unbenutzte Eingänge mit Pullup auf VCC legen.<br />
� CMOS Rail-to-rail Ausgänge, Schwelle auf halber Versorgung. Symmetrische Ausgänge.<br />
Davon abweichend: Spezielle Familien mit Kompatibilität zu TTL<br />
� ECL Negative Spannungen von ~-0.85V und ~-1.75V. Auch PECL<br />
� GTL Open Drain Ausgang mit niedriger Terminierungsspannung.<br />
Kleiner Swing, High-Speed.<br />
Niedriger Störabstand<br />
Differentiell:<br />
� ECL negative Pegel. Auch PECL (5V) oder LVPECL (3.3V)<br />
Bis 10 Gbps !<br />
� LVDS 1990 von National Semiconductor eingeführt.<br />
Treiber: +1.25V±175mV (d.h. 350mV Hub)<br />
Empfänger: Differenzverstärker mit Hysterese von 100mV.<br />
Hoher Common-Mode-Bereich<br />
Abschluß meist differentiell mit 100 oder 110Ω.<br />
Viele andere Varianten. 'Low Power'. Bis 2.5Gbps!<br />
� CML Nicht gut standardisiert. Meist Point-to-Point.<br />
Entsteht aus CML Logik, wenn Last in den Empfänger-IC verlagert wird.<br />
Low Swing. Sehr schnell.<br />
Externe Signalleitungen können auf konstanten Potential gehalten werden.<br />
VLSI Design: <strong>Logikfamilien</strong><br />
P. Fischer, ZITI, Uni Heidelberg, Seite 157
Ausblick: LVDS Treiber<br />
� Zur Erzeugung eines LVDS Signals kann man einen Strom I 0 in unterschiedliche Richtungen durch einen<br />
Lastwiderstand R TRM schicken:<br />
in in<br />
in in<br />
VLSI Design: <strong>Logikfamilien</strong><br />
in=1 in=0<br />
I 0<br />
R TRM<br />
R 0<br />
U high=U lo+I 0×R TRM<br />
U low=I 0×R 0<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 158
VLSI Design: <strong>Logikfamilien</strong><br />
Signalpegel<br />
Quelle: Texas Instruments<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 159
VLSI Design: <strong>Logikfamilien</strong><br />
Vergleich Geschwindigkeit / Treiberfähigkeit<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 161
VLSI Design: <strong>Logikfamilien</strong><br />
Entwicklung <strong>Logikfamilien</strong><br />
Quelle: Texas Instruments<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 162
VLSI Design: <strong>Logikfamilien</strong><br />
'Glue Logik'<br />
CSP:<br />
- 1.35 × 0.85mm2 - 1.35 × 0.85mm2 - 0.5mm dick<br />
- bump ∅ = 170µm<br />
- auch bleifrei<br />
P. Fischer, ZITI, Uni Heidelberg, Seite 163