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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2434|回复: 2

[求助] 关于uvm寄存器读操作的疑问?

[复制链接]
发表于 2016-12-4 17:21:47 | 显示全部楼层 |阅读模式

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

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

x
最近使用uvm的寄存器模型的前端模式读取dut的寄存器状态,但每次返回的都是0,无法正确读取dut寄存器状态。看了下uvm源码中的read操作,发现read与write操作几乎一样,都是先使用reg2bus,再使用bus2reg,写操作没问题,把写出去的数值更新寄存器模型的期望值与镜像值。
但读操作这样就有问题了,读操作也是首先发起读操作命令(reg->dut),然后等待总线返回读取的寄存器的值(dut->reg)。但实际返回的是发起读操作命令时写到总线上的数据,因为读操作在命令阶段无需关心写到dut的什么数据,因此默认为0。

而且我发现mon的predict自动预测与read操作完全无关,只是监测总线有回读操作更新寄存器模型而已。

被uvm的寄存器模型读的操作搞糊涂了,我的本意是读操作发起读命令,延迟几个时钟周期读回寄存器状态,就是read返回的data输出参数能够正确反映dut寄存器内部的值,但好像这样做不到呀,请各位指点迷津。
发表于 2016-12-5 11:28:14 | 显示全部楼层
这是你自己设计的monitor的时序问题吧,bus2reg和monitor是通过阻塞的port通信的,是需要等待的
 楼主| 发表于 2016-12-5 14:36:52 | 显示全部楼层
问题基本解决了,没想到uvm居然这么使用,读写操作居然是一样路子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-14 15:43 , Processed in 0.016676 second(s), 6 queries , Gzip On, Redis On.

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