FPGA设计高级技巧(三)

-------------------------------------------------接上一篇博文----------------------------------------------------------

目录

1.2、单比特信号跨时钟域的同步处理

1.2.3、使用三级触发器对亚稳态进行同步处理

1.2.4、如何同步快速信号到慢速时钟域


1.2、单比特信号跨时钟域的同步处理

1.2.3、使用三级触发器对亚稳态进行同步处理

衡量一个电子产品的可靠性指标是平均故障间隔时间(mean time between failure,MTBF);对于大部分应用来说,计算所有跨时钟边界信号的MTBF是非常重要的。注:MTBF值大表示两次故障间隔的时间长;MTBF值小表示两次故障间隔的时间短;

在高速设计中,会采用三级触发器同步器(因同步器中两级寄存器的MTBF太短,需额外加入一些寄存器来增加MTBF),如下所示

1.2.4、如何同步快速信号到慢速时钟域

在平常设计中,若遇到信号在发送时钟域被采样之前可能会出现数值的两次变化(即跨时钟域信号就有可能在跨越时钟域边界之前经历了两次发送时钟域时钟的上升沿),这种可能性必须认真考虑;如果丢失信号采样值对于设计来说是不允许的,其有两证解决办法即(a:开环解决方案,确保信号在无须确认的情况下可以被采集;b:闭环解决方案,即在跨时钟域边界时,信号需要接收端的反馈确认)

如果时钟域的时钟频率是时钟域的时钟频率的1.5倍以上,跨时钟域信号从低速时钟域跨越到高速时钟域可采用前面所讲的双触发同步器来传递单个跨时钟域信号即可。

接下来将讨论跨时钟域信号从高速时钟域跨越到低速时钟域可能产生的问题。

1.跨时钟域的信号脉冲宽度正好等于发送端时钟的一个时钟周期。那么,当只有一个高速时钟周期宽的跨时钟域信号传递到低速时钟域时,被低速时钟采样后,该信号有可能为高,有可能为低。也就是说,该信号有可能会被低速时钟采集,也可能不会被采集,如下所示的跨时钟域信号在跨时钟边界时丢失数值。

2.从发送时钟域(快速时钟)发送的信号脉宽稍微大于接收时钟域(低速时钟)时钟周期。在大部分情况下,该信号是能被低速时钟采样并传递,但是在实际应用中该跨时钟域信号有很小概率的情况下,脉冲改变发生在离接收时钟域同步器两个时钟上升沿太近,如此第一个时钟沿处建立时间无法得到满足,第二个时钟沿处保持时间得不到满足,从而无法得到预期的信号脉冲。

前面提到两种解决方法即开环方案和闭环方案:

1.开环方案

采用之前介绍的同步器来采样跨时钟域信号,但是前提是需要先将目标信号展宽,如下所示,需要将目标信号展宽到至少超过接收时钟域的时钟周期。前面所说,最佳的脉宽是至少为采样时钟周期的1.5倍。这样跨时钟域信号将会被接收时钟域的时钟至少稳定地采样一次

开环解决方案,多用于相关时钟频率固定且时钟信号能够被正确分析。好处在于能在无须接收时钟域的握手信号的情况下最快地将信号传递通过跨时钟域边界。缺点在于容易让其他设计者误以为当前解决方案为通用解决方案,或者说当设计要求发生改变的时候,设计者容易忘记重新分析前的“开环”解决方案。

2.闭环方案

在发送时钟域将控制信号当使能信号传递,并将其同步到接收时钟域,然后接收时钟域收到使能控制信号之后,将同步的控制信号反馈到发送时钟域,发送时钟域通过另外一个同步器接收此反馈回来的控制信号,并以它作为信号正确接收的握手信号,如下所示,该方案的好处在于反馈回来的同步信号可以非常安全地确认第一个使能控制信号已经被接收时钟域正确识别和采样。缺点在于,这种信号的传递方式存在相当大的延迟,因为信号未被接收时钟域正确接收之前是不能被释放的,也即在被正确接收之前目标信号不能改变数值,也就无法传递信号的下一个数值。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值