Menu
Coddy logo textTech

Güvenli Case Kod Çözme

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

Kesin kontrol kodları için sıradan bir case ifadesi kullanın. Desteklenmeyen kodlar için default davranışı sağlayın ve tüm çıktıları assign edin. casex ile joker karakterli kod çözme, simülasyonda bilinmeyen kontrol bitlerini gizleyebilir; bu nedenle hata ayıklama sırasında bilinmeyenlerin görünür kalması gerektiğinde uygun değildir.

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

always @* begin
    y = 0;
    invalid = 0;
    case (op)
        0: y = a & b;
        1: y = a | b;
        default: invalid = 1;
    endcase
end

Desteklenmeyen kodlar, önceki bir çıktıyı korumak yerine açık bir durum üretir.

Desteklenmeyen kontrol kodlarını açıkça tanımlayın ve bilinmeyen kontrolleri casex ile maskelemekten kaçının.

challenge icon

Görev

Orta

8 bitlik bir mantık birimi uygulayın: op 0, a AND b işlemini; op 1, a OR b işlemini; op 2, a XOR b işlemini hesaplar ve op 3, invalid değerini one olarak ayarlayarak zero döndürür. Desteklenen işlemlerde invalid değeri zero olur. Çıktı sütunları: y, invalid. Tüm uyaran 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 çıktıları kararlı hâle geldikten sonra yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkenini kullanarak bir senaryo seçer; standart girdiye gerek yoktur. 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 tek bir boşlukla ayrılır ve satır bir yeni satır karakteriyle sona erer.

Kendin dene

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