Menu
Coddy logo textTech

Projeto de Mux 4 para 1

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 possui 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, depois, na próxima lição, usando uma instrução case. Ambos os métodos funcionam, mas o case costuma ser mais limpo quando você tem muitas escolhas.

Um multiplexador 4 para 1 seleciona uma de 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. Crie um módulo chamado mux4to1
  2. Adicione a entrada in0 (1 bit)
  3. Adicione a entrada in1 (1 bit)
  4. Adicione a entrada in2 (1 bit)
  5. Adicione a entrada in3 (1 bit)
  6. Adicione a entrada sel (2 bits)
  7. Adicione a saída out (1 bit, tipo reg)
  8. Adicione um bloco always @(*)
  9. Dentro dele, adicione uma instrução if-else verificando sel:
    • Se sel == 2'b00, defina out = in0
    • Senão, se sel == 2'b01, defina out = in1
    • Senão, se sel == 2'b10, defina out = in2
    • Senão, defina out = in3
  10. Feche com endmodule

Experimente você mesmo

// Passo 1: Criar módulo chamado mux4to1


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

  // Passo 8: Adicionar bloco always @(*)
  

    // Passo 9: Adicionar 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
    // senão, out = in3
    

// Passo 10: Endmodule

Todas as lições de Fundamentos