Menu
CoddyTech

Dekode Case yang Aman

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

Gunakan pernyataan case biasa untuk kode kontrol yang tepat. Sediakan perilaku default untuk kode yang tidak didukung dan tetapkan semua output dengan assign. Dekode wildcard dengan casex dapat menyembunyikan bit kontrol yang tidak diketahui dalam simulasi, sehingga tidak cocok jika nilai yang tidak diketahui harus tetap terlihat saat debug.

Kutipan yang relevan. Deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.

always @* begin
    y = 0;
    invalid = 0;
    case (op)
        0: y = a & b;
        1: y = a | b;
        default: invalid = 1;
    endcase
end

Kode yang tidak didukung menghasilkan status eksplisit, bukan mempertahankan output sebelumnya.

Definisikan kode kontrol yang tidak didukung secara eksplisit dan hindari menutupi kontrol yang tidak dikenal dengan casex.

challenge icon

Tantangan

Sedang

Implementasikan unit logika 8-bit: op 0 menghitung a AND b, op 1 menghitung a OR b, op 2 menghitung a XOR b, dan op 3 menghasilkan nol dengan invalid bernilai satu. invalid bernilai nol untuk operasi yang didukung. Kolom output: y, invalid. Semua nilai stimulus adalah nilai biner yang diketahui.

Lengkapi design.v dan pertahankan nama module serta port-nya. testbench.v yang terkunci memberikan 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 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 [1:0] op, input [7:0] a, input [7:0] b, output reg [7:0] y, output reg invalid);
    // Ganti kode sementara ini dengan desainmu.
    initial y = 0;
    initial invalid = 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