4

std_logic_vectorからsigned/への変換の使用について疑問がありますunsigned。私は常に変換signed(...),unsigned(...)を使用しますが、ライブラリで定義されている変換numeric_std( to_signed, to unsigned) を使用しようとすると、機能しません。なぜこれが起こるのか誰かが私に説明できますか? そして、なぜ変換unsigned()signed()動作しますか?

4

2 に答える 2

7

std_logic_vector型とsigned/unsigned型は密接に関連しているため、型キャスト方式を使用して変換できます。だからsigned(a_std_logic_vector)unsigned(a_std_logic_vector)大丈夫です。ただし、変換する関数も標準で定義されています。

VHDLFAQをご覧ください。これはニュースグループがまだ熱かった時代からの古いウェブサイトですが、それでもVHDLに関する多くの良い情報があります。

于 2013-01-21T12:43:37.337 に答える
2

numeric_std のパッケージ仕様を見てください。to_signed は整数から signed ... に変換されることがわかります。

「vermaete」が言うように、signed は std_logic_vector と密接に関連する型であるため、変換関数は必要ありません。

于 2013-01-21T13:05:40.553 に答える