17网站一起做网店怎么拿货,天津seo外包平台,中山电子商务网站建设,网站 用户粘度UVM Config_db机制使用总结与源码解析 UVM Config_db机制介绍UVM Config_db 机制引入的背景基本介绍使用方法优缺点#xff1a; UVM Config_db机制使用示例#xff1a;UVM Config_db使用高阶规则Config_db资源优先级 UVM Config_db 源码解析 UVM Config_db机制介绍 
UVM Conf… UVM Config_db机制使用总结与源码解析 UVM Config_db机制介绍UVM Config_db 机制引入的背景基本介绍使用方法优缺点 UVM Config_db机制使用示例UVM Config_db使用高阶规则Config_db资源优先级 UVM Config_db 源码解析 UVM Config_db机制介绍 
UVM Config_db 机制引入的背景 
在Systemverilog搭建的验证平台中需要对各组件进行参数配置但是配置各组件必须得在各组件实例化之后才能配置参数例如test中必须得执行env  new();才能配置env.i_agt.drv.pen_num  10;。再比如接口指针需要就需要为每个组件设定设定set_interface();方法非常繁琐。为解决此问题UVM提出了解决办法即UVM Config_db机制。 
UVM提供的config_db机制可在组件实例化前就设定好配置信息这样就可在tb的initial块中就进行设定了。真正将这些配置信息落实在各component是在testbench运行过程build_phase中。 
基本介绍 
config_db的作用 UVM提供了uvm_config_db配置类以及几种方便地变量设置方法来实现仿真的环境控制uvm_config_db类的使用方式包括 
传递virtual interface 到环境中设置单一变量值例如int、string、enum等传递配置对象(config object)到环境 
使用方法 
set与get函数的参数 config_db机制用于在UVM验证平台间传递参数set()是寄信get()是收信 
uvm_config_db#(T)::set(uvm_component cntxt, string inst_name, string field_name, T value);
uvm_config_db#(T)::get(uvm_component cntxt, string inst_name, string field_name, inout T value);T是传递信息的类型 cntxt是一个uvm_component实例的指针cntxtinst_name组成目标路径 inst_name是相对此实例的路径 field_name变量名set和get的第三个参数必须一致 value表示的就是要存放的数据本身了。它可以用某一个变量或者句柄来表示具体的数据对象也可以是直接给一个常数。这里需要注意value的数据类型就是前面已经配置的my_type类型如果不一致会引入错误。 
优缺点 
优点 用户只需要按照set、get方法要求就能基本上完成testbench中virtual interface传递 
缺点 源代码复杂 
UVM Config_db机制使用示例 仿真结果如下 UVM Config_db使用高阶规则 
Config_db资源优先级 
当不得已需要在环境中的多个地方对相同数据对象通过config_db进行配置的时候就需要关心到这些资源的优先级即在get时实际上会get到哪一个值或句柄。在config_db这一层指的是不深入到uvm_resource_db这一层实现上大概有以下几点需要关注。 
第一点是get的优先级。get的机制比较简单根据cntxtinst_namefiled_name来找到全局资源池中所有匹配到的资源并构成资源数组然后返回该资源数组中优先级最高的资源。这里的优先级precedence跟上面提到的name、type、scope和value一样是每个资源对象拥有的属性。如果优先级一样就返回排在资源数组最前面的资源 
第二点是非build_phase时的set。不在build_phase函数中set的资源优先级是一样的default_precedence但后set的资源会排在资源数组的最前面 
第三点是build_phase时的set。在build_phase函数中set的资源优先级会根据cntxt的级数降低default_precedence - cntxt.get_depth()。也就是理想使用情况下这里的理想使用情况指的是在顶层时cntxt参数用null在其他层cntxt参数用this的情况越靠近顶层set的资源的优先级更高。 
UVM Config_db 源码解析 
等待补齐 本文仅用作学习总结转载自以下特此感谢 
SystemVerilog | UVM | Config_db机制基础