数字电路中跨时钟域问题CDC-----1(亚稳态)

亚稳态的恶略影响

建立时间与保持时间

恢复时间与去除时间

亚稳态

从这篇开始,推送一系列芯片设计中跨时钟域(CDC) 的知识。跨时钟域设计几乎是现代数字芯片设计中所有设计人员必须要掌握的基本知识,但是从自身的经历来说,这方面的知识在本科和研究生的课程当中都没有讲过,却是面试中经常被考到的知识点。同时工作中工程师也必不可少地要和CDC打交道,考虑如何进行跨时钟域设计,以及掌握CDC 相关的EDA工具。以下文章我们就从跨时钟域设计的最基本开始讲起,跨时钟域得基本问题讲解,亚稳态问题。

数字系统中(FPGA,数字芯片尤为突出)一旦出现CDC的问题,可能会导致以下后果
• 逻辑功能发生错误,比如控制信号,握手信号错位
• 数据发生错误,比如data bus的值,memory中存的值发生错误
• 发生错误的时间可能随机,很难以复现相同的错误
• 很难以通过软件修复,即使能够修复,也可能需要牺牲性能和功耗

我们接下来的跨时钟域分析,当然都是基于同步电路的。同步电路的核心就是触发器,触发器的种类有很多种,最常用的就是D触发器。在这里我们还是首先复习一下基本概念: 建立时间setup time和保持时间hold time, 以及亚稳态metastability。
一、概念
1、建立时间与保持时间
触发器在时钟上升沿来临时对数据进行采样,产生对应的输出。但是实际器件无法瞬时完成数据采样这一过程,需要数据在时钟沿前后均稳定一定时间,即引入了(触发器的)建立时间与保持时间这一概念。
建立时间Tsu:时钟有效沿到来之前数据必须保持稳定的最小时间;
保持时间Th:时钟有效沿到来之后数据必须保持稳定的最小时间;
在这里插入图片描述

2、恢复时间与去除时间
恢复时间(Recovery time):与同步电路中的建立时间类似,是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,异步控制信号在时钟上升沿来临Trecovery时间就要保持稳定,如果保证不了这个最小恢复时间,也就是说“下个时钟沿”来临时,这个异步控制信号不能保证正常执行。
去除时间(Removal time):与同步电路中的保持时间类似,是指异步控制信号(如寄存器的异步清除和置位控制信号)在“有效时钟沿”之后变无效的最小时间长度。这个时间的意义是,异步控制信号在时钟上升沿后仍需保持Tremoval的稳定时间,如果保证不了这个去除时间,也就是说这个异步控制信号的解除与“有效时钟沿”离得太近,那么依旧不能保证这一异步控制信号能正常执行。
3、亚稳态

亚稳态是FPGA系统中的一个常见问题,亚稳态的出现轻则导致输出错误,严重的甚至会导致系统崩溃。因此对亚稳态的了解必不可少,本文在查阅众多资料的基础上,对亚稳态的概念、亚稳态的产生原因、以及如何避免亚稳态进行了分析与记录

概念:
亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态。即:如果触发器的输入电压采样时间过短,则触发器需要花很长时间来实现输出逻辑达到标准电平,在这段时间里输出端在高低电平之间处于振荡状态,而不是等于理想输出值。也就是说,电路处于中间态的时间变长,使得电路“反应”迟钝,这就是“亚稳态”。(例如输入信号在时钟有效沿的建立时间和保持时间之间改变了,导致不满足触发器的建立时间或保持时间,导致输出有一段时间的不稳定态,就是亚稳态。)
在这里插入图片描述

数字电路中,对于电平小于电压阈值 VL的称为0,大于电压阈值VL 称之为1,而电平位于电压阈值之间时(无法确定电压为0还是1)叫做系统的亚稳态是指触发器无法在某个规定的时间内达到可以确认的状态。一旦触发器进入亚稳态,则既无法预测触发器的输出电平,也无法预测什么时候稳定在某个确认的电平上。(稳定所需时间不定、输出结果不定)

那么我们能够完全消除亚稳态吗?答案是否定的。其实我们关心的并不是亚稳态,而是说能否避免由于亚稳态而造成的逻辑问题。在这里要引入一个MTBF的概念。MTBF-- mean time between failure. 意思是两次失效之间的平均时间。简单来说,就是这个芯片或者这个IP或者这个电路发生两次发生错误之间的间隔。对于不同的系统和应用场景,MTBF的要求也不同。比如说对于我们的手机,没有人拿一个手机用二三十年吧?那么如果能够保证MTBF大于30年,那么也等效于在整个手机的使用寿命中,这个逻辑错误不会发生2次,那么针对这个错误来说,这样的MTBF是可以接受的。但是对于有些应用场景,比如通讯卫星,一个通讯卫星的寿命可能超过二三十年,那么这种情况下MTBF 如果只有30年,那么就无法接受了。

关于MTBF,还有一个误区需要澄清,就是MTBF只要大于产品的设计使用寿命就可以了,这其实是不严谨的。因为一个产品可能由多个系统组成,每个系统又是由多个子系统组成,每个子系统可能细分下去是由更小的单元组成。整个产品不发生失效的概率是所有部分不发生失效概率的乘积。所以越是小的单元,越要保证MTBF越高,这样才能不会导致整个产品的MTBF 有显著下降。
在这里插入图片描述
二、产生与消除
亚稳态一般发生在跨时钟传输、异步信号采集中以及复位电路中。 在同步系统中,输入总是与时钟同步,因此寄存器的setup time和hold time是满足的,一般情况下是不会发生亚稳态情况的。(在同步逻辑中只要STA分析过了正常是不会遇到亚稳态问题的,STA分析已经保证了每个触发器都能满足自己的建立时间以及保持时间)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值