Tekrar - Tam Testbench
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 78 / 90.
Görev
Bu meydan okuma, testbench'ler hakkında öğrendiğiniz her şeyi test eder: uyartı, görüntüleme, izleme, dumpfile, dumpvars ve sistem görevleri. Test etmeniz için bir XOR geçidi modülü verilmiştir.
Yapılacaklar:
Aşağıdakileri içeren eksiksiz bir testbench oluşturun:
- Sinyalleri tanımlayın (girişler için
reg, çıkış içinwire) - XOR geçidini
dutadıyla örnekleyin xor_waveform.vcdadlı bir dalga biçimi dosyası oluşturun- Testbench'teki tüm sinyalleri dökün
- "Testing XOR Gate" başlığını yazdırın
- Zamanı, x'i, y'yi ve z'yi izlemek için
$monitorkullanın - Dört giriş kombinasyonunun tamamını (00, 01, 10, 11) her biri arasında
#10gecikmeyle test edin - Sonunda "Test complete" yazdırın
- Benzetimi
$finishile sonlandırın
Kendin dene
module xor_gate (
input x,
input y,
output z
);
assign z = x ^ y;
endmodule
module testbench;
// TODO: x ve y için reg bildir
// TODO: z için wire bildir
// TODO: xor_gate'i dut adıyla örnekle
// .x(x), .y(y), .z(z) bağla
initial begin
// TODO: $dumpfile "xor_waveform.vcd" ekle
// TODO: $dumpvars (0, testbench) ekle
// TODO: $display "Testing XOR Gate" ekle
// TODO: time, x, y, z için $monitor ekle
// Biçim: "Time %0t: x=%b, y=%b, z=%b"
// TODO: Tüm dört kombinasyon için stimulus ekle
// 00, 01, 10, 11 #10 gecikme ile
// TODO: $display "Test complete" ekle
// TODO: $finish ekle
end
endmoduleTemel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları14Testbench Temelleri
Testbench NedirUyarıcı OluşturmaGörüntüleme ve İzlemeDumpfile ve DumpvarsSystem Task'lerini KullanmaTekrar - Tam Testbench3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi