Ana içeriğe geç

SystemVerilog Veri Türleri

· loading · loading · · ·
HDL SystemVerilog HDL
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
SystemVerilog - This article is part of a series.
Part 2: This Article

📘 SystemVerilog Veri Türleri – Kapsamlı Bir Genel Bakış (Varsayılan Özelliklerle Birlikte)
#

SystemVerilog, Verilog’un sınırlı tür sistemini çok daha güçlü ve anlamlı hale getirir. Aşağıda, SystemVerilog’daki temel veri türlerinin varsayılan bit genişliği, işaret durumu (signed/unsigned) ve varsayılan başlangıç değeri gibi özellikleriyle birlikte tam bir özeti yer alıyor.


🔁 1. 4 Durumlu ve 2 Durumlu Türler (4-State vs 2-State)
#

Tür Durumlar Varsayılan Boyut Varsayılan İşaretlilik Varsayılan Değer Açıklama
logic 0, 1, X, Z Skaler (1 bit) veya tanımlı Unsigned X (bilinmiyor) reg ve wire yerine tercih edilir
reg 0, 1, X, Z Skaler (1 bit) veya tanımlı Unsigned X Eski Verilog, logic ile değiştirilir
bit 0, 1 Skaler (1 bit) veya tanımlı Unsigned 0 2 durumlu, simülasyon için uygundur

✅ RTL tasarımda logic, performans içinse bit kullanılması önerilir.


🧮 2. Tamsayı Türleri (Integer Types)
#

Tür Boyut İşaretli mi Varsayılan Değer Açıklama
byte 8-bit Evet 0 Signed (işaretli)
shortint 16-bit Evet 0
int 32-bit Evet 0 En yaygın kullanılan tamsayı türü
longint 64-bit Evet 0
integer ≥32-bit Evet 0 Verilog’tan kalma
time 64-bit Hayır 0 Simülasyon zaman takibi için

🧠 Tavsiye: Yeni projelerde int, longint, bit gibi modern türler tercih edilmelidir.


🔤 3. String Türü
#

Tür Açıklama Varsayılan Değer Notlar
string Dinamik boyutlu karakter dizisi Boş string "" .len(), karşılaştırma, birleştirme yapılabilir
string mesaj = "Merhaba!";
$display("Uzunluk: %0d", mesaj.len());

🔘 4. Sıralı Türler (Enumerations - enum)
#

Özellik Açıklama
Söz Dizimi typedef enum {KIRMIZI, YESIL, MAVI} renk_t;
Alt Tür Belirleme enum logic [1:0] gibi tanımlanabilir
Varsayılan Değer İlk listelenen değer (belirtilmediyse)
İşaretlilik Alt tür neyse onu takip eder (signed/unsigned)

📦 5. Yapılar (Structures - struct)
#

Özellik Açıklama
Söz Dizimi typedef struct { ... } isim_t;
Packed Kullanımı packed ile bit düzeyinde yerleşim sağlanabilir
Varsayılan Değer Her alan kendi türüne göre sıfırdan başlar
İç İçe Kullanım Başka struct veya türler içerebilir
typedef struct packed {
  bit [7:0] id;
  logic valid;
} header_t;

🔄 6. Birleşimler (Unions - union)
#

Özellik Açıklama
Bellek Paylaşımı Tüm alanlar aynı fiziksel belleği paylaşır
Packed Kullanımı packed ile bit yerleşimi kontrol edilebilir
Tagged Union union tagged ile güvenli kullanım mümkündür

📚 7. Diziler (Arrays)
#

Dizi Türü Açıklama
Packed Array Bit vektörleri (logic [7:0])
Unpacked Array Bireysel elemanlardan oluşur (a[0], a[1], …)
Dynamic Array Simülasyon sırasında boyutu değiştirilebilir
Associative Array Herhangi bir skaler ile indekslenebilir (a["abc"])
Queue FIFO benzeri yapı (queue[$])

📗 8. Diğer Özel Türler
#

Tür Açıklama
void Fonksiyon geri dönüşü yok
event Simülasyon senkronizasyonu
chandle C dili işaretçisi (pointer)
mailbox İşlemler arası iletişim
semaphore Kaynak paylaşımı kontrolü

✅ Özet Tablo (Kısa Referans)
#

Tür Grubu Örnekler Varsayılan Boyut Varsayılan İşaretlilik Notlar
2 durumlu bit, int, byte, longint Sabit genişlik Genelde işaretli X/Z yok, simülasyonda hızlı
4 durumlu logic, reg, integer Değişken logic: unsigned, integer: signed X ve Z desteklenir
Metinsel string Dinamik Yok Yöntemler, birleştirme vb.
Bileşik struct, union, array Kullanıcı tanımlı Alanlara göre Gruplama ve organizasyon sağlar
Sıralı (enum) enum Kullanıcı tanımlı Alt tipe bağlı Anlamlı sabitler tanımlar
Özel time, event, chandle, mailbox Değişken Değişken Simülasyon ve IPC kullanımı

SystemVerilog - This article is part of a series.
Part 2: This Article

Related

Blocking ve Non-Blocking Atamalar
· loading · loading
HDL SystemVerilog HDL
SystemVerilog Diziler
· loading · loading
HDL SystemVerilog HDL
SystemVerilog Döngüler & Akış Kontrol İfadeleri
· loading · loading
HDL SystemVerilog HDL
SystemVerilog Giriş
· loading · loading
HDL SystemVerilog HDL
SystemVerilog Tasklar ve Fonksiyonlar
· loading · loading
HDL SystemVerilog HDL
SystemVerilog Typedef & Alias
· loading · loading
HDL SystemVerilog HDL