|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位UVM大神,
小弟最近在学习UVM的使用,试着搭建了一个简单例子,但是仿真时仿真时间总是为0就结束了,看了log提示没有设置default phase,但是代码中明明有设置,还请各位熟悉UVM的前辈帮忙解答下,多谢。
example.rar
(58.79 KB, 下载次数: 14 )
附件是整个工程的代码,直接make就可以工作,附件中有个uvm.log是仿真log文件。
下面将设置default phase的class代码贴出,方便大家查看,工程中一共有3个seq要启动,分别在reset, cfg以及main启动
- `include "common/base_test.sv"
- class tc_case0 extends base_test;
- `uvm_component_utils(tc_case0)
-
- function new(string name = "tc_case0", uvm_component parent = null);
- super.new(name,parent);
- `uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
- endfunction
- function void build_phase(uvm_phase phase);
- super.build_phase(phase);
- `uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
- uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.r_agent.seqr.reset_phase", "default_sequence", reset_sequence::type_id::get());
- uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.a_agent.sequencer.configure_phase", "default_sequence", apb_one_write_operation::type_id::get());
- uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.u_agent.sequencer.main_phase", "default_sequence", uart_sequence::type_id::get());
- endfunction
- endclass
复制代码 |
|