Modelli di riferimento e punteggi
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 28 di 38.
Un testbench con autocontrollo calcola il comportamento previsto indipendentemente dall’output del design. Un modello di riferimento può usare operazioni aritmetiche semplici anche quando l’implementazione usa una struttura diversa. Uno scoreboard conta le osservazioni e le discrepanze. Inizializza i suoi contatori una sola volta per scenario e confronta i valori solo dopo che l’output del design si è stabilizzato.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;Il valore previsto deriva dal comportamento di input specificato, non dalla copia di actual.
Calcola i valori attesi in modo indipendente, esegui il campionamento a un orario definito e registra ogni risultato verificato.
Sfida
MedioImplementa un controllo di riferimento per un sommatore unsigned a quattro bit. Calcola il risultato matematico completo a cinque bit di a+b, quindi restituisci ok=1 solo se actual corrisponde esattamente a quel risultato nel confronto a quattro stati. Questo modulo contiene un task solo per la simulazione, chiamato dal testbench bloccato. Colonne di output: ok.
Completa design.v e conserva i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni 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. Lascia la stampa e il controllo degli scenari 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 carattere di nuova riga.
Provalo tu
module dut;
task check_sum;
input [3:0] a,b;
input [4:0] actual;
output ok;
reg [4:0] expected;
begin
// Completa il task di verifica.
ok=0;
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