编译此代码后,我也遇到3个相同的错误-
**错误:C:/Modeltech_pe_edu_10.4a/examples/DECODER.vhd(24):“然后”附近:(vcom-1576)期望==或'+'或'-'或'&'。< / p>
我尝试添加“如果结束”;最后,但它给了我上面的错误和下面的错误-
**错误:C:/Modeltech_pe_edu_10.4a/examples/DECODER.vhd(35):VHDL编译器正在退出
library IEEE;
use IEEE.std_logic_1164.all;
entity DECODER is
port
(
I0: in std_logic;
I1: in std_logic;
D0: out std_logic;
D1: out std_logic;
D2: out std_logic;
D3: out std_logic
);
end DECODER;
architecture bhv of DECODER is
begin
process(I0,I1) is
begin
if (I0='0' AND I1='0') then
D0<= (NOT I0) AND (NOT I1);
elseif (I0='0' AND I1='1') then
D1<= (NOT I0) AND I1;
elseif (I0='1' AND I1='0') then
D2<= I0 AND (NOT I1);
elseif (I0='1' AND I1='1') then
D3<= I0 AND I1;
end process;
end bhv;
答案 0 :(得分:0)
有两个语法错误。
将elseif
更改为elsif
。
在end if
之前添加最后的end process
。
功能上的代码是奇数;如果进行了合成,则将推断出锁存器,因为分配的输出取决于输入值,并且在if
的每个分支进行分配的条件与分配的值相同,因此分配的值{{1} },因此'1'
等效于:
process
在没有输出初始值或复位值的情况下,代码似乎不会执行任何有意义的操作。