25 / 37 · Concetto
Piano di verifica, coverage e riferimenti indipendenti
Distinguere test superati e specifica soddisfatta collegando confini, incroci e controesempi.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Il piano trasforma la specifica in affermazioni verificabili
Sostituite «funziona bene» con stato dopo reset, uscite normali, mantenimento allo stop, gestione degli ingressi vietati e istante di completamento. Collegate ogni affermazione ad almeno un test e un'osservazione per trovare le lacune.
| Affermazione | Stimolo | Osservazione |
|---|---|---|
| Priorità reset | reset ed enable insieme a 1 | Stato successivo iniziale |
| Ordine dei dati preservato | Schemi asimmetrici consecutivi | Ogni uscita e valid |
| Ritorno esatto al limite | Prima e dopo il massimo | M−1→0, nessun fuori campo |
| Mantenimento allo stop | Ingressi cambiano, accept=0 | Stato invariato |
| Pattern sovrapposti | 10101 | Rilevazione al terzo e quinto bit accettato |
Perché serve un riferimento indipendente
Copiare gli stessi sliceSlice Selezione di un intervallo contiguo del vettore, che determina larghezza e ordine del risultato. Approfondisci del registro può copiare anche l'errore d'indice. Forme alternative, come moltiplicazione/modulo interi o confronto del suffisso di una stringa, aiutano la verifica reciproca. Una forma diversa però non dimostra da sola indipendenza: controllate piccoli casi a mano.
Coverage non significa numero di test superati
Righe eseguite non equivalgono a casi funzionali verificati. Incroci reset×enable, state×input e full×push×pop possono rivelare difetti. Aggiungete test mirati per combinazioni rare e importanti, senza affidarvi solo al caso.
Un circuito combinatorio con N ingressi ammette casi esaustivi; uno sequenziale comprende anche sequenze temporali. Analizzate raggiungibilità e invariantiInvariante Condizione sempre vera in ogni esecuzione ammessa. Una FIFO profonda quattro contiene, per esempio, sempre da zero a quattro elementi. su ogni transizione. Simulazioni finite superate non sono una prova matematica per tempo illimitato.
Ricavate gli attesi indipendentemente dalla specifica. Quando fallisce un test, conservate anche ingressi e stato precedenti, non solo il valore reale.
- Specifica e stimoli: Scegliere condizioni limite e incrociate
- Modello di riferimento indipendente: Calcolare valore atteso e istante di validità
- Confrontare con il DUT: Confrontare allo stesso istante di osservazione
- Registrare la prima discordanza: Conservare controesempio minimo e seed
Ridurre e registrare il guasto
Conservate stato, ingresso, atteso e reale della prima discordanza. Eliminate stimoli superflui fino al controesempio minimo, poi correggete. Oltre al test modificato rieseguite come regressione le verifiche esistenti di confine e resetReset Controllo che riporta allo stato iniziale specificato. Occorre definirne sincronicità e priorità rispetto agli altri controlli. Approfondisci.
Prova tu
Coverage RTL 100% e 10.000 test casuali superati, ma mai reset=enable=1. Cosa manca?
Leggi la spiegazione
Controllate l’incrocio nella specifica e aggiungete un test mirato da stato iniziale non nullo che mostri la priorità. Coverage del codice e numero di test non sostituiscono la verifica di quel requisito.