信号として保存されているIEEE754浮動小数点数を操作する必要がありstd_logic_vector
ます。
例えば:
signal a, b, ans : std_logic_vector( 63 downto 0 );
..
ans <= std_logic_vector(to_float(a) + to_float(b));
どうやってやるの?(変換中にビット数をどこかで定義する必要があると思いますか?)編集:コードは合成可能ですが、警告が表示されます。コード:
variable tempfloat1, tempfloat2, tempfloat3 : float32;
..
tempfloat1 := to_float(s_do_ssc2wb, exponent_width => 8, fraction_width => 23 );
tempfloat2 := to_float(s_do_wb2ssc, exponent_width => 8, fraction_width => 23 );
tempfloat3 := tempfloat1 + tempfloat2;
警告:
"float_pkg_c.vhdl" line 1515: VHDL Assertion Statement with non constant condition is ignored.
"float_pkg_c.vhdl" line 1600: Index value(s) does not match array range, simulation mismatch.
そのための正しい構文は何だろうか...「add」関数は、ユーザーガイドの例のように引数を受け入れません。