If statement VHDL IF语句不工作
我对VHDL的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
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”),然后
,不是在信号中,而是在向量中,而不是在简单类型中。