Recap - ALU Design
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, executa uma operação sobre elas e produz uma saída. Ela executa 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, do 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 projeto4Operators Part 1
Arithmetic OperatorsModulo OperatorComparison OperatorsRecap - Simple MathBitwise Operators7Assign And Gates
Continuous AssignmentAssign With OperatorsBuilt In Gate PrimitivesAND OR NOT GatesXOR XNOR GatesRecap - Logic Gate Circuit10Decision Making
If StatementIf - ElseRecap - Simple ComparatorCase StatementCasex And CasezRecap - ALU Design5Operators Part 2
Logical OperatorsReduction OperatorsShift OperatorsConcatenation OperatorConditional OperatorRecap - Operator Challenge3Number System
Binary RepresentationSized NumbersUnsized NumbersNegative NumbersSpecial Values X And ZRecap - Number Formats6Modules
Module StructureInput And Output PortsInout PortsModule InstantiationPort Mapping By NamePort Mapping By OrderRecap - Build A Module9Procedural Blocks
Always BlockInitial BlockSensitivity ListBlocking AssignmentNon Blocking AssignmentRecap - Always vs Initial15Traffic Light Controller
Defining The StatesState Machine LogicPratique por conta própria: Compilador de Verilog online