Örneklenmiş Kenarları Algılama
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 19 / 38.
Bir seviye birçok çevrim boyunca yüksek kalabilirken, bir olay darbesi bir çevrim sürmelidir. Önceki örneklenmiş seviyeyi saklayın ve bunu mevcut seviyenizle karşılaştırın. Bu kenar algılayıcı, girişin zaten bu saatle senkron olduğunu varsayar; bir saat alanı geçişi senkronizatörü değildir.
İlgili alıntı; çevredeki bildirimler ve bağlantılar görevde sağlanmıştır.
previous <= sig;
rising <= sig & ~previous;Eski kaydedilmiş seviye, örneklenen geçişte tek bir darbe oluşturur.
Mevcut ve önceki örneklenmiş seviyeleri karşılaştırın; bu dedektörü yalnızca senkron bir girişle kullanın.
Görev
Ortaclk ile zaten senkron olan bir sig sinyali için, örneklenen her 0'dan 1'e geçişte kayıtlı, tek çevrimlik bir darbe üretin. Senkron rst, kaydedilen önceki seviyeyi ve darbeyi temizler. Bu nedenle, sıfırlama sonrasındaki ilk kenarda yüksek seviyedeki bir sig darbe üretir. Çıktı sütunları: pulse. Tüm kontrol ve veri sinyalleri, her yükselen saat kenarından önce sabittir; sonuçlar daha sonra gözlemlenir.
design.v dosyasını tamamlayın ve modül adlarıyla portlarını koruyun. Kilitli testbench.v, giriş değişikliklerini sağlar ve değerler kararlı hâle geldikten sonra çıktıları yazdırır. +CASE=1 gibi bir simülatör argümanı kullanarak bir senaryo seçer; standart girdi gerekmez. Tasarıma yazdırma, gecikme veya simülasyon sonlandırma eklemeyin. Beklenen çıktı, her gözlem için ondalık değerlerden oluşan, tek boşlukla ayrılmış ve satır sonunda yeni satır bulunan bir satırdır.
Kendin dene
module dut (input clk, input rst, input sig, output reg pulse);
// Bu yer tutucuyu kendi tasarımınızla değiştirin.
initial pulse = 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önlendirici4Kontrollü Ardışıl RTL
Reset ve Enable ÖnceliğiDoyumlu SayaçlarVeri ve Valid Boru HattıÖrneklenmiş Kenarları AlgılamaÖzet - Olay Sayacı2Bit 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