2015-02-07 105 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. 起始值:使用:=来分配起始值,即使您正在定义信号。