微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM里sequence能访问resource db里的数据吗

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

时间:10-02 整理:3721RD 点击:
UVM里sequence能访问resource db里的数据吗?
在driver里可以正常用uvm_config_db get()。但sequence是uvm object类型,应该怎么访问呢?

可以通过对应的sequencer获取,不过一般不建议这么做。

  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 ?

研究出来了,可以在my_sequence里用uvm_resource_db #(int)::read_by_name("my_test", "n", n);获得参数。

你可以用uvm_config_db::set(null,"*","a",a)
然后在你的seq里用uvm_config_db::get(null,"","a",a)就能得到。我一般不會set到某一個component直接set到頂層,即set(null,"")或到每一個地方即set(null,"*")

good point!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top