Overflow dan Saturasi
Termasuk bagian Desain dan Verifikasi RTL dalam perjalanan Verilog di Coddy. Pelajaran 9 dari 38.
Signed overflow berarti hasil matematis tidak dapat ditampung dalam lebar signed yang dipilih. Hal ini berbeda dari carry unsigned. Pada penjumlahan signed, input dengan tanda yang sama mengalami overflow jika tanda hasilnya berubah. Saturasi membatasi nilai ke titik akhir yang dapat direpresentasikan, bukan membiarkannya berputar kembali.
Kutipan yang relevan; deklarasi dan koneksi di sekitarnya disediakan dalam tantangan.
assign overflow = (a[7] == b[7]) && (sum[7] != a[7]);Input dengan tanda berbeda tidak dapat menyebabkan overflow pada penjumlahan signed; input dengan tanda yang sama memerlukan pemeriksaan tanda hasil.
Periksa overflow bertanda secara terpisah dari carry; perluas tipe sebelum menerapkan saturasi.
Tantangan
SedangJumlahkan a dan b bertipe 8-bit signed. Kembalikan hasil signed y yang dibungkus, dan overflow=1 hanya jika jumlah matematis sebenarnya berada di luar rentang -128 hingga 127. Kolom output: y, overflow. 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 design. Output yang diharapkan adalah satu baris nilai desimal untuk setiap pengamatan, dipisahkan oleh satu spasi dan diakhiri dengan baris baru.
Coba sendiri
module dut (input signed [7:0] a, input signed [7:0] b, output signed [7:0] y, output overflow);
// Ganti placeholder ini dengan rancanganmu.
assign y = 0;
assign overflow = 0;
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Desain dan Verifikasi RTL
1RTL Kombinasional yang Andal
Nilai Default Mencegah LatchEncoder PrioritasValidasi One-HotDekode Case yang AmanRangkuman: Router Permintaan2Lebar Bit dan Aritmetika Bertanda
Mempertahankan Bit CarryPerbandingan BertandaPergeseran Kanan AritmetikaOverflow dan SaturasiRangkuman, Selisih Bertanda3RTL yang Dapat Digunakan Kembali
Fungsi KombinasionalParameter yang Aman terhadap LebarGenerate loopGenerate dengan KondisiRingkasan: Masker Bit yang Dapat Digunakan Kembali6Testbench dengan Pemeriksaan Mandiri
Pemeriksaan Empat KeadaanTask Checker yang Dapat Digunakan UlangModel Referensi dan SkorCakupan Batas dan KontrolRangkuman: Audit PenjumlahLatihan sendiri: Compiler Verilog online