Menu
CoddyTech

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:

  1. Tuliskan bilangan positif dalam bentuk biner
  2. Balik semua bit (0 menjadi 1, 1 menjadi 0)
  3. Tambahkan 1

Contoh: Representasikan -5 dalam 4 bit

LangkahOperasiHasil
1Bilangan positif 5 dalam biner0101
2Balik semua bit1010
3Tambahkan 11011

-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 dua

Untuk bilangan biner dengan ukuran tertentu, kamu harus menuliskan nilai komplemen dua:

a = 4'b1011;   // This is -5 in 4-bit two's complement

Signed 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 15

Rentang Bilangan Bertanda

Untuk N bit, bilangan bertanda dapat merepresentasikan:

  • Minimum: -2^(N-1)
  • Maksimum: 2^(N-1) - 1
BitRentang
4 bit-8 sampai 7
8 bit-128 sampai 127
16 bit-32768 sampai 32767

Catatan Penting

  • Gunakan kata kunci signed untuk 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
challenge icon

Tantangan

Lengkapi kode dengan menuliskan nilai komplemen dua yang benar.

Yang harus dilakukan:

  1. Tetapkan a ke -3 menggunakan bilangan biner komplemen dua 4-bit
  2. Tetapkan b ke -8 menggunakan bilangan biner komplemen dua 4-bit
  3. Tetapkan c ke -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
endmodule
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Verilog online