3-zu-8-Decodierer
Übersicht
- Zweck: Der 3-zu-8-Decodierer ist eine kombinatorische Digitalschaltung, die einen 3-Bit-Binäreingangscode in acht sich gegenseitig ausschließende Ausgangsleitungen umwandelt und je nach Eingangswert genau eine Ausgangsleitung aktiviert.
- Symbol: Üblicherweise dargestellt als rechteckiger Block mit drei binären Eingängen (A0, A1, A2), einem Aktivierungseingang (EN) und acht Ausgängen (Y0–Y7).
- Rolle in DigiSim.io: Dient als wesentlicher Baustein in digitalen Systemen für Adressdecodierung, Speicherauswahl, Datendemultiplexing und die Erzeugung von Steuersignalen.

Funktionsbeschreibung
Logikverhalten
Der 3-zu-8-Decodierer „decodiert" die binäre Information in ein One-Hot-Ausgangsformat, bei dem für jede eindeutige Eingangskombination genau eine der acht möglichen Ausgangsleitungen aktiv ist. Bei aktivierter Komponente wird die Ausgangsleitung aktiviert, die dem Binärwert der Eingänge entspricht; alle anderen Ausgänge bleiben inaktiv.
Wahrheitstabelle:
| Enable | A2 | A1 | A0 | Y7 | Y6 | Y5 | Y4 | Y3 | Y2 | Y1 | Y0 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | X | X | X | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Hinweis: X bedeutet „beliebig". Manche Implementierungen verwenden aktiv-low-Ausgänge oder einen aktiv-low-Aktivierungseingang, wodurch die oben gezeigte Ausgangslogik invertiert wird.
Eingänge und Ausgänge
Eingänge:
- A0: Niedrigwertigstes Bit (LSB) des 3-Bit-Binäreingangs.
- A1: Mittleres Bit des 3-Bit-Binäreingangs.
- A2: Höchstwertiges Bit (MSB) des 3-Bit-Binäreingangs.
- EN: Aktivierungseingang, der steuert, ob der Decodierer aktiv ist.
Ausgänge:
- Y0–Y7: Acht sich gegenseitig ausschließende Ausgänge, von denen bei aktiviertem Decodierer jeweils nur einer aktiv ist. Y0 entspricht der Binäreingabe 000, Y1 entspricht 001 und so weiter bis Y7 für 111.
Konfigurierbare Parameter
- Ausgangslogik: Ob die Ausgänge aktiv-high oder aktiv-low sind.
- Aktivierungslogik: Ob der Aktivierungseingang aktiv-high oder aktiv-low ist.
- Mehrere Aktivierungen: Manche Implementierungen unterstützen mehrere Aktivierungseingänge (mit AND/OR-Funktion).
- Laufzeitverzögerung: Die Zeit, die die Ausgänge benötigen, um nach einer Eingangsänderung zu wechseln.
Visuelle Darstellung in DigiSim.io
Der 3-zu-8-Decodierer wird als rechteckiger Block mit Eingangspins auf der linken Seite (A0, A1, A2, EN) und acht Ausgangspins (Y0–Y7) auf der rechten Seite dargestellt. In einer Schaltung zeigt die Komponente durch Farbänderungen auf den Verbindungsleitungen visuell den aktiven Ausgang an.
Pädagogischer Wert
Schlüsselkonzepte
- Binäre Decodierung: Veranschaulicht, wie digitale Systeme kompakte Binärcodes in einzelne Steuerleitungen umwandeln.
- One-Hot-Codierung: Zeigt, wie Binärwerte in einem Format dargestellt werden können, in dem nur ein Bit aktiv ist.
- Adressdecodierung: Verdeutlicht eine grundlegende Technik, die in Speicher- und I/O-Systemen eingesetzt wird.
- Signaldemultiplexing: Stellt das Konzept der Signalführung auf Basis binärer Adressierung vor.
- Kombinatorische Logik: Bietet ein praktisches Beispiel für den Entwurf kombinatorischer Schaltungen mit AND- und NOT-Gattern.
Lernziele
- Verstehen, wie Binärwerte in sich gegenseitig ausschließende Ausgangssignale decodiert werden können.
- Den Zusammenhang zwischen binärer Adressierung und Komponentenauswahl in digitalen Systemen erlernen.
- Erkennen, wie Decodierer eine effiziente Steuerung mehrerer Subsysteme über minimal viele Eingangsleitungen ermöglichen.
- Decodierkonzepte für Speicheradressierung, Peripherieauswahl und Erzeugung von Steuersignalen anwenden.
- Erfassen, wie Decodierer kaskadiert oder kombiniert werden, um größere Decodierstrukturen zu bilden.
Anwendungsbeispiele/Szenarien
- Speicherchip-Auswahl: Verwendung des Decodierers zur Auswahl eines von acht Speicherchips anhand von Adressbits.
- I/O-Geräteadressierung: Aktivierung eines bestimmten Peripheriegeräts aus acht möglichen Optionen.
- Befehlsdecodierung: Erzeugung von Steuersignalen aus Befehlsopcodes in einem Prozessor.
- Multiplexed-Display-Steuerung: Auswahl, welche Ziffer in einer mehrstelligen Anzeige aktiviert wird.
- Testpunktauswahl: Führung eines Testsignals zu einem von acht möglichen Testpunkten.
- Implementierung von Zustandsmaschinen: Erzeugung zustandsabhängiger Steuersignale in einem digitalen Controller.
- Datenführung: Lenkung von Daten zu einem von acht möglichen Zielen anhand eines 3-Bit-Selektors.
Technische Hinweise
- Der 3-zu-8-Decodierer kann mit drei Invertern und acht 4-Eingangs-AND-Gattern realisiert werden.
- Jede Ausgangsleitung folgt der booleschen Funktion: Y(n) = EN • An • Am • Ak (wobei n die Ausgangsnummer und An, Am, Ak die Adressbits oder ihre Komplemente sind).
- Häufige IC-Implementierungen sind der 74138 (3-zu-8-Decodierer mit aktiv-low-Ausgängen) und der 74238 (3-zu-8-Decodierer mit aktiv-high-Ausgängen).
- Durch Kaskadierung zweier 3-zu-8-Decodierer mit einem zusätzlichen Adressbit lässt sich ein 4-zu-16-Decodierer realisieren.
- Die Laufzeitverzögerung beträgt in Standard-IC-Implementierungen typischerweise 10–25 ns, abhängig von der Technologie.
- In DigiSim.io modelliert der Decodierer die Funktion gängiger Decodierer-ICs mit korrekter Ausgangsaktivierung.
Eigenschaften
Eingangskonfiguration:
- Drei binäre Adresseingänge (A0, A1, A2)
- Optionaler Aktivierungseingang (EN)
- Eingangslast entsprechend der verwendeten Logikfamilie
- Standard-Logikpegel (typischerweise TTL- oder CMOS-kompatibel)
- In manchen Implementierungen mit aktiv-low-Aktivierung
- Kann mehrere Aktivierungseingänge enthalten (AND/OR-Funktion)
- Üblicherweise mit Eingangsschutz gegen statische Entladung
Ausgangskonfiguration:
- Acht sich gegenseitig ausschließende Ausgänge (Y0–Y7)
- Aktiv-high- oder aktiv-low-Ausgänge je nach Implementierung
- One-Hot-Codierung (bei Aktivierung jeweils nur ein aktiver Ausgang)
- Alle Ausgänge inaktiv, wenn der Decodierer deaktiviert ist
- In der Lage, Standard-Digitallasten zu treiben
- Kann Open-Collector-/Open-Drain-Varianten für Wired-OR-Funktionalität enthalten
- Manche Implementierungen verfügen über gelatchte Ausgänge
- Ausgangslast beeinflusst die Laufzeitverzögerung
Funktionalität:
- Wandelt 3-Bit-Binärcode in eine von acht Ausgangsleitungen um
- Sich gegenseitig ausschließende Ausgänge (One-Hot-Codierung)
- Aktivierungseingang steuert den Gesamtbetrieb
- Kombinatorischer Logikbetrieb (kein Takt erforderlich)
- Kann für größere Decodierer kaskadiert werden
- Binär-zu-Unär-Wandler
- Häufig mit aktiv-low-Ausgängen für Chipauswahl
- Ausgang ausschließlich durch den aktuellen Eingangszustand bestimmt
Laufzeitverzögerung:
- Eingang zu Ausgang: typischerweise 7–20 ns
- Aktivierung zu Ausgang: typischerweise 8–25 ns
- Technologieabhängig (TTL, CMOS usw.)
- Konsistente Verzögerung über alle Ausgangsleitungen ist wünschenswert
- Kritischer Parameter in schnellen Speichersystemen
- Wird durch die Ausgangslast beeinflusst
- Temperatur- und spannungsabhängig
- Beeinflusst System-Timing und Adress-Setup-Anforderungen
Fan-Out:
- Treibt typischerweise 10–20 Standardlasten
- Ausgangsstrom durch die Logikfamilie definiert
- Kann bei hohem Fan-Out Pufferung erfordern
- Kritischer Parameter in Chip-Select-Anwendungen
- Aktive Ausgänge müssen ausreichende Treiberleistung für die Zielgeräte bieten
- Konsistent mit den Spezifikationen der Logikfamilie
- Kann zwischen Geräten derselben Familie variieren
Stromverbrauch:
- Niedrige bis moderate Anforderungen
- Statischer Verbrauch in CMOS-Implementierungen minimal
- Dynamischer Verbrauch steigt mit der Schaltfrequenz
- Proportional zur Anzahl aktiver Ausgänge
- Technologieabhängig (CMOS hat den geringsten statischen Verbrauch)
- Verbrauch steigt mit der Fan-Out-Last
- Typische Werte: 5–25 mW aktiv, <1 mW Standby (CMOS)
Schaltungskomplexität:
- Mittlere Komplexität
- Mit elementaren Logikgattern realisiert
- AND-basierte oder NAND-basierte Implementierungen üblich
- Erfordert 8 separate Decodierpfade
- Zusätzliche Logik für die Aktivierungsfunktion
- Integrierte Implementierungen reduzieren die Anzahl externer Bauelemente
- Geringe Komplexität im Verhältnis zur gebotenen Funktionalität
Implementierungsmethoden
Implementierung auf Gatterebene
- Aufgebaut aus elementaren Logikgattern (AND, NOT)
- Jeder Ausgang benötigt ein 4-Eingangs-AND-Gatter (3 Adresseingänge + Aktivierung)
- Eingangsinverter erzeugen bei Bedarf Komplementsignale
- Aktivierungssignal allen Ausgängen gemeinsam
- Direkte Umsetzung der Decodierfunktion
- Anschauliches Lehrbeispiel für die Decodierfunktion
- Geradlinig, erfordert aber viele Gatter
- Regelmäßige Struktur vereinfacht das Layout
NAND/NOR-Implementierung
- Verwendet NAND- oder NOR-Gatter mit entsprechenden Inversionen
- In bestimmten Logikfamilien oft effizienter
- Liefert auf natürliche Weise aktiv-low-Ausgänge
- Häufig in TTL-Implementierungen
- Nutzt in der Technologie häufig vorhandene Gattertypen
- Kann die Bauelementezahl reduzieren
- Kann die Performance verbessern
- Standardansatz in vielen integrierten Schaltungen
Implementierung als integrierte Schaltung
- Spezielle Decodierer-ICs: 74xx138 (3-zu-8-Decodierer)
- Verschiedene Funktionen: Aktivierungen, Latches, Open-Collector
- In unterschiedlichen Logikfamilien verfügbar
- Gut charakterisiertes Timing- und Lastverhalten
- Standardisierte Schnittstellen und Pinbelegungen
- Häufig zur Adressdecodierung in Speicher- und Peripherieanwendungen eingesetzt
- Mehrere Aktivierungseingänge zur Kaskadierung
- Kostengünstige, platzsparende Lösung
Kaskadierte 2-zu-4-Decodierer
- Zwei 2-zu-4-Decodierer mit Aktivierungssteuerung
- Das MSB wählt aus, welcher Decodierer aktiv ist
- Modularerer Ansatz
- Verwendet kleinere, gängige Komponenten
- Potenziell nützlich, wenn 2-zu-4-Decodierer bereits verfügbar sind
- Zweistufige Decodierung kann Auswirkungen auf das Timing haben
- Veranschaulicht die Prinzipien der Decodierer-Kaskadierung
- Baustein für größere Decodierer
PLA/ROM-Implementierung
- Ansatz mit programmierbarem Logik-Array
- Verwendet eine AND-OR-Struktur
- Wird in FPGA- und CPLD-Implementierungen genutzt
- Konfigurierbar für verschiedene Decodierschemata
- Flexibel für individuelle Adressschemata
- Komplexer, aber sehr vielseitig
- Üblich in modernen programmierbaren Bauelementen
- Kann auf Geschwindigkeit oder Ressourcennutzung optimiert werden
Demultiplexer-basierte Implementierung
- 1-zu-8-Demultiplexer mit auf HIGH gelegtem Eingang
- Adresseingänge steuern die Führung
- Funktional äquivalent zu einem Decodierer
- Alternative Sichtweise auf die Decodierfunktion
- Kann vorhandene Demultiplexerkomponenten nutzen
- Verdeutlicht den Zusammenhang zwischen Decodieren und Demultiplexen
- Kann in bestimmten Kontexten Entwurfs- oder Ressourcenvorteile bieten
Multiplexer-basierte Implementierung
- Konfigurierte Multiplexer können Decodierfunktionen umsetzen
- Weniger intuitiv, aber vielseitig
- Verbreitet in FPGA-Implementierungen
- Nutzt verfügbare Ressourcen effizient
- Bevorzugt, wenn viele Multiplexer verfügbar sind
- Demonstriert die funktionale Äquivalenz unterschiedlicher Strukturen
- Fortgeschrittene Implementierungstechnik
Anwendungen
Speicheradressdecodierung
- RAM-/ROM-Chip-Auswahl
- Aktivierung von Speicherbänken
- Aufteilung des Adressraums
- Auswahl von Memory-Mapped-I/O
- Cache-Way-Auswahl
- Seitenauswahl
- Steuerung der Speicher-Interleaving-Funktion
Auswahl von Peripheriegeräten
- I/O-Geräteadressierung
- Chip-Selects für Peripheriegeräte
- Auswahl von Bus-Slaves
- Portadressierung
- Geräte-Multiplexen
- Kanalauswahl
- Zuteilung von Hardwareressourcen
Befehlsdecodierung
- CPU-Befehlsdecodierung
- Opcode-Decodierung
- Mikrocode-Adressierung
- Auswahl von Ausführungseinheiten
- Implementierung von Zustandsmaschinen
- Erzeugung von Steuersignalen
- Operationsauswahl
Demultiplexing
- Steuerung der Datenführung
- Kanalauswahl
- Auswahl der Ausgangsrichtung
- Signalverteilung
- Bus-Routing
- Steuerung des Datenpfads
- Selektives Broadcasting
Erzeugung von Steuersignalen
- Implementierung von Sequenzern
- Ausgänge von Zustandsmaschinen
- Erzeugung von Steuerwörtern
- Erzeugung von Timing-Signalen
- Selektives Reset/Preset
- Modusauswahl
- Systemkonfiguration
Anzeigesysteme
- Auswahl von Anzeigeziffern
- Zeilen-/Spaltenansteuerung in LED-Matrizen
- Auswahl von LCD-Segmenten
- Adressierung des Anzeige-Speichers
- Adressierung des Zeichengenerators
- Steuerung des Anzeigemodus
- Segmentdecodierer
Test und Debugging
- Auswahl von Testpunkten
- Routing diagnostischer Ausgänge
- Auswahl von Debug-Signalen
- Steuerung des Built-in Self-Test
- Steuerung von Scan-Ketten
- Erzeugung von Fehlercodes
- Fehlerisolierung
Einschränkungen
Fan-Out-Beschränkungen
- Begrenzte Stromtreiberkapazität
- Kann bei hohen Lasten Pufferung erfordern
- Aktive Ausgänge müssen alle angeschlossenen Geräte treiben
- Stark belastete Ausgänge haben erhöhte Verzögerungen
- Kann die maximale Betriebsgeschwindigkeit begrenzen
- Kritisch in Chip-Select-Anwendungen
- Kann zusätzliche Pufferstufen erfordern
Auswirkungen der Laufzeitverzögerung
- Anforderungen an die Adress-Setup-Zeit
- Begrenzt die maximale Betriebsfrequenz
- Kritischer Pfad im Speicherzugriffstiming
- Kann Timing-Hazards einführen
- Verzögerung von der Adressänderung bis zur Stabilisierung des Ausgangs
- Kaskadierte Decodierer haben erhöhte Verzögerung
- Beeinflusst die Systemtaktrate in synchronen Designs
Überlegungen zum Stromverbrauch
- Erheblich, wenn viele Ausgänge gleichzeitig wechseln
- Steigt mit der Betriebsfrequenz
- Wird in batteriebetriebenen Geräten kritisch
- Kann während Übergängen zu einem Spannungseinbruch führen
- Ground Bounce in Hochgeschwindigkeitsanwendungen
- Wärmemanagement in Hochgeschwindigkeitssystemen
- Stromspitzen während Adressübergängen
Skalierungsprobleme
- Exponentielles Wachstum der Ausgänge bei linearem Anstieg der Eingänge
- Große Decodierer benötigen erhebliche Ressourcen
- Pin-Anzahl-Beschränkungen bei größeren Decodierern
- Kaskadierung führt zu zusätzlicher Verzögerung
- Komplexität wächst stark mit der Größe
- Stromverbrauch steigt mit der Größe
- Testaufwand wächst exponentiell
Betriebsbedingte Risiken
- Glitches während Eingangsübergängen
- Mehrere Ausgänge können während Übergängen kurzzeitig aktiv sein
- Verletzungen der Adress-Setup- und Hold-Zeit
- Empfindlichkeit gegenüber Rauschen am Aktivierungseingang
- Teildecodierung in großen kaskadierten Systemen
- Timing des Aktivierungssignals kritisch
- Wettlaufsituationen in asynchronen Systemen
Schaltungsimplementierungs-Detail
Einfacher 3-zu-8-Decodierer mit AND-Gattern
graph TB
A0[A0] --> NOT0[NOT]
A1[A1] --> NOT1[NOT]
A2[A2] --> NOT2[NOT]
EN[Enable]
NOT0 --> AND0[AND]
NOT1 --> AND0
NOT2 --> AND0
EN --> AND0
AND0 --> Y0[Y0: 000]
A0 --> AND1[AND]
NOT1 --> AND1
NOT2 --> AND1
EN --> AND1
AND1 --> Y1[Y1: 001]
NOT0 --> AND2[AND]
A1 --> AND2
NOT2 --> AND2
EN --> AND2
AND2 --> Y2[Y2: 010]
A0 --> AND3[AND]
A1 --> AND3
NOT2 --> AND3
EN --> AND3
AND3 --> Y3[Y3: 011]
NOT0 --> AND4[AND]
NOT1 --> AND4
A2 --> AND4
EN --> AND4
AND4 --> Y4[Y4: 100]
A0 --> AND7[AND]
A1 --> AND7
A2 --> AND7
EN --> AND7
AND7 --> Y7[Y7: 111]
Logik: Jeder Ausgang ist aktiv, wenn das zugehörige 3-Bit-Adressmuster anliegt und die Komponente aktiviert ist.
74HC138-3-zu-8-Decodierer als integrierte Schaltung
Pinbelegung:
| Pin-Gruppe | Signal | Funktion |
|---|---|---|
| Eingänge | A, B, C | Adresseingänge (A0–A2) |
| Aktivierungen | G1 | Aktiv-HIGH-Aktivierung |
| Aktivierungen | /G2A, /G2B | Aktiv-LOW-Aktivierungen |
| Ausgänge | Y0–Y7 | Aktiv-LOW-Ausgänge |
| Versorgung | Vcc, GND | +5V und Masse |
Aktivierungsbedingung: Decodierer aktiv, wenn G1=1 UND /G2A=0 UND /G2B=0
Ausgangsauswahl: Es ist jeweils nur ein Ausgang LOW, basierend auf der Adresse C:B:A
Hinweis: Der 74HC138 hat aktiv-low-Ausgänge (Y0–Y7) und drei Aktivierungseingänge: G1 (aktiv-high) sowie G2A und G2B (beide aktiv-low). Der Decodierer ist aktiviert, wenn G1=1, G2A=0 und G2B=0.
Verwandte Komponenten
- 2-zu-4-Decodierer: Kleinerer Decodierer mit zwei Eingängen und vier Ausgängen
- 4-zu-16-Decodierer: Größerer Decodierer mit vier Eingängen und sechzehn Ausgängen
- Binär-zu-7-Segment-Decodierer: Wandelt Binärwerte in Muster für 7-Segment-Anzeigen um
- BCD-zu-Dezimal-Decodierer: Wandelt Binär codierte Dezimalzahlen in zehn Ausgänge um
- Prioritätscodierer: Inverse Operation; wandelt One-Hot mit Priorität in Binär um
- Demultiplexer: Leitet einen Eingang zu einem von mehreren Ausgängen
- Adressdecodierer: Spezialisierter Decodierer für die Speicheradressierung
- Befehlsdecodierer: Spezialisierter Decodierer für die CPU-Befehlsverarbeitung
- Bus-Decodierer: Wird zur Bus-Adressdecodierung in Computersystemen verwendet
- Binär-zu-Gray-Code-Wandler: Verwandte Konvertierungskomponente in digitalen Systemen