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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5710|回复: 3

[求助] UVM仿真时间为0,无法启动sequence,求帮忙?

[复制链接]
发表于 2017-12-10 19:21:22 | 显示全部楼层 |阅读模式

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

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

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启动




  1. `include "common/base_test.sv"
  2. class tc_case0 extends base_test;
  3.   `uvm_component_utils(tc_case0)
  4.   
  5.   function new(string name = "tc_case0", uvm_component parent = null);
  6.     super.new(name,parent);
  7.     `uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
  8.   endfunction

  9.   function void build_phase(uvm_phase phase);
  10.     super.build_phase(phase);
  11.     `uvm_info("TRACE", $sformatf("%m"), UVM_HIGH);
  12.      uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.r_agent.seqr.reset_phase", "default_sequence", reset_sequence::type_id::get());
  13.      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());
  14.      uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.u_agent.sequencer.main_phase", "default_sequence", uart_sequence::type_id::get());
  15.   endfunction

  16. endclass


复制代码
发表于 2017-12-14 10:05:26 | 显示全部楼层
花个1积分帮你看一下
发表于 2017-12-14 10:24:08 | 显示全部楼层
改成这样

uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.reset_agent.seqr.reset_phase", "default_sequence", reset_sequence::type_id::get());
     uvm_config_db#(uvm_object_wrapper)::set(null, "uvm_test_top.env.apb_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.uart_agent.sequencer.main_phase", "default_sequence", uart_sequence::type_id::get());



记住

a_agent = apb_agent::type_id::create("apb_agent", this);

这样产生的a_agent,在用uvm_config_db的时候hierarchy是apb_agent而不是a_agent
发表于 2022-1-13 17:02:14 | 显示全部楼层
用default_sequence来启动,如果config_db机制里 set的路径写错的话也会出现这种结果。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-19 19:43 , Processed in 0.016979 second(s), 7 queries , Gzip On, Redis On.

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