Menu
Coddy logo textTech

4 To 1 Mux Design

Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 65 de 90.

challenge icon

Desafio

Multiplexador 4-para-1

O multiplexador 4-para-1 tem quatro entradas de dados (in0, in1, in2, in3), dois bits de seleção (sel[1:0]) e uma saída (out). Os dois bits de seleção escolhem qual entrada passa para a saída:

  • Quando sel = 2'b00, a saída é in0
  • Quando sel = 2'b01, a saída é in1
  • Quando sel = 2'b10, a saída é in2
  • Quando sel = 2'b11, a saída é in3

Você construirá este multiplexador de duas maneiras: primeiro usando instruções if-else e, depois, na próxima lição, usando uma instrução case. Ambos os métodos funcionam, mas case costuma ser mais claro quando há muitas opções.

Um multiplexador 4-para-1 seleciona uma das quatro entradas e a passa para a saída com base em um sinal de seleção de 2 bits.

Tabela-verdade

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

Quando sel é 00, a saída segue in0. Quando sel é 01, a saída segue in1. Quando sel é 10, a saída segue in2. Quando sel é 11, a saída segue in3.

O que fazer:

  1. Create um módulo named mux4to1
  2. Add input in0 (1 bit)
  3. Add input in1 (1 bit)
  4. Add input in2 (1 bit)
  5. Add input in3 (1 bit)
  6. Add input sel (2 bits)
  7. Add output out (1 bit, type reg)
  8. Add um bloco always @(*)
  9. Dentro dele, Add uma statement if-else verificando sel:
    • If sel == 2'b00, defina out = in0
    • Else if sel == 2'b01, defina out = in1
    • Else if sel == 2'b10, defina out = in2
    • Else, defina out = in3
  10. Feche com endmodule

Experimente você mesmo

// Passo 1: Crie o módulo chamado mux4to1


  // Passo 2: Adicione a entrada in0
  
  // Passo 3: Adicione a entrada in1
  
  // Passo 4: Adicione a entrada in2
  
  // Passo 5: Adicione a entrada in3
  
  // Passo 6: Adicione a entrada sel (2 bits)
  
  // Passo 7: Adicione a saída out (tipo reg)
  

  // Passo 8: Adicione o bloco always @(*)
  

    // Passo 9: Adicione a instrução if-else
    // se sel == 2'b00, out = in0
    // senão se sel == 2'b01, out = in1
    // senão se sel == 2'b10, out = in2
    // else, out = in3
    

// Passo 10: Endmodule

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Verilog online