Menu
Coddy logo textTech

Recap - ALU Design

Parte de la sección Fundamentos del Journey de Verilog de Coddy. Lección 57 de 90.

challenge icon

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

selectOperaciónSalida
2'b00Sumaa + b
2'b01Restaa - b
2'b10AND bit a bita & b
2'b11OR bit a bita | b

Construye una ALU sencilla usando una instrucción case.

Qué hacer:

  1. Crea un módulo llamado alu
  2. Añade las entradas: a (4 bits), b (4 bits), select (2 bits)
  3. Añade la salida: result (4 bits, de tipo reg)
  4. Añade un bloque always @(*)
  5. Dentro, añade una instrucción case (select)
  6. Añade cuatro casos para 2'b00, 2'b01, 2'b10, 2'b11
  7. Añade un caso default para establecer result = 0
  8. Cierra con endcase y endmodule

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 endmodule

Todas las lecciones de Fundamentos

Practica por tu cuenta: Compilador de Verilog online