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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

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

[求助] UVM仿真时,monitor模块报错

[复制链接]
发表于 2015-7-16 21:08:24 | 显示全部楼层 |阅读模式

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

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

x
出错代码如下,为monitor中的一个task

task my_monitor::receive_one_pkt(ref my_transaction get_pkt);
    logic valid=0;
    logic [7:0]data;
    byte unsigned data_q[$];
    byte unsigned data_array[];
    int data_size;
    while(!valid)
      receive_one_byte(valid,data);
    while(valid)
      begin
      data_q.push_back(data);
      receive_one_byte(valid,data);
      end
    data_size=data_q.size();
    data_array=new[data_size];
    for(int i=0;i<data_size;i++)
      data_array=data_q;
    get_pkt.payload=new[data_size-18];
    data_size=get_pkt.unpack_bytes(data_array)/8;
  endtask

编译通过,仿真错误报告如下:Error-[DT-NV] Negative value
/home/klin/jiangwei/uvm-1.1b/examples/integrated/my_book_test_layer/tb/agent/monitor.sv, 61
  Negative size value -18 specified for dynamic array
  Please make sure that the specified value is a non negative number.

对照正确的程序发现如果把程序中第一个while(!valid)改成while(valid!==1)则仿真可以通过

不明白为什么会报错以及为什么这么改就不会出错,求高人解答
 楼主| 发表于 2015-7-16 22:00:39 | 显示全部楼层
顶顶顶
发表于 2015-7-17 08:35:58 | 显示全部楼层
回复 1# 大姐开门啊


    是不是你的线上有x 态啊

    !valid 和 valid !== 1的差别就在与 如果valid 是 x态,那么 !valid 的判断是成立的。 但是 valid !== 1就是不成立的。

   你chk下
发表于 2015-7-22 16:49:07 | 显示全部楼层
1、仿真出错其实已经报出来了,是因为你的动态数组的size为负,其实就是根本没有执行收包操作,
2、也就是你的valid估计为x/z态导致,那么改才好的
发表于 2015-9-6 21:23:30 | 显示全部楼层
有点疑问,data_size 由data queue的size ()来drive,一个未操作过的data queue默认size()不是0吗?怎么会是负数呢?
发表于 2015-9-6 22:04:08 | 显示全部楼层
get_pkt.payload=new[data_size-18];
显然你这里data_size是0啊,报错了,你要看一下它说什么
发表于 2015-9-6 22:05:53 | 显示全部楼层
while(!valid)和while(valid!==1)是不一样的,因为valid可能是z或者x
发表于 2015-9-24 13:00:14 | 显示全部楼层
回复 7# luyaker


    我也觉得应该是这样!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-9-21 13:48 , Processed in 0.017651 second(s), 6 queries , Gzip On, Redis On.

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