我尝试转储一个数组(reg 31:0数据31:0),但我做不到。我尝试过在iverilog wiki中使用的方式:
integer idx;
for (idx = 0; idx < 32; idx = idx + 1)
$dumpvars(0,cpu_tb.cpu0.cpu_dp.cpu_regs.data[idx]);
这很管用,但有两件事发生了。
有什么解决办法吗?
提前谢谢,为我的英语感到抱歉。
发布于 2020-11-08 12:38:12
我最近也有一个类似的问题:
当使用类似于问题的for循环转储vars时,会发生以下vcd错误:
ERROR: $dumpvars cannot dump a vpiConstant.
我的解决方法是生成n条连接,使用assign语句将其分配给相应的数组字,如下所示:
reg [31:0] registers [31:0];
generate
genvar idx;
for(idx = 0; idx < 32; idx = idx+1) begin: register
wire [31:0] tmp;
assign tmp = registers[idx];
end
endgenerate
现在,在GTKWave中,我正确地转储了生成块。
https://stackoverflow.com/questions/20317820
复制相似问题