浮動小数点の入力ポートと出力ポートをいくつか定義したいので、実数のデータ型を選択しましたが、私の検索によると、入力ポートとして実数を渡すことができず、利用可能な変換は合成できません。
input real [0:10] delta;
parameter ndelta= 100;
input real [0:10] ly;
input real [0:10] nly;
output real [0:20] w[0:20];
output real [0:20] oldw[0:20];
*すべての実数値は、もともと C コードの「float」値でした。
また、ISE の CoreGenerator で浮動小数点 IP を使用することにしましたが、それぞれが 1 つの浮動小数点値を表す 2 つの 32 ビット ベクトルのみで操作を行います。浮動小数点数の 1D または 2D 配列で操作を実行したい場合、最初に FP コアをカスタマイズしてから、たとえば 2D 配列を作成するためにループの生成を使用する必要がありますか? 浮動小数点数の 1D 配列で簡単な加算を行う方法を学習するための優れたチュートリアルはありますか?
generate
for(i=0; (i<100); i=i+1) begin: FPU_unit
begin
floating_point_v5_0 U_FPU_ins(
.a(a[i]),
.b(b[i]),
.clk(clk),
.result(result[i])
);
end
endgenerate
また、私は C コードを HDL レベルに変換しているので、C コードの一部を HDL 言語に変換するために Vivado HLS を使用することを提案してくれる人がいるかどうか疑問に思っていました。
Vivado HLS と ISE を比較すると、浮動小数点を多用する計算を処理するためのより効率的な方法はどれですか?