Menu
CoddyTech

Parameter yang Aman terhadap Lebar

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

Dasar-dasar memperkenalkan lebar yang dapat dikonfigurasi. RTL yang dapat digunakan kembali juga harus menangani lebar legal terkecil, menentukan ukuran ekspresi antara dengan sengaja, dan menghindari posisi bit yang ditetapkan secara hard-code. Replikasi {WIDTH{1'b1}} membuat mask yang ukurannya sesuai dengan lebar. Parameter adalah konstanta elaborasi, bukan kontrol runtime.

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

wire [WIDTH:0] sum;
assign sum = {1'b0,a} + {1'b0,b};
assign y = sum[WIDTH] ? {WIDTH{1'b1}} : sum[WIDTH-1:0];

Posisi carry dan nilai saturasi menyesuaikan dengan lebar yang dikonfigurasi.

Uji lebar minimum yang diizinkan dan tentukan setiap irisan serta konstanta yang bergantung pada lebar dari parameter.

challenge icon

Tantangan

Sedang

Buat incrementer WIDTH-bit yang mengembalikan WIDTH bit terendah dari a+1. Input b tidak digunakan. Module yang sama harus berfungsi untuk WIDTH=1 maupun lebar yang lebih besar. WIDTH bernilai positif. Testbench yang dikunci membuat instance dengan nilai WIDTH 1, 4, dan 8, menggunakan bit terendah 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 dikunci 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 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.
    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