VHDL 代码中的语法错误

Syntax errors in VHDL code

大家好,我正在使用 VHDL,我的问题陈述如下:

为 XOR 和 XNOR 函数编写 VHDL 代码,与之前的实验室课程相同,并在代码中定义另一个输入“x”,这样如果输入 x=1,则 F = X1 XOR X2, 否则 F = X1 XNOR X2.

所以我开始写这段代码:

LIBRARY ieee ;

USE ieee.std_logic_1164.all ;

ENTITY prework IS

PORT ( x1, x2, x : IN STD_LOGIC ;

f: OUT STD_LOGIC ) ;

END prework ;

ARCHITECTURE LogicFunction OF prework IS


PROCESS (x,x1,x2)
BEGIN
if x = '1' then
    f <= (x1 AND NOT x2) OR (NOT x1 AND x2);
else
    f <= NOT((x1 AND NOT x2) OR (NOT x1 AND x2));
end if;
end PROCESS;

END LogicFunction ;

但我不断收到这些错误:

错误 (10500):文本 prework.vhd(16) 附近的 VHDL 语法错误 "PROCESS";期望"begin",或声明语句

错误 (10500):文本 "ELSE" 附近 prework.vhd(20) 处的 VHDL 语法错误;期待"end",或“(”,或标识符("else"是保留关键字),或并发语句

错误 (10500):prework.vhd(22) 文本附近的 VHDL 语法错误 "if";期待“;”,或标识符("if" 是保留关键字),或 "architecture"

所以你能帮我解决这些错误吗? 谢谢

Architecture语句之后,你也必须使用Begin,就像在Process之后一样。错误很明显。