跨时钟域处理分析

在讨论跨时钟域处理之前,必须先了解数字设计中的一个现象,亚稳态。

一.亚稳态

1.亚稳态的定义

数字设计中,信号在一定时间内不能够达到稳定的0或者1的现象。

2.亚稳态产生的原因

(1)建立和保持时间不满足

在数字设计中,触发器的数据建立和保持都需要一定的时间,这是由于电路内部结构一决定的,比如一个CMOS反相器,当输入为低时,输出为高,输出结果时通过输入与界限电压比较产生的,比如高于Voh,输出为高,低于VoL,输出为低。在Vol和Voh之间还有未定义的部分。

(2)采样时钟采集到跳变沿

当两个时钟不一样时,很容易出现采集数据时采集到亚稳态。

多时钟域设计中,经常出现不同时钟模块需要进行通信的过程,容易产生亚稳态。这是跨时钟域处理必须要面对的一个问题。需要及时的解决,降低亚稳态产生的概率。避免亚稳态影响后一级电路。

一.跨时钟域处理

1.含义

在数字设的过程中,多时钟域控制各个模块现象是普遍存在的一个现象,各个模块之间使用的时钟有可能不一样,但是各个模块需要彼此通信,不同时钟很容易产生亚稳态现象。所以跨时钟域处理是必要的。

2.解决方法

常用的解决方法是使用同步化技术,同步化技术主要包括:同步器,保持寄存器和握手,异步FIFO

2.1 同步器

使用两级寄存器(接收时钟域),是一级寄存概率的平方,两级并不能完全消除亚稳态危害,但是提高了可靠性,减少其发生的概率(注意是概率,并不是解决不让他产生亚稳态,只是不让这个亚稳态传播)。一级概率很大,三级改善不大,同步器延时-1或者2个接收时钟。同步器分为电平同步器,边沿检测同步器,脉冲同步器三种。

2.1.1 电平同步

2.1.2 边沿检测同步器

 

 2.1.3 脉冲同步器

 

2.2 多路信号的处理

多路信号由于到达输入端的时间不同,这个延时可能被同步器进一步的放大。我们有时候要求两个信号之间有一定的时间差,比如控制信号置位和使能,置位必须在使能信号有效后,置位有效。经过同步器,延时放大,有可能直接错位。比如下图的情况,这是我们不愿意看到的。

2.2.1 多路合成一路

将上述信号合成一路,然后在分开控制。如下图:

2.2.2 使用保持寄存器和握手

不过这种情况的效率太低,要一个个的接收,多路信号的处理一般用下面一种方法

2.2.3 异步FIFO

同步FIFO:写时钟和读时钟为同一个时钟

异步FIFO:写时钟和读时钟为独立时钟

跨时钟域的数据信号需要用到异步的FIFO,隔离时钟域,匹配读写速度。

异步FIFO核心:读写空满标志的产生,通过读写指针比较,一般使用格雷码和同步器结合。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wjp好好学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值