Ana içeriğe geç

UVM'de uvm_test Kullanımı ve base_test Örneği

· loading · loading · ·
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_test Test Senaryosu
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 19: This Article

🧪 UVM Test: base_test Örneği
#

🚀 Giriş
#

UVM’de bir test sınıfı (örneğin base_test), testbench senaryosunu yöneten ve koordine eden en üst düzey bileşendir. Environment’ı oluşturur, sequencer’a varsayılan sequence atar ve simülasyonu başlatır.


📝 base_test Örneği
#

Aşağıda bir base_test sınıfı örneği verilmiştir. Bu sınıf environment’ı oluşturur, waveform kayıt parametrelerini ayarlar ve genel test yapısını yönetir.

class adder_test extends uvm_test;
    adder_env env;
    adder_config cfg;

    `uvm_component_utils(adder_test)

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

    virtual function void build_phase(uvm_phase phase);
      super.build_phase(phase);
      env = adder_env::type_id::create("env", this);
      cfg = adder_config::type_id::create("cfg");
      uvm_config_db #(adder_config)::set(this, "env.agent*", "cfg", cfg);
    endfunction

    virtual task run_phase(uvm_phase phase);
      adder_sequence seq;
      seq = adder_sequence::type_id::create("seq");
      phase.raise_objection(this);
      seq.start(env.agent.sequencer);
      #100;
      phase.drop_objection(this);
    endtask
  endclass

🔍 Açıklamalar
#

  • env: Agent ve scoreboard’u içeren environment bileşeni.

  • build_phase():

    • uvm_config_int::set kullanılarak waveform kayıt detayları ayarlanabilir.
    • Factory kullanılarak environment oluşturulur.
    • uvm_config_wrapper::set ile sequencer’a varsayılan sequence atanır.
  • end_of_elaboration_phase(): Testbench topolojisini yazdırarak debug’a yardımcı olur.

  • start_of_simulation_phase(): Simülasyon başında bilgilendirici bir mesaj yazdırır.

  • check_phase(): Konfigürasyon kullanımını kontrol eder.


💡 Özet
#

🔹 Test sınıfı, UVM testbench’inin en üstünde yer alır ve tüm senaryoyu yönetir. 🔹 build_phase() içinde environment oluşturulur ve varsayılan sequence atanır. 🔹 Testbench topolojisi yazdırılır ve kullanıcı simülasyon başlangıcında bilgilendirilir.


UVM Serisi - This article is part of a series.
Part 19: 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'de uvm_monitor Kullanımı ve Adder Örneği
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_monitor Coverage
Eğitim UVM Doğrulama
UVM'de uvm_scoreboard Kullanımı ve Adder Örneği
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_scoreboard Test Sonuçları
Eğitim UVM Doğrulama
UVM'de uvm_sequence Kullanımı ve Adder Örneği
· loading · loading
Eğitim UVM Doğrulama UVM Doğrulama SystemVerilog Uvm_sequence Stimulus Generation
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