理解FPGA中的亚稳态

news2024/11/15 10:13:47

一、前言

        大家应该经常能听说到亚稳态这个词,亚稳态主要是指触发器的输出在一段时间内不能达到一个确定的状态,过了这段时间触发器的输出随机选择输出0/1,这是我们在设计时需要避免的。本文主要讲述了FPGA中的亚稳态问题,可以帮助大家更好地理解亚稳态。本文来源于Altera公司的白皮书《Understanding Metastability in FPGAs》

二、概述

        本白皮书描述了fpga中的亚稳态,它发生的原因,以及它如何导致设计失败。它解释了亚稳态MTBF是如何计算的,并强调了各种器件和设计参数如何影响结果。

三、介绍(Introduction)

        亚稳性是当信号在不相关或异步时钟域的电路之间传输时,可能导致包括fpga在内的数字设备中的系统故障的一种现象。本文描述了fpga中的亚稳态,解释了这种现象发生的原因,并讨论了它如何导致设计失败。

        由于亚稳态而计算出的平均故障间隔时间(MTBF)表明设计人员是否应该采取措施减少此类故障的机会。本文解释了如何从各种设计和设备参数中计算MTBF,以及FPGA供应商和设计者如何增加MTBF。通过设计技术和优化,减少亚稳态故障的机会,可以提高系统的可靠性。

四、什么是亚稳态(What Is Metastability?)

        诸如FPGA等数字设备中的所有寄存器都定义了信号时序要求,允许每个寄存器在其输入处正确捕获数据并正确产生输出信号。为了保证寄存器的可靠运行,寄存器的输入必须在时钟沿之前的一段时间内保持稳定,我们称这个时间为建立时间t_{setup}(setup time),同时也必须在时钟沿之后的一段时间保持稳定,我们称之为保持时间t_{hold} 。然后,在指定的时钟到输出延迟之后(t_{co}),寄存器输出就可用了。如果一个寄存器违反了建立时间或者保持时间要求,那么寄存器就有可能进入亚稳态。在亚稳态下,寄存器输出在高状态和低状态之间悬停一段时间,这意味着输出转换到定义的高或低状态会延迟到指定的t_{co}之外。     

        在同步系统中,输入信号必须始终满足寄存器时序要求,这样才不会出现亚稳态。当信号在不相关或异步时钟域的电路之间传输时,通常会出现亚稳态问题。在这种情况下,设计人员不能保证信号满足建立时间和保持时间的时序要求,因为信号可以在相对于目标时钟的任何时刻到达。但是,并不是每个违反寄存器建立时间和保持时间的信号转换都会导致亚稳态输出。寄存器进入亚稳态的可能性和返回稳定状态所需的时间取决于制造设备所使用的工艺技术和操作条件。在大多数情况下,寄存器会很快恢复到稳定状态。  

        在时钟缘对数据信号进行采样的寄存器可以看作是一个球落到山上,如图 1 所示。山的侧面代表稳定状态(在信号转换后,信号的新旧数据值,信号转换的过程就是球翻山的过程,左侧为旧数据,右侧为新数据)山顶代表亚稳态。如果球掉在山顶,它可能会在那里无限期地保持平衡,但实际上它会稍微落到山顶的一侧并滚下山坡。球离山顶越远,它在底部达到稳定状态的速度就越快。

        如果数据信号在时钟沿和保持时间t_{hold}之后发生传输,则类似于将球落在山的“旧数据值”一侧,并且输出信号保持在该时钟传输的原始值。

        当寄存器的数据输入在时钟沿和建立时间t_{setup}之前发生传输,并保持在保持时间t_{hold}之后,这类似于将球落在山的“新数据值”一侧,并且输出足够快地达到稳定的新状态,以满足定义的 t_{co}时间。但是,当寄存器的数据输入违反 t_{setup}t_{hold}时,就类似于将球扔到山上。如果球落在山顶附近,球就需要很长时间才能到达底部,这会增加从时钟传输到稳定输出的延迟,超出定义的t_{co}

        下图说明了亚稳态信号。当时钟信号转换时,输入信号从低状态转换到高状态,违反了寄存器的t_{setup}要求。数据输出信号示例从低状态开始,进入亚稳态,在高状态和低状态之间徘徊。信号输出A解析为输入数据的新逻辑Logic 1状态,输出B返回到数据输入的原始逻辑 Logic 0状态。在这两种情况下,输出转换到定义的1或0的状态会延迟到寄存器指定的t_{co}之外。

五、何时亚稳态会造成设计失败(When Does Metastability Cause Design Failures? )

        如果数据输出信号在下一个寄存器捕获数据之前解析为有效状态,那么亚稳态信号就不会对系统操作产生负面影响。但是,如果亚稳态信号在到达下一个设计寄存器之前没有解析到低状态或高状态,就会导致系统故障。继续以来看球和山的例子,当球到达山脚下所需的时间(稳定的逻辑值0或1)超过分配的时间(即寄存器的 tco加上任何时间),可能会发生故障。当亚稳态信号在分配的时间内不能解析时,如果目标逻辑观察到不一致的逻辑状态,即不同的目标寄存器捕获亚稳态信号的不同值,就会导致逻辑故障。

六、同步寄存器(Synchronization Registers)

        当信号在不相关或异步时钟域的电路之间传输时,必须在使用之前将该信号同步到新的时钟域。新时钟域中的第一个寄存器充当同步寄存器。

        为了最小化异步信号传输中由于亚稳态而引起的故障,设计者通常在目标时钟域中使用一系列寄存器(同步寄存器链或同步器)来将信号重新同步到新的时钟域。这些寄存器允许一个潜在的亚稳态信号有额外的时间,在设计的其余部分使用该信号之前解析到一个已知的值。同步器寄存器到寄存器路径中可用的时序裕量是亚稳态信号稳定可用的时间,称为可用亚稳态稳定时间。        

        同步寄存器链或同步器被定义为满足以下要求的寄存器序列:

        (1)链中的寄存器都由相同或相位相关的时钟提供时钟
        (2)链中的第一个寄存器由不相关的时钟域驱动,或异步驱动
        (3)每个寄存器只扇出一个寄存器,链中的最后一个寄存器除外  
        同步寄存器链的长度是同步时钟域中满足上述要求的寄存器个数。图 3 显示了长度为 2 的示例同步链,假设输出信号馈送(feed)多个寄存器目标。 

        请注意,任何异步输入信号或在不相关时钟域之间传输的信号都可以在相对于捕获寄存器的时钟沿的任何点进行传输。因此,设计人员在数据传输完成之前都无法预测信号传输的顺序或目标时钟边沿的数量。例如,如果异步信号总线在时钟域之间传输并同步,则数据信号可能会在不同的时钟沿上转换。结果,总线数据的接收值可能不正确。  

        设计人员必须使用诸如双时钟 FIFO (DCFIFO) 逻辑来存储信号值或握手逻辑等电路来适应这种行为。 FIFO 逻辑使用同步器在两个时钟域之间传输控制信号,然后使用双端口存储器写入和读取数据。 Altera 为该操作提供 DCFIFO 宏功能,其中包括控制信号的各种延迟和亚稳态保护。否则,如果异步信号充当两个时钟域之间的握手逻辑的一部分,则控制信号指示何时可以在时钟域之间传输数据。在这种情况下,同步寄存器用于确保亚稳态不会干扰控制信号的接收,并且在使用数据之前,数据有足够的稳定时间来解决任何亚稳态条件。在一个设计合理的系统中,只要每个信号在使用前解析为稳定值,设计就可以正常工作。 

七、总结

        原文章还有一部分的性能分析和专用解决方案,这里就不做展开了,只要系统中有异步元件,亚稳态就是不可避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使设计对于亚稳态产生的错误不敏感。前者通过同步实现,后者根据不同的设计应用会有不同的处理方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/959089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JVM虚拟机对象探秘

对象的创建 Java是一门面向对象的编程语言,创建对象通常只是通过new关键字。 对象创建过程 当Java虚拟机遇到一条字节码new指令时,首先将去检查这个指令的参数是否能在常量池中定位到 一个类的符号引用,并且检查这个符号引用(类…

uni-app 客服按钮可上下拖动动

项目需求: 因为悬浮客服有时候会遮挡住界面内容,故需要对悬浮的气泡弹窗做可拖动操作 movable-area:可拖动区域 movable-view:可移动的视图容器,在页面中可以拖拽滑动或双指缩放。 属性说明 属性名类型默认值说…

提高中小企业组网效率的关键要素与技术选项

如今的商业环境中,中小企业扮演着重要角色,它们通常是由创业者或小型团队组成,拥有有限的人力资源和财务能力。尽管规模较小,中小企业一样面临着与大型企业相似的竞争压力和业务组网需求。 在数字化时代,中小企业对于高…

MTK6761/MT6761安卓核心板4G安卓智能模块详细参数性能介绍

MTK6761 安卓核心板采用12nm制程四核Cortex-A53、最高主频2.0GHZ 处理器,板载内存为 1GB8GB(2GB16GB、3GB32GB、4GB64GB),搭载Android 9.0操作系统。 MTK6761(曦力 A22)安卓核心板基本概述 MTK6761安卓核心板 是一款高性能低功耗…

GCash all in OB Cloud,打造菲律宾国民级钱包APP

GCash 创立于 2017 年,由菲律宾电信巨头 GlobeTelecom 推出,是菲律宾排名第一的移动钱包和该国首个双独角兽公司,主要为用户在智能手机上提供储蓄、贷款、保险和投资服务。截止 2022 年 6 月,GCash 注册用户数量达 6600 万&#x…

centos 7的超详细安装教程

打开虚拟机,创建一个新电脑 我们选择经典,然后选择下一步 我们选择稍后安装,我们在后面进行改设备 因为centos系统是linux系统的一个版本,所有我们选择linux,版本选择centos 7 64位,然后就是点击下一步 这一…

座舱3.0时代!产业涌现哪些新机会?

智能座舱一直是汽车智能化普及的领跑角色,目前已经逐步进入了软件定义座舱的新周期。 过去几年,中控多媒体系统、车载语音、OTA等单一功能的搭载率已经快速普及。其中,中控娱乐系统的前装渗透率已经超过90%。高工智能汽车研究院监测数据显示…

Vue/React 项目部署到服务器后,刷新页面出现404报错

问题描述:在本地启动项目一切正常,部署到服务器上线后出现BUG,项目刷新页面出现404。 起初以为是自己路由守卫或是token丢失问题,找了一圈终于解决了 产生原因:我们打开vue/react打包后生成的dist文件夹,可…

TS 入门

TS 入门 interface 约束作用数组的声明方式函数的定义联合类型、交叉类型、断言类型类的方面 interface 约束作用 数组的声明方式 函数的定义 联合类型、交叉类型、断言类型 类的方面 这是代码的地址: 代码的地址

N5182A矢量信号发生器

产品概述 是德科技N5182A(安捷伦)MXG射频矢量信号发生器具有快速频率、幅度和波形切换、带电子衰减器的高功率和高可靠性——所有这些都在两个机架单元(2RU)中。是德科技N5182A针对制造蜂窝通信和无线连接组件进行了优化。是德科技N5182A通过增加吞吐量、提高测试产量、最大化…

【JavaScript精通之道】掌握数据遍历:解锁现代化遍历方法,提升开发效率!

​ 🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 目录 📚 前言 📘 1. reduce方法 📘 2. forEach方法 📘 3. map方法…

兔鲜儿 - 用户模块

目录 兔鲜儿 - 用户模块​ 会员中心页(我的)​ 静态结构​ 猜你喜欢分页加载 会员设置页 设置页分包和预下载 静态结构 退出登录 会员信息页 个人信息页准备工作 静态结构 获取会员信息​ 渲染会员信息 更新会员头像 更新表单信息​ 兔鲜儿 - 用户模块​ 在用户…

Elasticsearch:wildcard - 通配符搜索

Elasticsearch 是一个分布式、免费和开放的搜索和分析引擎,适用于所有类型的数据,例如文本、数字、地理空间、结构化和非结构化数据。 它基于 Apache Lucene 构建,Apache Lucene 是一个全文搜索引擎,可用于各种编程语言。 由于其速…

IPV4地址说明

设想一个场景: 你有两台电脑A和B,需要把A的数据传输到B,怎么办? 1 我们可以用U盘进行拷贝,就是把A的数据拷贝到B 2 我们可以用一根网线把AB连接起来 显然,两台电脑用一根网线。那要是n台电脑呢?…

容灾的重头戏——业务接管和容灾回切,你了解多少?

在备份容灾过程中,业务接管和数据回切是不可忽视的两大环节。 容灾接管:备份容灾过程中的一个环节,当生产系统发生故障时,业务被容灾系统所代替的过程。 数据回切:备份容灾过程中的最后一个环节,生产系统…

如何修复xinput1_4.dll丢失的问题?教你怎么快速修复xinput1_4.dll文件

在使用计算机的过程中,我们可能会遇到各种各样的错误和问题。其中之一就是xinput1_4.dll丢失的错误。这个错误会导致一些游戏或应用程序无法正常运行,给我们带来不便,但是不要担心,其实很简单,我们只要了解清楚xinput1…

全面掌握胶囊网络:从基础理论到PyTorch实战

本文全面深入地探讨了胶囊网络(Capsule Networks)的原理、构建块、数学模型以及在PyTorch中的实现。通过本文,读者不仅能够理解胶囊网络的基础概念和高级数学原理,还能掌握其在实际问题中的应用方法。 关注TechLead,分…

Nginx详解 第四部分:Nginx重写功能(附详细配置实例)

Part 4 1.简介2.if指令(单分支)2.1 基本原理2.2 基本语法2.3 举个例子 3.return指令3.1 定义和作用3.2 基本语法3.3 举个例子 4.set指令5.break指令5.1 基本原理5.2 举个例子 6.rewrite指令6.1 基本原理6.2 基本语法6.3 举个例子6.3.1 重写URL路径:目录重…

​2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

​2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

Friend.tech 火不过半个月,Web3 社交还有戏吗?

Friend.tech 是近期最被热议的去中心化社交应用,在仅限邀请加入的情况下,上线两天就狂揽 50 万美金,在 8 月 11 日当天就创下了单日突破 4000 ETH 交易量的记录,以及 26 万笔链上交易,引发一阵热潮。巅峰时期&#xff…