Menu
Coddy logo textTech

Progettazione di un mux da 2 a 1

Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 64 di 90.

challenge icon

Sfida

Un multiplexer (MUX) è un circuito digitale che seleziona uno tra diversi ingressi e lo inoltra a una singola uscita in base a un segnale di selezione. Pensalo come un selettore di dati. Hai diversi ingressi in entrata e scegli quale inviare all’uscita.

In questo progetto realizzerai multiplexer di dimensioni diverse usando istruzioni if-else e case.

Multiplexer 2 a 1

Il multiplexer 2 a 1 è la forma più semplice. Ha due ingressi dati (in0 e in1), un ingresso di selezione (sel) e un’uscita (out). Quando sel è 0, l’uscita segue in0. Quando sel è 1, l’uscita segue in1. Lo implementerai usando un’istruzione if-else all’interno di un blocco always @(*).

Esempio: Se in0 = 0, in1 = 1 e sel = 1, allora out = 1.

Un multiplexer 2 a 1 seleziona uno di due ingressi e lo passa all’uscita in base a un segnale di selezione.

Tabella della verità

 

selout
0out = in0
1out = in1

Quando sel è 0, l’uscita segue in0. Quando sel è 1, l’uscita segue in1.

Cosa fare:

  1. Crea un modulo chiamato mux2to1
  2. Aggiungi l’ingresso in0 (1 bit)
  3. Aggiungi l’ingresso in1 (1 bit)
  4. Aggiungi l’ingresso sel (1 bit)
  5. Aggiungi l’uscita out (1 bit, di tipo reg)
  6. Aggiungi un blocco always @(*)
  7. Al suo interno, aggiungi un’istruzione if-else:
    • Se sel == 0, imposta out = in0
    • Altrimenti, imposta out = in1
  8. Chiudi con endmodule

Provalo tu

// Passaggio 1: crea un modulo chiamato mux2to1


  // Passaggio 2: aggiungi l'ingresso in0
  
  // Passaggio 3: aggiungi l'ingresso in1
  
  // Passaggio 4: aggiungi l'ingresso sel
  
  // Passaggio 5: aggiungi l'uscita out (di tipo reg)
  

  // Passaggio 6: aggiungi un blocco always @(*)
  

    // Passaggio 7: aggiungi un'istruzione if-else
    // Se sel == 0, out = in0
    // Altrimenti, out = in1
    

// Passaggio 8: Endmodule

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online