2969|9

324

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

时钟的触发时序执行时间? [复制链接]

最近在学习FPGA方面知识,对时钟触发有了了解,但有好多问题有些不明白。希望大虾解释
如:
always(posedge CLK)
begin
//执行任务块
end

假如时钟的周期为50nS,占空比50%;所执行的任务块比较耗时间,超过50nS,而此时任务块尚未完全执行完,而新的触发又来到了。
问题来了:此时是重新执行任务块,还是按照上次继续执行?
在设计中如何避免这种情况?
呵呵,初学者,不要见笑!
此帖出自FPGA/CPLD论坛

最新回复

结束不是由end决定的,组合逻辑就相当于是用线把门电路连接起来,数据只要发出去就一定会把电路走完,所以不管这里面的延时有多大,发出去的数据都是会跑完的。举个例子吧,假设你在一根很长的线的一头发010101,那么在另一头一定也会收到010101,不管这根线有多长,不管这个线的延时有多大,总有一个时刻是会收到的。  详情 回复 发表于 2013-12-19 11:26
点赞 关注
 

回复
举报

6423

帖子

17

TA的资源

版主

沙发
 
always块内是顺序执行的,各个always块是并行的
此帖出自FPGA/CPLD论坛

点评

谢谢楼上的解答,我的意思是在begin ......end里面,假如有采用阻塞的方式,综合时有100个门。实际中不可能门与门之间为零延迟,假设每个门延迟为1NS,时钟周期选50MHZ,那么他的周期为20NS。执行任务块内容时在执行  详情 回复 发表于 2013-12-7 16:53
个人签名training
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

板凳
 

回复 沙发白丁 的帖子

谢谢楼上的解答,我的意思是在begin ......end里面,假如有采用阻塞的方式,综合时有100个门。实际中不可能门与门之间为零延迟,假设每个门延迟为1NS,时钟周期选50MHZ,那么他的周期为20NS。执行任务块内容时在执行到一半时,下一个触发脉冲来到了,这时会怎么样?
此帖出自FPGA/CPLD论坛

点评

首先,像你说的问题,用阻塞赋值可能产生竞争。根据你说的你可能是认为一个always块只在一次脉冲触发周期内完成的,在always快内是顺序执行的,下次触发到来就执行下一条,只要在器件允许的时钟频率范围内使用,不会  详情 回复 发表于 2013-12-7 20:36
 
 
 

回复

6423

帖子

17

TA的资源

版主

4
 

回复 板凳ydcman 的帖子

首先,像你说的问题,用阻塞赋值可能产生竞争。根据你说的你可能是认为一个always块只在一次脉冲触发周期内完成的,在always快内是顺序执行的,下次触发到来就执行下一条,只要在器件允许的时钟频率范围内使用,不会出现执行不完一条指令的情况。
此帖出自FPGA/CPLD论坛

赞赏

1

查看全部赞赏

 
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

5
 
呵呵,谢谢版主耐心解答!
解释一下我的观点:
我认为一个always块只在一次脉冲触发周期内完成的,在always块内是顺序执行的,一个触发脉冲来时,必须把always模块里全部执行完。
我的疑问:
假如在一个触发来了,开始执行always里面的语句,块里采用阻塞模式赋值。但是这个块执行需要一定时间,假设是50NS,这样问题来了??ALWAYS里面内容没执行完,新的触发脉冲来了,这样会出现什么结果?
会出现这种现象吗?
此帖出自FPGA/CPLD论坛

点评

你的观点是不对的,always块内不是在一个时钟周期内完成的。 所以,你的疑问是不存在的。  详情 回复 发表于 2013-12-8 10:33
 
 
 

回复

6423

帖子

17

TA的资源

版主

6
 

回复 5楼ydcman 的帖子

你的观点是不对的,always块内不是在一个时钟周期内完成的。
所以,你的疑问是不存在的。
此帖出自FPGA/CPLD论坛

点评

:carnation: 。谢谢答复,版主V5!  详情 回复 发表于 2013-12-11 19:33

赞赏

1

查看全部赞赏

 
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

7
 

回复 6楼白丁 的帖子

:carnation: 。谢谢答复,版主V5!
此帖出自FPGA/CPLD论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

8
 
always的敏感变量每次发生变化都是一个新的开始,整个always内部的语句会被重新执行,但是这仅仅是一个开始,上次的执行结果仍然存在并不存在清零。但是一个always内部的组合逻辑过长的话也是不行的,如果有非常长的组合逻辑,是需要分出来打拍的,所以你说的情况在实际应用中,如果不是你故意要搞那么长的时延,根本就不会出现。
此帖出自FPGA/CPLD论坛

点评

:carnation: ,THANKS! 是不是可以这么理解: 开始是触发时钟决定的,结束是由END语句决定的?  详情 回复 发表于 2013-12-18 18:04
 
 
 

回复

324

帖子

2

TA的资源

纯净的硅(初级)

9
 

回复 8楼catbaby314 的帖子

:carnation: ,THANKS!
是不是可以这么理解:
开始是触发时钟决定的,结束是由END语句决定的?
此帖出自FPGA/CPLD论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

10
 
结束不是由end决定的,组合逻辑就相当于是用线把门电路连接起来,数据只要发出去就一定会把电路走完,所以不管这里面的延时有多大,发出去的数据都是会跑完的。举个例子吧,假设你在一根很长的线的一头发010101,那么在另一头一定也会收到010101,不管这根线有多长,不管这个线的延时有多大,总有一个时刻是会收到的。
此帖出自FPGA/CPLD论坛

赞赏

1

查看全部赞赏

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表