当我从Verilog访问寄存器中的数组值与硬编码整数时的行为差异时,我感到非常困惑。
说我有两个寄存器:
reg [0:15][0:3] data = 'h01234567890abcdef
reg [0:3] i = 14
如果我跑
$display("data: %h", data[i]);
我得到输出data: 2
,但如果我运行
$display("data: %h", data[14]);
我得到输出data: e
有人能解释一下这里发生了什么吗?
更新:
这似乎是在Icarus模拟器中以不同或不正确的方式实现的,Altec Reviera模拟器产生匹配的输出。