Özet - Tam Testbench
Coddy'nin Verilog Journey'sinin Temeller 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: stimulus, display, monitor, dumpfile, dumpvars ve sistem görevleri. Test etmeniz için size bir XOR kapısı modülü verilmiştir.
Ne yapmalı:
Şunları yapan eksiksiz bir testbench oluşturun:
- Sinyalleri tanımlar (girişler için
reg, çıkış içinwire) - XOR kapısını
dutadıyla örnekler (instantiate) xor_waveform.vcdadında bir dalga formu dosyası oluşturur- Testbench'teki tüm sinyalleri dump eder
- Bir başlık yazdırır: "Testing XOR Gate"
- Zamanı, x, y ve z'yi izlemek için
$monitorkullanır - Her biri arasında
#10gecikme olacak şekilde dört giriş kombinasyonunun (00, 01, 10, 11) tümünü test eder - Sonunda "Test complete" yazdırır
- Simülasyonu
$finishile sonlandırır
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 tanımlayın
// TODO: z için wire tanımlayın
// TODO: xor_gate modülünü dut adıyla örnekleyin
// Bağlantılar: .x(x), .y(y), .z(z)
initial begin
// TODO: $dumpfile "xor_waveform.vcd" ekleyin
// TODO: $dumpvars (0, testbench) ekleyin
// TODO: $display "Testing XOR Gate" ekleyin
// TODO: time, x, y, z için $monitor ekleyin
// Format: "Time %0t: x=%b, y=%b, z=%b"
// TODO: Dört kombinasyonun tümü için uyarıcı (stimulus) ekleyin
// #10 gecikme ile 00, 01, 10, 11
// TODO: $display "Test complete" ekleyin
// TODO: $finish ekleyin
end
endmoduleTemeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları14Testbench Temelleri
Testbench Nedir?Stimulus OluşturmaDisplay ve MonitorDumpfile ve DumpvarsSistem Görevlerini KullanmaÖzet - Tam Testbench3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı