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.
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:
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.
Eine undefinierte Spannung am Gate führt auch beim P-Kanal Transistor zu undefiniertem Verhalten. Dies wird wieder als Kurzschluß markiert.
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.
Ein typischer Wert für die Gate-Kapazität ist etwa Cg = 10 fF. Wenn der Eingang des Inverters zur Zeit t1 auf VCC gelegt wird, wird diese Kapazität aufgeladen (Ladung Q = Cg * VCC). Wenn der Eingang später zur Zeit t2 auf GND gelegt wird, wird der Kondensator entladen. Dies entspricht einem Strom von I = dQ/dt = (Cg * VCC)/(t2-t1).
Trotzdem kann die Gesamtstromaufnahme von großen CMOS Chips beträchtlich sein:
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.
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).
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.
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.
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.
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!
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:
Zur Ansteuerung eines T-Gate wird daher zusätzlich ein externer Inverter benötigt.
Um das Verhalten des T-Gate als Schalter zu demonstrieren, gewinnt dabei eine neu ausgewählte Spannung über der vorherigen Wert.
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.
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.
Um die Zeichnung des Flipflops zu vereinfachen, sind nicht alle C und NC Anschlüsse mit Linien verbunden, sondern nur mit den entsprechenden Namen versehen. (In der wirklichen Schaltung müssen natürlich alle C Eingänge und alle NC Eingänge mit Leitungen verbunden werden).
Das linke T-Gate wird direkt mit dem Taktsignal (C) angesteuert, das rechte dageben mit dem invertierten (NC).
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.