CDC(二) 单bit 脉冲跨时钟域处理

单bit 脉冲跨时钟域处理

简要概述:

在上一篇讲了总线全握手跨时钟处理,本文讲述单bit脉冲跨时钟域的处理为下一篇总线单向握手跨时钟域处理做准备。脉冲同步器其实就是带边沿检测的单bit同步器,基本原理就是把脉冲信号进行展宽。

脉冲同步器应用场景:

适用单bit脉冲信号跨时钟域。慢到快,快到慢均可,源脉冲间隔至少要为2个目的时钟周期,否则会被漏采。当然,在慢到快时钟比率大于2倍以上时也是可以实时采样的。

脉冲同步器原理框图:

脉冲同步器跨时钟域原理图如下所示,使用了1个单bit同步器模块,因为脉冲展宽后是电平信号,所以这里采用单bit同步器(寄存器打2拍或者3拍)。这里源脉冲与寄存打拍后的脉冲相或运算得到一定宽度的电平信号,电平宽度可由源时钟和目的时钟比例得到;展宽信号跨时钟域后在目的时钟域下进行边沿检测得到目的脉冲信号。
1.jpg

注意:在设计脉冲同步器电路时有一个易错点,就是少了图中的红色椭圆的D触发器,这会可能导致脉冲同步器同步失败。这是因为脉冲展宽后信号是组合逻辑直接进行了单bit同步器(s2d sync)跨时钟域处理,而组合逻辑输出是有毛刺的,这样单bit同步器可能会采到毛刺导致多采现象。
工具在进行时序分析时,只会分析同步路径,而且完整的时序路径从源D触发器器的CK端到目的D触发器的D端。如果少了中间的D触发器,则会出现3条红色箭头的异步路径(源脉冲寄存器输入),如下图所示。实际加上中间的D触发器只有一条黄色箭头的异步路径才符合预期。
2.jpg

脉冲同步器仿真测试 :

场景1:快到慢, 源时钟100Mhz 目的时钟 25Mhz ,SEL设置为1展宽,RATIO 比例设置为4(实际展宽了5倍)。
3.jpg

从上图可以看出,快到慢脉冲同步时,脉冲间隔至少为2个目的时钟,才能被正确采样,否则会被漏采,如图源脉冲的第3个和4个脉冲由于间隔太近被漏采。

场景2:快到慢,源时钟100Mhz 目的时钟 12.5Mhz ,SEL设置为1展宽,RATIO 比例设置为8(实际展宽了9倍)。
4.jpg

从上图可以看出,快到慢脉冲同步时,脉冲间隔至少为2个目的时钟,才能被正确采样,否则会被漏采,如图发现第二个脉冲被漏采样了。细心的朋友可能会发现,最后一个是电平脉冲同步器也是会把它当做一个脉冲输出。

场景3:慢到快,源时钟25Mhz 目的时钟 100Mhz ,SEL设置为0不需要展宽,
5.jpg

从上图可以看出,慢到快脉冲同步时,该同步器天然也是支持的,只要保证源脉冲能被目的时钟采到即可,可以视为带边沿检测的单bit同步器(寄存器打两拍)。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除
52fpga 头像