verilog。多维数组初始化

Verilog. Multidimensional array initialization

我在仅用于仿真的 SystemVerilog 模块中创建了 localparam:

   localparam [31:0] SYNTH_PRD_REGS[1][5][13] = '{
                 '{
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000},
  '{32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000,32'h00000000}                             
                }
 }; // Error for this line.

我编译了这个模块,但是当我开始模拟时,预期错误:

RUNTIME: Fatal Error: RUNTIME_0123 tb_bus.sv (35): Range width expression must be positive.

为什么会出现这个错误?我使用 Active -HDL 9.3.

您遇到了工具问题。您的代码很好,适用于许多其他工具。

你能试试这个吗:

localparam [31:0] SYNTH_PRD_REGS[5][13] = '{default:32'h0}