Dört Durumlu Denetimler
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 26 / 38.
Bir testbench, bilinmeyenleri bilinçli bir şekilde ele almalıdır. Sıradan eşitlik X döndürebilir; bu da bir if koşulundaki hatayı gizleyebilir. Case eşitliği ve eşitsizliği olan === ve !==, dört değerin tümünü olduğu gibi karşılaştırır ve bilinen bir Boolean döndürür. Reduction XOR’un ardından case ile X karşılaştırması yapmak, bilinmeyen bitleri algılayabilir. Bunları, fiziksel X değerlerini algılayan bir donanım modeli olarak değil, simülasyon kontrolleri olarak kullanın.
İlgili alıntı; çevredeki bildirimler ve bağlantılar meydan okumada sağlanmıştır.
if(actual !== expected) errors = errors + 1;X veya Z içeren bir fark, bilinmeyen bir koşulun içinde kaybolmak yerine sayılır.
Simülasyon denetleyicilerinde açıkça dört durumlu karşılaştırmalar kullanın ve bilinmeyenlerin nasıl ele alınacağını tanımlayın.
Görev
OrtaBu yalnızca simülasyon amaçlı bir denetleyicidir; sentezlenebilir veri yolu mantığı değildir. Dört durumlu karşılaştırmada actual ve expected farklı olduğunda mismatch değerini ayarlayın. Aynı konumlarda her ikisi de aynı X veya Z değerine sahipse eşit karşılaştırılırlar. Sonuç always bilinen bir 0 veya 1 olmalıdır. Çıktı sütunları: mismatch. Tüm uyarım değerleri bilinen ikili değerlerdir.
design.v dosyasını tamamlayın ve modül adlarıyla portlarını koruyun. Kilitli testbench.v giriş değişikliklerini sağlar ve kararlı hâle geldikten sonra çıktıları yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkeni kullanarak bir senaryo seçer; standart girdi gerekli değildir. Tasarıma yazdırma, gecikme veya simülasyon sonlandırma eklemeyin. Beklenen çıktı, her gözlem için bir satır ondalık değer olmalı; değerler tek bir boşlukla ayrılmalı ve satır yeni satır karakteriyle bitmelidir.
Kendin dene
module dut (input [3:0] actual, input [3:0] expected, output mismatch);
// Bu yer tutucuyu kendi tasarımınızla değiştirin.
assign mismatch = 0;
endmoduleBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
RTL Tasarımı ve Doğrulama bölümündeki tüm dersler
1Güvenilir Kombinasyonel RTL
Varsayılanlar Latch'leri ÖnlerÖncelikli KodlayıcılarOne-Hot DoğrulamaGüvenli Case Kod ÇözmeÖzet - İstek Yönlendirici2Bit Genişlikleri ve İşaretli Aritmetik
Taşıma Bitlerini Korumakİşaretli KarşılaştırmalarAritmetik Sağa KaydırmalarTaşma ve DoygunlukÖzet - İşaretli Fark3Yeniden Kullanılabilir RTL
Kombinasyonel FonksiyonlarGenişlik Uyumlu ParametrelerGenerate DöngüleriKoşullu GenerateÖzet - Yeniden Kullanılabilir Bit Maskesi6Kendi Kendini Denetleyen Testbench'ler
Dört Durumlu DenetimlerYeniden Kullanılabilir Denetleyici GörevleriReferans Modelleri ve SkorlarSınır ve Kontrol KapsamıÖzet - Toplayıcı DenetimiKendi başına pratik yap: Online Verilog derleyicisi