Menu
Coddy logo textTech

Negative Numbers

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

Verilog'da negative sayılar two's complement biçimi kullanılarak gösterilir. Two's complement, ikili sistemde hem positive hem de negative sayıları göstermenin bir yoludur. En anlamlı bit (MSB) işareti belirtir:

  • 0 = positive sayı
  • 1 = negative sayı

Two's complement Nasıl Hesaplanır

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

  1. positive sayıyı ikili olarak yazın
  2. Tüm bit değerlerini 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 two'nun tümleyeninde -5 <strong>4'b1011</strong>'dir

Verilog'da Negatif Sayıları Yazma

Negatif sayıları ondalık biçimi kullanarak doğrudan yazabilirsiniz:

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

Boyutlu ikili sayılar için two's complement değerini yazmalısın:

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

Signed ve Unsigned

Varsayılan olarak Verilog, sayıları 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ında saklayabilir
reg [3:0] positive;          // 0 ile 15 arasında 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
BitlerAralık
4 bit-8 - 7
8 bit-128 - 127
16 bit-32768 - 32767

Önemli Notlar

  • Negatif sayıların işlenmesini etkinleştirmek için signed anahtar sözcüğünü kullanın
  • signed olmadan Verilog tüm değerleri pozitif olarak değerlendirir
  • signed kullanılırken Two's complement aritmetiği automatically çalışır
  • MSB işareti belirler: 1 = negative, 0 = positive
challenge icon

Görev

Doğru two's complement değerlerini yazarak kodu tamamla.

Yapılacaklar:

  1. a değerini 4-bit two's complement ikili gösterimini kullanarak -3 olarak ayarla
  2. b değerini 4-bit two's complement ikili gösterimini kullanarak -8 olarak ayarla
  3. c değerini 4-bit two's complement ikili gösterimini kullanarak -1 olarak ayarla

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

Kendi başına pratik yap: Online Verilog derleyicisi