VHDL编译错误

时间:2015-02-07 04:58:23

标签: compilation compiler-errors 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 个答案:

答案 0 :(得分:2)

在VHDL中使用<=进行端口和信号分配,因此将if中的分配更改为Z<='1'

顺便说一句; Z何时获得除'1'以外的任何其他值?

答案 1 :(得分:1)

你会多次犯这个错误,因为平等的算子与其他语言非常不同。

  1. 变量:使用:=分配值。
  2. 信号:使用<=分配值。
  3. 起始值:使用:=分配起始值,即使您正在定义信号。