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 dilinde negatif sayılar two's complement (ikiye tümleme) biçimi kullanılarak temsil edilir. Two's complement, ikili sistemde hem pozitif hem de negatif sayıları temsil etmenin bir yoludur. En önemli bit (MSB) işareti gösterir:

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

Two's Complement Nasıl Hesaplanır

Bir sayının two's complement değerini bulmak için:

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

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

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

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

Verilog'da Negatif Sayıları Yazma

Ondalık biçimi kullanarak negatif sayıları doğrudan yazabilirsiniz:

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

Boyutlandırılmış ikili sayılar için two's complement değerini yazmalısınız:

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

Signed vs Unsigned

Varsayılan olarak Verilog, sayıları unsigned olarak ele alır. Negatif sayılarla çalışmak için sinyalleri signed olarak bildirin:

reg signed [3:0] negative;   // -8'den 7'ye kadar saklayabilir
reg [3:0] positive;          // 0'dan 15'e kadar saklayabilir

Signed Sayıların Aralığı

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

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

Önemli Notlar

  • Negatif sayı kullanımını etkinleştirmek için signed anahtar sözcüğünü kullanın
  • signed olmadan, Verilog tüm değerleri pozitif olarak ele alır
  • signed kullanıldığında ikiye tümleme (two's complement) aritmetiği otomatik olarak çalışır
  • MSB işareti belirler: 1 = negatif, 0 = pozitif
challenge icon

Görev

Doğru ikiye tümleyen (two's complement) değerlerini yazarak kodu tamamlayın.

Ne yapılmalı:

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

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