PREVIEW
Encoder (8-to-3)

Encoder (8-to-3)

Encoders/Decoders signal_cellular_alt_2_bar Intermediate schedule 20 min

Interactive Circuit

8-zu-3-Codierer

Übersicht

  • Zweck: Der 8-zu-3-Codierer ist eine kombinatorische Digitalschaltung, die acht sich gegenseitig ausschließende Eingangsleitungen in einen 3-Bit-Binärcode umwandelt, der angibt, welcher der Eingänge aktiv ist.
  • Symbol: Üblicherweise dargestellt als rechteckiger Block mit acht Eingängen (I0–I7) und drei Ausgängen (Y2, Y1, Y0).
  • Rolle in DigiSim.io: Dient als wesentliche Datenreduktionskomponente und ermöglicht die Umwandlung von One-Hot-Signalen in kompakte Binärdarstellungen für eine effizientere Verarbeitung und Übertragung.

8-zu-3-Codierer Komponente

Funktionsbeschreibung

Logikverhalten

Der 8-zu-3-Codierer erkennt, welche seiner acht Eingangsleitungen aktiv ist, und erzeugt einen eindeutigen 3-Bit-Binärcode, der dem aktiven Eingang entspricht. Bei einem Standardcodierer sollte zu jedem Zeitpunkt nur ein Eingang aktiv sein.

Wahrheitstabelle:

Eingänge Ausgänge
I7 I6 I5 I4 I3 I2 I1 I0 Y2 Y1 Y0
0 0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0 1
0 0 0 0 0 1 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1 1
0 0 0 1 0 0 0 0 1 0 0
0 0 1 0 0 0 0 0 1 0 1
0 1 0 0 0 0 0 0 1 1 0
1 0 0 0 0 0 0 0 1 1 1

Hinweis: Es sollte jeweils nur ein Eingang aktiv (HIGH) sein. Mehrere aktive Eingänge oder ausschließlich inaktive Eingänge stellen in einem einfachen Codierer ungültige Bedingungen dar.

Eingänge und Ausgänge

  • Eingänge:

    • I0–I7: Acht 1-Bit-Eingänge, von denen in Standardcodierern typischerweise nur einer gleichzeitig aktiv ist.
  • Ausgänge:

    • Y2: Höchstwertiges Bit (MSB) des 3-Bit-Ausgangscodes.
    • Y1: Mittleres Bit des 3-Bit-Ausgangscodes.
    • Y0: Niedrigwertigstes Bit (LSB) des 3-Bit-Ausgangscodes.

Konfigurierbare Parameter

  • Eingangsaktivierungspegel: Ob die Eingänge aktiv-high oder aktiv-low sind.
  • Ausgangslogik: Ob die Ausgänge positiver oder negativer Logik folgen.
  • Prioritätscodierung: Ob der Codierer Prioritätslogik enthält, um mehrere aktive Eingänge zu handhaben.
  • Valid-Output-Signal: Ob der Codierer ein Signal erzeugt, das eine gültige Eingangsbedingung anzeigt.
  • Laufzeitverzögerung: Die Zeit, die die Ausgänge benötigen, um nach einer Eingangsänderung zu wechseln.

Visuelle Darstellung in DigiSim.io

Der 8-zu-3-Codierer wird als rechteckiger Block mit acht Eingangspins auf der linken Seite (I0–I7) und drei Ausgangspins (Y2, Y1, Y0) auf der rechten Seite dargestellt. In einer Schaltung zeigt die Komponente durch Farbänderungen auf den Verbindungsleitungen visuell den aktiven Eingang und den entsprechenden Binärausgang an.

Pädagogischer Wert

Schlüsselkonzepte

  • Binäre Codierung: Veranschaulicht, wie mehrere Signalleitungen in eine kompaktere Binärdarstellung codiert werden können.
  • Datenreduktion: Zeigt, wie sich die Anzahl der zur Darstellung von Informationen benötigten Signalleitungen reduzieren lässt.
  • Codeumwandlung: Verdeutlicht die Umwandlung von One-Hot- (unär) in Binärcode.
  • Kombinatorische Logik: Stellt eine praktische Anwendung von OR-Gattern in einer nützlichen Digitalfunktion vor.
  • Signalmultiplexen: Führt Konzepte zur Signalauswahl und Kanalidentifikation ein.

Lernziele

  • Verstehen, wie digitale Systeme mehrere Signale effizient in Binärform codieren.
  • Den Zusammenhang zwischen Eingangsaktivierung und entsprechendem Binärausgangscode erlernen.
  • Die Herausforderungen ungültiger Eingangsbedingungen erkennen und wissen, wie sie gehandhabt werden können.
  • Codierkonzepte zum Entwurf von Systemen mit reduzierter Verdrahtung und vereinfachten Datenpfaden anwenden.
  • Die logische Dualität zwischen Codierern und Decodierern in digitalen Systemen erfassen.

Anwendungsbeispiele/Szenarien

  • Tastaturcodierung: Umwandlung mehrerer Tasteneingaben in Binärcodes zur Verarbeitung.
  • Behandlung priorisierter Interrupts: Codierung mehrerer Interrupt-Quellen in einen Binärvektor für einen Prozessor.
  • Verarbeitung von Sensoreingängen: Umwandlung mehrerer Sensoraktivierungen in kompakte Binärdaten.
  • Auswahl der Speicherbank: Codierung, welche Speicherbank derzeit aktiv ist oder adressiert wird.
  • Auswahl von Eingabegeräten: Erzeugung von Binärcodes, die das aktive Eingabegerät kennzeichnen.
  • Zustandscodierung: Umwandlung von Zustandssignalen in Zustandsmaschinen in eine kompakte Binärdarstellung.
  • Multiplexer-Steuerung: Erzeugung von Auswahlsignalen zur Steuerung von Multiplexern aus einzelnen Steuerleitungen.

Technische Hinweise

  • Der 8-zu-3-Codierer setzt die folgenden booleschen Ausdrücke um: Y0 = I1+I3+I5+I7, Y1 = I2+I3+I6+I7, Y2 = I4+I5+I6+I7.
  • Einfache Codierer kommen mit mehreren aktiven Eingängen nicht gut zurecht; in solchen Fällen sind Prioritätscodierer erforderlich.
  • Die Aktivierung von Eingang I0 lässt sich ohne zusätzliche Logik nicht vom Zustand aller-Eingänge-inaktiv unterscheiden.
  • Manche Codiererimplementierungen enthalten einen „Valid"-Ausgang, der anzeigt, wenn mindestens ein Eingang aktiv ist.
  • Codierer mit Prioritätslogik geben den Binärcode des höchstnummerierten aktiven Eingangs aus.
  • In DigiSim.io modelliert das Codierverhalten die Funktionalität gängiger Codierer mit korrekter Ausgangserzeugung für aktive Eingänge.

Eigenschaften

  • Eingangskonfiguration:
    • Acht Eingänge (I0–I7), wobei normalerweise nur einer gleichzeitig aktiv ist
    • Aktiv-high-Eingänge (1 stellt einen aktiven Eingang dar)
  • Ausgangskonfiguration:
    • Drei Ausgänge (Y2, Y1, Y0), die den 3-Bit-Binärcode darstellen
    • Y2 ist das höchstwertige Bit (MSB)
    • Y0 ist das niedrigwertigste Bit (LSB)
  • Funktionalität:
    • Wandelt einen One-Hot-Eingang (eine einzelne aktive Leitung) in Binär um
    • Reduziert acht Signalleitungen auf drei Binärleitungen
  • Laufzeitverzögerung:
    • Typischerweise 5–15 ns (technologieabhängig)
    • In der Regel geringer als bei Decodierern vergleichbarer Größe
  • Fan-Out:
    • Jeder Ausgang treibt typischerweise 10–50 Gatter (technologieabhängig)
  • Logikpegel:
    • Kompatibel mit gängigen Logikfamilien (TTL, CMOS)
  • Schaltungskomplexität:
    • Mittel (erfordert mehrere OR-Gatter)
    • Weniger komplex als äquivalente Decodierschaltungen
  • Einschränkungen:
    • Einfache Codierer haben ungültige Zustände (mehrere aktive Eingänge)
    • In einfachen Implementierungen keine Behandlung des Zustands „alle Eingänge null"

Implementierungsmethoden

  1. Mit OR-Gattern
    • Jedes Ausgangsbit wird durch ein OR über bestimmte Eingänge gebildet
    • Boolesche Ausdrücke für jeden Ausgang:
      • Y0 = I1 + I3 + I5 + I7
      • Y1 = I2 + I3 + I6 + I7
      • Y2 = I4 + I5 + I6 + I7
graph LR
    I1[I1] --> OR0[OR Gate]
    I3[I3] --> OR0
    I5[I5] --> OR0
    I7[I7] --> OR0
    OR0 --> Y0[Y0 LSB]
    
    I2[I2] --> OR1[OR Gate]
    I3 --> OR1
    I6[I6] --> OR1
    I7 --> OR1
    OR1 --> Y1[Y1]
    
    I4[I4] --> OR2[OR Gate]
    I5 --> OR2
    I6 --> OR2
    I7 --> OR2
    OR2 --> Y2[Y2 MSB]

Codiermuster: Jedes Ausgangsbit ist HIGH, wenn ein Eingang mit der entsprechenden Bitposition aktiv ist.

  1. Implementierung als Prioritätscodierer

    • Behandelt Fälle, in denen mehrere Eingänge aktiv sind
    • Gibt den Code des Eingangs mit der höchsten Priorität aus
    • Verwendet zusätzliche Prioritätslogik und Aktivierungen
  2. Mit Multiplexern

    • Kann mit Multiplexern und festen Eingängen realisiert werden
    • Weniger gebräuchlich, aber in bestimmten FPGA-Architekturen nützlich
  3. Integrierte Schaltungen

    • Verfügbar in der 74xx-Serie (z. B. 74148)
    • Häufig mit Prioritätscodierfunktionen ausgestattet
    • Manche Versionen verfügen über Aktivierungseingänge und Valid-Ausgangsflags

Anwendungen

  1. Adresscodierung

    • Umwandlung mehrerer Auswahlleitungen in Binäradressen
    • Codierung der Speicherbankauswahl
    • Registerauswahl in Prozessoren
  2. Eingangsverarbeitung

    • Umwandlung mehrerer Sensoreingänge in Binärwerte
    • Tastaturcodierung in Computersystemen
    • Codierung der Auswahl von Benutzereingaben
  3. Multiplexer-Steuerung

    • Erzeugung von Auswahlsignalen für größere Multiplexersysteme
    • Kanalauswahl in Kommunikationssystemen
    • Auswahl von Eingangsquellen in digitalen Systemen
  4. Interrupt-Verarbeitung

    • Codierung mehrerer Interrupt-Quellen in Binärwerte
    • Behandlung priorisierter Interrupts in Prozessorsystemen
    • Geräteidentifikation in Mehrgeräte-Systemen
  5. Datenkomprimierung

    • Grundform der Datencodierung zur Reduzierung von Signalleitungen
    • Umwandlung von One-Hot-Codes in Binärdarstellung
    • Bestandteil größerer Codierschemata in Kommunikationssystemen
  6. Digitale Messtechnik

    • Umwandlung mehrerer Bereichsauswahlen in binäre Steuersignale
    • Codierung der Modusauswahl in Testgeräten
    • Auswahl des Anzeigeformats in digitalen Anzeigen
  7. Implementierung von Zustandsmaschinen

    • Codierung von Zustandsübergängen in digitalen Controllern
    • Reduzierung der Zustandsdarstellung in sequenziellen Schaltungen
    • Befehlsdecodierung in Steuerwerken

Einschränkungen

  1. Auflösung von Eingangskonflikten

    • Standardcodierer haben undefiniertes Verhalten bei mehreren aktiven Eingängen
    • Erfordern Prioritätscodierung für zuverlässigen Betrieb mit mehreren Eingängen
  2. Bedingung „alle Eingänge null"

    • Einfache Codierer können den Zustand „alle Eingänge inaktiv" nicht von „I0 aktiv" unterscheiden
    • Können einen zusätzlichen Valid-Signalausgang für den korrekten Betrieb erfordern
  3. Variationen der Laufzeitverzögerung

    • Verschiedene Pfade können unterschiedliche Verzögerungen aufweisen
    • Können während Eingangsübergängen Glitches verursachen
  4. Rauschempfindlichkeit

    • Anfällig für Rauschen, das zu fehlerhafter Codierung führt
    • Können in lauten Umgebungen Eingangsfilterung erfordern
  5. Begrenzte Eingangserweiterung

    • Schwierig zu kaskadieren für eine größere Anzahl von Eingängen
    • Erfordern zusätzliche Logik für mehr als 8 Eingänge

Schaltungsimplementierungs-Detail

Boolesche Ausdrücke

Der 8-zu-3-Codierer kann durch die folgenden booleschen Ausdrücke beschrieben werden:

Y0 = I1 + I3 + I5 + I7
Y1 = I2 + I3 + I6 + I7
Y2 = I4 + I5 + I6 + I7

Wobei:

  • I0 bis I7 die Eingänge sind
  • Y0, Y1, Y2 die Ausgänge sind
  • "+" das logische ODER bezeichnet

Prioritätscodierer-Logik

Für die Funktionalität als Prioritätscodierer stellt zusätzliche Logik sicher, dass nur der Eingang mit der höchsten Priorität den Ausgang beeinflusst:

Y0 = (I1 AND NOT(I2, I4, I6)) OR (I3 AND NOT(I4, I6)) OR (I5 AND NOT(I6)) OR I7
Y1 = (I2 AND NOT(I4, I6)) OR (I3 AND NOT(I4, I6)) OR I6 OR I7
Y2 = I4 OR I5 OR I6 OR I7

Valid-Ausgangslogik

Zur Erkennung der gültigen Eingangsbedingung (mindestens ein Eingang aktiv):

VALID = I0 OR I1 OR I2 OR I3 OR I4 OR I5 OR I6 OR I7

Verwandte Komponenten

  • 4-zu-2-Codierer: Einfachere Variante, die vier Eingänge auf zwei Ausgänge codiert
  • 16-zu-4-Codierer: Größere Variante, die sechzehn Eingänge auf vier Ausgänge codiert
  • Prioritätscodierer: Erweiterter Codierer, der mehrere aktive Eingänge auflöst
  • 3-zu-8-Decodierer: Führt die inverse Operation aus, wandelt Binär in One-Hot-Code um
  • BCD-Codierer: Spezialcodierer, der Dezimaleingänge in Binär codierte Dezimalzahlen umwandelt
  • Multiplexer: Wird häufig zusammen mit Codierern zur Datenauswahl basierend auf codierten Werten verwendet
  • Binärcodierer: Allgemeiner Begriff für Codierer, die in eine Binärdarstellung umwandeln
  • Tastenfeld-Codierer: Spezialisierter Codierer für die Verarbeitung von Tastenfeldeingaben

school Lernpfad

arrow_back Voraussetzungen

arrow_forward Nächste Schritte

help_outline Häufig gestellte Fragen

Wie funktioniert die 8-zu-3-Prioritätskodierung?

8 Eingaben werden auf 3 Bits kodiert (Binär 0-7). Eingang 7 hat die höchste Priorität. Wenn Eingaben 3 und 7 beide aktiv sind, zeigt der Ausgang 111 (7) an.

play_arrow Live-Schaltung ausführen

Weitere Komponenten ansehen