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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2558|回复: 6

[求助] VMM SV 队列使用方法求助

[复制链接]
发表于 2016-6-29 16:45:30 | 显示全部楼层 |阅读模式

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

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

x
HI :     各位大神,小弟在学习SV队列的过程中遇到如下问题。

`timescale 1ns/100ps
program test_q();
vmm_data p_put,p_get;
vmm_data arr[$];
initial begin
  p_put = new();
  p_get = new();
  arr   =  {};
  begin
    p_put.data_id = 10;
    $display("the id= %d @%t",p_put.data_id,$time);
    arr.push_back(p_put);
    p_get=arr.pop_front();
    $display("the id= %d @%t",p_get.data_id,$time);

    p_get.data_id = 20;
    $display("the id= %d @%t",p_put.data_id,$time);
    $display("the id= %d @%t",p_get.data_id,$time);
  end
end


结果是这样的:

the id=         10 @                   0
the id=          10 @                   0
the id=          20 @                   0
the id=          20 @                   0



我觉得p_get=arr.pop_front();之后再改变p_get.data_id的值不会影响p_put.data_id的值才对,但是结果是影响了,但是原因不明确,感觉是p_get&p_put
还是指向同一块内存的的样子。求大侠解释一下。
 楼主| 发表于 2016-6-29 20:51:54 | 显示全部楼层
看来大神都下班了
 楼主| 发表于 2016-6-30 09:02:00 | 显示全部楼层
求解释
发表于 2016-6-30 15:11:27 | 显示全部楼层
额,好高级,没这么用过
发表于 2016-6-30 15:22:59 | 显示全部楼层
sv里只是淡化了数据和指针的概念。
在学习时一定要心里知道,哪些是数据,哪些是指针。
类的一切例化都是指针。p_put、p_get和arr都是指针。
p_put = new();     //p_put指向实例1
p_get = new();     //p_get指向实例2
p_put.data_id = 10;     //p_put指向实例1,其data_id=10。
$display("the id= %d @%t",p_put.data_id,$time);    //输出10
arr.push_back(p_put);    //arr[0]指向p_put所指的对象,也就是实例1。
p_get=arr.pop_front();   //p_get指向arr[0]所指的对象,也就是实例1。这时已经没任何指针指向实例2了,它会被注销。由于arr被pop,所以arr[0]指针不再存在。
至此为止,p_put和p_get都指向了实例1。
发表于 2016-6-30 15:30:26 | 显示全部楼层
回复 5# orlye


   大神就是牛啊~~~~~~
 楼主| 发表于 2016-7-1 09:18:14 | 显示全部楼层
arr.push_back(p_put);    //arr[0]指向p_put所指的对象,也就是实例1

个人一直觉得这个队列里面保存的就是p_put 的数据而不是指针,看来理解错误
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-28 12:47 , Processed in 0.025584 second(s), 8 queries , Gzip On, Redis On.

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