intwr_sig=66;initialbeginuvm_config_db#(int)::set(null,"uvm_test_top.fifo_env.wr_agt.sqr.*","wr_sig",wr_sig);end 在sequence中进行get: intwr_sig;uvm_config_db#(int)::get(null,get_full_name(),"wr_sig",wr_sig);`uvm_info(this.name,$sformatf("wr_sig=%0d.",wr_sig),UVM...
简单说就是字符串的正则匹配,在UVM内部是通过uvm_glob_to_re()和uvm_re_match()这两个函数来实现的,它们是在uvm_config_db背后默默工作的功臣。 在TB调用uvm_config_db::set()的时候,set函数会将参数cntxt和inst_name拼接起来后,调用用uvm_glob_to_re()转换格式,再存到uvm_resource类里的scope字符串变量...
uvm_config_db#(virtual DUT_if)::set(null, "uvm_test_top", "DUT_vif", _if);//注册interface run_test("test"); end initial begin $dumpfile ("dump.vcd"); $dumpvars; end endmodule config_db::set一共有4个参数。 头两个参数的作用是合起来形成一个范围,只有在这个范围内的单位才可以通过...
uvm_config_db#(int)::get(null,"uvm_test_top.env.i_agt.drv","pre_num_max", p re_num_max); set及get函数中第三个参数可以与get函数中第四个参数不一样,只要保持set和get中第三个参数一致即可也可以。 uvm_config_db#(int)::set(this,"env.i_agt.drv","p_num",100); uvm_config_db#(...
UVM中的配置机制uvm_config_db,uvm_config_db机制用于在UVM平台间传递参数。它们通常是成对出现的,set 寄信,而get函数是收信。config 机制大大提高了UVM的验证灵活性。例如module 和 class 连接通过config_db virtual interace. moduletb_topinitialbeginuvm_config_db #(virtual spi_if)::set(null,"","vif"...
uvm_config_db#(int)::set(null,"uvm_test_top.fifo_env.wr_agt.drv","wr_stop_sig",wr_stop_sig) 1. uvm_config_db#(int)::get(this,"","wr_stop_sig",wr_stop_sig); 1. 因为是在top中set,第一个参数为null,会自动替换为uvm_root::get(),即uvm_top。
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问...
### 步骤 2:向uvm_config_db中添加配置参数 在这一步中,我们将配置参数添加到uvm_config_db中,以便后续测试用例可以获取这些参数。以下是示例代码: ```verilog // 添加配置参数到uvm_config_db中 int my_param = 10; config_db.set(null, "my_param_key", my_param); ...
uvm_config_db——半个全局变量 UVM中的配置机制uvm_config_db,uvm_config_db机制⽤于在UVM平台间传递参数。它们通常是成对出现的,set 寄信,⽽get函数是收信。config 机制⼤⼤提⾼了UVM的验证灵活性。例如module 和 class 连接通过config_db virtual interace.module tb_top initial begin uvm_...
uvm_config_db#(virtual my_if)::set(null, "uvm_test_top", "vif", input_if); //指定一个interface uvm_config_db#(uvm_object_wrapper)::set(this, "*.m_seqr.run_phase","default_sequence",my_sequence::get_type()); //使用该机制配置sequencer的default_sequence,第一个参数是调用set的位置...