Menu
Coddy logo textTech

Koşullu Generate

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

Bir generate-if, sabit bir parameter kullanarak bir donanım yapısı seçer. Belirli bir örnek için yalnızca bir dal somutlaştırılır. Sinyal içeren prosedürel bir if veya koşullu ifade, çalışma zamanında davranışı seçer; generate yapılandırmasının yerini almaz.

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

generate
    if(INVERT) begin: inverted
        assign y = ~a;
    end else begin: direct
        assign y = a;
    end
endgenerate

parameter, bu örnek için hangi sürücünün oluşturulacağını seçer.

Sabit yapılandırma için generate-if, çalışma zamanı denetimleri içinse normal RTL seçimini kullanın.

challenge icon

Görev

Orta

Koşullu generate kullanın: MODE=0, a değerini değişmeden geçirir; MODE=1, a değerinin sekiz bitinin tamamını tersine çevirir. Girdi b kullanılmaz. MODE 0 veya 1 değerlerinden biridir. Testbench her iki yapılandırmayı örnekler ve önce y0, ardından y1 değerini yazdırır.

design.v dosyasını tamamlayın ve modül adlarıyla portlarını koruyun. Kilitli testbench.v, 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 girdi gerekmez. Tasarıma yazdırma, gecikme veya simülasyonu sonlandırma eklemeyin. Beklenen çıktı, her gözlem için bir satır ondalık değerden oluşmalı, değerler tek bir boşlukla ayrılmalı ve satır yeni satır karakteriyle bitmelidir.

Kendin dene

module dut #(parameter MODE=0) (input [7:0] a,b, output [7:0] y);
    assign y=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