Menu
Coddy logo textTech

Öncelikli Kodlayıcılar

Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 2 / 38.

Bir kodlayıcı, bir istek bitini bir dizine eşler. Birden fazla etkin istek, açık bir öncelik kuralı gerektirir. Bir if/else-if zinciri, daha önceki dallara öncelik verir; ayrı bir geçerli sinyal, hiçbir istek olmaması ile sıfırıncı dizini birbirinden ayırır.

İlgili alıntı; çevredeki bildirimler ve bağlantılar challenge'da sağlanmıştır.

if (req[3]) code = 3;
else if (req[2]) code = 2;
else if (req[1]) code = 1;
else code = 0;

İlk doğru dal kazanır ve en yüksek istek bitine öncelik verir.

Öncelik sırasını belirtin ve istek yokken verilecek çıktıyı açıkça tanımlayın.

challenge icon

Görev

Orta

4 bitlik req'nin etkin olan en yüksek bitini code'a kodlayın. Herhangi bir istek varsa valid'i ayarlayın; req sıfır olduğunda code ve valid sıfır olur. Çıktı sütunları: code, valid. Tüm uyarıcı değerleri bilinen ikili değerlerdir.

design.v dosyasını tamamlayın ve modül adlarını ve portlarını koruyun. Kilitli testbench.v dosyası giriş değişikliklerini sağlar ve çıktıları kararlı hâle geldikten sonra yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkeni 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 bir satır ondalık değer olup değerler tek bir boşlukla ayrılır ve satır yeni satır karakteriyle sona erer.

Kendin dene

module dut (input [3:0] req, output reg [1:0] code, output reg valid);
    // Bu yer tutucuyu kendi tasarımınızla değiştirin.
    initial code = 0;
    initial valid = 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