focアルゴリズムの実装のためのクラークとパークの変換のためのVerilogコードを書きたいと思います。私はVerilogを初めて使っています。私は、cos、sin関数、および実数を含む複雑な方程式のコードを書く方法を理解していません。誰かが私にスタートを与えてくれますか?私が書こうとしたVerilogコードは以下の通りです。クラークとパークの変換のためのVerilogコード
timescale 1ns/1ps
module clarke_park(iR_i,iY_i,iB_i,theta,iD_o,iQ_o);
output real iD_o;
output real iQ_o;
input real iR_i;
input real iY_i;
input real iB_i;
real k = 0.66;
output real ialpha;
output real ibeta;
output real iY_r;//real part
output real iY_c;//complex part
output real iB_r;
output real iB_c;
output real ibeta_r;
output real ibeta_c;
function sin(input real theta);
function cos(input real theta);
iY_r = -1*(iY_i)*(0.5);
iY_c = (iY_i)*(0.866);
iB_r = -1*(iB_i)*(0.5);
iB_c = -1*(iB_i)*(0.866);
ialpha = k*iR;
ibeta_r = k*(0.866)*(iY_r-iB_r);
ibeta_c = k*(0.866)*(iY_c-iB_c);
real a1 = sin(theta);
real a2 = cos(theta);
iD_r = (a1*(ialpha)) + ((sin(theta))*(ibeta_r));
iD_c = a2*(ibeta_c);
iQ_r = - (1*a2*(ialpha)) + (a1*(ibeta_r));
iQ_c = a1*(ibeta_c);
endfunction
assign iD_o = {iD_r,iD_c};
assign iQ_o = {iQ_r,iQ_c};
endmodule
結果を合成可能にする必要がある場合は、質問を編集することができます。 FPGAやASICでシミュレーションするのではなく、必要な場合は浮動小数点コアを使用する必要があります。 – Morgan
合成可能である必要はなく、純粋にテスト目的のために開発されている。 – SACHIN