EDA VHDL设计问题

LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYLISTCHKIS... LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LISTCHK IS
PORT (CLK : IN STD_LOGIC;
LIST : IN STD_LOGIC;
FIND : OUT STD_LOGIC);
END ;
ARCHITECTURE bhv OF LISTCHK IS
SIGNAL Q1,Q2,Q3,Q4,Q5 : STD_LOGIC;
BEGIN
PROCESS (CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
Q5<=Q4;
Q4<=Q3;
Q3<=Q2;
Q2<=Q1;
Q1<=LIST;
END IF;
END PROCESS;
PROCESS (CLK)
BEGIN
IF Q5='1' AND Q4='1' AND Q3='0' AND Q2='1' AND Q1='0' THEN
FIND<='1';
ELSE
FIND<='0';
END IF;
END PROCESS;
END bhv;

这个代码仿真时没有一个周期的延时,但是在第二个进程加个CLK上升沿判断后就会出现延时了,为什么?代码如下:

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LISTCHK IS
PORT (CLK : IN STD_LOGIC;
LIST : IN STD_LOGIC;
FIND : OUT STD_LOGIC);
END ;
ARCHITECTURE bhv OF LISTCHK IS
SIGNAL Q1,Q2,Q3,Q4,Q5 : STD_LOGIC;
BEGIN
PROCESS (CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
Q5<=Q4;
Q4<=Q3;
Q3<=Q2;
Q2<=Q1;
Q1<=LIST;
END IF;
END PROCESS;
PROCESS (CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
IF Q5='1' AND Q4='1' AND Q3='0' AND Q2='1' AND Q1='0' THEN
FIND<='1';
ELSE
FIND<='0';
END IF;
END IF;
END PROCESS;
END bhv;
感谢china_0000的回答,那到底什么是并行啊?并行不是一起运行吗?
展开
 我来答
China_0000
2008-11-09 · TA获得超过1305个赞
知道小有建树答主
回答量:666
采纳率:0%
帮助的人:763万
展开全部
因为两个进程之间 是并行的关系啊

当你有一个上升沿到来时 会同时出发两个进程

然而 由于两个进程之间是并行的关系

肯定是先执行第一个进程 直到下一个上升沿到来时

才完成第二个进程

所以下面的程序 自然比上面的程序延时咯

参考资料: 原创~

ZESTRON
2024-09-04 广告
电子失效分析是指对电子元件或系统进行系统调查,以确定失效原因。通过显微镜、光谱学和电气测试等技术,分析人员可以查明导致故障的缺陷或问题。此过程包括检查物理损坏、分析电气特性和进行环境测试以确定根本原因。电子故障分析在半导体制造、汽车电子和消... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式