亚稳态的产生与消除

基本概念

  • 建立时间Tsu:时钟有效沿到来之前数据必须保持稳定的最小时间;

  • 保持时间Th:时钟有效沿到来之后数据必须保持稳定的最小时间;

  • 恢复时间(Recovery time):与同步电路中的建立时间类似,是指异步控制信号(如寄存器的异步清除和置位控制信号)在“下个时钟沿”来临之前变无效的最小时间长度。这个时间的意义是,异步控制信号在时钟上升沿来临Trecovery时间就要保持稳定,如果保证不了这个最小恢复时间,也就是说“下个时钟沿”来临时,这个异步控制信号不能保证正常执行。

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

一、亚稳态的产生与后果

亚稳态的产生

亚稳态是指触发器无法在某个规定的时间段内到达一个可以确认的状态

所有的数字器件(如FPGA)中的寄存器都定义了一个信号时序要求,寄存器输入端的数据必须在时钟上升沿到来之间保持一个最小的稳定时间(寄存器的建立时间 T_su),在时钟沿之后要保持一个最短时间(寄存器保持时间T_h)。寄存器在经过一定得时钟到输出延迟(tco)之后输出有效。如果信号传输违反了tsu以及tH的要求,寄存器的输出很可能会进入亚稳态的状态。
在这里插入图片描述

亚稳态一般发生在有异步元件存在的电路中(跨时钟传输、异步信号采集中以及复位电路中)。 在同步电路中,输入总是与时钟同步,因此寄存器的setup time和hold time是满足的,一般情况下是不会发生亚稳态情况的。(在同步逻辑中只要STA分析通过,正常是不会遇到亚稳态问题的,STA分析已经保证了每个触发器都能满足自己的建立时间以及保持时间)

1、跨时钟域信号传输

在跨时钟域信号传输时,由于源寄存器时钟和目的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的目的寄存器,所以无法保证满足目的寄存器Tsu和Th的要求,从而出现亚稳态。

2、异步信号采集

在异步信号采集中,由于异步信号可以在任意时间点到达目的寄存器,所以也无法保证满足目的寄存器Tsu和Th的要求,从而出现亚稳态。

3、异步复位电路

在异步复位电路中,如果复位信号的释放时间刚好是发生在时钟的有效边沿,难以保证满足恢复时间(Recovery Time)以及去除时间(Removal Time),从而出现亚稳态。

亚稳态产生的后果

1、亚稳态中间态时间变长:亚稳态是触发器的一个固有特性,正常采样也会有一个亚稳态时间。如果触发器触发器的输入电压采样时间过短,则触发器需要花很长时间来实现输出逻辑达到标准电平,在这段时间里输出端在高低电平之间处于振荡状态,而不是等于理想输出值。当建立时间和保持时间满足时,触发器也会经历采样—亚稳态—随后稳定输出。而出现亚稳态问题时,亚稳态(中间态)时间变长。

2、亚稳态的输出不一定正确:正常工作时,触发器经历较短的亚稳态时间,随后会正确输出;而出现亚稳态问题时,触发器经历较长的亚稳态时间,最终输出稳定但无法保证正确(是稳定的标准电平信号,但难以保证是输入对应输出);

三、亚稳态的处理

四、亚稳态产生的概率

1.亚稳态的概率

概率 = (建立时间 + 保持时间)/ 采集时钟周期
可以看出,亚稳态出现的概率与工作时钟频率以及触发器自身的特性(器件的工艺等因素决定了它的建立/保持时间)有关;所以在异步信号采集过程中,要想减少亚稳态发生的概率可以:

  • 降低系统工作时钟,增大系统周期,亚稳态概率就会减小(降低工作频率,不常用);

  • 采用工艺更好的FPGA,也就是Tsu和Th时间较小的FPGA器件;

2. 亚稳态的串扰概率

异步信号进行使用的时候,常会对异步信号进行同步处理,同步一般采用多级D触发器级联处理,常见为采用二级D触发器对异步信号进行同步处理

  • 当第一级寄存器产生亚稳态后,如果直接输出很可能将亚稳态传递下去导致系统崩溃;
  • 添加第二级D触发器后,相当于多给了寄存器一个时钟周期的时间恢复稳定,因此出现亚稳态的几率就会大大减小。
  • 由分析可见,触发器级数越多,出现亚稳态的几率就会越小。一般采用两级寄存器已经足够。

降低亚稳态对电路的影响

亚稳态不能从根本上消除,但是可以采取一定的措施,降低其对电路的影响。用MBTF(故障间隔平均时间)衡量亚稳态对电路的影响:
在这里插入图片描述
MTBF的值越大,亚稳态对电路的影响越低。

其中:
tMET = 采样时钟周期 - 输出信号正常的 T_co 时间 - 数据到达下一级寄存器的输出端的 T_data 延迟时间 - 下一级寄存器的T_su时间 + 时钟网络(时钟树)的延迟时间T_clk1、Tclk2
在这里插入图片描述
一般来说,T_co和T_su由器件本身和工作环境所决定,而时钟网络的延迟T_clk很大程度上也是由器件本身决定。所以,在系统时钟频率f_clk和数据变化率f_data一定的情况下,设计者要想降低MBTF值,只能通过减小T_data值
而T_data是指寄存器的逻辑延时+走线延时。也就是说,在两个寄存器之间不要添加任何的逻辑,以此降低T_data。

  • 12
    点赞
  • 108
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小小verifier

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

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

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

打赏作者

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

抵扣说明:

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

余额充值