Ana içeriğe geç

UVM Utility Field Makroları

· loading · loading · ·
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Utility Makroları
Eğitim UVM Doğrulama
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
UVM Serisi - This article is part of a series.
Part 5: This Article

🛠️ UVM Utility Field Makroları
#

🚀 Giriş
#

UVM Utility Field Makroları, copy, compare, print ve pack/unpack gibi temel nesne metodlarını otomatik olarak üreten güçlü araçlardır. Her bir metodu manuel olarak yazmak yerine, sadece field’ları tanımlayarak nesnenizin tüm işlevselliğini zahmetsizce elde edebilirsiniz.


🗂️ Temel Makro Kullanımı
#

Tek Örnek Üzerinden Tüm Veri Tipleri
#

Aşağıda farklı veri tiplerini (integer, string, dinamik array, kuyruk ve enum) bir arada kullanan kapsamlı bir örnek verilmiştir. Bu örnek, UVM Utility Field Makrolarını tek bir sınıf içinde nasıl etkili kullanabileceğinizi gösterir:

typedef enum {IDLE, ACTIVE, ERROR} state_e;

class all_fields_example extends uvm_object;
  // Scalar fields
  int timeout;
  bit [7:0] data;
  
  // String fields
  string name;
  string description;
  
  // Dynamic array
  bit [15:0] payload[];
  
  // Queue
  int values[$];
  
  // Enum
  state_e current_state;

  `uvm_object_utils_begin(all_fields_example)
    // 🔹 Integer alanlar
    `uvm_field_int(timeout, UVM_ALL_ON | UVM_DEC)
    `uvm_field_int(data, UVM_ALL_ON | UVM_HEX)
    
    // 🔹 String alanlar
    `uvm_field_string(name, UVM_ALL_ON)
    `uvm_field_string(description, UVM_ALL_ON | UVM_NOCOMPARE)
    
    // 🔹 Dinamik dizi
    `uvm_field_array_int(payload, UVM_ALL_ON | UVM_HEX)
    
    // 🔹 Kuyruk
    `uvm_field_queue_int(values, UVM_ALL_ON | UVM_DEC)
    
    // 🔹 Enum
    `uvm_field_enum(state_e, current_state, UVM_ALL_ON)
  `uvm_object_utils_end

  function new(string name = "all_fields_example");
    super.new(name);
    current_state = IDLE;
  endfunction
endclass

🏷️ Field Otomasyon Bayrakları
#

Öne Çıkan Bayrak Kategorileri
#

BayrakAçıklama
UVM_ALL_ONTüm metodları (copy, compare, print, pack, record) aktif eder
UVM_COPYcopy() metoduna dahil eder
UVM_COMPAREcompare() metoduna dahil eder
UVM_PRINTprint() metoduna dahil eder
UVM_PACKpack() ve unpack() metodlarına dahil eder
UVM_RECORDrecord() metoduna dahil eder
UVM_NOCOPYcopy() metodundan hariç tutar
UVM_NOCOMPAREcompare() metodundan hariç tutar
UVM_NOPRINTprint() metodundan hariç tutar
UVM_HEXHex formatında yazdırır
UVM_BINBinary formatında yazdırır
UVM_NORANDRandomizasyon dışında bırakır

🚀 Özet
#

Türkçe (Turkish)
#

ÖzellikUtility MacroField Macro
AmaçSınıfa temel UVM fonksiyonlarını ekler.Sınıfın içindeki değişkenleri UVM işlemlerine kaydeder.
Kullanımuvm_object_utils, uvm_component_utilsuvm_field_int, uvm_field_string
Fonksiyonlarprint(), copy(), compare() gibi metodları ekler.Bu metodların içeriğini belirler (hangi alanlar işlenecek?).
PerformansDaha hızlı (sadece temel fonksiyonları ekler).Daha yavaş (runtime’da field’ları işler).
  • uvm_component_utils component ve ondan türetilmiş sınıflar için.
  • uvm_object_utils object ve ondan türetilmiş sınıflar için.

🔹 UVM Field Makrolarının Kullanımı:
✅ Hızlı nesne geliştirme
✅ Tek satırda metod üretimi (copy, compare, print, pack)
✅ Daha az manuel kod
✅ Daha az hata riski


UVM Serisi - This article is part of a series.
Part 5: This Article

Related

UVM Temel Sınıfları
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Sınıf Hiyerarşisi
Eğitim UVM Doğrulama
UVM'de Package Kullanımı ve Önemi
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Package Kullanımı Testbench Organizasyonu
Eğitim UVM Doğrulama
UVM'de Virtual Sequence, Virtual Sequencer, Sequence Library ve Sequence Arbitration
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Virtual Sequence Sequence Arbitration
Eğitim UVM Doğrulama
UVM'de _decl Makrosu Kullanımı
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog _Decl Makrosu Analysis Port
Eğitim UVM Doğrulama
UVM'de do_ Metodları
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Do_ Metodları
Eğitim UVM Doğrulama
UVM'de uvm_agent Kullanımı ve Adder Örneği
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_agent Testbench Yapısı
Eğitim UVM Doğrulama