Menu
Coddy logo textTech

4 To 1 Mux Design

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy. Lektion 65 von 90.

challenge icon

Aufgabe

4-zu-1-Multiplexer

Der 4-zu-1-Multiplexer hat vier Dateneingänge (in0, in1, in2, in3), zwei Auswahlbits (sel[1:0]) und einen Ausgang (out). Die beiden Auswahlbits bestimmen, welcher Eingang an den Ausgang weitergeleitet wird:

  • Wenn sel = 2'b00, ist der Ausgang in0
  • Wenn sel = 2'b01, ist der Ausgang in1
  • Wenn sel = 2'b10, ist der Ausgang in2
  • Wenn sel = 2'b11, ist der Ausgang in3

Du wirst diesen Multiplexer auf zwei Arten erstellen: zuerst mit if-else-Anweisungen und dann in der nächsten Lektion mit einer case-Anweisung. Beide Methoden funktionieren, aber case ist oft übersichtlicher, wenn du viele Auswahlmöglichkeiten hast.

Ein 4-zu-1-Multiplexer wählt einen von vier Eingängen aus und leitet ihn abhängig von einem 2-Bit-Auswahlsignal an den Ausgang weiter.

Wahrheitstabelle

sel1sel0out
00out = in0
01out = in1
10out = in2
11out = in3

Wenn sel 00 ist, folgt der Ausgang in0. Wenn sel 01 ist, folgt der Ausgang in1. Wenn sel 10 ist, folgt der Ausgang in2. Wenn sel 11 ist, folgt der Ausgang in3.

Was zu tun ist:

  1. Erstelle ein Modul mit dem Namen mux4to1
  2. Füge den Eingang in0 hinzu (1 Bit)
  3. Füge den Eingang in1 hinzu (1 Bit)
  4. Füge den Eingang in2 hinzu (1 Bit)
  5. Füge den Eingang in3 hinzu (1 Bit)
  6. Füge den Eingang sel hinzu (2 Bits)
  7. Füge den Ausgang out hinzu (1 Bit, Typ reg)
  8. Füge einen always @(*)-Block hinzu
  9. Füge darin eine if-else-Anweisung hinzu, die sel überprüft:
    • Wenn sel == 2'b00, setze out = in0
    • Andernfalls, wenn sel == 2'b01, setze out = in1
    • Andernfalls, wenn sel == 2'b10, setze out = in2
    • Andernfalls setze out = in3
  10. Schließe mit endmodule ab

Probier es selbst

// Schritt 1: Modul namens mux4to1 erstellen


  // Schritt 2: Eingang in0 hinzufügen
  
  // Schritt 3: Eingang in1 hinzufügen
  
  // Schritt 4: Eingang in2 hinzufügen
  
  // Schritt 5: Eingang in3 hinzufügen
  
  // Schritt 6: Eingang sel (2 Bits) hinzufügen
  
  // Schritt 7: Ausgang out (reg-Typ) hinzufügen
  

  // Schritt 8: always @(*)-Block hinzufügen
  

    // Schritt 9: if-else-Anweisung hinzufügen
    // if sel == 2'b00, out = in0
    // else if sel == 2'b01, out = in1
    // else if sel == 2'b10, out = in2
    // sonst, out = in3
    

// Schritt 10: Endmodule

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Verilog-Compiler