在一个进程内不能同时使用 wait语句和 cp ‘event语句 | 如下程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DISTANCE IS
PORT(CP,S1,S2: IN STD_LOGIC;
POUT : OUT STD_LOGIC_VECTOR(21 DOWNTO 0)
);
END DISTANCE;
ARCHITECTURE A OF DISTANCE IS
SIGNAL TEMP : STD_LOGIC_VECTOR(21 DOWNTO 0);
SIGNAL COUNT :STD_LOGIC;
BEGIN
PROCESS(CP,S1,S2)
BEGIN
WAIT UNTIL (S1 = '1');
WHILE S2 = '1' LOOP
IF CP'EVENT AND CP='1' THEN
TEMP <= TEMP+1;
END IF;
END LOOP;
POUT <= TEMP;
END PROCESS;
END A;
这是有错误的。
在一个进程内不能同时使用 wait语句和 cp ‘event语句。wait的语句表示该信号为时钟信号了,在来判断cp ’event,肯定有问题了。
如WHILE S2 = '1' LOOP 语句不能编译通过,因为不能综合。
|
|