Riepilogo - testbench completo
Fa parte della sezione Fondamenti del percorso Verilog di Coddy. Lezione 78 di 90.
Sfida
Questa sfida mette alla prova tutto ciò che hai imparato sui banchi di prova: stimoli, display, monitor, dumpfile, dumpvars e attività di sistema. Ti viene fornito un modulo XOR gate da testare.
Cosa fare:
Crea un banco di prova completo che:
- Dichiari i segnali (
regper gli ingressi,wireper l'uscita) - Istanzi il gate XOR con il nome
dut - Crei un file di forma d'onda chiamato
xor_waveform.vcd - Scarichi tutti i segnali nel banco di prova
- Stampi un'intestazione: "Testing XOR Gate"
- Usi
$monitorper tenere traccia del tempo, di x, y e z - Testi tutte e quattro le combinazioni di input (00, 01, 10, 11) con un ritardo
#10tra ciascuna - Stampi "Test complete" alla fine
- Termini la simulazione con
$finish
Provalo tu
module xor_gate (
input x,
input y,
output z
);
assign z = x ^ y;
endmodule
module testbench;
// TODO: Dichiara reg per x e y
// TODO: Dichiara wire per z
// TODO: Istanzia xor_gate con il nome dut
// Collega .x(x), .y(y), .z(z)
initial begin
// TODO: Aggiungi $dumpfile "xor_waveform.vcd"
// TODO: Aggiungi $dumpvars (0, testbench)
// TODO: Aggiungi $display "Testing XOR Gate"
// TODO: Aggiungi $monitor per il tempo, x, y, z
// Formato: "Time %0t: x=%b, y=%b, z=%b"
// TODO: Aggiungi gli stimoli per tutte e quattro le combinazioni
// 00, 01, 10, 11 con un ritardo di #10
// TODO: Aggiungi $display "Test complete"
// TODO: Aggiungi $finish
end
endmoduleTutte le lezioni di Fondamenti
1Introduzione
Cos'è VerilogHardware e software a confrontoIl tuo primo moduloCommentiLivelli di astrazione della progettazione4Operatori - Parte 1
Operatori aritmeticiOperatore moduloOperatori di confrontoRiepilogo - Matematica sempliceOperatori bitwise7Assegnazioni e porte
Assegnazione continuaAssegnazioni con operatoriPrimitive di porte integratePorte AND, OR e NOTPorte XOR e XNORRiepilogo: circuito con porte logiche10Decisioni
Istruzione ifIf-ElseRiepilogo - Comparatore sempliceIstruzione caseCasex e casezRiepilogo - Progettazione di una ALU5Operatori Parte 2
Operatori logiciOperatori di riduzioneOperatori di scorrimentoOperatore di concatenazioneOperatore condizionaleRiepilogo - Sfida sugli operatori14Fondamenti del testbench
Cos'è un testbenchCreazione degli stimoliVisualizzazione e monitoraggioDumpfile e DumpvarsUso dei task di sistemaRiepilogo - testbench completo3Sistema numerico
Rappresentazione binariaNumeri con dimensione specificataNumeri senza dimensione specificataNumeri negativiValori speciali X e ZRiepilogo - Formati numerici6Moduli
Struttura di un moduloPorte di input e outputPorte InoutIstanziazione di un moduloMappatura delle porte per nomeMappatura delle porte per ordineRiepilogo - Costruire un modulo9Blocchi procedurali
Blocco alwaysBlocco initialLista di sensibilitàAssegnazione bloccanteAssegnazione non bloccanteRiepilogo: always vs initial12Progetto Multiplexer
Progettazione di un mux da 2 a 1Progettazione di un mux da 4 a 1Esercitati da solo: Compilatore Verilog online