4
使用VHDL編程時,您可以在case語句中使用變量嗎?這個變量將通過的情況下VHDL中的案例陳述
即
case task is
when 1 =>
when 2 =>
when number =>
這是一個好修改?
使用VHDL編程時,您可以在case語句中使用變量嗎?這個變量將通過的情況下VHDL中的案例陳述
即
case task is
when 1 =>
when 2 =>
when number =>
這是一個好修改?
對於模擬或合成?
無論哪種方式,從documentation:
的選擇必須是常數相同離散型作爲表達式的。
使用if
來測試number
,或者:
if task=number then
...
else
case task is
when 1 => ...
when 2 => ...
when others => ...
end case;
end if;
或
case task is
when 1 => ...
when 2 => ...
when others =>
if task=number then
...
else
...
end if;
end case;
您的選擇取決於你是否希望if task=number
測試的結果或when ... =>
測試的有優先? (例如,假設無論出於何種原因number=1
,你想when 1 =>
或if task=number
最終提供你的結果?)
在case
聲明合成爲一個多路複用器的簡單的情況; if
語句作爲比較器和雙輸入多路複用器進行綜合。一個喂入另一個。
可能值得發佈更多的代碼,以便我們可以看到您的建議如何使用變量!如果您計劃編寫綜合代碼,那麼您必須確保您不使用變量來維護狀態,並且僅用於計算的臨時結果。 – 2010-04-08 03:35:05
@Binary Nerd:爲什麼你不能使用變量來存儲狀態?標準實踐在這裏.. – 2010-04-08 12:54:28
最終取決於OP試圖實現什麼,這是一個偉大的未知......他/她肯定可以使用(希望註冊的)變量來維護狀態,如果這是他/她打算做的事情。 – vladr 2010-04-23 20:40:02