例程中,uvm_config_string的原型是uvm_config_db#(string),uvm_config_int的原型是uvm_config_db#(uvm_bitstream_t),这是UVM中为了简写通过typedef定义的类型。 仿真结果如下: 04 扩展:Config_db资源优先级 当不得已需要在环境中的多个地方,对相同数据对象,通过config_db进行配置的时候,就需要关心到这些资源的...
通过以上步骤,你可以成功地在UVM环境中使用config_db传递动态数组。请注意,这种方法利用了包装类来间接传递动态数组,因为config_db本身不支持直接传递动态数组。
3.3调用uvm_config_db::set函数传递字符串变量: 3.4在另一个component,声明一个句柄,并调用uvm_config_db::get函数和from_name函数。 4.传递队列 传递队列和传递数组是一样的步骤。 总结:三种都是自定义一个类型,然后调用uvm_config_db::set函数等,有一个缺点,每次使用都是单一传递,变量值改变,就需要再次传递。
void'(uvm_config_db#(int)::get(this.m_parent, "i_agt.drv", "pre_num", drv_pre_num));`uvm_info("my_model", $sformatf("after get, the pre_num is %0d", drv_pre_num), UVM_LOW)endfunction//或void'(uvm_config_db#(int)::get(uvm_root::get(), "uvm_test_top.env.i_agt...
(2) umv_config_db是从uvm_resource_db派生而来,对uvm_resource_db的一些功能进行了扩展,主要体现在对资源的写入和读取上. 注1:具体应用如将virtual interface传递到环境中(实现DUT与TB的交互)或传递配置对象(config object)到环境或变量的设置(如命令行中设置参数). ...
config_db机制 前言:本篇博客详细讲解UVM中config_db机制的用法,包括不限于应用场景以及config_db参数配置。 说到底,config_db机制其实就是为了传输“东西”而生的,这个“东西”既可以是一个uvm_object继承而来的类,譬如interface和transaction,又可以是一个bit或者整型int等基础变量。“东西”的传输依赖两个函数: ...
在TB调用uvm_config_db::set()的时候,set函数会将参数cntxt和inst_name拼接起来后,调用用uvm_glob_to_re()转换格式,再存到uvm_resource类里的scope字符串变量,set()的值也是放在uvm_resource类里。当TB调用uvm_config_db::get()的时候,get函数也会将参数cntxt和inst_name拼接起来,再调用uvm_re_match()与...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问...
数字IC验证系列之config_db&virtual interface 在UVM中为了避免进行层次化操作信号,引入virtual interface,提高代码的复用性。 为了配置virtual interface,UVM引入了config_db机制。 可以理解为virtual interface是实际interface的一个指针,通过config_db机制使virtual interface指向不同的具体interface,这样就可以通过操作virtual...
1.check_config_usage (1) 作⽤:可以显⽰出截⽌到此函数调⽤时,有哪些参数是被设置过但是却没有被获取过;(2) 使⽤: 由于config_db的set及get语句⼀般都⽤于build_phase阶段,所以此函数⼀般在connect_phase被调⽤,也可以在connect_phase之后的其他phase调⽤;注: default_sequence是设置给main...