HDL Coderを利用してSimulinkモデルからHDLコードを生成する際、
下記に示すmatlab function block(fcn)を含むモデルを生成実行したところ、以下のエラーが出てしまいます。↓
”式 'output( (i-1)*length(mat(:,1))+1 : (i)*mat(:,1)) )' は、別のループの反復でサイズが変化します。MATLAB Datapath アーキテクチャでは、ループの反復でサイズが変化する式はサポートされていません。”
本エラーを回避するにはどうすればよろしいでしょうか。
宜しくお願いします。
function output = fcn(input,mat)
output = zeros(length(mat(:,1))*(224+2),1);
Digit1 = input(1:4:length(input));
Digit2 = input(2:4:length(input));
Digit3 = input(3:4:length(input));
Digit4 = input(4:4:length(input));
DataSym = 8*Digit1+4*Digit2+2*Digit3+Digit4;
for i = 1:length(DataSym)
output( (i-1)*length(mat(:,1))+1 : (i)*length(mat(:,1)) ) = mat(:,1);
output( (i-1)*length(mat(:,1))+1 : (i)*length(mat(:,1)) ) = mat(:,2);
output( (i-1)*length(mat(:,1))+1 : (i)*length(mat(:,1)) ) = mat(:,3);
output( (i-1)*length(mat(:,1))+1 : (i)*length(mat(:,1)) ) = mat(:,4);
output( (i-1)*length(mat(:,1))+1 : (i)*length(mat(:,1)) ) = mat(:,5);