1
我一直在試圖學習如何使用VHDL中的條件信號分配(這是我相信的WHEELSE語句?),並提出了什麼應該是一個簡單的代碼。但ModelSim不會讓它編譯,並一直告訴我,我有一個非法的併發語句。哪裏?爲什麼?我試着做一個IF ELSIF ELSE語句的過程中,但我仍然得到了確切的同樣的錯誤,所以我現在比當我開始更加困惑......VHDL中的非法並行語句?
Library ieee;
Use ieee.std_logic_1164.all;
Entity Q59122 is port (
A, B : IN STD_LOGIC;
Y : OUT STD_LOGIC
);
End Entity Q59122;
ARCHITECTURE csa OF Q59122 IS
BEGIN
Y <= '0' WHEN A = '0'
ELSE Y <= '0' WHEN B = '0'
ELSE Y <= '1';
END csa;
基本上我試圖模仿的與門使用條件信號分配。我知道你可以在VHDL中使用「and」命令,但這會失敗。我在這裏先向您的幫助表示感謝。作爲
我嘗試使用只有一個任務,但它仍然當我嘗試編譯時得到以下錯誤。 **錯誤:ModelSim/Q59122.vhd(10):非法併發語句。 **錯誤:ModelSim/Q59122.vhd(16):VHDL編譯器退出 – AKage
您的評論是不明確的。根據Bill的第一個例子(一個適當的併發條件信號賦值語句)轉換您的代碼時,結果分析。你犯了更多的語法錯誤,或者沒有使用比爾的第一個例子。他的第二個例子是併發信號分配的等效順序語句。通過在elsif條件之後加上保留字「then」,它也可以進行分析。參見IEEE 1076-2008 10.5信號分配說明10.5.3有條件的信號分配。 – user1155120