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

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

3天内不再提示

跨时钟域的亚稳态的应对措施三种解决方案

Hack电子 来源:CSDN 作者:Hack电子 2022-10-19 14:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

个人疑惑

在学习 “跨时钟域的亚稳态的应对措施” 时,常会看到有三种解决方案:

单bit信号,用:打两拍

多bit信号,用:异步FIFO

多bit信号,用:格雷码

多bit信号,用:握手

记是记住了,但我有好几个疑惑一直没理解,网上冲浪却搜不到答案、还是非常困惑…

以下是我的疑惑:

为什么用“打两拍”来应对跨时钟域的亚稳态,“打一拍” 不行吗?

为什么说,用“打两拍”只是降低了亚稳态的概率,但也有可能导致亚稳态的传递呢?

若后接了个FF,随着posedge clk的出现,触发器不应该直接就采到0或1了吗,为啥亚稳态还有一定概率传递呢?

假设是DFF(D触发器),其亚稳态稳定后的值,会恢复为正确的预期输出值吗?还是就算稳定了也是无效输出?

即使 “打两拍”能阻止“亚稳态的传递”,但亚稳态导致后续FF sample到的值依然不一定是符合预期的值,那 “错误的值” 难道不依然会向后传递,从而造成错误的后果吗?

多bit的跨时钟域情况用 异步FIFO处理,好理解;格雷码有啥用嘞?

格雷码可以让相邻二进制数变化只改变1位,但在多bit的data传输过程中,data value不都是随机变化么,格雷码有啥用嘞?

主要是前面关于打两拍的疑惑,网上冲浪找不到解答的帖子。

网上只有两个核心的回答,但对我这样的数电小白,完全是没有回答到我个人解惑的点子上,但解惑后再看,会有新的收获:

打两拍的目的:第一拍是异步信号转同步,第二拍是防止亚稳态的传递。

我听了还是很迷。( ̄▽ ̄)"

打一拍和打两拍和打三拍的区别:用触发器进入亚稳态的平均故障时间间隔MTBF进行计算,证明打拍数增加,产生亚稳态的可能性递减:打一拍直接用,很可能出现亚稳态输出;打两拍再直接用,出现亚稳态的概率是109年出现一次(具体计算参数见reference);打三拍再直接俄用,出现的概率更低,但是除非超高频率不然没必要。

可见reference:跨时钟域同步,为什么两级寄存器结构能够降低亚稳态?

那我个人疑惑呢,最后在外网 stack exchange 上解答了——这个老哥居然和我的疑问一毛一样!实在是欣慰,久旱逢甘霖…( ̄▽ ̄)"

Stack Exchange上的回答:How does 2-ff synchronizer ensure proper synchonization?

(不知为什么用firefox不显示问题图片,用chrome才显示图片…)

于是,我打算用自己的话,记录一下它的问题与回答,也回答我个人的疑惑~

概念补充

什么是亚稳态 metastable state?

首先要阐述一下亚稳态的概念。

元器件在现实运行时,触发器输出的逻辑0/1需要时间跳变,而不是瞬发的。因此,若未满足此cell的建立时间、保持时间,其输出值则为中间态,那在logic上可能算成0也可能算成1很难讲(波形显示上可能是毛刺、振荡、固定值等),这就是亚稳态。

一般波形图像上,1是高电平,0是低电平;但微观的亚稳态波形如下:

7e39e98c-4f6b-11ed-a3b6-dac502259ad0.png

如图所示:亚稳态的输出波形会卡在中间,过一段时间后,可能稳定成1,也可能稳定成0,但都和原预期值没啥关系了,是无效的!

单bit信号,应用“打两拍”的电路结构图

这张图,给出了两个点:

“打两拍”后可以直接接组合逻辑电路。

7eb26dd0-4f6b-11ed-a3b6-dac502259ad0.png

我之前以为后面必接时序电路,相当于后面的电路也是触发器,于是产生了:“把打两拍改成打一拍,算上后面的时序电路,不也是相当于打两拍吗” 这样的愚蠢困惑…( ̄▽ ̄)"

下方的波形给了“打两拍能大概率防止亚稳态传递”的图示:

由于异步data变的太突然,第一拍sample后出现亚稳态,第三拍sample后把亚稳态堵住了,得到正常电平(但值不一定和原预期相同)。

解惑环节

综上,可以解答我之前的3个疑惑了:

为什么用“打两拍”来应对跨时钟域的亚稳态,“打一拍” 不行吗?

如打两拍的电路结构图所示:打一拍的话,若第一拍sample到亚稳态,则后续组合逻辑电路的输入直接就是亚稳态波形,肯定会把亚稳态传递下去,就完犊子了。

为什么说,用“打两拍”只是降低了亚稳态的概率,但也有可能导致亚稳态的传递呢?

如前面的两张亚稳态的波形所示,亚稳态如果在1T内稳定成高电平或低电平了(概率80%),那第2拍就sample到正常的0或1;若亚稳态1T最后还是中间态,那第2拍还是可能出现亚稳态的,但概率低。

亚稳态稳定需要多久,具体时间由工艺决定。

假设是DFF(D触发器),其亚稳态稳定后的值,会恢复为正确的预期输出值吗?还是就算稳定了也是无效输出?

如前面的亚稳态微观波形所说:即使亚稳态稳定了,值也无效。

剩下俩疑惑,大头讲。见下文。

打两拍的sample到错误数据怎么办

sample亚稳态,结果可能多样

sample亚稳态,得到的结果可能取决于亚稳态最后稳定于什么状态,如下图表示出各种sample的可能:

7ee2d4fc-4f6b-11ed-a3b6-dac502259ad0.png

如图所示,adat是实际的异步data、bq1_dat是两级触发器中的第一个寄存器sample的数据、bq2_dat是第二个寄存器sanple到的数据,bclk是同步时钟。

则:

a)中,异步data持续2T;FF1 sample到亚稳态时,FF2在下一cycle 对亚稳态的sample是0;但最终sample到了正确的data值。

b)中,异步data持续2T;FF1 sample到亚稳态时,FF2在下一cycle 对亚稳态的sample是1;但最终sample到了正确的data值。

c)中,异步data马上结束,等价于只持续1T(相当于没sample到就错过了);FF1 sample到亚稳态时,FF2在下一cycle 对亚稳态的sample是1;运气好,最终sample到了正确的data值。

d)中,异步data马上结束,等价于只持续1T;FF1 sample到亚稳态时,FF2在下一cycle 对亚稳态的sample是0;相当于最终错过了data值,没sample到…

那咋办,岂不是说明“打两拍”的方法不行???

答案:

因为 “打两拍” 的目的,是为了在单bit传输时,尽可能的防止亚稳态的传递,至于这个sample的正确性,本来就不是重点。这种“sample的正确性如何保证”得根据信号的具体类型、目的、应用场景,来进行具体的讨论。

Trigger Signals:一个脉冲信号,用来开机、启动什么的。它没什么数据信息量,早一个clk、晚一个clk都ok,反正能起作用就行。那上面这个问题就无所谓了。唯一要保证的是,原始异步脉冲信号至少保持2T!(保证打两拍后,能sample到有效信号)

Control Buses:因为有多bit数据需要进行同步,关系比较复杂。那就不能用 “打两拍” 的方法,得用 “握手机制“。

Data Buses:这种情况,非常在乎上面提到的正确性问题。所以就 更不应该用 ”打两拍“方法,得用 异步FIFO的好吧… 在异步FIFO中的指针使用格雷码,可以降低指针在跳变时出现的亚稳态风险、冒险现象。也就说,格雷码和异步FIFO是结合使用的… ( ̄▽ ̄)"

总结

当你在乎跨时钟域 “用打两拍解决亚稳态,导致后续sample可能未sample到正确结果” 的case,那就不该用 “打两拍” 的方案,可以考虑异步FIFO和握手机制!而格雷码,和异步FIFO是联合使用的。

“打两拍”的方法,若应用于“从快速时钟域同步到慢速时钟域”,数据得多保持几T,不然会漏采数据。

审核编辑 :李倩

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

    关注

    13

    文章

    503

    浏览量

    44256
  • 亚稳态
    +关注

    关注

    0

    文章

    47

    浏览量

    13752

原文标题:跨时钟域的亚稳态处理、为什么要打两拍不是打一拍、为什么打两拍能有效?

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    英诺达ECDC上线RDC复位检查新功能

    英诺达自主研发的静态验证系列产品EnAltius昂屹CDC(ECDC),近日正式上线了复位(Reset Domain Crossing, RDC)检查新功能,其静态验证EDA工具链得以进一步完善,为芯片设计团队提供更严谨、更高效的RTL签核整体
    的头像 发表于 04-21 09:34 173次阅读

    为何复位问题是危险的“芯片杀手”

    在追求更高性能、更低功耗的当今芯片设计中,工程师们除了要应对复杂的时钟网络,还面临着一个同样关键却常被忽视的挑战——复位信号的管理,这就是复位(Reset Domain Cross
    的头像 发表于 04-13 15:35 190次阅读
    为何<b class='flag-5'>跨</b>复位<b class='flag-5'>域</b>问题是危险的“芯片杀手”

    LMK01801双时钟分频缓冲器:高精度时钟解决方案

    LMK01801双时钟分频缓冲器:高精度时钟解决方案 引言 在电子设计领域,时钟信号的精准分配和分频对于系统的稳定运行至关重要。今天要给大家介绍的是德州仪器(TI)的LMK01801双
    的头像 发表于 02-09 11:10 297次阅读

    信而泰GPS异地测试解决方案:跨越空间的通信测试

    在现代通信网络中,异地测试是验证系统性能、测试服务连续性的关键环节,然而,不同地理位置间的时钟同步难题,往往成为制约时延测试的“阿喀琉斯之踵”。信而泰推出的GPS异地测试解决方案,以高精度时钟同步
    发表于 01-07 11:31

    赛思分享时钟服务器的解决方案及其优势

    随着科技的不断发展,各种应用场景对于时间同步和精确性的要求也越来越高。在这种情况下,时钟服务器应运而生,为各行各业提供了高效、稳定、可靠的时间同步解决方案。本文将详细介绍时钟服务器的解决方案
    的头像 发表于 01-06 17:35 5959次阅读
    赛思分享<b class='flag-5'>时钟</b>服务器的<b class='flag-5'>解决方案</b>及其优势

    请问CW32芯片的三种工作模式是什么?

    CW32芯片的三种工作模式是什么?
    发表于 12-26 06:48

    航盛电子搭载QNX技术的墨子融合平台正式量产

    近日,航盛创新引领行业的单芯片级舱驾融合解决方案--墨子融合平台实现全球量产首发,并将配套国内某头部合资车企。该平台搭载QNX Hypervisor for Safety技术,具备更强的稳定性、灵活性和安全性,实现车规级设计
    的头像 发表于 12-04 15:19 618次阅读

    禾润电子HT0104:4 路双向电平转换的高效解决方案聚能芯半导体一级代理原厂技术支持

    禾润 HT0104 作为专为开漏和推挽应用打造的 4 路双向电平转换器,凭借其无电源时序限制、宽电压兼容等核心优势,成为电压通信的理想选择。 HT0104 打破了传统电平转换器的电源时序桎梏
    发表于 11-13 17:21

    宜科电子推出三种不同原理标签传感器

    在工业自动化与智能包装领域,标签检测的精度、速度与适应性直接决定了生产线的效率与产品合规性。针对不同材质标签(如纸质、薄膜、金属箔)及复杂检测环境,我们推出超声波、光电、电容三种不同原理标签传感器,以多模融合、精准识别、智能适应为核心,为食品包装、医药制造、物流分拣等行业提供全场景
    的头像 发表于 11-08 15:07 2102次阅读

    CAN总线电容过大?三种解决方案来了

    在新能源汽车路试中,CAN总线传输异常是一个常见问题。本期我们将探讨由于总线电容过大导致的下降沿过缓问题,并介绍三种有效的解决方案。CAN总线下降沿过缓问题新能源路试工程师在分析CAN总线波形
    的头像 发表于 07-22 11:36 876次阅读
    CAN总线电容过大?<b class='flag-5'>三种</b><b class='flag-5'>解决方案</b>来了

    黑芝麻智能时间同步技术:消除多计算单元的时钟信任鸿沟

    上海2025年7月21日 /美通社/ -- 本文围绕时间同步技术展开,作为智能汽车 "感知-决策-执行 -交互" 全链路的时间基准,文章介绍了 PTP、gPTP、CAN 等主流同步技术及特点
    的头像 发表于 07-22 09:17 681次阅读
    黑芝麻智能<b class='flag-5'>跨</b><b class='flag-5'>域</b>时间同步技术:消除多<b class='flag-5'>域</b>计算单元的<b class='flag-5'>时钟</b>信任鸿沟

    MEMS中的三种测温方式

    在集成MEMS芯片的环境温度测量领域,热阻、热电堆和PN结原理是三种主流技术。热阻是利用热敏电阻,如金属铂或注入硅的温度电阻系数恒定,即电阻随温度线性变化的特性测温,电阻变化直接对应绝对温度,需恒流源供电。
    的头像 发表于 07-16 13:58 1920次阅读
    MEMS中的<b class='flag-5'>三种</b>测温方式

    开关电源三种控制模式:PWM/PFM/PSM

    摘要 本文详细介绍了开关电源的三种主要调制方式:PWM(脉冲宽度调制)、PFM(脉冲频率调制)和PSM(脉冲周期调制)。PWM通过调整脉冲宽度保持恒定频率,适用于重负载,但轻负载效率低。PFM则在
    发表于 06-09 16:11

    介绍三种常见的MySQL高可用方案

    在生产环境中,为了确保数据库系统的连续可用性、降低故障恢复时间以及实现业务的无缝切换,高可用(High Availability, HA)方案至关重要。本文将详细介绍三种常见的 MySQL 高可用
    的头像 发表于 05-28 17:16 1443次阅读

    异步时钟处理方法大全

    该方法只用于慢到快时钟的1bit信号传递。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)标记,将两个寄存器尽量靠近综合,降低 亚稳态因导线延迟太大而传播到第二个寄存器的可能性。
    的头像 发表于 05-14 15:33 1712次阅读
    <b class='flag-5'>跨</b>异步<b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理方法大全