Menu
CoddyTech

Validasi One-Hot

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

Data one-hot memiliki tepat satu bit yang bernilai aktif. Decoder menghasilkan data seperti itu, sedangkan validasi memeriksa data yang masuk sebelum menggunakannya. Untuk nilai biner yang diketahui, nilai bukan nol adalah one-hot jika bits & (bits - 1) bernilai nol. Bagian ini tidak menggunakan cara singkat tersebut untuk mengklasifikasikan X atau Z.

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

assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);

Pemeriksaan nilai bukan nol mengecualikan kondisi idle; trik bit menolak beberapa bit yang disetel.

Bedakan nol, tepat satu bit yang disetel, dan beberapa bit yang disetel saat memvalidasi permintaan.

challenge icon

Tantangan

Sedang

Untuk input 4-bit bits yang nilainya diketahui, set valid hanya saat tepat satu bit bernilai 1. Gunakan pemeriksaan nilai bukan nol bersama bits & (bits - 1). Kolom output: valid. Semua nilai stimulus adalah nilai biner yang diketahui.

Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang terkunci menyediakan perubahan input dan mencetak output setelah nilainya 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 [3:0] bits, output valid);
    // Ganti placeholder ini dengan desainmu.
    assign 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