Bilangan Negatif
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 16 dari 90.
Dalam Verilog, bilangan negatif direpresentasikan menggunakan format komplemen dua. Komplemen dua adalah cara untuk merepresentasikan bilangan positif dan negatif dalam biner. Bit paling signifikan (MSB) menunjukkan tanda:
- 0 = bilangan positif
- 1 = bilangan negatif
Cara Menghitung Komplemen Dua
Untuk mencari komplemen dua dari sebuah bilangan:
- Tuliskan bilangan positif dalam bentuk biner
- Balik semua bit (0 menjadi 1, 1 menjadi 0)
- Tambahkan 1
Contoh: Representasikan -5 dalam 4 bit
| Langkah | Operasi | Hasil |
|---|---|---|
| 1 | Bilangan positif 5 dalam biner | 0101 |
| 2 | Balik semua bit | 1010 |
| 3 | Tambahkan 1 | 1011 |
-5 dalam komplemen dua 4-bit adalah 4'b1011
Menulis Bilangan Negatif dalam Verilog
Kamu bisa menulis bilangan negatif secara langsung menggunakan format desimal:
reg signed [3:0] a;
a = -5; // Verilog otomatis menggunakan komplemen duaUntuk bilangan biner dengan ukuran tertentu, kamu harus menuliskan nilai komplemen dua:
a = 4'b1011; // This is -5 in 4-bit two's complementSigned dan Unsigned
Secara default, Verilog memperlakukan angka sebagai unsigned. Untuk menggunakan angka negatif, deklarasikan sinyal sebagai signed:
reg signed [3:0] negative; // Dapat menyimpan nilai dari -8 hingga 7
reg [3:0] positive; // Dapat menyimpan nilai dari 0 hingga 15Rentang Bilangan Bertanda
Untuk N bit, bilangan bertanda dapat merepresentasikan:
- Minimum: -2^(N-1)
- Maksimum: 2^(N-1) - 1
| Bit | Rentang |
|---|---|
| 4 bit | -8 sampai 7 |
| 8 bit | -128 sampai 127 |
| 16 bit | -32768 sampai 32767 |
Catatan Penting
- Gunakan kata kunci
signeduntuk mengaktifkan penanganan angka negatif - Tanpa
signed, Verilog menganggap semua nilai sebagai positif
- Aritmetika komplemen dua bekerja secara otomatis saat menggunakan
signed - MSB menentukan tanda: 1 = negatif, 0 = positif
Tantangan
Lengkapi kode dengan menuliskan nilai komplemen dua yang benar.
Yang harus dilakukan:
- Tetapkan
ake -3 menggunakan bilangan biner komplemen dua 4-bit - Tetapkan
bke -8 menggunakan bilangan biner komplemen dua 4-bit - Tetapkan
cke -1 menggunakan bilangan biner komplemen dua 4-bit
Coba sendiri
module negative_challenge;
reg signed [3:0] a, b, c;
initial begin
a = 4'b______; // -3 in 4-bit two's complement
b = 4'b______; // -8 in 4-bit two's complement
c = 4'b______; // -1 in 4-bit two's complement
$display("a = %d", a);
$display("b = %d", b);
$display("c = %d", c);
$finish;
end
endmodulePelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online