If statement VHDL IF语句不工作

If statement VHDL IF语句不工作,if-statement,process,vhdl,If Statement,Process,Vhdl,我对VHDL的if语法有问题。 代码如下所示: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity Shifting_zero is port (clk : in STD_LOGIC; zeros : buffer STD_LOGIC_VECTOR (3 downto 0)); end Shifting_zero; architecture Behavioral of Shifting_zero is begin

我对VHDL的
if
语法有问题。 代码如下所示:

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity Shifting_zero is
    port (clk : in STD_LOGIC;
            zeros : buffer STD_LOGIC_VECTOR (3 downto 0));
end Shifting_zero;

architecture Behavioral of Shifting_zero is
begin

process
    begin
        if (clk'event and clk='1') then
            if (zeros='0111') then 
                zeros <= '1011';
            elsif (zeros='1011') then
                zeros <= '1101';
            elsif (zeros-'1101') then
                zeros <= '1110';
            else
                zeros <= '0111';
            end if;
        end if;
end process;

end Behavioral;
IEEE库;
使用IEEE.STD_LOGIC_1164.ALL;
实体移位_零为
端口(时钟:在标准逻辑中;
零:缓冲区标准逻辑向量(3到0);
端移零;
零位移位的体系结构是
开始
过程
开始
如果(clk'事件和clk='1'),则
如果(0='0111'),则
零好的,我找到了


我不得不在信号中使用“而不是”。

注意字符文本
'a'
和字符串文本
'AAAA之间的区别“
。您发布的代码正确吗?因为行号不匹配。即使我们忽略了这一点,行
过程中也没有错误,也没有意外的
结束
elsif(zeros-'1101'),那么
应该读取
elsif(zeros=“1101”),然后
,不是在信号中,而是在向量中,而不是在简单类型中。