Ana içeriğe geç

UVM'de uvm_env Kullanımı ve adder_env Örneği

· loading · loading · ·
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_env Testbench Yapısı
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 18: This Article

🏗️ UVM Environment: adder_env Örneği
#

🚀 Giriş
#

UVM’de environment (çevre), agent’ları, scoreboard’ları ve diğer doğrulama bileşenlerini bir araya getiren üst düzey bir konteynerdir. Testbench yapısını düzenler, bileşenler arası bağlantıları yönetir ve çoğu zaman tekrar kullanılabilir bir doğrulama ortamını temsil eder.


📝 adder_env Örneği
#

Aşağıda, bir agent ve bir scoreboard’un nasıl oluşturulup bağlandığını gösteren basit bir adder_env örneği bulunuyor.

class adder_env extends uvm_env;
    adder_agent agent;
    adder_subscriber subscriber;
    adder_scoreboard scoreboard;

    `uvm_component_utils(adder_env)

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

    virtual function void build_phase(uvm_phase phase);
      super.build_phase(phase);
      agent = adder_agent::type_id::create("agent", this);
      subscriber = adder_subscriber::type_id::create("subscriber", this);
      scoreboard = adder_scoreboard::type_id::create("scoreboard", this);
    endfunction

    virtual function void connect_phase(uvm_phase phase);
      super.connect_phase(phase);
      agent.monitor.analysis_port.connect(subscriber.analysis_export); // Subscriber bağlantısı
      agent.monitor.analysis_port.connect(scoreboard.analysis_export); // Scoreboard bağlantısı
    endfunction
  endclass

🔍 Açıklama
#

  • agent: Sequencer, driver ve monitor’ü içeren adder_agent örneği.
  • scoreboard: DUT’un çıktısını beklenen sonuçlarla karşılaştıran adder_scoreboard örneği.
  • build_phase(): Agent ve scoreboard’u örneklendirir.
  • connect_phase(): Monitor’ün analysis port’unu scoreboard’un analysis export’una bağlar.
  • start_of_simulation_phase(): Simülasyon başında loglama ve hata ayıklama için mesaj yazdırır.

💡 Özet
#

🔹 Environment, doğrulama bileşenlerini bir araya getirerek modüler bir testbench yapısı oluşturur. 🔹 build_phase’de agent’lar ve scoreboard’lar örneklendirilir; connect_phase’de bunlar birbirine bağlanır. 🔹 İyi yapılandırılmış bir environment, testbench’in tekrar kullanılabilirliğini, ölçeklenebilirliğini ve bakım kolaylığını artırır.


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

Related

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
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 Utility Field Makroları
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Utility Makroları
Eğitim UVM Doğrulama
UVM'de Blocking ve Non-blocking Put/Get Port Kullanımı
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Blocking Port Non-Blocking Port TLM
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