Menu
Coddy logo textTech

Negatif Sayılar

Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 16 / 90.

Verilog'da negatif sayılar ikiye tümleyen (two's complement) formatı kullanılarak temsil edilir. İkiye tümleyen, hem pozitif hem de negatif sayıları ikili (binary) sistemde temsil etmenin bir yoludur. En anlamlı bit (MSB) işareti belirtir:

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

İki'ye Tümleyen Nasıl Hesaplanır

Bir sayının iki'ye tümleyenini bulmak için:

  1. Pozitif sayıyı ikilik (binary) sistemde yazın
  2. Tüm bitleri tersine çevirin (0'lar 1, 1'ler 0 olur)
  3. 1 ekleyin

Örnek: -5'i 4 bit ile temsil edin

AdımİşlemSonuç
1İkili sistemde pozitif 50101
2Tüm bitleri ters çevirin1010
31 ekleyin1011

4 bitlik ikiye tümleyende -5: <strong>4'b1011</strong>

Verilog'da Negatif Sayıları Yazma

Negatif sayıları ondalık (decimal) format kullanarak doğrudan yazabilirsiniz:

reg signed [3:0] a;
a = -5;        // Verilog otomatik olarak ikiye tümleyen (two's complement) kullanır

Boyutlandırılmış ikili sayılar için, ikiye tümleyen değerini yazmalısınız:

a = 4'b1011;   // Bu, 4-bit ikiye tümleyende -5'tir

İşaretli (Signed) vs İşaretsiz (Unsigned)

Varsayılan olarak, Verilog sayıları işaretsiz (unsigned) olarak ele alır. Negatif sayılarla çalışmak için sinyalleri signed olarak tanımlayın:

reg signed [3:0] negative;   // -8 ile 7 arasını saklayabilir
reg [3:0] positive;          // 0 ile 15 arasını saklayabilir

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

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

  • Minimum: -2^(N-1)
  • Maksimum: 2^(N-1) - 1
BitAralık
4 bit-8 ile 7
8 bit-128 ile 127
16 bit-32768 ile 32767

Önemli Notlar

  • Negatif sayı işlemeyi etkinleştirmek için signed anahtar kelimesini kullanın
  • signed olmadan, Verilog tüm değerleri pozitif olarak değerlendirir
  • signed kullanıldığında ikiye tümleyen aritmetiği otomatik olarak çalışır
  • MSB işareti belirler: 1 = negatif, 0 = pozitif
challenge icon

Görev

Doğru ikiye tümleyen değerlerini yazarak kodu tamamlayın.

Yapılacaklar:

  1. 4 bitlik ikiye tümleyen ikili sistemini kullanarak a değerini -3 olarak ayarlayın
  2. 4 bitlik ikiye tümleyen ikili sistemini kullanarak b değerini -8 olarak ayarlayın
  3. 4 bitlik ikiye tümleyen ikili sistemini kullanarak c değerini -1 olarak ayarlayın

Kopya kağıdı

Verilog'da negatif sayılar ikiye tümleyen (two's complement) formatını kullanır. En anlamlı bit (MSB) işareti belirtir: 0 = pozitif, 1 = negatif.

İkiye Tümleyen Hesaplama:

  1. Pozitif sayıyı ikilik (binary) sistemde yazın
  2. Tüm bitleri tersine çevirin
  3. 1 ekleyin

Örnek: 4 bitte -5 → 010110101011 = 4'b1011

Negatif sayıları işlemek için sinyalleri signed olarak tanımlayın:

reg signed [3:0] negative;   // -8 ile 7 arasını saklayabilir
reg [3:0] positive;          // 0 ile 15 arasını saklayabilir

Negatif değerleri doğrudan veya ikiye tümleyen ikilik sistem üzerinden atayın:

reg signed [3:0] a;
a = -5;        // Verilog otomatik olarak ikiye tümleyen kullanır
a = 4'b1011;   // Eşdeğeri: 4-bit ikiye tümleyen formatında -5

N-bit işaretli (signed) sayı aralığı: -2^(N-1) ile 2^(N-1) - 1 arasıdır (örneğin, 4 bit için: -8 ile 7 arası).

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.

Temeller bölümündeki tüm dersler