0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

亚稳态理论介绍

FPGA之家 来源:AriesOpenFPGA 作者:AriesOpenFPGA 2022-07-03 10:49 次阅读

一、介绍

在同步系统中,数据始终相对于时钟具有固定的关系 当该关系满足设备的建立和保持要求时,输出将在其指定的传播延迟时间内进入有效状态。在同步系统中,输入信号始终满足触发器的时序要求。因此,不会发生亚稳性。但是,在异步系统中,数据和时钟之间的关系不是固定的。因此,会偶尔发生违反建立时间和保持时序的情况。发生这种建立和保持时序的情况时,输出可能会到达其两个有效状态(0和1)之间的中间水平,不稳定的状态(0和1之外的状态即亚稳态)保持的时间也是不确定的,直到自己进入稳态。

二、亚稳态理论

由于违反了触发器的建立和保持时间,因此会产生亚稳定性。在任何设计中使用的每个触发器都有指定的建立和保持时间,或者说是在时钟上升沿之前和之后不允许输入数据变化的时间。如果信号在此时间窗口内确实发生变化,则输出将是未知的或“亚稳的”。这种有害状态的传播称为亚稳态。结果,触发器的输出会产生毛刺或暂时保持在亚稳状态,因此需要更长的时间才能返回到稳定状态。

当触发器处于亚稳态时,输出会在高电平和低电平之间徘徊,导致输出转换被延迟,并超过指定的时钟到输出延迟(tco)。亚稳态输出需要花费超过tco的额外时间才能解析为稳定状态,该时间称为稳定时间(tMET)。

381aaffa-f99d-11ec-ba43-dac502259ad0.png

图1.1亚稳时序参数

这已在图1.1中显示,但并非每个违反建立或保持时间的转换(数据转换)都会导致亚稳态输出。触发器进入亚稳态的可能性和返回稳定状态所需的时间取决于用于制造器件的工艺技术以及环境条件。通常,触发器将在一两个时钟周期内返回稳定状态。

触发器的操作类似于在无摩擦的山坡上滚动的球,如图1.2所示。小山的每一侧代表稳定状态(即高或低),顶部代表亚稳态。假设球处于稳定状态(即1或0),并且对球进行了足够的推动(状态转换)(没有违反建立时间或保持时间),足以使球越过另一个稳定状态,则球在指定时间内越过另一个稳定状态。

但是,如果推力较小(即违反建立和保持时间),则球应移动到山顶(即输出亚稳态),停留在那里一段时间,然后返回任一稳定状态(即输出最终变得稳定)。球也可能会部分升起然后回来(即输出可能会产生一些毛刺)。任何一种情况都会增加从时钟转换到稳定输出的延迟。

因此,简单来说,当信号在一个时钟域(src_data_out)中发生变化并在另一个时钟域(dest_data_in)中被采样时,这将导致输出变得亚稳。这被称为同步失败(如图1.3所示)。

383309e2-f99d-11ec-ba43-dac502259ad0.png

图1.2触发器的亚稳态行为

387ebb94-f99d-11ec-ba43-dac502259ad0.png

图1.3触发器中的亚稳态

三、亚稳态窗口

亚稳态窗口被定义为特定的时间长度,在此期间数据和时钟均不应更改。如果两个信号有发生改变,则输出可能变为亚稳态。如图1.4所示,建立时间和保持时间的组合决定了亚稳窗口的宽度。窗口越大,设备进入亚稳态的机会就越大。在大多数情况下,较新的逻辑系列具有较小的亚稳态窗口,从而减少了设备变为亚稳的机会。

四、计算MTBF

系统之间的平均故障间隔时间(MTBF)是在故障率恒定的特殊情况下故障率的倒数。这提供了有关特定触发器失败频率的信息。对于具有给定时钟频率和异步数据边沿的单级同步器,该边沿在时钟周期内具有均匀的概率密度,通过建立和保持时间窗口与时钟边沿之间的时间之比,再乘以数据边沿频率,可以计算出亚稳态事件的发生率。

389abbfa-f99d-11ec-ba43-dac502259ad0.png

图1.4亚稳窗口

38c4cab2-f99d-11ec-ba43-dac502259ad0.png

图1.5故障率与时间的关系(对数刻度)

38df1a48-f99d-11ec-ba43-dac502259ad0.png

其中

tr =允许的解决时间超过器件的正常传播延迟时间

π =触发器的亚稳态(解析)时间常数

W =亚稳态窗口

fc =时钟频率

fd =异步数据边沿频率

常数W和τ与设备的电气特性有关,并且会根据工艺技术节点而变化。因此,使用相同工艺制造的不同设备的W和τ值相似。

如果在不同的分辨时间下测量设备的故障率并绘制图表,则结果将呈指数衰减曲线。如图1.5所示,当以半对数标度绘制时,它成为一条斜率等于τ的直线;因此,线上的两个数据点足以使用等式1.2计算τ的值。

38ff2770-f99d-11ec-ba43-dac502259ad0.png

其中:

tr1 = 解析时间1

tr2 = 解析时间2

N1 = tr1处的故障数

N2 = tr2处的故障数

根据公式1.1和1.2,可以通过下面的公式1.3计算两级同步器的MTBF

39247674-f99d-11ec-ba43-dac502259ad0.png

其中:

tr1=同步器第一级所允许的解析时间

tr2 =接入正常传播延迟时的解析时间

公式1.3中的第一项计算了同步器第一阶段的MTBF,这实际上成为了下一阶段亚稳态事件的发生率。然后,第二项根据tr2的值(同步器外部允许的解决时间)计算亚稳态事件将被解决的概率。这两个项的乘积给出了两级同步器的总体MTBF。以定量的方式,使用上面的公式1.3,如果特定触发器在给定时钟速率和输入转换速率的范围内的平均故障间隔时间(MTBF)为40 s,则使用两个这样的触发器的MTBF 同步输入将是40×40 = 26.6分钟。

五、避免亚稳态

如第二节所示,只要违反建立或保持时间,就会发生亚稳。因此,在以下情况下,信号可能会违反时序要求:

1、当输入信号是异步信号时。

2、当时钟偏斜/偏摆(上升/下降时间)高于容许极限时。

3、当信号越过工作在两个不同频率或频率相同但相位和偏斜不同的域时。

4、当组合延迟使得触发器数据输入在亚稳态窗口中发生变化时

亚稳定性可能会导致过度的传播延迟和后续的系统故障。所有触发器和锁存器均具有亚稳性。这个问题无法消除。但是有可能降低亚稳态的发生率

3947d7e0-f99d-11ec-ba43-dac502259ad0.png

图1.6 N级同步器

395ffe38-f99d-11ec-ba43-dac502259ad0.png

图1.7具有时钟提升电路的多级同步器

Multi-stage synchronizer with clock boost circuitry

在最简单的情况下,设计人员可以通过让时钟周期足够长以解决准稳态以及减少路径中可能传播到下一个触发器中的任何延迟逻辑来避免亚稳态。考虑到大多数现代设计的性能要求,这种方法虽然简单,却并不实用。另一种方法是使用同步器。

5.1使用多级同步器

避免亚稳态的最常见方法是在一个时钟域到另一个时钟域的信号上添加一个或多个同步触发器。如图1.6所示,这种方法为第一个同步触发器中的亚稳态事件提供了一个完整的时钟周期(第二个触发器的建立时间除外)以解决自身问题。但是,这确实增加了同步逻辑观察输入的等待时间。

5.2使用时钟升压电路的多级同步器

多级同步器的一个限制是系统响应异步输入所花费的时间更长。解决此问题的方法是使用时钟倍频器的输出为两个同步触发器提供时钟。AlteraFPGA将这种技术称为Clock Boost或Clock Doubler(图1.7)。

这种方法允许系统在一个系统时钟周期内响应异步输入,同时仍能改善MTBF。尽管Clock Boost时钟可能会降低MTBF,但这种影响远不止于两个同步触发器的抵消。这两种方法都不能保证亚稳性不能通过同步器。它们只是降低了亚稳发生的可能性。

六、亚稳测试电路

每当触发器对异步输入进行采样时,小概率的不可预测延迟总会在触发器输出端呈现出来。这不仅发生在输入转换违反建立和保持时间规范时,而且还发生在触发器接收新数据时的小的时序窗口,在这些情况下,触发器会进入亚稳态。

图1.8中描述的测试电路用于确定触发器的亚稳特性。图1.8显示了在时钟“ clk”的上升沿触发的触发器“ FFA”的异步输入“ async_In”。如图所示,触发器“ FFB”和“ FFC”均在时钟的下降沿触发,以便捕获“ FFA”上的亚稳事件。

当互补信号在触发器“ FFB”和“ FFC”的输入上传递时,无论何时“ FFA”上发生亚稳态事件,XNOR门的输出都将变为高电平。此条件在触发器“ FFD”的输出上捕获,指示已检测到亚稳态事件。

该测试电路中所有节点的时序如图1.9所示。由于解析触发器(“ FFB”和“ FFC”)由时钟下降沿提供时钟,因此可以通过更改时钟高电平时间(△t)来控制所需的建立时间。稳定时间tMET可通过以下公式确定

39832f5c-f99d-11ec-ba43-dac502259ad0.png

其中tACN是最小时钟周期,它等于解析触发器(FFB或FFC)的tCQ(FFA的时钟到输出延迟)的建立时间tsu。

39a1956e-f99d-11ec-ba43-dac502259ad0.png

图1.8亚稳性测试电路

39cc8f6c-f99d-11ec-ba43-dac502259ad0.png

图1.9亚稳测试电路的时序

减少解析时间或建立时间的方法之一是在建立/保持期间以数据为中心增加抖动。

七、同步器类型

根据等式 1.1,具有异步输入的电路的平均故障间隔时间(MTBF)与可从亚稳态条件恢复的时间呈指数关系。使用同步器创建时间缓冲区,以从亚稳态事件中恢复。

请注意,异步信号绝不能由多个同步器同步。(这样做会冒着使多个同步器的输出产生不同信号的风险)。本节显示了两个同步器方案A和B。

方案A是常规方案,当异步输入信号的宽度大于时钟周期时,其工作效果最佳(图1.10)。

请注意,即使异步输入在设置间隔之外达到稳定条件,它仍将以两个时钟周期的延迟进行计时,否则FF1可能会进入亚稳态。

如果亚稳在少于一个时钟周期内得到解决,则FF2将具有稳定的输入,否则需要更深的级联,如图1.6所示。

39fe3846-f99d-11ec-ba43-dac502259ad0.png

图1.10两级同步器的同步器方案A

3a28dfec-f99d-11ec-ba43-dac502259ad0.png

图1.11两级同步器的同步器方案B

但是,在异步输入的宽度小于时钟周期的情况下,方案A不起作用。在这种情况下,方案B的工作效果最佳,如图1.11所示。

请注意,在同步器方案B的情况下,第一个FF(触发器)的D输入连接到VCC,而异步输入为FF提供时钟。该阶段中的其他两个FF由系统时钟或clk直接提供时钟。短脉冲将驱动q1高电平,该信号将在两个“clk”边沿之后传播到sync_out。因此,这定义了我们的经验法则,总结如下:

当信号必须跨越时钟域之间的边界时,请使用同步器。

如果Clk1《Clk2在时钟域2的输入处使用同步器方案A(如图1.11所示),否则使用同步器方案B。

八、处理亚稳态的建议

(a)使用同步器。

(b)使用更快的触发器(更窄的亚稳态窗口TW)。

(c)使用亚稳态硬化触发器(专为非常高的带宽和减少的采样时间而设计,并针对时钟域输入电路进行了优化)。

(d)级联触发器作为同步器(两个或更多),如图1.6所示。一串N个触发器的概率为PN(P的N次方),其中P是一个触发器发生亚稳态故障的机会。

(e)降低采样率。

(f)避免输入dV/dt低的信号

原文标题:亚稳态详解

文章出处:【微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 频率
    +关注

    关注

    4

    文章

    1272

    浏览量

    58458
  • 锁存器
    +关注

    关注

    8

    文章

    742

    浏览量

    41018
  • 触发器
    +关注

    关注

    14

    文章

    1675

    浏览量

    60382
  • 亚稳态
    +关注

    关注

    0

    文章

    44

    浏览量

    13118

原文标题:亚稳态详解

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    利用IDDR简化亚稳态方案

    如果在具有多个时钟的非同步系统中使用FPGA,或者系统中的时钟频率或相位与FPGA所使用时钟频率或相位不同,那么设计就会遇到亚稳态问题。不幸的是,如果设计遇到上述情况,是没有办法完全解决亚稳态
    发表于 12-29 15:17

    FPGA中亚稳态——让你无处可逃

    注意事项。2. 理论分析2.1信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。亚稳态问题通常发生在一些跨时钟域信号传输以及异步信
    发表于 01-11 11:49

    xilinx资料:利用IDDR简化亚稳态

    亚稳态事件,结合实例讲解,语言通俗易懂,由浅入深,特别举了多个实例以及解决方案,非常具有针对性,让人受益匪浅,非常适合对亚稳态方面掌握不好的中国工程师和中国的学生朋友,是关于亚稳态方面不可多得的好资料,强烈推荐哦!!![hid
    发表于 03-05 14:11

    FPGA中亚稳态——让你无处可逃

    导致复位失败。怎么降低亚稳态发生的概率成了FPGA设计需要重视的一个注意事项。2. 理论分析2.1信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态
    发表于 04-25 15:29

    FPGA触发器的亚稳态认识

    可能会出现非法状态---亚稳态亚稳态是一种不稳定状态,在一定时间后, 最终返回到两个稳定状态之一。亚稳态输出的信号是什么样子的? 对于系统有什么危害? 如果降低亚稳态带来的危害? 这
    发表于 12-04 13:51

    亚稳态问题解析

    亚稳态是数字电路设计中最为基础和核心的理论。同步系统设计中的多项技术,如synthesis,CTS,STA等都是为了避免同步系统产生亚稳态。异步系统中,更容易产生亚稳态,因此需要对异步
    发表于 11-01 17:45

    FPGA的亚稳态现象是什么?

    说起亚稳态,首先我们先来了解一下什么叫做亚稳态亚稳态现象:信号在无关信号或者异步时钟域之间传输时导致数字器件失效的一种现象。
    发表于 09-11 11:52

    在FPGA复位电路中产生亚稳态的原因

    。怎么降低亚稳态发生的概率成了 FPGA 设计需要重视的一个注意事项。理论分析01 信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发
    发表于 10-19 10:03

    FPGA--中复位电路产生亚稳态的原因

    FPGA 设计需要重视的一个注意事项。理论分析01 信号传输中的亚稳态在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态不会发生。亚稳态问题通常发生在一些跨
    发表于 10-22 11:42

    关于FPGA设计中的亚稳态及其缓解措施的分析和介绍

    在进行FPGA设计时,往往只关心“0”和“1”两种状态。然而在工程实践中,除了“0”、“1”外还有其他状态,亚稳态就是其中之一。亚稳态是指触发器或锁存器无法在某个规定时间段内达到一个可确认的状态[1]。当一个触发器进入亚稳态时,
    发表于 10-06 09:42 936次阅读
    关于FPGA设计中的<b class='flag-5'>亚稳态</b>及其缓解措施的分析和<b class='flag-5'>介绍</b>

    简谈FPGA学习中亚稳态现象

    大家好,又到了每日学习的时间了,今天我们来聊一聊FPGA学习中,亚稳态现象。 说起亚稳态,首先我们先来了解一下什么叫做亚稳态亚稳态现象:信号在无关信号或者异步时钟域之间传输时导致数字
    的头像 发表于 06-22 14:49 3239次阅读
    简谈FPGA学习中<b class='flag-5'>亚稳态</b>现象

    亚稳态产生原因、危害及消除方法

    亚稳态问题是数字电路中很重要的问题,因为现实世界是一个异步的世界,所以亚稳态是无法避免的,并且亚稳态应该也是面试常考的考点。
    的头像 发表于 09-07 14:28 7517次阅读

    什么是亚稳态?如何克服亚稳态

    亚稳态在电路设计中是常见的属性现象,是指系统处于一种不稳定的状态,虽然不是平衡状态,但可在短时间内保持相对稳定的状态。对工程师来说,亚稳态的存在可以带来独特的性质和应用,如非晶态材料、晶体缺陷
    的头像 发表于 05-18 11:03 2903次阅读

    亚稳态的分析与处理

    本文主要介绍亚稳态的分析与处理。
    的头像 发表于 06-21 14:38 2381次阅读
    <b class='flag-5'>亚稳态</b>的分析与处理

    FPGA设计中的亚稳态解析

    说起亚稳态,首先我们先来了解一下什么叫做亚稳态亚稳态现象:信号在无关信号或者异步时钟域之间传输时导致数字器件失效的一种现象。
    的头像 发表于 09-19 15:18 1270次阅读
    FPGA设计中的<b class='flag-5'>亚稳态</b>解析