Menu
CoddyTech

Encoder Prioritas

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

Encoder memetakan bit permintaan ke sebuah indeks. Beberapa permintaan aktif memerlukan aturan prioritas yang eksplisit. Rangkaian if/else-if memprioritaskan percabangan yang lebih awal; sinyal valid terpisah membedakan tidak adanya permintaan dari indeks nol.

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

if (req[3]) code = 3;
else if (req[2]) code = 2;
else if (req[1]) code = 1;
else code = 0;

Percabangan pertama yang bernilai true akan dijalankan, sehingga bit permintaan tertinggi mendapat prioritas.

Sebutkan urutan prioritas dan nyatakan secara eksplisit output saat tidak ada permintaan.

challenge icon

Tantangan

Sedang

Encode bit tertinggi yang bernilai 1 dari req 4-bit ke dalam code. Atur valid jika ada permintaan, jika req bernilai nol, code dan valid bernilai nol. Kolom output: code, valid. Semua nilai stimulus adalah nilai biner yang diketahui.

Lengkapi design.v dan pertahankan nama module serta port-nya. 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, penundaan, atau penghentian simulasi ke design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan oleh satu spasi dan diakhiri dengan newline.

Coba sendiri

module dut (input [3:0] req, output reg [1:0] code, output reg valid);
    // Ganti bagian sementara ini dengan desainmu.
    initial code = 0;
    initial valid = 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