在我的环境中,我已将预测器bus_in端口连接到监视器的输出分析端口。我还实现了reg_adapter bus2reg函数并将适配器连接到预测器。
我正在使用被动预测(https://verificationacademy.com/cookbook/registers/integrating)。只要从监视器发送了事务,就应该自动更新uvm_reg的镜像值。但是我没有看到这种情况发生。当我检查uvm_reg_predictor的源代码时,似乎它在get_reg_by_offset()函数中失败,因此它没有获得uvm_reg对象。有没有人有类似的问题?如果是这样,你的解决方案是什么?感谢。
答案 0 :(得分:1)
可以通过在REG映射中配置偏移量来解决此问题。
确保适配器接收到的事务(地址)与REG映射中的地址相同。添加set_auto_predict(0)
以关闭隐式预测。 reg_offset
失败了,因为地址不匹配并且映射没有发生,此后该寄存器的预测方法没有被隐式调用。