Testbench Yazma
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 45 / 90.
Görev
Şimdi yarım toplayıcının (half adder) doğru çalışıp çalışmadığını test etmemiz gerekiyor. Test kodunu initial bloğunun içine ekleyin.
Önemli: Testi eklemeden önce, testin düzgün çalışabilmesi için modül portlarını değiştirmeniz gerekir.
Ne yapmalı:
Adım 1: Port bildirimlerini değiştirin
input a, bifadesinireg a, bolarak değiştirin (noktalı virgül kullanın)output sum, carryifadesiniwire sum, carryolarak değiştirin (noktalı virgül kullanın)- Modül portlarını tamamen kaldırın (modülün
( )parantezleri olmamalıdır)
Adım 2: Test kodunu ekleyin
- Bir
initial beginbloğu ekleyin - Bloğun içine şunları ekleyin:
$display("a b | sum carry");
a = 0; b = 0; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 0; b = 1; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 1; b = 0; #1 $display("%d %d | %d %d", a, b, sum, carry);
a = 1; b = 1; #1 $display("%d %d | %d %d", a, b, sum, carry);
- Testi sonlandırmak için
$finish;ekleyin - Initial bloğunu kapatmak için
endekleyin
Kendin dene
module half_adder (
input a,
input b,
output sum,
output carry
);
assign sum = a ^ b;
assign carry = a & b;
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ı3Sayı 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ığı