Menu
CoddyTech

Hitung Sampel yang Diterima

Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 34 dari 38.

challenge icon

Tantangan

Sulit

Bangun satu Sample Monitor dalam lima langkah. Lacak sampel yang diterima dalam count: tambahkan nilainya pada setiap tepi en yang tidak sedang mereset atau menghapus, dengan nilai maksimum 15. rst atau clear mereset count sekaligus total. Sampel bernilai nol yang diterima tetap menambah count. Pertahankan semua hal dari langkah sebelumnya, termasuk testbench dan perilaku output sebelumnya. Semua nilai input diketahui. Skenario berisi paling banyak 40 tepi, jadi total muat dalam 16 bit. Testbench tetap mencetak total untuk skenario 1-9, total dan count untuk skenario 10-12, serta total, count, dan alarm untuk skenario 13-15. Hanya skenario yang diaktifkan untuk langkah ini yang dinilai.

Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang terkunci menyediakan perubahan input dan mencetak output setelah stabil. Testbench memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, jeda, atau penghentian simulasi ke dalam desain. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan dengan satu spasi dan diakhiri dengan baris baru.

Coba sendiri

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)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

Semua pelajaran di Desain dan Verifikasi RTL

Latihan sendiri: Compiler Verilog online