Why do I get an error with system object calls in HDL Code Generation?
古いコメントを表示
error: hdlcoder:pirudd:systemobjectmultipleuse: System object methods can only be called once
My Code:
main fucntion:
[x,validOut] = mainfc(data_in,st)
persistent var ifft128 out1
if isempty(var)
var=0;
ifft128 = dsp.HDLIFFT('FFTLength',128);
end
if st==1
[out1] = func1(data);
%IFFT calculation
[Xt,validOut]=ifft128_fc(ifft128,out1,true)
elseif st==0
%To complete the IFFT calculation
[Xt,validOut]=ifft128_fc(ifft128,out1,false)
end
%ifft128_fc
function [yOut,validOut] = ifft128_fc(objeto,yIn,validIn)
[yOut,validOut] = step(objeto,yIn,validIn);
end
%My test bench for the main function
N = 128;
for i=1:1:N
[X,V] = main_fc(data_in,1);
end
for i = N+1:1:3*N
[X,V] = main_fv(data_in,0)
end
採用された回答
その他の回答 (1 件)
Walter Roberson
2016 年 7 月 16 日
You have
if isempty(var)
but you never assign to var so isempty will continue to be true, resulting in the next line being executed every pass.
2 件のコメント
Pablo Medina
2016 年 7 月 16 日
編集済み: Pablo Medina
2016 年 7 月 16 日
Walter Roberson
2016 年 7 月 17 日
Please post the actual code. For example should the first bit you posted a function definition where the "function" keyword has wandered off to the washroom, or is that code part of a script file? I don't think HDL can compile script files as the main entry.
カテゴリ
ヘルプ センター および File Exchange で AMD FPGA and SoC Devices についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!