如何修复[then“附近:(vcom-1576)期望==或'+'或'-'或'&']错误?

时间:2019-02-03 08:59:18

标签: vhdl

编译此代码后,我也遇到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;

1 个答案:

答案 0 :(得分:0)

有两个语法错误。

elseif更改为elsif

end if之前添加最后的end process

功能上的代码是奇数;如果进行了合成,则将推断出锁存器,因为分配的输出取决于输入值,并且在if的每个分支进行分配的条件与分配的值相同,因此分配的值{{1} },因此'1'等效于:

process

在没有输出初始值或复位值的情况下,代码似乎不会执行任何有意义的操作。