Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

UVM 1.0 : Configuration


OVM 2.1.1/UVM 1.0 EAでは、Configurationは、get_config_xxx/set_config_xxx関数を使っていましたが、
UVM 1.0では、次のように変更されました。
    get_config_int(...)    => uvm_config_db#(uvm_bitstream_t)::get(cntxt,...)
    get_config_string(...) => uvm_config_db#(string)::get(cntxt,...)
    get_config_object(...) => uvm_config_db#(uvm_object)::get(cntxt,...)

    set_config_int(...)    => uvm_config_db#(uvm_bitstream_t)::set(cntxt,...)
    set_config_string(...) => uvm_config_db#(string)::set(cntxt,...)
    set_config_object(...) => uvm_config_db#(uvm_object)::set(cntxt,...)
関数名を変えるのではなく、#()の中の型を変えるだけになったようです。
それと、uvm_config_dbクラスのクラス関数のget/setにアクセスすることになります。

ちなみに、uvm_config_dbクラスのメンバー関数はすべて、staticになっております。

uvm_config_dbクラスの使用例は、ユーザーガイドに下記のようにたくさんありますよ。
    4.3 Creating the Driver
    4.6 Creating the Monitor
    4.9.1 The Environment Class
    4.9.2.2 How to Create a Configurable Attribute
    4.10.3 Configuring the Sequencer’s Default Sequence
   
    5.3 Instantiating Verification Components
    5.5.2 Verification Component Configuration Mechanism
    5.5.3 Choosing between uvm_resource_db and uvm_config_db
    5.5.4 Using a Configuration Class
    5.8.4 Connecting a Virtual Sequencer to Subsequencers
    5.11.3 Enabling and Disabling Coverage
   
    8.3 UBus Top Module
    8.4 The Test
    8.5 Testbench Environment
    8.6 UBus Environment
    8.11 UBus Bus Monitor

検証、Verification、SystemVerilog、OVM、UVM、Unified Verification Methodology