Yeniden Kullanılabilir Denetleyici Görevleri
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 27 / 38.
Bir Verilog task, prosedürel çalışmaları gruplandırır ve sonuçları output veya inout bağımsız değişkenleri aracılığıyla döndürebilir. Testbench görevleri, yinelenen kontrolleri azaltır. Kombinasyonel bir function öğesinin aksine, bir task uygun olduğunda zamanlama denetimleri içerebilir; ancak bu denetleyici görevler yalnızca sıfır zamanlı karşılaştırmalar gerçekleştirir. Ayrı eşzamanlı çağrıların bağımsız yerel depolama alanına ihtiyaç duyduğu durumlarda automatic görevler kullanın; burada sağlanan çağrılar ardışıktır.
İlgili alıntı; çevredeki bildirimler ve bağlantılar görevde sağlanmıştır.
task check_value;
input [7:0] actual,expected;
output ok;
begin ok = (actual === expected); end
endtaskÇağıran, kontrol sonucunu açık bir çıkış bağımsız değişkeni aracılığıyla alır.
task argüman yönlerini tanımlayın ve hataları toplamadan önce çağrı başına sonuç değişkenlerini sıfırlayın.
Görev
Ortaactual ve expected dört durumlu eşitlik kapsamında eşleştiğinde ok değerinin bir, aksi durumda sıfır olması için check_value işlevini uygulayın. Bu modül, kilitli testbench tarafından çağrılan yalnızca simülasyona yönelik bir task içerir. Çıktı sütunları: ok.
design.v dosyasını tamamlayın ve modül adları ile portlarını koruyun. Kilitli testbench.v, giriş değişikliklerini sağlar ve dengelendikten 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 satır ondalık değer, değerler arasında tek bir boşluk ve satır sonunda bir yeni satır olacak şekildedir.
Kendin dene
module dut;
task check_value;
input [7:0] actual,expected;
output ok;
begin
// Kontrol 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