Menu
CoddyTech

Tamsayı ve Gerçel

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

wire ve reg türlerine ek olarak Verilog'da farklı amaçlara yönelik sayılar için başka veri türleri de vardır.

Tamsayı

integer, sayma ve hesaplama işlemleri için kullanılan genel amaçlı bir değişkendir.

  • Varsayılan boyut 32 bittir
  • İşaretlidir (negatif sayıları saklayabilir)
  • Çoğunlukla test tezgâhlarında ve döngülerde kullanılır

Bir tamsayı tanımlama:

integer i;        // 32 bitlik işaretli değişken
integer count;    // Negatif sayıları saklayabilir

Tamsayı kullanımı:

integer i;

initial begin
  i = 0;           // 0'dan başla
  i = i + 1;       // Bir artır
  i = -5;          // Negatif değer saklayabilir
  $display("i = %d", i);  // Yazdırır: i = -5
end

Gerçek

real kayan noktalı sayılar (ondalıklı sayılar) içindir.

  • Kesirli değerleri saklar
  • Hesaplamalar için test düzeneklerinde kullanılır
  • Donanıma sentezlenemez

Bir real değişkeni tanımlama:

real pi;           // Kayan noktalı değişken
real voltage;

real kullanımı:

real pi;

initial begin
  pi = 3.14159;               // Ondalık değer
  pi = 22.0 / 7.0;            // Bölme sonucu
  $display("pi = %f", pi);    // Ekrana yazdırır: pi = 3.142857
end

Nerelerde Kullanılırlar

Test tezgâhlarında: Tamsayılar ve gerçek sayılar genellikle döngü sayaçları, hesaplamalar ve beklenen değerleri denetlemek için kullanılır. Test kodunu yazmayı ve anlamayı kolaylaştırırlar.

Donanımda: real türü sentezlenebilir değildir; yani gerçek bir devreye dönüştürülemez. integer türü sentezlenebilir ve genellikle döngü sayacı olarak kullanılır, ancak FPGA’ya veya çipe aktarılacak donanım sinyalleri için reg ve wire kullanın.

challenge icon

Görev

Testbench'in çalışması için kodu tamamla.

Yapılacaklar:

  1. Döngü sayacı için i adlı bir tam sayı tanımla
  2. Hesaplama için value adlı bir gerçek sayı tanımla

Kendin dene

module test;
  
  // i adlı bir tamsayı tanımla

  
  // value adlı bir gerçek sayı tanımla

  
  initial begin
    i = 7;
    value = i * 0.5;
    $display("i = %0d, value = %f", i, value);
    
    $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