Recap - ALU Design
Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 57 de 90.
Desafío
Una ALU (Unidad Aritmética y Lógica) es un circuito digital que recibe dos entradas, realiza una operación con ellas y produce una salida. Realiza operaciones aritméticas y lógicas sobre dos entradas según una señal de selección. La señal select elige una operación para ejecutar.
Cómo funciona
| select | Operación | Salida |
|---|---|---|
2'b00 | Suma | a + b |
2'b01 | Resta | a - b |
2'b10 | AND bit a bit | a & b |
2'b11 | OR bit a bit | a | b |
Construye una ALU sencilla usando una instrucción case.
Qué hacer:
- Crea un módulo llamado
alu - Añade las entradas:
a(4 bits),b(4 bits),select(2 bits) - Añade la salida:
result(4 bits, de tipo reg) - Añade un bloque
always @(*) - Dentro, añade una instrucción
case (select) - Añade cuatro casos para
2'b00,2'b01,2'b10,2'b11 - Añade un caso
defaultpara establecerresult = 0 - Cierra con
endcaseyendmodule
Pruébalo tú mismo
// TODO: Crear module alu
// TODO: Añadir inputs (a, b, select)
// TODO: Añadir output (result)
// TODO: Añadir bloque always @(*)
// TODO: Añadir case (select)
// TODO: Añadir case 2'b00: result = a + b;
// TODO: Añadir case 2'b01: result = a - b;
// TODO: Añadir case 2'b10: result = a & b;
// TODO: Añadir case 2'b11: result = a | b;
// TODO: Añadir default: result = 0;
// TODO: Añadir endcase
// TODO: Añadir endmoduleTodas las lecciones de Fundamentos
1Introducción
Qué es VerilogHardware frente a softwareTu primer móduloComentariosNiveles de abstracción del diseño4Operators 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 LogicPractica por tu cuenta: Compilador de Verilog online