试图找出为什么这个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行是结束进程
答案 0 :(得分:2)
在VHDL中使用<=
进行端口和信号分配,因此将if
中的分配更改为Z<='1'
。
顺便说一句; Z
何时获得除'1'
以外的任何其他值?
答案 1 :(得分:1)
你会多次犯这个错误,因为平等的算子与其他语言非常不同。
:=
分配值。<=
分配值。:=
分配起始值,即使您正在定义信号。