简单说就是字符串的正则匹配,在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字符串变量...
void'(uvm_config_db#(int)::get(uvm_root::get(),"uvm_test_top.env.i_agt.drv", "pre_num", drv_pre_num)); 这两种方式都可以正确地得到设置的pre_num的值。 非直线的获取可以在某些情况下避免config_db::set的冗余。上面的例子在reference model中获取driver的pre_num的值,如果 不这样做,而采用...
解读uvm_config_db中的set和get方法 一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。 uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据...
get函数时有五个参数需要我们指定第一个是uvmconfigdb类的参数tt表示我们要set或get的资源的类型它可以是虚拟接口sequencer等等第二个cntxt和第三个参数instname一起定义了uvmconfigdb中set或get函数的作用范围第四个参数决定了是对作用范围中的那个对象或变量进行操作第五个参数value会存储当前操作对象的句柄或着操作...
uvm_config_db#(uvm_sequence_base)::set(this, "env.i_agt.sqr.main_phase", "default_sequence", cseq); sequence启动后会自动执行sequence的body任务,,还会自动调用sequence的pre_body与post_body sequence的仲裁机制 在同一sequencer上启动多个sequence ...
1.为什么在TOP里面uvm_config_db set的时候都需要用到uvm_test_top,它针对不同的case产生的实例名字是一样的吗? 是一样的。对于+UVM_TESTNAME=example_case_(0…n),UVM验证平台会创建一个example_case_(0…n)的实例,他们的实例有一个共同的名字:uvm_test_top,所以你在top中congig_db的时候都会自上而下...
首先使用uvm_config_db机制,将interface,传递给your uvm环境中,需要使用的interface的component中去。 增加了USER_RUN这个宏,用来判断,your uvm环境,是单独运行,还是要放到其他的uvm环境中运行。 如果是单独运行,那么直接调用run_test函数,即可启动your uvm环境。
配置对象可以通过使用uvm_config_db::set方法中的路径参数来分别控制,更常见的做法是层次化配置对象和配置过程。 这样中间验证组件也可以进行一些配置,即在中间组件中对上层的配置对象进行解析,然后再打包相应的配置对象给下层组件。 下面是一个SPI block level验证环境的一个层次化配置案例,其中每一个agent都有一个单...
uvm_config_db#(virtual chnl_intf)::set(uvm_root::get(), "uvm_test_top", "ch1_vif", chnl1_if); uvm_config_db#(virtual chnl_intf)::set(uvm_root::get(), "uvm_test_top", "ch2_vif", chnl2_if); uvm_config_db#(virtual reg_intf)::set(uvm_root::get(), "uvm_test_top", ...