Menu
Coddy logo textTech

Los valores predeterminados evitan los latches

Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 1 de 38.

Se debe asignar una salida combinacional para cada ruta de entrada. Si un bloque always omite asignar una salida, esa salida conserva su valor anterior, lo que puede inferir un latch. Una asignación default seguida de sobrescrituras hace visible la cobertura.

Fragmento relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.

always @* begin
    y = 0;
    if (en) y = data;
end

El caso default cubre la ruta deshabilitada, por lo que la salida depende únicamente de las entradas actuales.

Asigna cada salida combinacional en todos los caminos; usa valores predeterminados antes de las sobrescrituras condicionales.

challenge icon

Desafío

Intermedio

Implementa una salida de 8 bits controlada: cuando en es uno, y es igual a a; de lo contrario, y es cero. Asigna y en cada ruta combinacional. Columnas de salida: y. Todos los valores de estímulo son valores binarios conocidos.

Completa design.v y conserva los nombres de sus módulos y puertos. El testbench.v bloqueado proporciona cambios en las entradas e imprime las salidas una vez que se estabilizan. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. No añadas impresiones, retardos ni terminación de la simulación al diseño. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminada con un salto de línea.

Pruébalo tú mismo

module dut (input en, input [7:0] a, output reg [7:0] y);
    // Reemplaza este marcador de posición con tu diseño.
    initial y = 0;
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Diseño y verificación RTL

Practica por tu cuenta: Compilador de Verilog online