2015-02-07 63 views
0

試圖找出爲什麼這個VHDL代碼不斷回饋編譯錯誤。無論我嘗試什麼,我都無法讓它喜歡代碼。VHDL編譯錯誤

library IEEE; 
use IEEE.STD_LOGIC_1164.all; 

entity LabM5 is 
    port(
    X : in STD_LOGIC; 
    Y : in STD_LOGIC; 
    Z : out STD_LOGIC 
    ); 
end LabM5; 

architecture behv of LabM5 is 
begin 
    process(X, Y) 
    begin 
     if (X='1' and Y='1')then Z='1'; end if; 
    end process; 

end behv; 

錯誤是:

Error: COMP96_0015: Lab M5.vhd : (16, 30): ';' expected. 
Error: COMP96_0019: Lab M5.vhd : (16, 30): Keyword "end" expected. 
Error: COMP96_0019: Lab M5.vhd : (16, 40): Keyword "process" expected. 
Error: COMP96_0015: Lab M5.vhd : (17, 7): ';' expected. 
Error: COMP96_0016: Lab M5.vhd : (17, 14): Design unit declaration  expected. 

線16是if語句和線17是結束處理

回答

2

端口和信號分配是由具有在VHDL <=,因此改變它的分配在ifZ<='1'

Btw; Z什麼時候會得到'1'以外的任何其他值?

1

你會多次犯這個錯誤,因爲平等的操作符與其他語言有很大不同。

  1. 可變:使用:=分配一個值。
  2. 信號:使用<=來分配一個值。
  3. 起始值:使用:=來分配起始值,即使您正在定義信號。