微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM 寄存器后门读错误。

UVM 寄存器后门读错误。

时间:10-02 整理:3721RD 点击:
我已经设置寄存器后门路径,但每次读的时候都是返回0. 不知道问题出在哪里?见下面代码。
PINGPONG_1.configure(this, null, "pingpong_reg.q[0]");
ENCSYS_1.configure(this, null, "encsys_reg.q[63:0]");
SBNVARINTV_1.configure(this, null, "sbnvarintv_reg.q[31:0]");
m_axi_reg_h.set_hdl_path_root("top.dut.m_txs_top.txs_txs_swi");
...
read operation:
data = reg_h.get();
reg_h.read(status, temp_data, path);
`uvm_info(get_name(),$psprintf("[REG_READ] Reg read [%s][%s] REDA=0x%8X [DESIRED=0x%8X], Mirror = 0x%8X[0x%8X]: Update says: %0d\n", reg_h.get_name(), field_h.get_name(),temp_data, data, reg_h.get_mirrored_value(), field_h.get_mirrored_value(),reg_h.needs_update()),UVM_MEDIUM)
Log file:
# UVM_INFO /.../axi_reg_mirror_collection.sv(277) @ 1641: reporter@@uvm_reg_sequence_inst [uvm_reg_sequence_inst] [REG_READ] Reg read [ENCSYS_1][Ni_Ping] REDA=0x00000000 [DESIRED=0x1274992512448d22], Mirror = 0x00000000[0x00000000]: Update says: 0

后门路径不对吧
一般来说寄存器的后门路径都是
XXX_TOP.xxx_mod.xxx_regfile.reg

本人初学UVM, 说一下觉得可能存在的问题
1、可能是路径问题,检查一下路径,是否在正确的位置设置了path_root
2、寄存器的后面操作read后面应该不用加path, 直接read(status, value)就可以了
3、检查各寄存器configure中的操作方式是否正确

看log中是否有告警

在read operation前面加上“#1;”试试看

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

网站地图

Top