Revisão - Projeto de ALU
Parte da seção Fundamentos do Journey de Verilog da Coddy. Lição 57 de 90.
Desafio
Uma ALU (Unidade Lógica e Aritmética) é um circuito digital que recebe duas entradas, realiza uma operação com elas e produz uma saída. Ela realiza operações aritméticas e lógicas em duas entradas com base em um sinal de seleção. O sinal select escolhe uma operação para executar.
Como funciona
| select | Operação | Saída |
|---|---|---|
2'b00 | Adição | a + b |
2'b01 | Subtração | a - b |
2'b10 | AND bit a bit | a & b |
2'b11 | OR bit a bit | a | b |
Crie uma ALU simples usando uma instrução case.
O que fazer:
- Crie um módulo chamado
alu - Adicione as entradas:
a(4 bits),b(4 bits),select(2 bits) - Adicione a saída:
result(4 bits, tipo reg) - Adicione um bloco
always @(*) - Dentro dele, adicione uma instrução
case (select) - Adicione quatro casos para
2'b00,2'b01,2'b10,2'b11 - Adicione um caso
defaultpara definirresult = 0 - Finalize com
endcaseeendmodule
Experimente você mesmo
// TODO: Criar módulo alu
// TODO: Adicionar entradas (a, b, select)
// TODO: Adicionar saída (result)
// TODO: Adicionar bloco always @(*)
// TODO: Adicionar case (select)
// TODO: Adicionar case 2'b00: result = a + b;
// TODO: Adicionar case 2'b01: result = a - b;
// TODO: Adicionar case 2'b10: result = a & b;
// TODO: Adicionar case 2'b11: result = a | b;
// TODO: Adicionar default: result = 0;
// TODO: Adicionar endcase
// TODO: Adicionar 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