在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4107|回复: 5

[求助] UVM里sequence能访问resource db里的数据吗

[复制链接]
发表于 2012-7-24 18:04:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
UVM里sequence能访问resource db里的数据吗?

在driver里可以正常用uvm_config_db get()。但sequence是uvm object类型,应该怎么访问呢?
发表于 2012-7-24 23:08:53 | 显示全部楼层
可以通过对应的sequencer获取,不过一般不建议这么做。
 楼主| 发表于 2012-7-25 09:54:50 | 显示全部楼层
本帖最后由 chenfengrugao 于 2012-7-25 09:59 编辑





  1. class my_sequence extends uvm_sequence #(my_transaction);
  2.   `uvm_object_utils(my_sequence)

  3.   int n = 20;

  4.   ...

  5.   task body;
  6.     uvm_test_done.raise_objection(this);

  7.     repeat(n)
  8.       begin
  9.         my_transaction tx;
  10.         tx = my_transaction::type_id::create("tx");
  11.         start_item(tx);
  12.         assert( tx.randomize() );
  13.         finish_item(tx);
  14.       end

  15.     uvm_test_done.drop_objection(this);
  16.   endtask: body

  17. endclass: my_sequence



复制代码
如上面一段代码,我原本是想用resource db来传递数据,结果不行。

那我怎样在class my_test extends uvm_test里override "my_sequence"里的变量n ?
 楼主| 发表于 2012-7-25 16:42:05 | 显示全部楼层
研究出来了,可以在my_sequence里用uvm_resource_db #(int)::read_by_name("my_test", "n", n);获得参数。
发表于 2012-7-26 20:35:25 | 显示全部楼层
你可以用uvm_config_db::set(null,"*","a",a)
然后在你的seq里用uvm_config_db::get(null,"","a",a)就能得到。我一般不會set到某一個component直接set到頂層,即set(null,"")或到每一個地方即set(null,"*")
发表于 2012-12-15 18:03:08 | 显示全部楼层
good point!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-15 01:46 , Processed in 0.024320 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表