Ana içeriğe geç

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
Axolot Logic
Yazar
Axolot Logic
Sayısal Tasarım Mühendisi
Table of Contents
UVM Serisi - This article is part of a series.
Part 8: This Article

🏗️ uvm_component Kullanımı
#

Bu bölümde, UVM’deki uvm_component sınıfını inceliyoruz. Bu sınıf, hiyerarşik, yeniden kullanılabilir ve sürdürülebilir testbench’ler oluşturmak için temel bir yapı taşıdır.


1️⃣ uvm_component Nedir?
#

uvm_component, tüm UVM testbench bileşenleri için temel sınıftır.

  • uvm_report_object sınıfından türemiştir ve raporlama, mesajlaşma gibi özellikleri hazır sunar.
  • Alt bileşen yönetimi, faz yönetimi ve factory kaydı destekler.
  • UVM’nin hiyerarşik yapısının bel kemiğini oluşturur.

2️⃣ Temel Özellikleri
#

🔹 Hiyerarşi Desteği

  • uvm_component, ebeveyn-çocuk ilişkileri ile modüler bir yapı kurmanızı sağlar.
  • Bileşenler diğer bileşenleri barındırabilir, böylece testbench tasarımı modüler hale gelir.

🔹 Fazlar

  • build_phase, connect_phase, run_phase vb. UVM fazlarıyla yapılandırılmış bir testbench akışı sunar.

🔹 Factory Kaydı

  • Factory mekanizması ile dinamik bileşen oluşturmayı destekler.
  • Komut satırı parametreleri veya konfigürasyonlar ile bileşenleri esnek şekilde değiştirebilirsiniz.

🔹 Raporlama

  • uvm_report_object sınıfından devraldığı metodlar sayesinde (uvm_info, uvm_warning, uvm_error, uvm_fatal) standart raporlama desteği sağlar.

3️⃣ Kullanım Örneği
#

✅ Örnek: Basit bir ortam bileşeni:

class alu_env extends uvm_component;
  `uvm_component_utils(alu_env)

  function new(string name, uvm_component parent);
    super.new(name, parent);
  endfunction

  function void build_phase(uvm_phase phase);
    super.build_phase(phase);
    // Alt bileşenleri burada yaratabilirsiniz
  endfunction
endclass
  • uvm_component_utils makrosu ile factory kaydı yapılır.
  • new(name, parent) constructor’ı ile isim ve hiyerarşi sağlanır.

📖 Sonuç
#

uvm_component sınıfı, ölçeklenebilir ve sürdürülebilir bir UVM testbench’in temelini oluşturur. Hiyerarşik ve modüler yapıları kolayca kurmanızı, farklı DUT’lara veya test senaryolarına göre uyarlamanızı sağlar.


UVM Serisi - This article is part of a series.
Part 8: 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_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