vhdl中loop语句

来源:百度知道 编辑:UC知道 时间:2024/06/14 07:53:08
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COUNT IS
PORT (CLK,EN:IN STD_LOGIC;
SMG1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
LB:OUT STD_LOGIC);
END COUNT;
ARCHITECTURE COUNT_ARC OF COUNT IS
SIGNAL LL, Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);

BEGIN
PROCESS(CLK,EN)
BEGIN
LL<="0000";
IF EN='1' THEN
Q1<="0000";
IF CLK'EVENT AND CLK='1' THEN
Q1<=Q1+1;
IF Q1<"0010" THEN LB<='1';
ELSE LB<='0';
END IF;
IF Q1>="0010" AND Q1<="1011"THEN
IF LL="0000"THEN
LL<="1001";
for N in 1 TO 9 loop
LL<=LL-1;
end loop;
END IF;
END IF;
IF Q1>"1011" A

在同一个句子里面不同的地方对Q1都有赋值,有冲突

你这不对,感觉逻辑很混乱,要不你说说你想要实现啥功能,我再帮你看看
比如说在进程里面你一开始就让 LL<="0000";结果就是每执行一次它就会被置0,那们后面的操作就没法进行了,还有对Q1的赋值也一样