Referans Modelleri ve Skorlar
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 28 / 38.
Kendi kendini denetleyen bir testbench, beklenen davranışı tasarım çıktısından bağımsız olarak hesaplar. Bir referans model, uygulama farklı bir yapı kullansa bile basit aritmetikten yararlanabilir. Bir scoreboard, gözlemleri ve uyuşmazlıkları sayar. Sayaçlarını her senaryo için bir kez başlatın ve yalnızca tasarım çıktısı kararlı hâle geldikten sonra karşılaştırma yapın.
İlgili alıntı; çevredeki bildirimler ve bağlantılar meydan okumada sağlanmıştır.
expected = {1'b0,a} + {1'b0,b};
checked = checked + 1;
if(actual !== expected) errors = errors + 1;Beklenen değer, actual değerini kopyalamaktan değil, belirtilen giriş davranışından gelir.
Beklenen değerleri bağımsız olarak hesaplayın, tanımlanmış bir zamanda örnek alın ve kontrol edilen her sonucu takip edin.
Görev
Ortaİşaretsiz dört bitlik bir toplayıcı için bir referans denetimi uygulayın. Tam beş bitlik matematiksel a+b işlemini hesaplayın, ardından yalnızca actual bu sonuçla dört durumlu karşılaştırmada tam olarak eşleşiyorsa ok=1 döndürün. Bu modül, kilitli testbench tarafından çağrılan yalnızca simülasyonda kullanılan bir task içerir. Çıktı sütunları: ok.
design.v dosyasını tamamlayın ve modül adlarını ve portlarını koruyun. Kilitli testbench.v, giriş değişikliklerini sağlar ve kararlı hale 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 gerekmez. Yazdırma ve senaryo denetimini kilitli testbench'te bırakın; yalnızca task gövdesini uygulayın. Beklenen çıktı, her gözlem için bir boşlukla ayrılmış ve yeni satırla biten bir satır ondalık değerdir.
Kendin dene
module dut;
task check_sum;
input [3:0] a,b;
input [4:0] actual;
output ok;
reg [4:0] expected;
begin
// Denetleyici görevini tamamla.
ok=0;
end
endtask
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