Menu
Coddy logo textTech

Progettazione di un decoder

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

challenge icon

Sfida

Un decoder prende in ingresso un numero binario e attiva esattamente un’uscita in base a quel numero. L’uscita che si attiva è chiamata "one-hot" perché solo un bit è attivo (1) e tutti gli altri sono inattivi (0).

Tabella della verità (decoder da 2 a 4)

Ingresso (in)out0out1out2out3
001000
010100
100010
110001

Interfaccia del modulo

PortaDirezioneLarghezzaDescrizione
iningresso2 bitIngresso binario (da 0 a 3)
out0uscita1 bitAttiva quando in = 00
out1uscita1 bitAttiva quando in = 01
out2uscita1 bitAttiva quando in = 10
out3uscita1 bitAttiva quando in = 11

Il tuo compito è completare il modulo qui sotto usando un’istruzione case.

Cosa fare:

  1. Quando in = 2'b00, out0 = 1, tutti gli altri 0
  2. Quando in = 2'b01, out1 = 1, tutti gli altri 0
  3. Quando in = 2'b10, out2 = 1, tutti gli altri 0
  4. Quando in = 2'b11, out3 = 1, tutti gli altri 0

Provalo tu

module decoder (
  input [1:0] in,
  output reg out0,
  output reg out1,
  output reg out2,
  output reg out3
);
  
  // TODO: Aggiungi un blocco always @(*) con case (in)
  // 2'b00: out0=1, gli altri 0
  // 2'b01: out1=1, gli altri 0
  // 2'b10: out2=1, gli altri 0
  // 2'b11: out3=1, gli altri 0

endmodule

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Verilog online