微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 关于uvm寄存器读操作的疑问?

关于uvm寄存器读操作的疑问?

时间:10-02 整理:3721RD 点击:
最近使用uvm的寄存器模型的前端模式读取dut的寄存器状态,但每次返回的都是0,无法正确读取dut寄存器状态。看了下uvm源码中的read操作,发现read与write操作几乎一样,都是先使用reg2bus,再使用bus2reg,写操作没问题,把写出去的数值更新寄存器模型的期望值与镜像值。
但读操作这样就有问题了,读操作也是首先发起读操作命令(reg->dut),然后等待总线返回读取的寄存器的值(dut->reg)。但实际返回的是发起读操作命令时写到总线上的数据,因为读操作在命令阶段无需关心写到dut的什么数据,因此默认为0。
而且我发现mon的predict自动预测与read操作完全无关,只是监测总线有回读操作更新寄存器模型而已。
被uvm的寄存器模型读的操作搞糊涂了,我的本意是读操作发起读命令,延迟几个时钟周期读回寄存器状态,就是read返回的data输出参数能够正确反映dut寄存器内部的值,但好像这样做不到呀,请各位指点迷津。

这是你自己设计的monitor的时序问题吧,bus2reg和monitor是通过阻塞的port通信的,是需要等待的

问题基本解决了,没想到uvm居然这么使用,读写操作居然是一样路子。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top