VHDL程序求解---LED闪烁
LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY led IS
PORT
(
clk:IN STD_LOGIC;
yout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)
);
END;
ARCHITECTURE behave OF led IS
BEGIN
PROCESS(clk)
VARIABLE temp:STD_LOGIC_VECTOR(31 DOWNTO 0);
VARIABLE way:STD_LOGIC_VECTOR(7 DOWNTO 0):="00000000";
BEGIN
IF (clk'EVENT AND clk='1')
THEN temp := temp + 1;
IF (temp=5)
THEN way := way XOR "11111111";temp:=(OTHERS=>'0');
END IF;
END IF;
yout<= way;
END PROCESS;
END;
这是程序是正确的,但将
IF (clk'EVENT AND clk='1')
THEN temp := temp + 1;
IF (temp=5)
THEN way := way XOR "11111111";temp:=(OTHERS=>'0');
END IF;
END IF;
改成:
IF (clk'EVENT AND clk='1')
THEN temp := temp + 1;
END IF;
IF (temp=5)
THEN way := way XOR "11111111";temp:=(OTHERS=>'0');
END IF;
则不能正常工作(能通过编译,但输出不取反)
小弟百思不得其解 IF (clk'EVENT AND clk='1')
THEN temp := temp + 1;
END IF;
end if 了就完了;下面的判断和上面的就没有关系了
你应该看看rtl图,就知道了 temp是变量。
页:
[1]