25 / 37 · Concepto
Plan de verificación, cobertura y referencia independiente
Distinga pruebas superadas de cumplimiento y planifique límites, cruces de condiciones y contraejemplos mínimos.
Las lecciones se pueden leer gratis. Inscríbete para guardar el progreso.
Convierta la especificación en afirmaciones comprobables
En lugar de «funciona bien», escriba requisitos concretos: estado tras reset, salida normal, conservación al parar, tratamiento de entradas prohibidas y momento de finalización. Vincular cada afirmación con al menos una prueba y una observación revela omisiones.
| Afirmación funcional | Estímulo | Observación |
|---|---|---|
| Reset prioritario | Reset y enable simultáneamente en 1 | Estado siguiente inicial |
| Conservación del orden | Patrones asimétricos consecutivos | Valores y valid de todas las salidas |
| Retorno exacto | Estados alrededor del máximo | M−1→0, sin valores fuera de rango |
| Conservación al parar | Cambiar entrada con accept=0 | Estado almacenado invariable |
| Solapamiento permitido | 10101 | Detección en entradas aceptadas 3 y 5 |
Por qué hace falta una referencia independiente
Copiar las mismas seleccionesSelección de bits Operación que extrae un intervalo contiguo de un vector. El intervalo determina el ancho y el orden de los bits del resultado. Más información del desplazador puede copiar también un error de índice. Expresar la especificación de otra forma, con multiplicación y módulo enteros o comparación de sufijos de una cadena, ayuda a contrastar. Otra representación no demuestra automáticamente independencia: compruebe casos pequeños a mano.
Cobertura no es cantidad de aciertos
Ejecutar una línea no implica verificar todos sus casos funcionales. Cruces como reset×enable, estado×entrada o full×push×pop revelan fallos. Añada pruebas dirigidas para combinaciones raras e importantes, además de aleatoriedad.
Una función combinacional de N entradas tiene combinaciones; un circuito secuencial tiene además secuencias temporales. Analice alcanzabilidad de estados y conservación de invariantesInvariante Condición que debe cumplirse en toda ejecución permitida. Por ejemplo, la ocupación de una FIFO de profundidad 4 siempre está entre 0 y 4. en cada transición. No presente una cantidad finita de simulaciones como demostración matemática para tiempo ilimitado.
Calcule expectativas desde la especificación, sin copiar la implementación. Ante un fallo, guarde también entradas y estado previos, no solo el valor incorrecto.
- Especificación y estímulos: Seleccione límites y cruces de condiciones
- Referencia independiente: Calcule valor esperado e instante válido
- Compare con el DUT: Contraste en el mismo punto de observación
- Registre la primera discrepancia: Conserve el contraejemplo mínimo y la semilla
Reduzca y registre los fallos
Guarde estado anterior, entrada, esperado y real de la primera discrepancia. Reduzca estímulos hasta un contraejemplo mínimo antes de corregir. Ejecute después tanto la nueva prueba como las anteriores de límites y resetReset Control que devuelve el estado a un valor inicial especificado. Deben definirse su carácter síncrono o asíncrono y su prioridad frente a otros controles. Más información.
Inténtalo tú
La cobertura RTL es del 100 % y pasan 10 000 pruebas aleatorias, pero nunca coinciden reset=1 y enable=1. ¿Qué debe añadir?
Leer la explicación
Revise esa combinación en la especificación y añada una prueba dirigida desde un estado inicial no nulo que revele la prioridad. Cobertura de código y cantidad de pruebas no sustituyen comprobar una condición funcional concreta.