VHDL代码

caowy112 2008-08-20 02:52:45
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY even2n IS
PORT
(
inclk : IN STD_LOGIC;
outclk : OUT STD_LOGIC
);
END ENTITY even2n;

ARCHITECTURE a OF even2n IS
SIGNAL clk_temp : STD_LOGIC;
BEGIN
PROCESS(inclk)
VARIABLE count : STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
IF inclk'event AND inclk='1' THEN
IF count="100" THEN
count:="000";
clk_temp <=NOT clk_temp;
ELSE count:=count+1;
END IF;
outclk <=clk_temp;
END IF;
END PROCESS;
-- outclk <=clk_temp;
END a;


outclk <=clk_temp放在PROCESS里面为什么比clk_temp延迟了一个周期;
...全文
191 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
myzfm 2008-08-30
  • 打赏
  • 举报
回复
我印象中PROCESS里面的负值语句是在PROCESS结束时同时进行的,所以在第一个周期时clk_temp值还没有改变。
gooogleman 2008-08-30
  • 打赏
  • 举报
回复
<=这个东西决定了,它是在进程推出之后才赋值的,通常用在信号赋值上。和硬件的信号是一致的
zhcf45 2008-08-20
  • 打赏
  • 举报
回复
放在PROCESS里面为时序电路,上升沿触发的,只有在每个时钟的上升沿才会进入PROCESS,将clk_temp的值赋给outclk。
aaronstone 2008-08-20
  • 打赏
  • 举报
回复
因为是在process里阿
要到下个周期才执行赋值语句啊!

6,125

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 硬件设计
社区管理员
  • 硬件设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧