Repaso - Diseño de ALU
Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 57 de 90.
Desafío
Una ALU (Unidad Aritmético Lógica) es un circuito digital que toma dos entradas, realiza una operación sobre ellas y produce una salida. Realiza operaciones aritméticas y lógicas en dos entradas basándose en 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 simple usando una sentencia 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, tipo reg) - Añade un bloque
always @(*) - En el interior, añade una sentencia
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 el módulo alu
// TODO: Agregar entradas (a, b, select)
// TODO: Agregar salida (result)
// TODO: Agregar bloque always @(*)
// TODO: Agregar case (select)
// TODO: Agregar case 2'b00: result = a + b;
// TODO: Agregar case 2'b01: result = a - b;
// TODO: Agregar case 2'b10: result = a & b;
// TODO: Agregar case 2'b11: result = a | b;
// TODO: Agregar default: result = 0;
// TODO: Agregar endcase
// TODO: Agregar endmoduleTodas las lecciones de Fundamentos
1Introducción
¿Qué es Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo