2011年6月11日 星期六

uvm_config_db的使用(三)

uvm_config_db 取代原始的OVM function

在set方面
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,...)

在get方面
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,...)

uvm_config_db的get/set function的語法
static function bit get(
uvm_component cntxt,


string inst_name,


string field_name,

ref T value )


static function void set( uvm_component cntxt,

string inst_name,

string field_name,

T value )
其它使用的例子
uvm_config_db#(int)::set(this,"*.masters[0]", "master_id", 0);

uvm_config_db#(uvm_object_wrapper)::
set(this, “*.ubus0.masters[0].sequencer.main_phase",
"default_sequence", read_modify_write_seq::type_id::get());

uvm_config_db#(virtual ubus_if)::set(this,"ubus_example_tb0.*","vif",vif);