Config_db是UVM中非常重要和实用的机制,其作用可以简单概括为全局对象之间的数据共享。 本文将介绍UVM中Config_db这套数据共享机制的基本内容,包含config_db的概念、使用方法、应用示例,并扩展介绍资源优先级的概念。当然,后续还有文章《SystemVerilog|UVM|深入Config_db机制》去深入介绍Config_db的实现原理。我尽可能在...
`uvm_info("my_driver", $sformatf("after super.build_phase, the pre_num is %0d", pre_num), UVM_LOW)if(!uvm_config_db#(virtual my_if)::get(this,"","vif", vif)) `uvm_fatal("my_driver","virtual interface must be set for vif!!!")endfunction//省略下面get语句:uvm_config_db#...
一、uvm_config_db简介 uvm_config_db的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问...
简单说就是字符串的正则匹配,在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的全称是configuration database,它是建立在 uvm_resource_db 之上的便利层,resource database储存的是与scope字符串相关联的name-value对(如下图所示) 。 uvm_config_db可以将scope字符串与组件层次结构中的完整层次结构名称相关联,这样就可以通过组件层次来更加方便地访问数据库的条目(储存的信息)。
在Kubernetes(K8S)中,uvm_config_db是指Universal Verification Methodology(通用验证方法)中使用的配置数据库,用于在不同的组件之间传递配置信息。其主要作用是在测试环境中管理和分发配置参数,从而实现测试用例的灵活性和可维护性。 要实现uvm_config_db,我们需要按照以下步骤进行操作: ...
3、set_config_int/set_config_string/set_config_object是参数固定后的uvm_config_db#(int)::set等的简写。 接下来我们再看set函数内的执行代码 我们还需要知道几个变量的来历: m_rsc是一个key为string,value为uvm_resource#(T)的静态键值对(其他语言里也有叫字典等)(uvm里给之取名叫uvm_pool)组成的以uvm...
下面是如何通过uvm_config_db将testcase(通常指的是UVM测试类)里面的配置参数传递到sequence上的详细步骤和示例代码。 1. 在testcase中设置配置参数 在testcase的某个阶段(如build_phase),使用uvm_config_db的set方法将配置参数写入配置数据库中。你需要指定目标组件的路径(对于sequence,通常是sequencer的路径),以及...
综上,uvm_config_db::set()和uvm_resource_db::set()是没有任何继承继承关系的。 从user的角度来讲,uvm_config_db::set/get是经常用到的。 第一个参数是uvm_component,所以一定要特别留心在sequence中参数设定的时候,这里不能是this,必须要是一个uvm_component的类型。
UVM:10.6.2 config_db 的替代者 1.可以完全不使用config_db 2.config_db 设置的参数有两种,一种是结构性参数,如控制driver是否例化的is_active: agent时指定: 3非结构性的参数: build_phase: 也可在build_phase 之后的任意phase 使用绝对路径进行设置:...