2013-02-25 76 views
-1

我是VHDL的新手,我的代碼出現問題,我似乎無法修復。我們應該使用選定的信號分配或表查找來做到這一點。由於我們應該使用不關心不會發生的輸入,所以我是兩者的組合。VHDL錯誤(簡單表達式期望)

該代碼基本上應該爲2的補碼輸入或偏移二進制提供相同的輸出。因此,例如,十進制數7在偏移二進制中爲「1111」,在二進制補碼中爲「0111」。這兩種形式都應根據開關oe的值('1'爲偏移二進制,'0'爲2的補碼)生成「1111100000」的輸出。

我已經調試了我的代碼,儘可能在這個級別上,我不明白我做錯了什麼。

Active-HDL目前在第48行和第55行給出了錯誤。我得到兩個「簡單表達式預期」錯誤。

我的代碼位於下面的pastebin URL,因爲它允許更好的可讀性和語法高亮(另外,我不喜歡用Stack Exchange的發佈代碼的奇怪方式)。另外,如果您有任何關於如何在維護作業說明的同時改進代碼的提示,請隨時提出建議。

http://pastebin.com/aAJAs6KQ

+0

完全重複http://electronics.stackexchange.com/questions/59097/vhdl-error-simple-expression-預計 – 2013-02-25 15:17:58

回答

0

只需使用一個進程,使其更易於閱讀:

... 
-- untested 
process(input, d, tmp, ob) 
begin 
    if ob = '1' then 
     led <= table(to_integer(unsigned(d & tmp))); 
    else     
     led <= table(to_integer(unsigned(not d & tmp))); 
    end if; 
end process; 
...  
+0

爲什麼在輸入靈敏度列表中? – 2013-02-26 14:43:31

+0

你是對的:輸入不再需要。 – user2099996 2013-03-04 16:55:07