我一知半解:很多模块的input总是缓冲2~3拍,道理何在?
有的input同步2个时钟,有的却是同步3个时钟,为什么啊?
哪位大侠能讲一下,使我能明白具体的作用原理。
先说声谢谢了。
一般消除毛刺就一拍
如果是异步时钟域,打一拍不够用,就要打两拍~
一般没有说一定要打三拍或以上,除非你的逻辑功能方面的需要~
1)为什么1拍能消毛刺?
如果毛刺正好发生在时钟沿,那么毛刺就起作用了啊。
2) 两拍为什么就能同步呢?
1.消除毛刺~
打一拍并不能完全消除毛刺,你说的这种可能性是存在的~
2.两拍为什么能同步,我给你问问明天来回复
有的input同步2个时钟, 这是一种双锁存器法 用以消除亚稳态 一种同步策略
楼上正解,不是消除毛刺,解决亚稳态的问题
1# hongyijia13
[localimg=339,117]1[/localimg]
左边为异步输入端,经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此第二个触发器Q端基本不会产生亚稳态。
l
处理异步输入时,可以使用2级同步电路,为什么不用3级或更多级别的电路呢?
答:2级从理论或实际使用都表明有足够的可靠性了,所以3级没有必要。
l
解释为什么第二个触发器D端的电平仍未稳定的概率非常小:
如果一个时钟周期>resolution time,即:使上一级寄存器有足够的时间摆脱亚稳态(满足了建立时间要求),但如果上一级DFF采样错误,那么下级DFF同样继承这个采样错误值,只是不会出现亚稳态,杜绝了亚稳态的传递。如果要稳定的正确采样,必须引入高速时钟,时钟频率为原数据频率的3倍以上,根据奈奎斯特采样定理需要两倍。
不知道为啥图片贴不上来,就是两极的D触发器~
对,消除亚稳态!
有时候也是模块间交互的结果
有时是为了让时序更满足,便于布线,
想不到有这么多回复,谢谢了啊。
7# smilesly
很详细,谢谢。
4# smilesx学习了 谢谢
学习了~
什么是亚稳态啊。。
跨时钟域之间确实是打两拍来消除亚稳态
有时也是为了布线的需要,三级流水,可以让数据在FPGA内部的一个区域更安全的传到另一个区域。
hljlhjljkljgk
sfgjfgjdghkjg gjfjhfghfghf
ffgfgjfgjfgj
路过,学习!
2拍可以讓input的數據在第2拍的時候校正meta-stable state, 原理可以參考not gate 環振蕩器的正反饋Vin/Vout圖。
metastabel issue
好问题。学习了
学习了呵呵 顶
单bit数据跨时钟域传输打两拍是为了消除时钟域转换时有可能发生的亚稳态现象,多bit数据时就要使用RAM或FIFO了,至于为什么为两拍,好像是国外研究人员作了一个统计,打两拍后出现亚稳态的机率低达1/1000000
这个问题你可以这样理解,对于输入的IO来说,它的内部是不是有一个内嵌的FF呢?一般的FPGA都有吧?还有两个级联的FF,为了防止亚稳态传播,是不是要放得很近呢?那么多余的一个FF可以理解为Pipeline的FF,正如N楼上的人说的为了布线与时序的关系。
reduce jitter
