例程中,uvm_config_string的原型是uvm_config_db#(string),uvm_config_int的原型是uvm_config_db#(uvm_bitstream_t),这是UVM中为了简写通过typedef定义的类型。 仿真结果如下: 04 扩展:Config_db资源优先级 当不得已需要在环境中的多个地方,对相同数据对象,通过config_db进行配置的时候,就需要关心到这些资源的...
在uvm_test_top,env或者i_agt中,对driver中的某些变量通过config_db机制进行设置,称为直线的设置 若在其他component,如scoreboard中,对driver的某些变量使用config_db机制进行设置,则称为非直线的设置 非直线的设置,会有一定的风险,应该避免这种情况的出现 //要进行非直线的设置,需要仔细设置set函数的第一个和第二...
// 在sequence中获取变量的值 uvm_config_db #(int)::get(get_squencer(),"","INR",INR); 物理接口配置 uvm中连接interface使用的uvm_config_db机制 配置组件的DUT接口 全局UVM资源 UVM配置机制的选择 UVM调试机制 内容 UVM组件基类 UVM组件的逻辑层次:parent-child关系 组件显示和查询 查询组件的层次关系 ...
假设uvm_test_top和env中都对driver的值进行了set,在uvm_test_top中的set语句如下: uvm_config_db#(int)::set(this,”env.agent.driver”,”pre_num_max”,100); 在enc的set语句如下: uvm_config_db#(int)::set(this,”agent.driver”,”pre_num_max”,99); 那么driver中get到的值是100还是99呢?答...
一、config_db机制概述 uvm树形结构的节点,往往需要高层次的组件来下发环境参数,或者通过配置来进行环境模式的变更。例如interface,环境中的driver和monitor都需要用到interface和DUT连接,interface往往在top中例化,输入不同的时钟和复位信号。interface例化好了之后就需要进行传递,传递的方法就是config_db机制。
除了上面的get()显式调用,还可以factory机制完成get()的隐式调用。 STEP1:通过field automation macro注册 STEP2:在build_phase调用super. build_phase() 创建对象/数据后,UVM factory机制将查看该对象/数据是否使用uvm_config_db配置值。如果使用set()一个新的配置值,则自动隐式执行对象/数据配置。可查看super. ...
对于uvm_config_db来说,在调用get()函数检索数据库的时候,get()函数传递的{cntxt,”.”, inst_name}会作为uvm_re_match()的str的实参,set()函数设置的{cntxt,”.”, inst_name}在经过uvm_glob_to_re()处理后作为uvm_re_match()的实参,这也就是为什么set()参数的inst_name支持正则格式,而get()参数...
uvm_config_db#(virtual my_if)::set(null, "uvm_test_top", "vif", input_if); 2. 收信(Get): 在`my_driver`或其他UVM组件中,他们在开始工作之前会通过`uvm_config_db#(...)::get(...)`来“收信” - 即查找并获取接口实例的地址。 // 在my_driver中 - 收信 virtual my_if vif; if ...
2.config_db机制 config_db机制在UVM验证平台中主要用于参数传递。它们通常都是成对出现的,set函数是寄信,而get函数是收信。函数格式如下: uvm_config_db# (Type)::set(this,"inst_path","field",value); //将value寄送给 “field(字段)” uvm_config_db# (Type)::get(this,"","field",field) //...
• 比起重新编译来调节变量,如果在仿真中可以通过变量设置来修改环境,那么就更灵活了,而UVM config机制正提供了这样的便捷。 在UVM提供了uvm_config_db配置类以及几种方便的变量设置方法来实现仿真时的环境控制,常见的uvm_config_db类的使用方式包括: