Menu
CoddyTech

Generate loop

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

Perulangan for generate membuat perangkat keras berulang selama elaborasi. Indeks genvar-nya bukan register runtime yang berubah. Blok generate bernama memberikan nama hierarkis yang dapat diprediksi untuk instance atau penugasan yang dibuat. Batas perulangan harus berupa konstanta waktu elaborasi.

Kutipan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.

genvar i;
generate
    for(i=0;i<WIDTH;i=i+1) begin: bitcell
        assign y[i] = a[i] ^ b[i];
    end
endgenerate

Setiap iterasi menguraikan operasi tingkat bit yang terpisah, bukan menggunakan siklus clock.

Gunakan genvar dengan batas konstan untuk mendeskripsikan struktur berulang saat elaborasi.

challenge icon

Tantangan

Sedang

Gunakan perulangan generate-for bernama dengan genvar i untuk membuat satu penugasan kontinu per bit, sehingga menghasilkan y[i] = a[i] XOR b[i]. WIDTH bernilai positif. Testbench terkunci membuat instance dengan nilai WIDTH 1, 4, dan 8, menggunakan bit rendah a dan b untuk instance yang lebih sempit. Kolom output adalah y1, y4, dan y8 dalam desimal.

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

Coba sendiri

module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
    // Implementasikan rangkaian berparameter ini.
    assign y = 0;
endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Desain dan Verifikasi RTL

Latihan sendiri: Compiler Verilog online