⚙️ Verilog Sistem Fonksiyonları ve Görevleri (Tasks
)
#
Verilog, simülasyon, veri işleme ve çalışma zamanı kontrolü için $
ile başlayan birçok yerleşik sistem fonksiyonu sağlar.
Bu fonksiyonlar sentezlenemez ve yalnızca testbench ya da simülasyon ortamlarında kullanılmalıdır.
🎲 Rastgele Sayı Fonksiyonları #
Fonksiyon | Açıklama | Örnek |
---|---|---|
$random |
32-bit işaretli rastgele sayı üretir | r = $random; |
$urandom |
32-bit işaretsiz rastgele sayı üretir | r = $urandom; |
$urandom_range(min, max) |
Belirtilen aralıkta rastgele sayı üretir | r = $urandom_range(0, 15); |
Testbench’te test girdisi (stimulus) üretmek için kullanılır.
🛑 Simülasyon Kontrol Görevleri #
Görev | Açıklama | Örnek |
---|---|---|
$stop |
Simülasyonu durdurur, varsa hata ayıklayıcıyı açar | $stop; |
$finish |
Simülasyonu düzgün şekilde sonlandırır | $finish; |
$fatal |
Hatalı şekilde sonlandırır (assert gibidir) |
$fatal(1, "Hata!"); |
➗ Matematik ve Dönüştürme Fonksiyonları #
Fonksiyon | Açıklama | Örnek |
---|---|---|
$clog2(x) |
Log2 tabanında yukarı yuvarlanmış değer | localparam W = $clog2(10); |
$bits(x) |
Değişkenin bit genişliğini verir | $bits(my_reg) |
$signed(x) |
Değeri işaretli tipe dönüştürür | out = $signed(data); |
$unsigned(x) |
Değeri işaretsiz tipe dönüştürür | out = $unsigned(signed_data); |
$clog2
, bellek genişliği veya sayaç gibi parametrelerin belirlenmesinde çok faydalıdır.