Java CMOS Gatter Demonstration


Diese Seite demonstriert N-MOS und P-MOS Transistoren und statische CMOS Gatter. Die Applets dienen als Test und 'working demonstration' für die Möglichkeiten der Sprache Java/Hotjava. Die Applets benutzen verschiedene Farben, um die Spannungen an den einzelnen Transistoren anzuzeigen. Sie können daher nur auf einem Farbdisplay sinnvoll benutzt werden.

Alle Kommentare, Hinweise und Fehlermeldungen sind willkommen: Bitte eine e-mail an Norman Hendrich schicken. Weitere Java-Applets auf unserem WWW-Server gibt es hier.


Grundlagen der CMOS Technologie

In CMOS (Complementary Metal-Oxide Semiconductor) Technologie werden sowohl N- als auch P-Kanal Transistoren benutzt, um logische Funktionen zu realisieren. Heute ist CMOS Technologie die dominante Halbleitertechnologie für Mikroprozessoren, Speicher (SRAM und DRAM) und anwenderspezifische integrierte Schaltungen (ASICs). Hauptvorteil von CMOS gegenüber NMOS oder bipolarer Technologie ist der viel kleinere Energieverbrauch - statische CMOS Gatter haben (fast) keinen statischen Energieverbrauch. Die Gatter verbrauchen nur Strom, wenn die Gatter wirklich umschalten. Dadurch lassen sich wesentlich mehr CMOS Gatter auf einem IC integrieren, als in NMOS oder bipolarer Technologie.

Die folgenden Java Applets demonstrieren die Funktionsweise von N-Kanal und P-Kanal Transistoren und danach einigen einfachen CMOS Gattern. Schließlich werden das Transmission-Gate und ein D-Flipflop vorgestellt.

Das erste Applet zeigt einen N-Kanal und einen P-Kanal Transistor (als Switch-Level Modell). Durch Anklicken mit der Maus können die Spannungen am Gate- und Source-Anschluß der Transistoren geändert werden. Die resultierende Spannung am Drain-Anschluß wird dann angezeigt. Das Applet benutzt Farben, um die verschiedenen Spannungspegel anzuzeigen:

Erklärung:
Jeder Transistor ist mit dem üblichen Schaltsymbol dargestellt, zusätzlich wird er durch einen dunkleren Hintergrund hervorgehoben.

Wie bei der Darstellung von CMOS Gattern üblich, wird beim N-Kanal Transistor der Source-Anschluß nach unten gelegt, beim P-Kanal Transistor nach oben.

Das Applet stellt den Kanal eines sperrenden Transistors durch ein schwarzes, nicht gefülltes Rechteck dar. Beim leitenden Transistor wird der Kanal mit der Farbe gefüllt, die der Source-Spannung entspricht.

N-Kanal Transistor:
Offenbar leitet der N-Kanal Transistor, wenn am Gate ein '1' Pegel anliegt. Er sperrt, wenn am Gate eine '0' anliegt. Eine Spannung dazwischen führt zu einem undefinierten Verhalten ('etwas leitend') und darf in digitalen Schaltungen nicht vorkommen. Das Applet markiert daher Kanal und Drain als Kurzschluß, wenn die Gatespannung undefiniert ('Z') ist.

P-Kanal Transistor:
Der P-Kanal Transistor verhät sich genau komplementär zum N-Kanal Transistor. Er leitet, wenn an seinem Gate ein '0' Pegel anliegt und sperrt bei einer '1' am Gate.

Eine undefinierte Spannung am Gate führt auch beim P-Kanal Transistor zu undefiniertem Verhalten. Dies wird wieder als Kurzschluß markiert.


Der CMOS Inverter

Das wichtigste und einfachste statische CMOS Gatter ist der Inverter. Der Inverter besteht aus je einem P-Kanal (oben) und einem N-Kanal Transistor (unten), die von einem gemeinsamen Eingangssignal 'A' gesteuert werden. Das Applet demonstriert, wie der Inverter funktioniert.

Die Spannungspegel sind wieder in Farben dargestellt: Eine logische '1' in rot, die '0' in blau, undefinierte Pegel ('Z') in orange und Kurzschlüsse in grün.

Das Applet zeigt, warum ein undefinierter Pegel am Eingang 'A' ein ernstes Problem darstellt: Eine offene Leitung kann irgendeinen Pegel annehmen, und im schlimmsten Fall eine Spannung nahe VCC/2. In diesem Fall sind bei heutigen Technologien beide Transistoren leitend. Das bedeutet, daß es einen direkten leitenden Pfad von VCC nach GND gibt - einen Kurzschluß. Diese Bedingung darf nur beim Umschalten des Eingangs von '1' nach '0' (und umgekehrt) ganz kurzfristig vorkommen, weil sonst der Stromverbrauch sehr stark ansteigt und die Transistoren durch Erwärmung zerstört werden können.

Beim Anklicken des Applets wird die Eingangsspannung des Inverters von GND nach VCC nach Z (undefiniert) nach GND usw. geändert und der Ausgabewert des Inverters dargestellt.

Funktion des CMOS Inverters:
Für eine Eingangsspannung von '1' (VCC) sperrt der P-Kanal Transistor, aber der N-Kanal Transistor leitet, und es gibt eine Verbindung von GND zum Ausgang Y. Die Spannung am Ausgang ist also auch 0V, entsprechend dem Wert '0'.

Bei einer '0' am Eingang (GND) leitet der P-Kanal Transistor und der N-Kanal Transistor sperrt. Der Ausgang Y wird also über den P-Kanal Transistor mit VCC verbunden, der Ausgangspegel ist '1'.

Bei undefiniertem Eingang ('Z') können im schlimmsten Fall beide Transistoren leiten und einen Kurzschluß verursachen.

Stromverbrauch des CMOS Inverters

Der CMOS Inverter zeigt, warum CMOS Schaltungen (fast) keinen statischen Stromverbrauch haben: Wenn die Eingangsspannung einen festen Wert '1 oder '0' hat, ist einer der beiden Transistoren gesperrt, und es fließt kein Strom. Deshalb fließt nur beim Umschalten des Gatters ganz kurz ein Strom, der sich aus zwei Beiträgen zusammensetzt:

Trotzdem kann die Gesamtstromaufnahme von großen CMOS Chips beträchtlich sein:

Die Ruhestromaufnahme von CMOS Schaltungen ist aber sehr gering. Als Beispiel verbraucht ein statisches CMOS SRAM von 2K*8 Bit nur etwa I ~ 1 uA.

Die anderen statischen CMOS Gatter (NAND, NOR, etc.) sind ebenfalls so aufgebaut, daß kein Ruhestrom fließt. Der Stromverbrauch dieser CMOS Gatter ist deshalb direkt proportional zur Schaltfrequenz. Das folgende Bild zeigt simulierte Spannungen und Ströe für einen typischen CMOS Inverter. Von oben nach unten: Eingangsspannung, Ausgangsspannung, Ausgangs- (Kurzschlußstrom), Eingangsstrom.


NAND und NOR Gatter

Die folgenden drei Applets zeigen die einfachen NAND und NOR Gatter mit zwei Eingängen sowie ein NAND Gatter mit 3 Eingängen. Ein Mausklick nahe einem Eingäng invertiert die jeweilige Eingangsspannung, und die resultierende Ausgangsspannung wird dargestellt.

Die Applets zeigen die Spannungen wieder in den oben verwendeten Farben an.

Um die Applets zu vereinfachen, werden nur '1' und '0' als Eingangsspannungen zugelassen. Natürlich kann es wieder zu Kurzschlüssen kommen, wenn Eingänge undefiniert sind (und Werte nahe VCC/2 erreichen).

Das NOR Gatter mit zwei Eingängen:

Das NOR Gatter mit zwei Eingängen ist das einfachste CMOS Gatter, das den Namen complementary MOS rechtfertigt: In CMOS werden nicht nur komplementäre N-Kanal und P-Kanal Transistoren verwendet, sondern auch die Anordnung (Topologie) der Transistoren ist komplementär: Im NOR Gatter sind die P-Kanal Transistoren in Reihe zwischen VCC und den Ausgang geschaltet, während die N-Kanal Transistoren zwischen GND und dem Ausgang parallel geschaltet sind.

Nur wenn beide Eingänge '0' sind, gibt es eine leitende Verbindung von VCC zum Ausgang (die Ausgangsspannung ist dann '1'), während beide N-Kanal Transistoren sperren. Wenn A oder B oder beide '1' sind, ist der Pfad von VCC zum Ausgang gesperrt, aber einer oder beide N-Kanal Transistoren leiten, und der Ausgang Y ist mit GND verbunden (Ausgangspegel also '0').

Man beachte die Leitung zwischen den beiden P-Kanal Transistoren. Wenn beide gesperrt sind, ist die Leitung undefiniert (floating). Das ist aber kein Problem, da dieses Leitungsstück ja nicht an Eingänge irgendwelcher Transistoren angeschlossen ist.

Das NAND Gatter mit zwei Eingängen

Im NAND Gatter sind die P-Kanal Transistoren zwischen VCC und dem Ausgang Y parallel geschaltet, während die N-Kanal Transistoren zwischen GND und Ausgang in Reihe geschaltet sind.

Beim NAND Gatter ist für die Eingangsbelegung A='0' und B='0' die Verbindung der beiden N-Kanal Transistoren offen, und der entsprechende Spannungspegel nicht definiert.

Das NAND Gatter mit drei Eingängen:

Die Verallgemeinerung der NOR und NAND Gatter mit zwei Eingängen ist jetzt offensichtlich. Als Beispiel zeigt das nächste Applet ein NAND Gatter mit drei Eingängen. Wie beim NAND Gatter mit 2 Eingängen sind alle (drei) P-Kanal Transistoren parallel zwischen VCC und Ausgang Y geschaltet, und die N-Kanal Transistoren sind alle (drei) in Reihe geschaltet. Wieder treten undefinierte Leitungen zwischen den in Reihe geschalteten Transistoren auf, wenn diese gesperrt sind. Auch hier ist das kein Problem, da diese Spannungen nicht an Gate-Eingänge von anderen Transistoren angeschlossen sind.

NOR Gatter mit drei und mehr Eingängen werden entsprechend aufgebaut - alle P-Kanal Transistoren sind zwischen VCC und Y in Reihe geschaltet, und die N-Kanal Transistoren sind zwischen GND und Y parallel geschaltet.

Allerdings bedeutet die Reihenschaltung von Transistoren längere Schaltzeiten (besonders für P-Kanal Transistoren) und einen Spannungsabfall über die Transistoren. Deshalb sind NAND Gatter für aktuelle Zellbibliotheken meistens auf 4 Eingänge beschränkt (d.h. 4 N-Kanal Transistoren in Reihe geschaltet), und NOR Gatter werden sogar auf 3 Eingänge begrenzt (3 P-Kanal Transistoren in Reihe).

Gatter mit mehr Eingängen müssen dann aus mehreren einfacheren Gattern aufgebaut werden.


Komplexgatter

Wie in NMOS Technologie gibt es in CMOS bestimmte logische Funktionen, die sich sehr effizient durch Gatter realisieren lassen. Diese Gatter werden Komplexgatter genannt, weil sie eine komplexe logische Funktion realisieren - obwohl der Aufbau der Gatter in CMOS Technologie sehr einfach ist.

Typische Beispiele für Komplexgatter die in fast allen Zellbibliotheken vorhanden sind, sind Kombinationen von AND-OR-INVERT und OR-AND-INVERT. Als Beispiel zeigt das nächste Applet das CMOS Komplexgatter für die Funktion Y = !((A ^ B) v (C ^ D ^ E)), also die Negation des OR zweier AND Verknüpfungen. Das Gatter heißt daher AOI32.

Um das Schaltbild für das Gatter zu vereinfachen, sind die Eingangsleitungen nicht komplett dargestellt. Statt dessen sind für jeden Eingang (A bis E) nur zwei kurze Leitungsstücke an den Gattern der entsprechenden Transistoren gezeigt. Um etwa die Spannung des Eingangs A umzuschalten, erlaubt das Applet deshalb einen Mausklick entweder nahe am Gate des N-Kanal Transistors oder nahe am Gate des P-Kanal Transistors für Eingang A.

Wieder ist die Anordnung der N-Kanal und P-Kanal Transistoren komplementär. P-Kanal Transistoren in Reihe entsprechen parallel geschalteten N-Kanal Transistoren, und umgekehrt.

Die Verallgemeinerung auf andere Komplexgatter ist offensichtlich. Dabei sind Reihenschaltungen von mehr als drei Transistoren wieder problematisch. Typische Zellbibliotheken enthalten deshalb die Gatter AOI21 bis AOI33 und OAI21 bis OAI33. Übungsaufgabe: Eines dieser Gatter (auf Papier) entwerfen und die Funktion verstehen!


Das CMOS Transmission-gate

Eine genauere Analyse des Verhaltens von MOS Transistoren zeigt, daß der Kanal im gesperrten Zustand zwar tatsächlich einen sehr hohen Widerstand aufweist. Dagegen ist ein 'leitender' Transistor nicht wirklich ideal leitend - der Kanal behält statt dessen einen gewissen Bahnwiderstand, der zusätzlich von den Spannungen am Gate, Source und Drain abhängt.

Ein beträchtlicher Spannungsabfall über den Transistor tritt insbesondere für N-Kanal Transistoren auf, wenn die Spannung am Source-Anschluß nahe VCC liegt; entsprechend für P-Kanal Trnasistoren, wenn die Source Spannung nahe GND liegt. Dies ist kein Problem in den oben skizzierten statischen CMOS-Gattern, wo ja alle Source Anschlüsse von N-Kanal Transistoren nahe GND, und alle Source Ansclhüsse von P-Kanal Transistoren nahe VCC liegen.

Aber dieser Spannungsabfall verhindert die Reihenschaltung von mehreren Transistoren als Schalter, die sonst zur effizienten Realisierung bestimmter Logikgatter genutzt werden könnte.

Eine trickreiche Kombination eines N-Kanal und eines P-Kanal Transistors erlaubt aber trotzdem, einen sehr kompakten Schalter in CMOS Technologie zu realisieren: das sogenannte Transmission-Gate. Es wird im folgenden Applet demonstriert:

Funktion des T-Gate:

Die Gate-Spannungen der beiden Transistoren sind immer zueinander invers. Wenn die Spannung am Gate des N-Kanal Transistors 'GND' ist, hat der P-Kanal Transistor am Gate also 'VCC': Beide Transistoren sperren; und die Source und Drain Anschlüsse sind gegeneinander isoliert.

Wenn die Spannung am Gate des N-Kanal Transistors aber 'VCC' ist, hat der P-Kanal Transistor 'GND', und beide Transistoren leiten. Wenn dann am Source der beiden Transistoren ein VCC Pegel anliegt, gibt es einen Spannungsabfall über den N-Kanal Transistor, aber (fast) keinen Spannungsabfall über den P-Kanal Transistor. Falls dagegen am Source ein GND Pegel anliegt, ist der P-Kanal Transistor nicht perfekt leitend, aber über den N-Kanal Transistor gibt es fast keinen Spannungsabfall. In beiden Fällen wird die Spannung vom Source ohne Verluste zum Drain durchgeschaltet. Wegen der Symmetrie der Transistoren kann das T-Gate in beide Richtungen benutzt werden (also auch vom Drain zum Source). Deshalb werden die Anschlüsse des T-Gate auch nicht mit Source und Drain bezeichnet, sondern einfach mit 'L' (links) und 'R' (rechts).

Das T-Gate wirkt also wie ein (fast) verlustloser Schaltern.


Das CMOS D-Latch mit T-Gates

Das oben demonstrierte T-Gate erlaubt in CMOS Technologie sehr effiziente Realisierungen für wichtige Funktionen. Das vielleicht wichtigste Beispiel wird im nächsten Applet vorgeführt.

Ein normales pegelgesteuertes D-Latch kann - wie in der B Vorlesung gezeigt - aus vier NAND-Gattern mit jeweils 2 Eingägen realisiert werden. Wie oben demonstriert, werden für jedes NAND Gatter mit 2 Eingägen vier Transistoren benötigt - insgesamt also 16 Transistoren für das D-Latch. (Hinweis: Man versuche, diese Schaltung auf Papier zu skizzieren. Der Aufbau des pegelgesteuerten D-Flipflops ist eine sehr beliebte Prüfungsfrage!)

Das nächste Applet zeigt, wie ein D-Latch mit nur 8 Transistoren (zwei T-Gates und zwei Inverter) aufgebaut werden kann, wenn T-Gates verwendet werden und sowohl das normale Taktsignal als auch das invertierte Taktsignal bereits zur Verfügung stehen (dies ist in großen VLSI Schaltungen häufig der Fall). Gegenüber der normalen Realisierung aus NAND Gattern spart diese L&oum;sung 50% der Transistoren und damit der Chipfläche ein. Wenn nur das einfache Taktsignal zur Verfügung steht, wird ein zusätzlicher Inverter benötigt, um das inverse Taktsignal zu erzeugen. Trotzdem braucht das T-Gate D-Latch dann immer noch nur 10 Transistoren statt 16.

Die Funktion des T-Gate Flipflops ist offensichtlich ganz einfach. Wenn der Takteingang C auf '1' liegt, ist das linke T-Gate leitend, und der Wert der Dateneingangs wird zum ersten Inverter durchgeschaltet. Dieser erzeugt den Wert NOT(D) und steuert den zweiten Inverter, der Q = NOT(NOT(D)) = D als Ausgangswert liefert. In diesem Zustand mit C = '1' ist das Latch also transparent.

Wenn dagegen der C Eingang auf '0' umgeschaltet wird, sperrt das linke T-Gate, aber das Rückkopplungs-T-Gate wird leitend. Dessen R-Eingang liegt ja aber noch auf Q. Der erste Inverter wird daher mit dem Wert Q angesteuert und erzeugt daraus NOT(Q). Der zweite Inverter erzeugt daraus NOT(NOT(Q)) = Q und treibt damit wiederum den ersten Inverter. Der aktuelle Wert von Q wird stabil gespeichert, bis der Takteingang C wieder auf '1' geschaltet wird.


Dynamische CMOS Gatter

Diese Einträge sind leider noch nicht fertig.



letzte Änderung: 30.03.2007 (22.05.96), Norman Hendrich