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}
我在仅用于仿真的 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}