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 ikiye tümleyen biçimi kullanılarak gösterilir. İkiye tümleyen, 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 nasıl hesaplanır?
Bir sayının ikinin tümleyenini bulmak için:
- Pozitif sayıyı ikili olarak yazın
- Tüm bitleri tersine ç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 ikinin tümleyeni gösteriminde -5, 4'b1011
Verilog'da Negatif Sayıları Yazma
Negatif sayıları doğrudan ondalık biçimde yazabilirsin:
reg signed [3:0] a;
a = -5; // Verilog otomatik olarak ikinin tümleyenini kullanırBoyutu belirlenmiş ikili sayılar için 2'nin 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 reg ve wire sinyalleri işaretsizdir. Negatif sayılarla çalışmak için sinyalleri signed olarak tanımlayın:
reg signed [3:0] negative; // -8 ile 7 arasındaki değerleri saklayabilir
reg [3:0] positive; // 0 ile 15 arasındaki değerleri saklayabilirİşaretli Sayıların Aralığı
N bit için işaretli bir sayı şunları temsil edebilir:
- En küçük: -2^(N-1)
- En büyük: 2^(N-1) - 1
| Bitler | Aralık |
|---|---|
| 4 bit | -8 ile 7 |
| 8 bit | -128 ile 127 |
| 16 bit | -32768 ile 32767 |
Önemli Notlar
- Negatif sayıların işlenmesini etkinleştirmek için
signedanahtar sözcüğünü kullanın signedolmadan, birregveyawireher değeri pozitif kabul eder
- İkili tümleyen aritmetiği,
signedkullanıldığında otomatik olarak çalışır - En anlamlı bit (MSB) işareti belirler: 1 = negatif, 0 = pozitif
Görev
Kodu, doğru ikinin tümleyeni değerlerini yazarak tamamla.
Yapman gerekenler:
adeğerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -3 yapbdeğerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -8 yapcdeğerini 4 bitlik ikinin tümleyeni ikili gösterimini kullanarak -1 yap
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