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