【发布时间】:2018-09-24 18:14:55
【问题描述】:
Quartus 返回此错误:“索引 x 返回一个聚合值”。 代码:
module splineInterp(x, y);
input real x [64:0][0:4];
output real y;
y = x[1] - x[0];
endmodule
【问题讨论】:
-
是的,我做到了。但在实际程序中我没有
Quartus 返回此错误:“索引 x 返回一个聚合值”。 代码:
module splineInterp(x, y);
input real x [64:0][0:4];
output real y;
y = x[1] - x[0];
endmodule
【问题讨论】:
您有一个二维(未打包)实数数组:
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] 是一个聚合值 - 即它是一个实数数组,而不是一个实数。
【讨论】:
real x [64:0][0:4] 是一个 65 x 5 实数的二维数组。