|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位:
最近在用UVM搭建验证环境,遇到一些中断的问题,需要将interface中一些信号引入sequence中。但是我不管是在sequence中直接定义virtual interface,还是把virtual interface装到config类中传递给sequence,都面临同样的问题,就是无法通过uvm_config_db传递这些配置给sequence。不知道这个问题该如何解决呢?
嗯,具体描述一下,总共有三个sequence,因此,我使用了virtual sequencer来调度。需要引入virtual interface的是irq_sequence,目前我使用的是将virtual interface装到config类中,然后irq_sequence中申明该类。
在我的test class中,我例化该config类,并给其内的virtual interface配置,然后再将该config类配置到sequence中。我是这样写的:
class test中:
- my_config=ir_config::type_id::create("my_config")
- if(!uvm_config_db(virtual ir_if)::get(this,"","irq_ir",my_config.irq_if))
- `uvm_error("NO_IRQ_IF","interrupt virtual interface handle not found in test.my_config")
- uvm_config_object::set(this,"*","my_config",my_config);
复制代码
然后在irq_sequence的body中:
- if(!uvm_config_db#(ir_config)::get(null,get_full_name(),"my_config",my_config))
- `uvm_error("BODY_IN_IR_SEQ","fail to get ir_config")
复制代码
最终运行的结果是error BODY_IN_IR_SEQ发生了。 |
|