Copertura dei limiti e dei controlli
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 29 di 38.
Superare alcuni test è diverso dal verificare gli scenari importanti. Tieni traccia dei test eseguiti sui valori minimi, massimi e ordinari e del fatto che i controlli concorrenti siano stati applicati insieme. Un flag di copertura registra che è stato osservato un case; non dimostra che il progetto abbia reagito correttamente. Affianca la copertura a verifiche dei risultati.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;La maschera di bit ricorda quali categorie sono apparse senza sostituire quelle precedenti.
Combina la copertura dei confini e delle combinazioni di controllo con verifiche indipendenti della correttezza.
Sfida
MedioRegistra tre categorie di copertura degli input in seen senza azzerare i rilevamenti precedenti: il bit 0 registra value=0, il bit 1 registra value=15 e il bit 2 registra i valori da 1 a 14. Gli input contengono bit noti. Il chiamante inizializza seen=0 prima di uno scenario. Questo modulo contiene un task utilizzato solo nella simulazione e chiamato dal testbench bloccato. Colonne di output: seen in formato decimale.
Completa design.v e conserva i nomi e le porte del modulo. Il testbench.v bloccato fornisce le modifiche degli input e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Mantieni la stampa e il controllo dello scenario nel testbench bloccato; implementa solo il corpo del task. L'output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un a capo.
Provalo tu
module dut;
task observe;
input [3:0] value;
inout [2:0] seen;
begin
// Completa il task di verifica.
seen=seen;
end
endtask
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progettazione e verifica RTL
1RTL combinatorio affidabile
I valori predefiniti evitano i latchEncoder di prioritàConvalida one-hotDecodifica sicura dei caseRiepilogo - Router delle richieste2Larghezze e aritmetica con segno
Preservare i bit di riportoConfronti con segnoShift aritmetici a destraOverflow e saturazioneRiepilogo - Differenza con segno3RTL riutilizzabile
Funzioni combinatorieParametri sicuri rispetto alla larghezzaCicli generateGenerate condizionaleRiepilogo - Maschera di bit riutilizzabile6Testbench con verifica automatica
Verifiche a quattro statiTask di verifica riutilizzabiliModelli di riferimento e punteggiCopertura dei limiti e dei controlliRiepilogo - Verifica dell'addizionatoreEsercitati da solo: Compilatore Verilog online