Codierer
Übersicht
- Zweck: Der Codierer ist ein 4-zu-2-Prioritätscodierer – eine kombinatorische Digitalschaltung, die aktive Eingangssignale in einen Binärcode umwandelt, der den Eingang höchster Priorität repräsentiert. Er führt die Umkehroperation eines Decodierers aus und reduziert 4 Eingangsleitungen auf einen 2-Bit-Binärcode.
- Symbol: Der Codierer wird als rechteckiger Block mit 4 Eingangsleitungen (D0, D1, D2, D3) und 2 Ausgangsleitungen (Q0, Q1) dargestellt.
- Rolle in DigiSim.io: Dient als grundlegender Baustein für Prioritätserkennung, Adresserzeugung und Eingangscodierung in Digitalschaltungen.

Funktionsbeschreibung
Logikverhalten
Der Codierer ist ein Prioritätscodierer, der den Binärcode des aktiven Eingangs mit der höchsten Priorität ausgibt. Sind mehrere Eingänge gleichzeitig aktiv, gibt der Codierer den Code für den höchstnummerierten aktiven Eingang aus – Eingänge mit niedrigerer Priorität werden als „beliebig" (X) behandelt.
Wahrheitstabelle (4-zu-2-Prioritätscodierer):
| D3 | D2 | D1 | D0 | Q1 | Q0 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | X | 0 | 1 |
| 0 | 1 | X | X | 1 | 0 |
| 1 | X | X | X | 1 | 1 |
Eingänge und Ausgänge
Eingänge:
- 4 Dateneingänge (D0, D1, D2, D3): Vier Eingangsleitungen, wobei D3 die höchste und D0 die niedrigste Priorität besitzt.
Ausgänge:
- 2 Binärausgänge (Q0, Q1): 2-Bit-Binärcode, der den Eingang höchster Priorität darstellt.
Konfigurierbare Parameter
- Prioritätshandhabung: Der Codierer verwendet eine Prioritätsauflösung – sind mehrere Eingänge aktiv, hat der höchstnummerierte Eingang Vorrang.
- Laufzeitverzögerung: Die Zeit, die die Ausgänge benötigen, um nach einer Eingangsänderung zu wechseln.
Visuelle Darstellung in DigiSim.io
Der Codierer wird als rechteckiger Block mit 4 Eingangspins (D0–D3) auf einer Seite und 2 Ausgangspins (Q0, Q1) auf der gegenüberliegenden Seite dargestellt. In einer Schaltung zeigt die Komponente durch Farbänderungen auf den Verbindungsleitungen die aktiven Eingänge sowie den resultierenden Binärcode an den Ausgängen visuell an.
Pädagogischer Wert
Schlüsselkonzepte
- Binäre Codierung: Veranschaulicht, wie mehrere Signale in eine kompakte Binärform codiert werden können.
- Datenkomprimierung: Zeigt, wie sich mehrere Signalleitungen auf weniger Leitungen reduzieren lassen.
- One-Hot-zu-Binär-Wandlung: Verdeutlicht den Zusammenhang zwischen One-Hot- und Binärdarstellungen.
- Entwurf kombinatorischer Logik: Führt den Entwurf von Logikschaltungen für Codierfunktionen ein.
Lernziele
- Verstehen, wie mehrere Eingangssignale in ein Binärformat codiert werden können.
- Den Zusammenhang zwischen Codierern und Decodierern als komplementäre Komponenten erlernen.
- Den Unterschied zwischen einfachen Codierern und Prioritätscodierern erkennen.
- Codierer beim Entwurf von Eingangsverarbeitungssystemen und Adressgeneratoren anwenden.
- Erfassen, wie Codierer die Anzahl der Signalleitungen in digitalen Systemen effizient reduzieren können.
Anwendungsbeispiele/Szenarien
- Tastenfeld-Codierung: Umwandlung von Tastendrücken in Binärcodes.
- Prioritätserkennung: Identifikation des aktiven Eingangs mit der höchsten Priorität in Systemen mit Prioritätsanforderungen.
- Adresserzeugung: Erstellen binärer Adressen aus One-Hot-Auswahlsignalen.
- Eingangsverarbeitung: Umwandlung verschiedener Eingangsformate in standardisierte Binärcodes.
- Steuerungssysteme: Codierung mehrerer Statussignale zu einer kompakten Form für die Verarbeitung.
Technische Hinweise
- Der DigiSim.io-Codierer ist ein Prioritätscodierer: Sind mehrere Eingänge aktiv, gibt er den Binärcode des aktiven Eingangs mit der höchsten Priorität (höchste Nummer) aus.
- Die 4-zu-2-Konfiguration nutzt 4 Eingänge (D0–D3) und liefert einen 2-Bit-Binärausgang (Q0, Q1).
- In DigiSim.io reagiert der Codierer unmittelbar auf Eingangsänderungen und modelliert so das kombinatorische Logikverhalten von Prioritätscodierern.
Eigenschaften
- Eingangsgröße: 4 Eingangsleitungen (D0–D3)
- Ausgangsgröße: 2 Ausgangsleitungen (Q0, Q1)
- Laufzeitverzögerung: Zeitdifferenz zwischen Eingangsänderung und stabilem Ausgang
- Fan-In: Anzahl der Eingangsleitungen, die der Codierer verarbeiten kann
- Fan-Out: Anzahl der Logikgatter, die jeder Ausgang treiben kann
- Eingangsvalidierung: Optionale Funktion zur Erkennung gültiger/ungültiger Eingaben
- Aktivierungssteuerung: Manche Codierer enthalten Aktivierungseingänge zur Betriebssteuerung
- Eingangspriorität: Ob der Codierer eine Priorität zwischen den Eingängen berücksichtigt
- Stromverbrauch: Energieverbrauch im Betrieb
Arten von Codierern
Einfache Codierer
- Schlichter Codierer ohne Prioritäts- oder Validierungsfunktionen
- Setzt voraus, dass jeweils nur ein Eingang aktiv ist
Prioritätscodierer
- Lösen mehrere aktive Eingänge nach Priorität auf
- Geben den Code des Eingangs mit der höchsten Priorität aus
- Verfügen häufig über ein „Valid Input"-Ausgangsflag
Dezimal-zu-BCD-Codierer
- 10-zu-4-Codierer für die Umwandlung von Dezimal- in BCD-Werte
- Werden in numerischen Anzeigen und Tastenfeldanwendungen verwendet
Oktal-zu-Binär-Codierer
- 8-zu-3-Codierer für die Umwandlung von Oktal- in Binärcode
- Häufig in Computersystemen
Hexadezimal-zu-Binär-Codierer
- 16-zu-4-Codierer für die Umwandlung von Hexadezimal- in Binärcode
- In Adressdecodieranwendungen verwendet
Tastatur-Codierer
- Spezialisierte Codierer für Tastenfeld- oder Tastatureingaben
- Wandeln Tastendrücke in Binärcodes um
Anwendungen
Adresserzeugung
- Umwandlung von One-Hot-Signalen in binäre Adressen
- Speicheradressierung in digitalen Systemen
Eingangsperipherie
- Tastatur- und Tastenfeld-Eingangscodierung
- Umwandlung von Schalter-Arrays in Binärwerte
Befehlsdecodierung
- Codierung von Befehlsmustern in CPUs
- Opcode-Erzeugung
Steuerungssysteme
- Statuscodierung für Steuerungsanwendungen
- Codierung der Modusauswahl
Digitales Multiplexen
- Adressauswahl für die Multiplexer-Steuerung
- Kanalauswahl in Kommunikationssystemen
Datenkomprimierung
- Reduzierung mehrerer Signalleitungen auf weniger Leitungen
- Umwandlung paralleler Daten in kompaktere Formate
Implementierungsmethoden
Logikgatter-Arrays
- Verwendung von OR-Gattern zur Kombination der Eingänge gemäß den Ausgangsbitmustern
- Realisierbar mit diskreten Bauelementen oder als IC
Integrierte Schaltungen
- 74148: 8-zu-3-Prioritätscodierer
- 74147: 10-zu-4-Dezimal-zu-BCD-Prioritätscodierer
- 74LS348: 8-zu-3-Prioritätscodierer mit Aktivierung
HDL-Entwurf
- Case-Anweisungen oder bedingte Zuweisungen
- Priorisierte If-Else-Ketten für Prioritätscodierer
- Leicht parametrisierbar für unterschiedliche Größen
ROM-basierte Implementierung
- Verwendung von in ROM gespeicherten Lookup-Tabellen
- Geeignet für komplexe Codierschemata
Schaltungsimplementierung (4-zu-2-Prioritätscodierer)
Ein 4-zu-2-Prioritätscodierer kann mit OR-Gattern und Prioritätslogik realisiert werden:
graph LR
D1[D1] --> OR0[OR Gate]
D3[D3] --> OR0
OR0 --> Q0[Q0 Output]
D2[D2] --> OR1[OR Gate]
D3 --> OR1
OR1 --> Q1[Q1 Output]
Logik: Q0 ist HIGH, wenn D1 oder D3 der aktive Eingang mit der höchsten Priorität ist. Q1 ist HIGH, wenn D2 oder D3 der aktive Eingang mit der höchsten Priorität ist.
Boolesche Gleichungen (4-zu-2-Prioritätscodierer)
Für den 4-zu-2-Prioritätscodierer:
Q0 = D1·D̄2·D̄3 + D3
Q1 = D2·D̄3 + D3
Vereinfacht (die Prioritätslogik stellt sicher, dass der höchstnummerierte aktive Eingang gewinnt):
Q0 = D3 + D1·D̄2
Q1 = D3 + D2
Wobei + das logische ODER, · das logische UND und D̄ das logische NICHT bezeichnet
Verwandte Komponenten
- Decodierer: Führen die inverse Operation aus (Binär zu One-Hot)
- Multiplexer: Werden zusammen mit Codierern für die Datenauswahl verwendet
- Demultiplexer: Werden zusammen mit Decodierern für die Datenverteilung verwendet
- Prioritätsarbiter: Ähnlich wie Prioritätscodierer, jedoch mit anderem Ausgangsformat
- Codewandler: Konvertieren zwischen verschiedenen Codierschemata
- Binärzähler: Verwenden häufig Codierer zur Zustandserkennung
- Komparatoren: Werden gelegentlich nach Prinzipien von Codierern realisiert
- Adressdecodierer: Inverse Operation, in Speichersystemen genutzt