14.12.2012 Aufrufe

Logikfamilien (4.2 MB)

Logikfamilien (4.2 MB)

Logikfamilien (4.2 MB)

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!