Menu
Coddy logo textTech

Cobertura de límites y control

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

Superar unas pocas pruebas es diferente de ejercitar los escenarios importantes. Comprueba si se probaron los valores mínimos, máximos y ordinarios, y si los controles que compiten entre sí ocurrieron juntos. Una marca de cobertura registra que se observó un case; no demuestra que el diseño respondiera correctamente. Combina la cobertura con comprobaciones de resultados.

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

if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;

La máscara de bits recuerda qué categorías han aparecido sin reemplazar los aciertos anteriores.

Combina la cobertura de límites y combinaciones de control con comprobaciones independientes de corrección.

challenge icon

Desafío

Intermedio

Registra tres intervalos de cobertura de entradas en seen sin borrar los aciertos anteriores: el bit 0 registra value=0, el bit 1 registra value=15 y el bit 2 registra los valores del 1 al 14. Las entradas contienen bits conocidos. El llamador inicializa seen=0 antes de un escenario. Este módulo contiene una task exclusiva de simulación a la que llama el banco de pruebas bloqueado. Columnas de salida: seen como decimal.

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 estabilizadas. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. Mantén la impresión y el control del escenario en el banco de pruebas bloqueado; implementa únicamente el cuerpo de la task. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminados con un salto de línea.

Pruébalo tú mismo

module dut;
    task observe;
        input [3:0] value;
        inout [2:0] seen;
        begin
            // Completa la tarea del checker.
            seen=seen;
        end
    endtask
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