vhdlに次のコードスニペットがあります。
signal s: signed(31 downto 0);
s <= to_signed(to_sfixed(1.2,8,-23),32);
今、私は1.2の固定小数点バージョンがシグナル「s」で利用可能になることを期待しています。
しかし、それは常に小数部分を無視します。's'には、小数部(ここでは「1」)のみが含まれます。
ここで何が欠けていますか?
vhdlに次のコードスニペットがあります。
signal s: signed(31 downto 0);
s <= to_signed(to_sfixed(1.2,8,-23),32);
今、私は1.2の固定小数点バージョンがシグナル「s」で利用可能になることを期待しています。
しかし、それは常に小数部分を無視します。's'には、小数部(ここでは「1」)のみが含まれます。
ここで何が欠けていますか?
sfixedからsigned型としてビットを再解釈したいだけの場合は、単純な型変換を使用してください。
signal s: signed(31 downto 0);
...
s <= signed(to_sfixed(1.2,8,-23));
s
小数部分を格納する場所はありません。整数のみを表すことができる符号付きベクトルです。
しかし、あなたはもうすぐそこにいます-符号を削除し、sとsfixedタイプを作成します:
signal s: sfixed(8 downto -23);
s <= to_sfixed(1.2,sfixed'high,sfixed'low);