问题描述
我正在使用动态数组来创建仅依赖于模块的一些通用参数的常量数组,但出现此错误:
Error(19462): Verilog HDL error at FFT.sv(17): synthesis of dynamic array datatype is not supported. Signal X will be ignored
这是代码
module FFT #(N=32,DEC=8,INT=4,MAC=16)
localparam Layers=$clog2(N);
typedef int DA[];
function DA butterfly(int len);
automatic DA X= new [len];
for(int i=0;i<len;i++)X[i]=i;
return rec(X,len);
endfunction
function DA rec(DA X,int len);
automatic DA even= new [len/2];
automatic DA odd= new [len/2];
int i;
if(len<=2)return X;
for(i=0;i<len/2;i++)begin
even[i]=X[2*i];
odd [i]=X[2*i+1];
end
return {rec(even,len/2),rec(odd,len/2)};
endfunction
localparam int BF[N]=butterfly(N);
此代码在行为模拟中运行良好,但在后期合成中不起作用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)