Menu
Coddy logo textTech

Eşik Alarmını Tetikle

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

challenge icon

Görev

Zor

Beş adımda bir Sample Monitor oluşturun. total, eşitlik durumu da dahil olmak üzere, işaretsiz limit değerine en az eşit olduğunda bileşimsel alarmı high yapın. alarm, her kenardan sonra güncellenmiş total değerini yansıtır ve limit değişikliklerini takip eder. limit=0 olduğunda, total=0 iken bile alarm high olur. Tüm biriktirme, etkinleştirme, temizleme ve sayma davranışlarını koruyun. Testbench ve önceki çıktı davranışı da dahil olmak üzere önceki adımlardaki her şeyi koruyun. Tüm giriş değerleri bilinir. Senaryolar en fazla 40 kenar içerir; bu nedenle total 16 bit içine sığar. Sabit testbench, 1-9 arası senaryolar için total değerini, 10-12 arası senaryolar için total ve count değerlerini, 13-15 arası senaryolar için ise total, count ve alarm değerlerini yazdırır. Yalnızca bu adım için etkinleştirilen senaryolar değerlendirilir.

design.v dosyasını tamamlayın ve modül adlarını ve portlarını koruyun. Kilitli testbench.v, giriş değişikliklerini sağlar ve kararlı duruma geldikten sonra çıktıları yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkeni kullanarak bir senaryo seçer; standart giriş gerekli değildir. 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 sonunda bir yeni satır olacak şekildedir.

Kendin dene

module dut(input clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    always @(posedge clk)begin
        if(rst || clear)begin total<=0;count<=0;end
        else if(en)begin
            total<=total+data;
            if(count!=15)count<=count+4'd1;
        end
    end
    assign alarm=0;
endmodule

RTL Tasarımı ve Doğrulama bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi