Menu
Coddy logo textTech

One-Hot Doğrulama

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

One-hot verileri tam olarak bir adet etkin biti içerir. Bir kod çözücü bu tür verileri üretirken doğrulama, gelen verileri kullanmadan önce kontrol eder. Bilinen ikili değerler için sıfır olmayan bir değer, bits & (bits - 1) sonucu sıfır olduğunda one-hot’tur. Bu bölüm, X veya Z değerlerini sınıflandırmak için bu kısa yolu kullanmaz.

İlgili alıntı; çevreleyen tanımlar ve bağlantılar görevde sağlanmıştır.

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

Sıfır olmayan kontrolü boşta olma durumunu hariç tutar; bit hilesi birden fazla ayarlanmış biti reddeder.

İstekleri doğrularken sıfır, tam olarak bir ayarlanmış bit ve birden fazla ayarlanmış bit arasında ayrım yapın.

challenge icon

Görev

Orta

Bilinen 4 bitlik giriş bits değeri için valid değerini yalnızca tam olarak bir bit yüksek olduğunda ayarlayın. Sıfır olmayan denetimi bits & (bits - 1) ile birlikte kullanın. Çıkış sütunları: valid. Tüm uyarıcı değerleri bilinen ikili değerlerdir.

design.v dosyasını tamamlayın ve modül adlarıyla portlarını koruyun. Kilitli testbench.v dosyası giriş değişikliklerini sağlar ve kararlı hâle geldikten sonra çıktıları yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkenini 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; değerler arasında bir boşluk ve satırın sonunda bir yeni satır bulunur.

Kendin dene

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