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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7443|回复: 7

[求助] 求助:什么情况下仿真会卡在`uvm_do_with(),不往下执行了?

[复制链接]
发表于 2012-7-9 16:35:00 | 显示全部楼层 |阅读模式

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

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

x
各位:
      最近正在被UVM折腾,最近的一个问题是使用virtual sequence的时候,仿真会在某个地方一直卡着,然后仿真时间在增加,而实际上却没有任何激励施加到DUT上。本来我以为是我写virtual sequence弄错了,后来跟其他人核对了一下,virtual sequence那部分确实没有问题,那么我想知道,什么情况下,仿真会在执行到`uvm_do_with()的时候卡在那里动不了了呢?其实,不光是`uvm_do_with(),我后来把这个宏拆开,用`uvm_create()与`uvm_rand_send()的组合来代替,结果是一样的。不知道有没有谁遇到过这种情况,仿真工具只出状况,不报错,我真的不知道哪里有问题了。。。。
发表于 2012-7-9 23:58:39 | 显示全部楼层
时间在增加的话,那就应该不是卡着了,估计是没有产生需要的激励,最好把内部的数据打印出来看看。
 楼主| 发表于 2012-7-10 14:52:04 | 显示全部楼层
找到问题所在了,因为采用的是virtual sequence,在connect phase的时候连错了sequencer,然后无论是用`uvm_do_with()还是`uvm_create()都没办法产生正确的序列。应该就是gaurson所说的激励产生有问题了
发表于 2013-4-17 14:27:36 | 显示全部楼层
回复 3# oscillator_cn1


   能分享下连接的代码吗?我也遇到同样的问题,而且发现virtual sequencer中connect_phase中的sequencer的连接没什么问题。
 楼主| 发表于 2013-4-18 08:44:59 | 显示全部楼层
test的代码:



  1. `include "tb.sv"

  2. class base_test extends uvm_test;
  3.     `uvm_component_utils(base_test)
  4.     tb         tb0;
  5.     vsequencer vsqr;
  6.     function new(string name="base_test",uvm_component parent);
  7.         super.new(name,parent);
  8.     endfunction:new
  9.     virtual function void build_phase(uvm_phase phase);
  10.         super.build_phase(phase);
  11.         tb0  = tb::type_id::create("tb0",this);
  12.         vsqr = vsequencer::type_id::create("vsqr",this);
  13.         //uvm_config_int::set(this,"tb0.apb0.bus_monitor","coverage_enable",0);
  14.         uvm_config_db#(uvm_object_wrapper)::set(this,"vsqr.run_phase","default_sequence",apb_vdo_seq::type_id::get());
  15.     endfunction : build_phase
  16.     virtual function void connect_phase(uvm_phase phase);
  17.         vsqr.apb_sqr=tb0.apb0.master.sequencer;
  18.         vsqr.vdo_sqr=tb0.vdo0.master.sequencer;
  19.         vsqr.regmodel=tb0.regmodel;
  20.     endfunction : connect_phase
  21.     virtual task run_phase(uvm_phase phase);
  22.     endtask : run_phase
  23. endclass : base_test



复制代码
发表于 2015-12-1 17:00:43 | 显示全部楼层
学习学习
发表于 2022-7-8 11:07:33 | 显示全部楼层
学习学习
发表于 2024-4-25 23:37:11 | 显示全部楼层


mrforever 发表于 2013-4-17 14:27
回复 3# oscillator_cn1


你好请问解决了吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-18 20:09 , Processed in 0.026401 second(s), 8 queries , Gzip On, Redis On.

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