Práctica 1 · Bloques combinacionales en Verilog

viernes 28 de agosto · 16:0017:40 · en 6 días

Guía del maestro.docx

GUÍA 28-08-26 Laboratorio de Arquitecturas Computacionales

LA116 · viernes 28/08/2026 · 16:00-17:40 · Sesión 3

Práctica 1 · Bloques combinacionales en Verilog


OBJETIVO DE LA PRÁCTICA

Descripción en Verilog e implementación en FPGA de bloques combinacionales y secuenciales básicos. Hoy la parte combinacional.

BLOQUES A CONSTRUIR

  • Compuertas básicas y funciones booleanas.
  • Multiplexor 2 a 1, 4 a 1 y 8 a 1, parametrizado en ancho.
  • Decodificador 3 a 8 con habilitación.
  • Codificador con prioridad.
  • Comparador de magnitud.

PARAMETRIZAR DESDE EL PRINCIPIO

Escribir el multiplexor con parameter WIDTH = 32 en vez de fijarlo en 8. En las prácticas siguientes se van a necesitar los mismos bloques con anchos distintos, y reescribirlos cada vez es tiempo perdido.

  • module mux2 #(parameter WIDTH = 32) (input [WIDTH-1:0] a, b, input sel, output [WIDTH-1:0] y);

LOS ESTILOS

  • assign y = sel ? b : a; — el operador ternario es la forma idiomática del multiplexor en Verilog.
  • always @(*) con case — conviene cuando hay muchas opciones.

EL DEFAULT OBLIGATORIO

Todo case en un bloque combinacional necesita default, y todo if necesita else. Sin ellos se infiere un latch, la síntesis genera algo distinto de lo simulado, y el error aparece semanas después.

VERIFICACIÓN

Con cuatro entradas hay dieciséis combinaciones: la prueba puede ser exhaustiva. Escribir el testbench con un ciclo for que las recorra todas y compare contra el valor esperado con $display.

IMPLEMENTACIÓN

Asignar entradas a interruptores y salidas a LED según el manual de la tarjeta, programar y verificar físicamente cada combinación.

PARA LA PRÓXIMA SESIÓN

La parte secuencial y la entrega de la Práctica 1.

Mis notas0 palabras
.docx
Tareas propias de esta sesión

Nada anotado en esta sesión todavía.