Generate dengan Kondisi
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 14 dari 38.
generate-if memilih struktur perangkat keras menggunakan parameter konstan. Hanya satu cabang yang dielaborasi untuk instance tertentu. if prosedural atau ekspresi percabangan dengan sinyal memilih perilaku saat runtime, tetapi tidak menggantikan konfigurasi generate.
Cuplikan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.
generate
if(INVERT) begin: inverted
assign y = ~a;
end else begin: direct
assign y = a;
end
endgenerateparameter memilih driver yang dibuat untuk instance ini.
Gunakan generate-if untuk konfigurasi konstan dan pemilihan RTL biasa untuk kontrol saat runtime.
Tantangan
SedangGunakan generate bersyarat: MODE=0 meneruskan a tanpa perubahan; MODE=1 membalik semua delapan bit a. Input b tidak digunakan. MODE bernilai 0 atau 1. Testbench membuat instance untuk kedua konfigurasi dan mencetak y0 lalu y1.
Lengkapi design.v dan pertahankan nama module serta portnya. testbench.v yang dikunci menyediakan perubahan input dan mencetak output setelah stabil. Testbench memilih skenario menggunakan argumen simulator seperti +CASE=1; input standar tidak diperlukan. Jangan tambahkan pencetakan, delay, atau penghentian simulasi ke design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan satu spasi dan diakhiri baris baru.
Coba sendiri
module dut #(parameter MODE=0) (input [7:0] a,b, output [7:0] y);
assign y=0;
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Desain dan Verifikasi RTL
1RTL Kombinasional yang Andal
Nilai Default Mencegah LatchEncoder PrioritasValidasi One-HotDekode Case yang AmanRangkuman: Router Permintaan2Lebar Bit dan Aritmetika Bertanda
Mempertahankan Bit CarryPerbandingan BertandaPergeseran Kanan AritmetikaOverflow dan SaturasiRangkuman, Selisih Bertanda3RTL yang Dapat Digunakan Kembali
Fungsi KombinasionalParameter yang Aman terhadap LebarGenerate loopGenerate dengan KondisiRingkasan: Masker Bit yang Dapat Digunakan Kembali6Testbench dengan Pemeriksaan Mandiri
Pemeriksaan Empat KeadaanTask Checker yang Dapat Digunakan UlangModel Referensi dan SkorCakupan Batas dan KontrolRangkuman: Audit PenjumlahLatihan sendiri: Compiler Verilog online