我正在尝试编译以下SystemVerilog,我收到以下错误"错误(10686):InstRom.sv(8)中的SystemVerilog错误:InstAddress有一个聚合值。"
module InstRom#(parameter A = 16, parameter W = 9)
(
input InstAddress[A-1:0],
output logic InstOut[W-1:0]
);
logic[W-1:0] instr_rom[2**(A)];
always_comb InstOut = instr_rom[InstAddress];
initial begin
$readmemb("cordic.txt", instr_rom);
end
endmodule
我做错了什么?
答案 0 :(得分:0)
InstAddress 是位的解包数组,而不是位向量(即打包数组)。这同样适用于 InstOut 。将声明更改为
input logic [A-1:0] InstAddress,
output logic [W-1:0] InstOut
并且您的代码应该可以使用。