打印
[matlab]

[知识] 在一个进程内不能同时使用 wait语句和 cp ‘event语句

[复制链接]
1654|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jie4567|  楼主 | 2010-8-27 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在一个进程内不能同时使用 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 语句不能编译通过,因为不能综合。

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

71

帖子

1

粉丝