Sequentielle Logik meistern: Das D-Latch erklärt und simuliert
Ein D-Latch macht aus einem getakteten SR-Kern einen Speicher mit einem Eingang. Leiten Sie seine Gleichung her, verstehen Sie die Transparenz und lernen Sie die Zeitgrenzen kennen, die das Symbol verbirgt.
Kurz gesagt: Ein D-Latch speichert ein Bit und folgt . Wenn die Freigabe HIGH ist, folgt Q D nach der Ausbreitungsverzögerung; wenn die Freigabe LOW ist, hält Q seinen Wert. Die Verknüpfung von D und verhindert, dass der gewöhnliche Dateneingang Set und Reset zugleich aktiviert, doch ein physisches Latch hat weiterhin Setup-/Hold-Anforderungen und kann nahe seiner schließenden Flanke metastabil werden.
Sequentielle Logik beginnt oft mit dem SR-Latch. Seine zwei unabhängigen Steuersignale erlauben eine ungültige aktivierte Kombination. Ein gesteuertes D-Latch leitet diese Steuersignale aus einem einzigen Dateneingang und dessen Komplement ab, beseitigt diese Kombination im Normalbetrieb und fügt einen expliziten Zeitraum hinzu, in dem neue Daten eintreten dürfen.

Das D_LATCH aufgeschlüsselt: Was es ist und warum es wichtig ist
Im Kern ist ein D_LATCH ein pegelempfindliches Speicherelement, das von einer SR-Struktur abgeleitet ist. Im booleschen Modell hält seine Eingangslogik Set und Reset gegenseitig exklusiv. Es steht zwischen kombinatorischer Logik und flankengesteuertem Speicher: Gatter hängen von aktuellen Eingängen ab, während das Latch einen vorherigen Wert behalten kann.
Die Komponente besitzt zwei primäre Eingänge und zwei Ausgänge:
- D (Daten): Ein einzelner Eingang, der bestimmt, welchen Wert (0 oder 1) das Latch speichern soll.
- E (Freigabe): Häufig mit „E“ oder „G“ (für Gatter) beschriftet, wirkt dieser Eingang als Steuerschalter. Er legt fest, wann das Latch den Eingang D beachtet.
- Q: Der primäre Ausgang, der die gespeicherten Daten widerspiegelt.
- : Der komplementierte (invertierte) Ausgang der gespeicherten Daten.
Das Verhalten wird durch zwei unterschiedliche Betriebsarten definiert, die vom Zustand des Freigabesignals abhängen. Wenn , befindet sich das Latch im transparenten Modus. Der Ausgang Q folgt einfach dem Zustand des Eingangs D. Ändert sich D, ändert sich Q beinahe augenblicklich mit. Wenn , wechselt das Latch in den gespeicherten Modus. Der Ausgang Q ignoriert den Eingang D vollständig und hält den letzten Wert, den er unmittelbar vor dem Übergang von E von 1 auf 0 hatte.
Technische Spezifikation und Wahrheitstabelle
Um das D_LATCH zu meistern, müssen Sie über das Symbol hinausblicken und die Logik verstehen, die seine Zustandsübergänge steuert. Die Wahrheitstabelle definiert den nächsten Zustand von Q () anhand der aktuellen Eingänge eindeutig. Beachten Sie: Wenn E 0 ist, ist der Eingang D irrelevant; dies wird mit einem „X“ für „unbestimmt“ bezeichnet.
| E (Freigabe) | D (Daten) | Aktion | |
|---|---|---|---|
| 0 | X | Halten (gespeichert) | |
| 1 | 0 | 0 | Rücksetzen (transparent) |
| 1 | 1 | 1 | Setzen (transparent) |
Die charakteristische Gleichung
Dieses Verhalten lässt sich mit der charakteristischen Gleichung des D_LATCH mathematisch ausdrücken. Diese Gleichung ist die formale Definition der Schaltungsfunktion und für die boolesche Vereinfachung größerer sequentieller Entwürfe unerlässlich.
Leiten wir sie aus den Grundprinzipien her. Das D_LATCH ist intern ein gesteuertes SR-Latch, bei dem gilt:
Die charakteristische Gleichung des SR-Latch lautet . Durch Einsetzen erhalten wir:
Nach Anwendung des De-Morgan-Gesetzes gilt: . Damit:
Da bereits den Fall abdeckt, in dem sowohl D als auch Q relevant sind, wird der Term durch boolesche Vereinfachung (Konsenssatz) absorbiert. Es bleibt das saubere Ergebnis:
Aufgeschlüsselt in seine logischen Bestandteile:
- Der Term steht für die Transparenz: Ist die Freigabe HIGH, wird der Ausgang zu dem Wert von D.
- Der Term steht für den Speicher: Ist die Freigabe LOW, behält der Ausgang seinen aktuellen Zustand .
- Die Gleichung ist ein Multiplexer in Verkleidung: Das Freigabesignal wählt zwischen neuen Daten und dem gespeicherten Wert.
Die Logik im Inneren: Von SR zu D
Man kann sich das D_LATCH als ein „gesteuertes SR_LATCH“ mit einem cleveren Kniff vorstellen. In der internen Gatterstruktur führen wir den Eingang D direkt zur „Set“-Seite und einen invertierten D-Eingang (über ein NICHT-Gatter) zur „Reset“-Seite. Dies garantiert, dass S und R stets Gegensätze sind, wenn die Schaltung freigegeben ist.
Wenn , erzeugt Set und Reset. Der normale Datenpfad kann daher nicht beide gleichzeitig anfordern. Wenn , werden beide Steuersignale deaktiviert und der Kern hält seinen Zustand. Reale Gatter schalten nicht gleichzeitig: Übergänge von D und der Freigabe nahe dem Schließen können Timing-Anforderungen verletzen. Das D-Latch vermeidet somit den Fehler der SR-Wahrheitstabelle, ohne Metastabilität auszuschließen.

Häufiger Fallstrick: Die Gefahr der Transparenz
Die größte Stärke des D_LATCH – seine Transparenz – ist in komplexen Hochgeschwindigkeitssystemen zugleich seine größte Schwäche. Dies ist der entscheidende Fallstrick, über den viele Lernende stolpern, wenn sie von einfachen Schaltungen zum CPU-Entwurf wechseln.
Weil der Ausgang Q dem Eingang D während der gesamten Dauer folgt, in der die Freigabe HIGH ist, gelangen Rauschen, Glitches oder unbeabsichtigte Signaländerungen auf der D-Leitung direkt zum Ausgang. Dieses Verhalten heißt pegelempfindlich.
Stellen Sie sich das Freigabesignal als Fenster vor. Bei ist das Fenster weit geöffnet. Sie sehen alles, was draußen geschieht (den D-Eingang), in Echtzeit, einschließlich eines vorbeifliegenden Vogels oder eines fallenden Blatts (der „Glitches“). Bei wird das Fenster sofort milchig und zeigt eine Momentaufnahme des allerletzten Gesehenen.
Warum Transparenz in der Praxis gefährlich ist: Betrachten Sie ein System, in dem der Ausgang eines D_LATCH durch kombinatorische Logik zurück zum Eingang desselben oder eines anderen Latch geführt wird. Während die Freigabe HIGH ist, pflanzt sich jede Änderung am Ausgang sofort durch die Logik fort und erscheint am Eingang, der daraufhin den Ausgang erneut ändert. Dadurch entsteht über die kombinatorische Logik ein Rückkopplungspfad, der Folgendes verursachen kann:
- Unbeabsichtigte mehrfache Zustandsänderungen innerhalb eines einzigen Freigabefensters.
- Glitch-Weitergabe, bei der eine vorübergehende Spitze auf der Datenleitung zu Q durchgereicht wird und nachgelagerte Schaltungen verfälscht.
- Unvorhersehbares Timing, bei dem der endgültig gespeicherte Wert davon abhängt, wann die Freigabe exakt LOW wird – ein Albtraum für die Verifikation.
Viele synchrone Entwürfe verwenden D-Flipflops, deren von außen sichtbare Übernahme einer Taktflanke zugeordnet ist. Andere Hochleistungsentwürfe nutzen bewusst Zweiphasen-Latches zum Zeitausleihen. Keine der beiden Entscheidungen macht eine Timing-Analyse überflüssig; jede definiert einen anderen Satz von Setup-, Hold-, Transparenz- und Taktbedingungen.
Oszilloskop-Verifikation: Das Signal sehen
Um das Timing eines D_LATCH wirklich zu verstehen, müssen Sie die Wellenformen sehen. In digisim.io ist das OSCILLOSCOPE Ihr bester Freund zum Debuggen dieser Zeitbeziehungen.
Wenn Sie ein OSCILLOSCOPE an die Pins E, D und Q anschließen, werden Ihnen einige entscheidende Verhaltensweisen auffallen:
- Ausbreitungsverzögerung (): Ein physisches oder verzögerungsbewusstes Modell zeigt während der Transparenz die Zeit zwischen einer Änderung von D und der Reaktion von Q. Ein idealer Logiksimulator modelliert diese Verzögerung möglicherweise nicht.
- Der Speichermoment: Beobachten Sie die Q-Leitung genau dann, wenn E von 1 auf 0 fällt. Welchen Wert D in genau dieser Mikrosekunde hatte, hält Q fest, unabhängig davon, was D danach tut.
- Glitch-Erfassung: Wenn Sie D bei HIGH von E schnell umschalten, sehen Sie diese Impulse auf Q gespiegelt. Schalten Sie D bei LOW von E um, bleibt die Q-Leitung auf dem OSCILLOSCOPE eine flache, gleichmäßige horizontale Linie.
Praxisanwendungen: Über das Steckbrett hinaus
Das D_LATCH ist nicht nur eine akademische Übung; es ist eine Arbeitspferd-Komponente, die sich in der Architektur der Geräte findet, die Sie täglich nutzen.
1. CPU-Pipelineregister
Pipelines platzieren Zustände zwischen Stufen, sodass unterschiedliche Instruktionen gleichzeitig verschiedene Stufen belegen können. Je nach Taktmethode können diese Grenzen flankengesteuerte Flipflops oder abwechselnde Latch-Phasen verwenden. Latch-basierte Pipelines können Zeit über eine Grenze hinweg ausleihen, erfordern jedoch sorgfältige Kontrolle von Transparenz, Nichtüberlappung und Hold-Timing.
2. Adressdemultiplexing (das Intel-8086-Beispiel)
Um physische Pins auf integrierten Schaltungen zu sparen, verwendeten frühe Mikroprozessoren wie der Intel 8085 und 8086 einen gemultiplexten Adress-/Datenbus. Während eines Teils eines Maschinenzyklus führten die Pins eine Speicheradresse, während eines anderen Teils Daten.
Ingenieure verwendeten ein externes D_LATCH (etwa das bekannte transparente Oktal-Latch 74LS373), um diese Signale zu „demultiplexen“. Der Prozessor legte die Adresse auf den Bus und gab dem Signal ALE einen Impuls. Das D_LATCH übernahm die Adresse und hielt sie für die Speicherchips, wodurch die Pins des Prozessors anschließend zum Senden oder Empfangen von Daten frei wurden. Ohne das D_LATCH hätten wir doppelt so viele Pins auf der CPU benötigt, was sie größer und erheblich teurer gemacht hätte.

Das D_LATCH auf digisim.io aufbauen
Theorie ist unverzichtbar, doch Intuition entsteht beim Verdrahten. Der folgende Aufbau verwendet zwei UND-Gatter, zwei NOR-Gatter und ein NICHT-Gatter.
Schritt-für-Schritt-Aufbau
- Gatter platzieren: Ziehen Sie zwei UND-Gatter, zwei NOR-Gatter und ein NICHT-Gatter auf die Arbeitsfläche.
- Eingänge einrichten: Fügen Sie zwei INPUT_SWITCH-Komponenten hinzu. Beschriften Sie eine mit „Daten“ und die andere mit „Freigabe“.
- Die Eingangslogik:
- Verbinden Sie „Daten“ mit dem oberen UND-Gatter.
- Verbinden Sie „Daten“ mit dem NICHT-Gatter und anschließend den NICHT-Ausgang mit dem unteren UND-Gatter.
- Verbinden Sie „Freigabe“ mit dem zweiten Eingang beider UND-Gatter.
- Der Speicherkern:
- Verbinden Sie den Ausgang des oberen UND-Gatters mit dem Eingang eines NOR-Gatters.
- Verbinden Sie den Ausgang des unteren UND-Gatters mit dem Eingang des zweiten NOR-Gatters.
- Die Kreuzkopplung: Das ist der magische Teil. Verbinden Sie den Ausgang des oberen NOR-Gatters mit dem Eingang des unteren NOR-Gatters. Verbinden Sie den Ausgang des unteren NOR-Gatters zurück mit dem Eingang des oberen NOR-Gatters.
- Ausgang: Verbinden Sie ein OUTPUT_LIGHT mit dem Ausgang des unteren NOR-Gatters. Das ist Ihr Q.
Das SimCast-Erlebnis
Die SimCast-Funktion in digisim.io spielt die Signalausbreitung in Zeitlupe ab. Beobachten Sie, wie das Signal „Freigabe“ als Türsteher wirkt: Ein HIGH bei Daten erreicht die Eingangs-UND-Gatter, stoppt dort jedoch, bis auch die Freigabe HIGH wird.
Verwandte Themen im Curriculum
Während Sie die digitale Logik auf digisim.io weiter erkunden, vertiefen diese verwandten Themen Ihr Verständnis:
Das D_LATCH ist ein Wendepunkt in unserem strukturierten Lernpfad auf digisim.io. Es markiert den Übergang von „was passiert jetzt?“ zu „was ist zuvor passiert?“.
- Das SR-Latch – das Fundament und das Problem des verbotenen Zustands.
- Das D_LATCH (dieser Artikel) – pegelempfindlicher Speicher.
- Das D-Flipflop – der Wechsel von Pegelempfindlichkeit zu Flankentriggerung.
- SISO-, SIPO-, PISO- und PIPO-Schieberegistermodi – Ein-Bit-Speicher zu Mehrbit-Datenbewegung zusammensetzen.
- Setup, Hold und Metastabilität – die Timing-Bedingungen hinter jeder gespeichert schaltenden Schaltung.
Abschließende Gedanken: Der erste Schritt zum Speicher
Das D-Latch macht bistabile Rückkopplung zu gesteuertem, pegelempfindlichem Speicher. Es verhindert, dass der normale D-Eingang Set und Reset gleichzeitig anfordert, während Transparenz und Timing an der schließenden Flanke zentrale Entwurfsfragen bleiben.
Lesen Sie weiter mit dem D-Flipflop, um zu sehen, wie flankengesteuerter Speicher die Schnittstelle verändert, oder öffnen Sie die D-Latch-Komponentenreferenz.



