VHDLで私は14ビットの入力に4を掛けた16ビットの数値を与えるために14ビットの入力を取り、最後に '00'を追加したいと思いますそれが正(入力が常に正)であるように17ビット符号付き変数に変換します。これについてどうすればいいですか?符号付きの精度と変換を維持しながらビットシフトする
このような? shiftedInput <= to_signed('0' & input & '00', 17);
shiftedInput <= to_signed(input sll 2, 17);
またはこれは? shiftedInput <= to_signed(input & '00', 17);
得られるstd_logic_vectorは16ビットであり、符号付き変数は17ビットであるため、最上位ビット(歌いビット)は0と見なされますか?
これを行う必要はありますか? shiftedInput <= to_signed('0' & input sll 2, 17);
14ビットの数字17をstd_logic_vectorとして読み込むと(00 0000 0001 0001)
]は符号付き番号+68に変換する必要があります。 [すなわち(0 0000 0000 0100 0100)
]
「入力」の種類は何ですか?さまざまな試みでどのようなエラーが発生しますか? –
入力はstd_logic_vector(13 downto 0) – SomeRandomPhysicist
です。第1オプションには、演算子 "&"の関数宣言はありません 第2オプションは次のとおりです。演算子 "sll"の関数宣言はありません 3番目のオプションは次のとおりです。スライスまたはインデックスされる 4番目のオプションが与えられます:演算子 "sll"の関数宣言はありません – SomeRandomPhysicist