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 two's complement biçimi kullanılarak gösterilir. Two's complement, 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 Hesaplama
Bir sayının ikinin tümleyenini bulmak için:
- Pozitif sayıyı ikili sistemde yazın
- Tüm bitleri ters çevirin (0, 1 olur; 1, 0 olur)
- 1 ekleyin
Örnek: -5'i 4 bitte gösterme
| Adım | İşlem | Sonuç |
|---|---|---|
| 1 | İkilik sistemde pozitif 5 | 0101 |
| 2 | Tüm bitleri ters çevir | 1010 |
| 3 | 1 ekle | 1011 |
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ırBoyutlandırılmış ikili sayılar için ikinin 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 Verilog, sayıları işaretsiz olarak ele alır. Negatif sayılarla çalışmak için sinyalleri signed olarak tanımlayın:
reg signed [3:0] negative; // -8'den 7'ye kadar saklayabilir
reg [3:0] positive; // 0'dan 15'e kadar saklayabilirİşaretli Sayıların Aralığı
N bit için işaretli bir sayı şunları ifade edebilir:
- Minimum: -2^(N-1)
- Maksimum: 2^(N-1) - 1
| Bitler | Aralı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
signedanahtar sözcüğünü kullanın signedolmadan Verilog tüm değerleri pozitif olarak değerlendirir
-
signedkullanıldığında ikinin tümleyeni aritmetiği otomatik olarak çalışır - MSB işareti belirler: 1 = negatif, 0 = pozitif
Görev
Doğru ikinin tümleyeni değerlerini yazarak kodu tamamlayın.
Yapılacaklar:
adeğişkenini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -3 olarak ayarlayınbdeğişkenini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -8 olarak ayarlayıncdeğişkenini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -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
endmoduleBu 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
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi