Wie kann ich aus zwei 4 x 1 Multiplexern mit Freigabeeingängen einen 8 x 1 Multiplexer aufbauen?

Ich habe zwei Tage lang über dieses Problem nachgedacht, und ich kann den Trick nicht herausfinden. Mit einem Inverter und einem ODER-Gatter wäre es einfach, aber mir wurde gesagt, ich solle nichts anderes als Muxes und Drähte verwenden. Ich habe herausgefunden, wie man aus zwei 4 x 1-Muxen einen 6 x 1-Multiplexer baut, aber das reicht nicht aus. Können Sie mir einen Hinweis geben?

ist das hausaufgabe?
Vermutlich müssen Sie eine "günstige Annahme" über das Verhalten der Ausgänge treffen? Wenn Sie zB Push-Pull- oder Totem-Pole-Ausgänge hatten, erzeugt das einfache Verbinden dieser Ausgänge einen undefinierten Zustand. Wenn sie Tristate oder Open Collector sind, können sie verbunden werden (und benötigen einen Pullup-Widerstand im Open-Collector-Fall). | Ist ein Widerstand zulässig? | Wurde ein bestimmter Multiplexertyp angegeben? | Sind die Freigaben High-Level-Enable oder Low-Level-Enable? (kann wichtig sein)
Ja, das sind Hausaufgaben. Ich habe versucht, es zu taggen, aber das Tag wurde noch nie auf dieser Website verwendet und ich habe nicht genug Repräsentanten, um es zu erstellen.

Antworten (2)

Ich denke, der Trick besteht darin, dass Sie mit 2 4x1-MUXen tatsächlich 4 Input Select-Signale und 2 Enable-Eingänge zum Spielen erhalten, für insgesamt 6 Steuerbits. Sie benötigen nur 3 Steuerbits für einen echten 8x1-MUX (4, wenn Sie eine Freigabe benötigen). Wenn Sie mit Ihrer Steuerschnittstelle zu 8x1 MUX ein bisschen liberal/einfallsreich werden, können Sie ein Steuerprotokoll definieren, das funktioniert.

Seien S0, S1, E0 die Auswahleingangsbits und das Freigabebit für den ersten 4x1-MUX. Seien S2, S3, E1 die Auswahleingangsbits und das Freigabebit für den zweiten 4x1-MUX.

Die Ausgänge der beiden 4x1 MUXs sollten miteinander verdrahtet werden.

Welche Logik auch immer den 8x1-MUX steuert, muss sicherstellen, dass E0 = !E1 zu allen Zeiten ist, um einen Kurzschlusszustand zu vermeiden. Für Input Select = 0 - 3 sollte es E0 = 1 und E1 = 0 setzen. oder Input Select = 4 - 7, es sollte E0 = 0 und E1 = 1 setzen.

Wie Sie mehr oder weniger richtig angegeben haben, könnte die Steuerlogik für die Schaltung wie folgt implementiert werden:

Seien S0', S1' und S2' die logischen Auswahleingänge für den 8x1 MUX:

  INPUTS             OUTPUTS
S2' S1' S0'   S1  S0  S3  S2  E0  E1
 0   0   0     0   0   0   0   1   0
 0   0   1     0   1   0   1   1   0
 0   1   0     1   0   1   0   1   0
 0   1   1     1   1   1   1   1   0
 1   0   0     0   0   0   0   0   1
 1   0   1     0   1   0   1   0   1
 1   1   0     1   0   1   0   0   1
 1   1   1     1   1   1   1   0   1

Ganz klar aus dieser Wahrheitstabelle:

  S0 =  S2 = S0'
  S1 =  S3 = S1'
  E0 = !S2'
  E1 =  S2'

Sie benötigen also mindestens ein Inverter-Gate für die Steuerlogik. Soweit ich das beurteilen kann, können Sie dies nicht mit "nur Draht" tun.

Das Problem besagt nicht, ob die Freigabeeingänge aktiv niedrig oder aktiv hoch sind, geschweige denn, dass die beiden Multiplexer diesbezüglich identisch sein müssen.

Darüber hinaus ist es vernünftig anzunehmen, dass, wenn der Aktivierungseingang deaktiviert wird, der Mux-Ausgang in einen Zustand mit hoher Impedanz ("hohes Z") geht.

Daher lautet die Lösung:

  • Wählen Sie zwei 4x1-Multiplexer mit Aktivierungseingängen mit entgegengesetzter Logik: einer hat eine Aktiv-High-Aktivierung und der andere eine Aktiv-Low-Aktivierung.
  • fächern Sie das hohe Adressbit auf beide Freigaben auf.
  • binden Sie die Ausgänge zusammen: Da zu jeder Zeit einer der beiden Mux-Ausgänge hoch Z ist, ist dies gültig.

Die entgegengesetzten Freigaben geben uns einen Inverter kostenlos, und das hohe Z-Ausgangsverhalten erspart uns das ODER-Gatter.