Menu
CoddyTech

Negatif Sayılar

Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 16 / 90.

Verilog'da negatif sayılar ikiye tümleyen biçimi kullanılarak gösterilir. İkiye tümleyen, hem pozitif hem de negatif sayıları ikili sistemde göstermenin bir yoludur. En anlamlı bit (MSB) işareti belirtir:

  • 0 = pozitif sayı
  • 1 = negatif sayı

İkinin tümleyenini nasıl hesaplanır?

Bir sayının ikinin tümleyenini bulmak için:

  1. Pozitif sayıyı ikili olarak yazın
  2. Tüm bitleri tersine çevirin (0, 1 olur; 1, 0 olur)
  3. 1 ekleyin

Örnek: -5'i 4 bitte gösterme

AdımİşlemSonuç
1İkilik sistemde pozitif 50101
2Tüm bitleri ters çevir1010
31 ekle1011

4 bitlik ikinin tümleyeni gösteriminde -5, 4'b1011

Verilog'da Negatif Sayıları Yazma

Negatif sayıları doğrudan ondalık biçimde yazabilirsin:

reg signed [3:0] a;
a = -5;        // Verilog otomatik olarak ikinin tümleyenini kullanır

Boyutu belirlenmiş ikili sayılar için 2'nin tümleyeni değerini yazmalısınız:

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

İşaretli ve İşaretsiz

Varsayılan olarak reg ve wire sinyalleri işaretsizdir. Negatif sayılarla çalışmak için sinyalleri signed olarak tanımlayın:

reg signed [3:0] negative;   // -8 ile 7 arasındaki değerleri saklayabilir
reg [3:0] positive;          // 0 ile 15 arasındaki değerleri saklayabilir

İşaretli Sayıların Aralığı

N bit için işaretli bir sayı şunları temsil edebilir:

  • En küçük: -2^(N-1)
  • En büyük: 2^(N-1) - 1
BitlerAralık
4 bit-8 ile 7
8 bit-128 ile 127
16 bit-32768 ile 32767

Önemli Notlar

  • Negatif sayıların işlenmesini etkinleştirmek için signed anahtar sözcüğünü kullanın
  • signed olmadan, bir reg veya wire her değeri pozitif kabul eder
  • İkili tümleyen aritmetiği, signed kullanıldığında otomatik olarak çalışır
  • En anlamlı bit (MSB) işareti belirler: 1 = negatif, 0 = pozitif
challenge icon

Görev

Kodu, doğru ikinin tümleyeni değerlerini yazarak tamamla.

Yapman gerekenler:

  1. a değerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -3 yap
  2. b değerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -8 yap
  3. c değerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -1 yap

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi