Menu
Coddy logo textTech

Ö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.

challenge icon

Görev

Orta

clk 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;
endmodule
quiz iconKendini test et

Bu 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

Kendi başına pratik yap: Online Verilog derleyicisi