【发布时间】:2015-08-24 22:37:00
【问题描述】:
我有一个名为 dct_8p 的模块,其中我有一个包含 8 个元素的输入数组,其中每个元素是一个 4 位数字,8 个元素输出数组每个包含 5 个位数字。我想通过模块传递每个输入的 4 位数字。
我试图通过设计愿景来解读设计。它会产生一个错误:
/Farhana/Synopsys/dct_8p.v:56:非法引用内存 xin。 (VER-253)
我想我在数组声明中犯了非常愚蠢的错误,我无法理解。
module dct_8p(xin,cin,add,sub,xout);
input [3:0] xin [0:7];
input cin;
output [4:0] xout[0:7];
input add,sub;
//layer 1
RCA3 #(.n(4), .approx(0)) l10(.p(xin[0]),.q(xin[]),.ci(cin),.op(add),.r(xout[0]));
....
..
module RCA3(p,q,ci,op,r);
parameter n=4;
input[n-1:0]p,q;
input ci,op;
output [n:0] r;
parameter approx=0;
....
....
【问题讨论】:
-
Verilog 不支持二维数组端口;确保您启用了 SystemVerilog。建议 SystemVerilog 文件使用
.v的.sv插入。 -
检查您是否有第二个
xin的索引? -
我已经尝试过 .sv 扩展名,但我仍然遇到同样的错误。我想在测试台脚本中传递 4 位寄存器值,但 l10 确实接收输入。
-
谁能提供一个例子?
-
尝试将 -sverilog 传递给 vcs 编译时开关。 (这是用于 SystemVerilog)
标签: arrays multidimensional-array verilog system-verilog