Menu
Coddy logo textTech

Boyutsuz Sayılar

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

Boyutu belirtilmemiş sayı, kaç bite sahip olduğu belirtilmeden yazılan sayıdır. Bir sayıyı boyut ön eki olmadan yazdığınızda Verilog, varsayılan olarak bunun 32 bit olduğunu varsayar.

a = 'b1010;        // Unsized: Verilog treats this as 32 bits
a = 32'b1010;    // Yukarıdakiyle aynı, ancak açık

Boyutsuz sayılar yalnızca biçim ve değeri kullanır: [format][value]

  • <strong>format</strong>: sayının tabanı: ikili için b, ondalık için d, onaltılık için h veya sekizlik için o
  • <strong>value</strong>: gerçek sayı (örneğin, 1010)

Apostrofun ', biçim ile değer arasında hâlâ gereklidir, ancak öncesinde bit sayısı yoktur.

  • 'b1010: 32 bitlik ikili 1010
  • 'd255: 32 bitlik ondalık 255
  • 'hFF: 32 bitlik onaltılık FF
  • 'b1: 32 bitlik ikili 1 (başa eklenmiş 31 sıfır ile)

Kod Örneği:

reg [7:0] data;

initial begin
  data = 1010;      // Boyutsuz: 32-bit değer (uyarıya neden olabilir)
  data = 'd255;     // Unsized: 32-bit decimal 255
  data = 'hFF;      // Boyutsuz: 32-bit hex FF
end

Boyutlandırılmamış ve Boyutlandırılmış

 BoyutlandırılmamışBoyutlandırılmış
Örnek1010 veya 'd2558'b1010 veya 8'd255
Bit genişliği32 bit (varsayılan)Açıkça belirtilmiş (belirtildiği şekilde)
ApostrofBiçimle birlikte gerekliGerekli
Ne zaman kullanılırBasit testbench koduDonanım atamaları

Olası Sorun

Boyutlandırılmamış sayılar, daha küçük yazmaçlara atandığında beklenmedik davranışlara neden olabilir:

reg [3:0] small;
small = 'b1111;      // 32-bit value, but fits in 4 bits (fine)
small = 'b10000;     // 32-bit değer, ama çok büyük! (uyarı)

İkinci örnek, 32 bitlik bir 10000 değerini 4 bitlik bir yazmaçla eşler. Yalnızca alt 4 bit korunur (0000); bu, beklediğiniz şey olmayabilir.

Boyutu Belirtilmemiş Sayılar Ne Zaman Kullanılır?

Boyutu belirtilmemiş sayılar şu durumlarda kullanışlıdır:

  • Testbench'lerdeki basit sayılar
  • Döngü sayaçları
  • $display ifadeleri

Gerçek donanım atamaları için açık olmak ve uyarılardan kaçınmak amacıyla boyutlandırılmış sayılar kullanın.

challenge icon

Görev

Aşağıdaki kodda bazı sayılar boyutsuzdur. Uyarıları önlemek için bunları boyutlu sayılara (8 bit) dönüştürün.

Yapılacaklar:

  1. a değerini 1010 için 8 bitlik ikili sayıya dönüştürün
  2. b değerini 255 için 8 bitlik ondalık sayıya dönüştürün
  3. c değerini FF için 8 bitlik onaltılık sayıya dönüştürün

Kendin dene

module unsized_challenge;
  reg [7:0] a, b, c;
  
  initial begin
    a = 'b1010;      // Change to sized (8-bit binary)
    b = 'd255;     // Boyutlu hale getir (8-bit ondalık)
    c = 'hFF;      // Change to sized (8-bit hex)
    
    $display("a = %b", a);
    $display("b = %b", b);
    $display("c = %b", 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.

Temel Bilgiler bölümündeki tüm dersler

Kendi başına pratik yap: Online Verilog derleyicisi