2016-11-28 48 views
0
count := to_integer(unsigned (values(i))); 

錯誤: ERRORS:HDLParsers:854 - 表達式不能轉換爲類型無符號合成誤差整數的轉換[ERRORS:HDLParsers:854]

前提條件:

  • 進口

    library ieee; 
    use ieee.std_logic_1164.all; 
    use ieee.math_real.all; 
    
  • 計數聲明聲明爲

    values: in std_logic_vector(7 downto 0); 
    
  • Assignement操作者<作爲

    variable count : integer range 0 to 255 := 0; 
    
  • 值=沒有成功測試過。

回答

0

values(i)的類型是std_logic。您不能在unsigned中輸入std_logic。這似乎是一件很奇怪的事情,也許如果你能解釋你爲什麼要這樣做,我可以提供一個替代方案。

+0

這段話被包含在一個作爲BCD轉換器運行的過程中。我想通過for循環將二進制輸入('std_logic_vector')轉換爲一個整型變量('count'),考慮每個循環一個位並迭代地將其十進制值添加到變量計數中。這將是這樣的,但我們只是做一些測試: 'count:= count + to_integer(unsigned(values(i)))*(2 ** i)' –

+0

@DavidePimpinella也許值得添加你的整個'過程'的問題。另外,還有很多關於二進制到BCD轉換的問題。 –