2014-10-31 30 views
-4

我停留在以下problem-VHDL代碼來轉換5位向量爲整數

我需要編寫轉換5位向量到整數,其中二進制數a4a3a2a1a0的整數值可以被計算爲一個VHDL函數( ((0 + a4)* + a3)* + a2)* + a1)* + a0。 這不是任何作業。但我正在準備考試。

謝謝!

+2

'(0 + a4)*'表示什麼?這對我來說並不熟悉,至少不是VHDL。 – 2014-10-31 21:24:54

+0

將結果變量初始化爲0.循環遍歷從MSB到LSB的向量的每一位,乘以2,然後在設置當前位時加1。 – 2014-10-31 22:19:58

回答

0

如果你的二進制數a4a3a2a1a0是std_logic_vector,你可以使用標準的轉換函數:

use IEEE.NUMERIC_STD.ALL; 

integer_result <= to_integer(unsigned(input_vector)); 

必須使用NUMERIC_STD庫才能使其工作。

在很多情況下,可能使用'unsigned'作爲輸入向量的類型,刪除一個轉換階段。