Projeto de Mux 2 para 1
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 64 de 90.
Desafio
Um multiplexador (MUX) é um circuito digital que seleciona uma entre várias entradas e a encaminha para uma única saída com base em um sinal de seleção. Pense nele como um seletor de dados. Você tem várias entradas chegando e escolhe qual delas vai para a saída.
Neste projeto, você criará multiplexadores de diferentes tamanhos usando instruções if-else e case.
Multiplexador 2 para 1
O multiplexador 2 para 1 é a forma mais simples. Ele tem duas entradas de dados (in0 e in1), uma entrada de seleção (sel) e uma saída (out). Quando sel é 0, a saída acompanha in0. Quando sel é 1, a saída acompanha in1. Você implementará isso usando uma instrução if-else dentro de um bloco always @(*).
Exemplo: Se in0 = 0, in1 = 1 e sel = 1, então out = 1.
Um multiplexador 2 para 1 seleciona uma entre duas entradas e a passa para a saída com base em um sinal de seleção.
Tabela-verdade
| sel | out |
|---|---|
| 0 | out = in0 |
| 1 | out = in1 |
Quando sel é 0, a saída acompanha in0. Quando sel é 1, a saída acompanha in1.
O que fazer:
- Crie um módulo chamado
mux2to1 - Adicione a entrada
in0(1 bit) - Adicione a entrada
in1(1 bit) - Adicione a entrada
sel(1 bit) - Adicione a saída
out(1 bit, tiporeg) - Adicione um bloco
always @(*) - Dentro dele, adicione uma instrução
if-else:- Se
sel == 0, definaout = in0 - Caso contrário, defina
out = in1
- Se
- Finalize com
endmodule
Experimente você mesmo
// Passo 1: Crie o módulo chamado mux2to1
// Passo 2: Adicione a entrada in0
// Passo 3: Adicione a entrada in1
// Passo 4: Adicione a entrada sel
// Passo 5: Adicione a saída out (tipo reg)
// Passo 6: Adicione o bloco always @(*)
// Passo 7: Adicione a instrução if-else
// Se sel == 0, out = in0
// Senão, out = in1
// Passo 8: EndmoduleTodas as lições de Fundamentos
1Introdução
O que é VerilogHardware vs. SoftwareSeu primeiro móduloComentáriosNíveis de abstração de projeto4Operadores Parte 1
Operadores aritméticosOperador móduloOperadores de comparaçãoRecapitulação - Matemática simplesOperadores bit a bit7Atribuições e Portas
Atribuição ContínuaAtribuição com OperadoresPrimitivas de Portas IntegradasPortas AND, OR e NOTPortas XOR e XNORRecapitulação - Circuito de Portas Lógicas10Tomada de Decisões
Declaração IfIf - ElseRevisão - Comparador SimplesDeclaração CaseCasex e CasezRevisão - Projeto de ALU2Tipos de Dados
Tipo WireTipo RegInteiro e RealVetoresArraysParâmetrosRecapitulação - Declarar Sinais5Operadores - Parte 2
Operadores lógicosOperadores de reduçãoOperadores de deslocamentoOperador de concatenaçãoOperador condicionalRevisão - Desafio de operadores3Sistema Numérico
Representação BináriaNúmeros com Tamanho DefinidoNúmeros sem Tamanho DefinidoNúmeros NegativosValores Especiais X e ZRevisão - Formatos Numéricos6Módulos
Estrutura de MódulosPortas de Entrada e SaídaPortas InoutInstanciação de MódulosMapeamento de Portas por NomeMapeamento de Portas por OrdemRecapitulação — Construindo um MóduloPratique por conta própria: Compilador de Verilog online