System Verilog 中动态数组的可合成替代方案是什么?

问题描述

我正在使用动态数组来创建仅依赖于模块的一些通用参数的常量数组,但出现此错误

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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...