在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2414|回复: 3

请教:关于process中语句执行问题

[复制链接]
发表于 2008-7-14 14:55:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
这有段程序代码:
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.std_logic_arith.ALL;
USE IEEE.std_logic_unsigned.ALL;

ENTITY runtime IS


PORT(



clk:in std_logic;



node0,point0:in std_logic;



node1,node2,point1,point2:buffer std_logic;



node3,point3ut std_logic




);


end runtime;

ARCHITECTURE rtl OF runtime  IS

begin

process(node0)

begin

node1<=node0;
node2<=node1;
node3<=node2;

end process;

process(clk)

begin

if rising_edge(clk) then

point1<=point0;
point2<=point1;
point3<=point2;
end if;

end process;

end rtl;
在关于node0的那个进程中,通过仿真结果发现,node0,node1,node2,node3的变化几乎是同步的,虽然在process中,它们的赋值语句是顺序执行的。而在point0的那个进程中,point3,point2,point1,point0前者总比前者晚一个时钟周期。我猜想从上电后这个进程执行过程是这样的:第一个时钟来时,执行point1<=point0;第二个时钟来时,执行:point1<=point0; point2<=point1;第三个时钟来时,执行: point1<=point0; point2<=point1; point3<=point2;以后就三条语句都开始了。那么这样来看的话,是不是执行这种由时钟控制的进程中语句时,执行一条语句需要一个时钟周期?
还请赐教。

[ 本帖最后由 sxyfs 于 2008-7-14 14:57 编辑 ]
 楼主| 发表于 2008-7-14 15:26:36 | 显示全部楼层
node3,point3:                out std_logic
发表于 2008-7-14 15:32:33 | 显示全部楼层
就应该是这样呀,仿真结果没错呀!
发表于 2008-7-14 22:28:15 | 显示全部楼层
仿真结果应该正确。再补充下:由于有node0的process中没有时钟控制,所以即使是顺序执行,效果也几乎是瞬时的。我想请教的是,我对两个进程结果的解释对不对?

[ 本帖最后由 sxhys 于 2008-7-14 22:30 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-10-18 17:19 , Processed in 0.032229 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表