如何在SystemVerilog中正确地对实数数组进行切片?

时间:2018-09-24 18:14:56

标签: system-verilog quartus

Quartus返回此错误:“索引x返回一个聚合值”。 代码:

module splineInterp(x, y);
input real x [64:0][0:4];
output real y;
y = x[1] - x[0];
endmodule

1 个答案:

答案 0 :(得分:4)

您有一个二维(未打包)实数数组:

input real x [64:0][0:4];

在Verilog中,不对所有未打包的尺寸进行索引是非法的(如果对其中任何一个进行索引)。添加缺少的assign语句,这仍然是非法的:

assign y = x[1] - x[0];

因为您只索引了第一维。您将不得不说类似

assign y = x[1][4] - x[0][4];

基本上,错误消息告诉您x[0]集合值-即它是实数数组,而不是实数。