打印

时钟沿的困惑

[复制链接]
3527|18
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuxiang2008|  楼主 | 2012-3-9 21:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚接触FPGA开发不久,看以前的人写的代码,在系统中有的用时钟的上升沿,有的用时钟的下降沿,不知道大家平时做开发有没有个准则或者经验,时钟什么时候该用上升沿,什么时候该用下降沿?还有如果一个模块里面有几个always模块,这几个always处理的信号相关,怎么保证这个always里的信号与另一个always中的信号的建立保持时间?谢谢

相关帖子

沙发
Backkom80| | 2012-3-9 21:26 | 只看该作者
双沿触发一般常用的输入或输出的DDR处。在芯片内部使用双沿很有讲究,在同一个时钟域内尽量只使用一个沿触发。
网上有些代码不规范,时钟满天飞等等。

使用特权

评论回复
板凳
GoldSunMonkey| | 2012-3-9 21:42 | 只看该作者
一个时钟域内使用一个沿,或上升或下降。

对一个信号的赋值必须在一个Always中进行。如果是使用同一个时钟基本不用考虑建立和保持时间。
如果是两个时钟域就有好多方法来解决这个问题。

使用特权

评论回复
地板
liedc| | 2012-3-9 21:48 | 只看该作者
顶楼上老哥

使用特权

评论回复
5
lwq030736| | 2012-3-11 11:31 | 只看该作者
如果是异步时钟的话可以用FIFO或者提供握手信号

使用特权

评论回复
6
ailiann| | 2012-3-11 11:49 | 只看该作者
过来了解下

使用特权

评论回复
7
ailiann| | 2012-3-11 11:49 | 只看该作者
:)

使用特权

评论回复
8
ifpga| | 2012-3-11 12:16 | 只看该作者
因为,对触发器而言,TCQ>0, 且组合逻辑和传输线都会有延时,因此,在时钟没有抖动的情况下,数据总是比时钟晚到触发器。这应该就是HoldTime和SetupTime可以满足的原因。(个人理解,需大神确认:lol)

使用特权

评论回复
9
mr.king| | 2012-3-11 13:32 | 只看该作者
我设计时,比如上升沿一组数据进入并处理,后续的处理用下降沿,这样内部路径延时不用考虑了(当然频率不是特别高,小于200MHz

使用特权

评论回复
10
GoldSunMonkey| | 2012-3-11 14:21 | 只看该作者
我设计时,比如上升沿一组数据进入并处理,后续的处理用下降沿,这样内部路径延时不用考虑了(当然频率不是特别高,小于200MHz
mr.king 发表于 2012-3-11 13:32
嗯,高于200Mhz就相当于400Mhz的时钟了。

使用特权

评论回复
11
yuxiang2008|  楼主 | 2012-3-11 19:56 | 只看该作者
我的意思是:比如A信号在一个always中在时钟的上升沿,由低变高,B信号在另一个always中在时钟的上升沿,也由低变高;如果在其它的模块要用到这两个信号的高有效,在同一个时钟(跟A、B同一个时钟)的上升沿处理,就可能会出问题,如果用时钟的下降沿处理就不会有问题。想问问大家碰到这情况怎么处理?谢谢

使用特权

评论回复
12
yeueodt| | 2012-3-11 20:02 | 只看该作者
感觉问题好专哦

使用特权

评论回复
13
mr.king| | 2012-3-11 20:39 | 只看该作者
12# yuxiang2008
这样条件如果时钟小于200M确实应当用下降沿来处理,再高的话,得看内部延时,也许得下一个时钟的上升沿来处理,相当于流水线

使用特权

评论回复
14
Backkom80| | 2012-3-11 21:56 | 只看该作者
我的意思是:比如A信号在一个always中在时钟的上升沿,由低变高,B信号在另一个always中在时钟的上升沿,也由低变高;如果在其它的模块要用到这两个信号的高有效,在同一个时钟(跟A、B同一个时钟)的上升沿处理,就 ...
yuxiang2008 发表于 2012-3-11 19:56


你对时序设计的理解有一点点的偏差
你说的这种情况在设计中经常会出现:处理方式上如果A和B变化及另一个使用A和B的模块都在同一个时钟域,使用一个沿触发是最好的选择。如果选用双沿处理反而在有时会变的不稳定,其原因是时序分析时时钟的占空比为50%,这时时序分析时可能会过了,但实际运行的电路中如果时钟占空比精确的在50%情况较小,如果差值超过一定的范围,实际电路运行就不稳定了。

使用特权

评论回复
15
liugp25| | 2012-3-12 11:04 | 只看该作者
学习了

使用特权

评论回复
16
yxf236| | 2012-3-12 15:08 | 只看该作者
我设计时,比如上升沿一组数据进入并处理,后续的处理用下降沿,这样内部路径延时不用考虑了(当然频率不是特别高,小于200MHz
mr.king 发表于 2012-3-11 13:32


恩,我很多时候也是这么用的,感觉挺好的

使用特权

评论回复
17
GoldSunMonkey| | 2012-3-12 15:34 | 只看该作者
18# yxf236 这其实就是时钟400MHZ的意思。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

127

帖子

2

粉丝