Veri Tipleri
Gün 1: SystemVerilog'a Giriş ve Veri Tipleri | logic, bit, byte, int ve diğer SystemVerilog veri tipleri
Kaynak Kod
// =============================================================================
// GUN 1 - Konu 3: Yeni Veri Tipleri: logic, bit, byte, int
// =============================================================================
module veri_tipleri;
// ---- 4-STATE (Dort Durumlu) Tipler: 0, 1, x, z ----
logic l_single; // 1-bit, x/z destekler
logic [7:0] l_byte; // 8-bit logic
logic [31:0] l_word; // 32-bit logic
// ---- 2-STATE (Iki Durumlu) Tipler: sadece 0, 1 ----
bit b_single; // 1-bit, daha hizli simulasyon
bit [7:0] b_byte; // 8-bit bit
// ---- Onceden Tanimli 2-State Tipler ----
byte signed_byte; // 8-bit signed [-128, 127]
shortint signed_short; // 16-bit signed [-32768, 32767]
int signed_int; // 32-bit signed
longint signed_long; // 64-bit signed
// ---- Unsigned Varyantlar ----
bit [7:0] unsigned_byte; // byte unsigned karsiligi
int unsigned uint_val; // 32-bit unsigned
// ---- Gercek Sayilar ----
real real_val; // 64-bit IEEE 754 double
shortreal short_real; // 32-bit IEEE 754 float
// ---- Void ----
// void tipi fonksiyon donus degeri olarak kullanilir
initial begin
$display("=== SystemVerilog Veri Tipleri ===\n");
// --- 4-state vs 2-state farki ---
l_single = 1'bx;
b_single = 1'bx; // x atanir ama 0 olarak saklanir (2-state)
$display("4-state logic = %b (x destekler)", l_single);
$display("2-state bit = %b (x -> 0 donusur)\n", b_single);
// --- Signed tipler ---
signed_byte = -100;
signed_int = -2_000_000; // Alt cizgi okunabilirlik icin
$display("byte = %0d (8-bit signed)", signed_byte);
$display("int = %0d (32-bit signed)", signed_int);
// --- Unsigned ---
uint_val = 4_000_000_000;
$display("int unsigned = %0d\n", uint_val);
// --- Boyut bilgileri ---
$display("Tip Boyutlari (bit cinsinden):");
$display(" byte = %0d bit", $bits(signed_byte));
$display(" shortint = %0d bit", $bits(signed_short));
$display(" int = %0d bit", $bits(signed_int));
$display(" longint = %0d bit", $bits(signed_long));
$display(" real = %0d bit", $bits(real_val));
// --- Otomatik baslatma ---
$display("\nVarsayilan baslangic degerleri:");
$display(" logic varsayilan = %b (x)", l_byte);
$display(" bit varsayilan = %b (0)", b_byte);
$display(" int varsayilan = %0d (0)", signed_int);
$display("\n=== Veri Tipleri Sonu ===");
$finish;
end
endmodule