Ana içeriğe geç

UVM'de uvm_object::print(), sprint(), sformat() ve convert2string() Kullanımı

· loading · loading · ·
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Yazdırma Metodları
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 6: This Article

🖨️ uvm_object::print(), sprint(), sformat(), sformatf() ve convert2string() Metodlarının Anlaşılması
#

Bu bölümde, uvm_object‘in print, sprint, sformat, sformatf ve convert2string metodlarını inceliyoruz. Bu metodlar, UVM testbench’lerinde nesne içeriklerini debug etmek ve görüntülemek için oldukça önemlidir.


1️⃣ print() Nedir?
#

print() metodu, bir nesnenin içeriğini simülatör konsoluna veya transcript penceresine yazdırır.

  • UVM printer kullanarak insan tarafından okunabilir bir çıktı üretir.
  • Nesnenin tüm kayıtlı alanlarını gösterir.

Örnek:

txn.print();

2️⃣ sprint() Nedir?
#

sprint() metodu, çıktıyı doğrudan yazdırmak yerine string olarak döner.

  • Nesne verilerini log dosyalarına veya UVM raporlarına eklemek için kullanışlıdır.

Örnek:

string txt;
txt = txn.sprint();
`uvm_info("TXN_DATA", txt, UVM_LOW)

3️⃣ sformat() Nedir?
#

sformat() metodu, nesne içeriğini tek satırlık bir özet şeklinde biçimlendirir ve string olarak döner.

  • Loglar için hızlı ve öz bir görünüm sağlar.

Örnek:

string summary;
summary = txn.sformat();
`uvm_info("TXN_SUMMARY", summary, UVM_LOW)

4️⃣ sformatf() Nedir?
#

sformatf() metodu, gömülü değişkenlerle string biçimlendirmek için kullanılan bir SystemVerilog yerleşik fonksiyonudur. C’deki printf() fonksiyonuna benzer.

  • Genellikle convert2string() metodu içinde özel özetler oluşturmak için kullanılır.

Örnek:

function string convert2string();
  return $sformatf("op_a=%0h, op_b=%0h, opcode=%0h", op_a, op_b, opcode);
endfunction

Kullanım:

string summary;
summary = txn.convert2string();
`uvm_info("TXN_STRING", summary, UVM_LOW)

5️⃣ convert2string() Nedir?
#

convert2string() metodu, nesnenin kullanıcı tarafından tanımlanabilen bir string temsiliğini üretir.

  • Varsayılan olarak sformat() sonucunu döner.
  • Özelleştirerek nesne özetlerini istediğiniz gibi şekillendirebilirsiniz.

Örnek:

function string convert2string();
  return $sformatf("op_a=%0h, op_b=%0h, opcode=%0h", op_a, op_b, opcode);
endfunction

Kullanım:

string summary;
summary = txn.convert2string();
`uvm_info("TXN_STRING", summary, UVM_LOW)

6️⃣ Avantajları
#

✅ Bu metodlar:

  • Nesne içeriklerini hızlı ve tutarlı bir şekilde kontrol etmenizi sağlar.
  • Manuel $display yazımlarına olan ihtiyacı azaltır.
  • UVM raporlama altyapısı ile entegre çalışır.
  • Debug, randomizasyon ve DUT ile etkileşimleri kolaylaştırır.

📖 Sonuç
#

print(), sprint(), sformat(), sformatf() ve convert2string() metodları, uvm_object‘in doğrulama ortamınızı debug etmek ve bakımını yapmak için güçlü araçlardır.


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

Related

UVM ile Başlarken: Kurulum ve Desteklenen Simülatörler
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Simülasyon
Eğitim UVM Doğrulama
UVM'de Factory Kullanımı
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Factory Pattern
Eğitim UVM Doğrulama
UVM'de Konfigürasyon Sınıfları Kullanımı
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Konfigürasyon Sınıfları Randomizasyon
Eğitim UVM Doğrulama
UVM'de Phase'lar: Testbench Yaşam Döngüsü
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Phase Yönetimi
Eğitim UVM Doğrulama
UVM'de Sequence Başlatma Yöntemleri
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Sequence Başlatma Objection Kullanımı
Eğitim UVM Doğrulama
UVM'de uvm_component Sınıfı
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_component
Eğitim UVM Doğrulama