我在 Icarus Verilog 中模拟 16 位 MIPS 网表。这是我在测试台中遇到的错误
mips_16_core_top_tb_0.v:144: error: Scope index expression is not constant: i
mips_16_core_top_tb_0.v:144: error: Unable to bind wire/reg/memory `uut.register_file_inst.reg_array[i]' in `mips_16_core_top_tb_0_v.display_all_regs'
Related code :
task display_all_regs;
begin
$display("display_all_regs:");
$display("------------------------------");
$display("R0\tR1\tR2\tR3\tR4\tR5\tR6\tR7");
for(i=0; i<8; i=i+1)
$write("%d\t",uut.register_file_inst.reg_array[i]); <--- error points to this line
$display("\n------------------------------");
end
endtask
当我也模拟 RTL 时,我确实遇到了同样的错误,但我仍然把 vcd 文件转储了出来。在网表的情况下,我什至没有生成 vcd 文件。很高兴听到你的想法。