我有一个寄存器映射,它有 16 位宽的寄存器。我有一个大于 16 位宽的字段,所以它必须跨越两个地址。如何定义对该字段的后门访问?
这是我为我的领域尝试的test_pattern[23:0]
:
register_a.add_hdl_path_slice("path.to.regmap.test_pattern[15:0]", 0, 16);
register_b.add_hdl_path_slice("path.to.regmap.test_pattern[23:16]", 0, 8);
这失败并出现此错误:
错误:VPI TYPERR vpi_handle_by_name() 无法获取部件选择的句柄。
目前尚不清楚这是否是我的工具的限制,或者 UVM 代码如何使用 VPI。在 UVM 代码中四处寻找之后,我看到了应该处理部分选择的代码,但它在#ifdef QUESTA
指令内部,所以我认为这是一个工具约束。
有什么好的解决方法吗?