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:
- Pozitif sayıyı ikilik (binary) sistemde yazın
- Tüm bitleri tersine çevirin (0'lar 1, 1'ler 0 olur)
- 1 ekleyin
Örnek: -5'i 4 bit ile temsil edin
| Adım | İşlem | Sonuç |
|---|---|---|
| 1 | İkili sistemde pozitif 5 | 0101 |
| 2 | Tüm bitleri ters çevirin | 1010 |
| 3 | 1 ekleyin | 1011 |
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ırBoyutlandı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
| Bit | Aralı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
signedanahtar kelimesini kullanın signedolmadan, Verilog tüm değerleri pozitif olarak değerlendirir
signedkullanıldığında ikiye tümleyen aritmetiği otomatik olarak çalışır- MSB işareti belirler: 1 = negatif, 0 = pozitif
Görev
Doğru ikiye tümleyen değerlerini yazarak kodu tamamlayın.
Yapılacaklar:
- 4 bitlik ikiye tümleyen ikili sistemini kullanarak
adeğerini -3 olarak ayarlayın - 4 bitlik ikiye tümleyen ikili sistemini kullanarak
bdeğerini -8 olarak ayarlayın - 4 bitlik ikiye tümleyen ikili sistemini kullanarak
cdeğ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:
- Pozitif sayıyı ikilik (binary) sistemde yazın
- Tüm bitleri tersine çevirin
- 1 ekleyin
Örnek: 4 bitte -5 → 0101 → 1010 → 1011 = 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ı saklayabilirNegatif 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 -5N-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
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı