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.
Desafío
IntermedioRegistra 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
endmoduleEsta 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
1RTL combinacional confiable
Los valores predeterminados evitan los latchesCodificadores de prioridadValidación one-hotDecodificación segura de caseRepaso: enrutador de solicitudes4RTL secuencial controlado
Prioridad de reinicio y habilitaciónContadores con saturaciónPipeline de datos y validaciónDetección de flancos muestreadosRepaso: contador de eventos7Proyecto - Monitor de muestras
Acumular muestrasAceptar muestras habilitadas2Anchos y aritmética con signo
Conservar los bits de acarreoComparaciones con signoDesplazamientos aritméticos a la derechaDesbordamiento y saturaciónRepaso: diferencia con signo3RTL reutilizable
Funciones combinacionalesParámetros seguros en anchuraBucles generateGenerate condicionalRepaso - Máscara de bits reutilizable6Testbenches con autocomprobación
Comprobaciones de cuatro estadosTareas de comprobación reutilizablesModelos de referencia y puntuacionesCobertura de límites y controlRepaso: auditoría del sumadorPractica por tu cuenta: Compilador de Verilog online