uvm_config_db简介

我发现中文社区里的文章怎么都那么奇怪呢,都讲uvm_config_db是一种特殊的参数配置“机制”,看得我一头雾水,还以为是sv的一种特有的语法啥的。看了英文社区一下子就明白了:


uvm_config_db是个uvm中带template的类,这个类只有一些静态函数,学过C++的都记得吧,static的,这些静态函数包括:

uvm_config_db::set(

uvm_component  cntxt,
 string  inst_name,
 string  field_name,
  value
);


uvm_config_db::get(

uvm_component  cntxt,
   string  inst_name,
   string  field_name,
  inout  value

);

这个类里维护一张表,每调用一次set,这个表里增加一行,每调用一次get,就从这个表里找有没有对应的行。每一行都是一个实例.成员变量的设置值,这些成员变量的类型是多种多样的,可以是primitive的,也可以是自定义的,所以在调用set/get的时候需要指定template。

需要注意的是:set/get里的第一个变量是uvm_component,所以如果是在sequencer里调,需要用m_sequencer,因为sequencer本身不是一个component,但m_sequencer是sequencer里固有的一个指向本sequencer的component指针。

至于乱八七糟的set_config_*和get_config_*,都是为了兼容OVM,在外面包了一层。

over~

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值