2013-01-21 232 views
2

我對使用從std_logic_vectorsigned/unsigned轉換的使用存在一些疑問。我總是使用轉換signed(...),unsigned(...),但是當我嘗試使用庫numeric_stdto_signed,to unsigned)中定義的轉換時,它不起作用。有人可以向我解釋爲什麼發生這種情況?以及爲什麼轉換unsigned()signed()有效?VHDL std_logic_vector轉換爲帶符號和無符號nume​​ric_std

回答

4

因爲std_logic_vectorsigned/unsigned類型是密切相關的,你可以使用類型轉換的方式進行轉換。所以signed(a_std_logic_vector)unsigned(a_std_logic_vector)都可以。但是,標準中也定義了轉換功能。請參閱VHDL FAQ。 這是一個來自新聞組仍然很熱的日子的舊網站,但它仍然有很多關於VHDL的良好信息。

1

查看numeric_std的包規範。你會發現to_signed轉換爲signed ...從整數。由於「vermaete」表示,signed是與std_logic_vector緊密相關的類型,因此您不需要轉換函數。

相關問題