Menu
CoddyTech

Pergeseran Kanan Aritmetika

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

Pergeseran kanan aritmetika menggunakan >>> dan mereplikasi bit tanda saat operand kirinya berupa signed. Pergeseran kanan logis menggunakan >> dan mengisi dengan nol. Untuk nilai ganjil negatif, menggeser ke kanan secara aritmetika tidak sama dengan pembagian integer yang membulatkan ke arah nol.

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

reg signed [7:0] value;
value = -3;
$display("%0d", value >>> 1);

Hasilnya adalah minus dua karena ekstensi tanda mempertahankan interpretasi komplemen dua yang negatif.

Gunakan operand kiri signed dengan >>> saat diperlukan perluasan tanda.

challenge icon

Tantangan

Sedang

Geser aritmetika ke kanan nilai 8-bit signed sebesar jumlah tertentu (0 hingga 7). Kembalikan hasil 8-bit signed y. Nilai negatif diisi dengan bit tandanya. Kolom output: y. Semua nilai stimulus diketahui dalam biner.

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 dalam design. 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 signed [7:0] value, input [2:0] amount, output signed [7:0] y);
    // Ganti placeholder ini dengan rancanganmu.
    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