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

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

3天内不再提示

【教程分享】在FPGA中,同步信号、异步信号和亚稳态的理解

电子发烧友论坛 来源:未知 2023-05-16 09:30 次阅读

本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的“傻瓜式”讲解,让电子信息通信类专业学生、初入职场小白及打算进阶提升的职业开发者都可以有系统性学习的机会。


系统性的掌握技术开发以及相关要求,对个人就业以及职业发展都有着潜在的帮助,希望对大家有所帮助。后续会陆续更新 Xilinx 的 Vivado、ISE 及相关操作软件的开发的相关内容,学习FPGA设计方法及设计思想的同时,实操结合各类操作软件,会让你在技术学习道路上无比的顺畅,告别技术学习小BUG卡破脑壳,告别目前忽悠性的培训诱导,真正的去学习去实战应用,这种快乐试试你就会懂的。话不多说,上货。


在FPGA中,同步信号、异步信号和亚稳态的理解

PGA(Field-Programmable Gate Array),即现场可编程门阵列。主要是利用内部的可编程逻辑实现设计者想要的功能。FPGA属于数字逻辑芯片,其中也有可能会集成一部分模拟电路的功能,大多数模拟电路都是当做asic进行工作的,可编程的部分大多数都是数字逻辑部分。


数字逻辑电路是由组合逻辑和时序逻辑器件构成,在时序逻辑器件中,常用就是时钟触发的寄存器



如果在设计中,所有的寄存器的时钟端都是连接的同一个时钟,那么称之为同步电路设计。所谓同步也就是所有的寄存器的输出端都是由同一个时钟端驱动出来的,所有的寄存器在同一个步调上进行更新。


同步电路中的信号,我们称之为同步信号。


如果在设计中,寄存器的时钟端连接在不同的时钟上,那么称之为异步电路设计。



在异步电路中,被clk1驱动的寄存器和组合逻辑电路构成时钟域clk1的电路,被clk2驱动的寄存器和组合逻辑电路构成时钟域clk2的电路。信号从clk1的时钟域到clk2的时钟域,被称为跨时钟域。而对于信号D5来说,我们认为它是clk1时钟域的信号,那么对于clk2时钟域来说,就是异步信号,因为它不与clk2的驱动沿对齐。


寄存器有一种特性,在clk的有效边沿时,采样数据D,输出到Q,此过程如果想要稳定进行,那么要求,数据D在clk有效边沿之前一段时间保持稳定(建立时间),在clk有效边沿之后一段时间保持稳定(保持时间),如果任何一个不满足,就会导致此过程失败,结果就是clk的有效边沿过去后,Q的值可能就不会出现预想值。那么是什么呢?先不着急,后面慢慢谈。


在真实的电路中,各部分元器件都是有延迟的。对于同步电路来说,Q的更新都是在clk上上升沿之后的一段时间(Tco:输出延迟),输出的数据经过组合逻辑或者线路也会有延迟(delay:线路延迟),到达下一个寄存器。此时,信号早就偏离了clk的上升沿。所以对于下级寄存器来说,这个信号也是“异步信号”。所以说真实电路中,全部的信号都是“异步信号”。


那么为什么在同步电路中,我们都称为同步信号呢?


因为在电路中,所有的延迟都是已知的(TCO、delay等等),我们可以通过扩大clk的周期,确保clk的周期大于TCO等等之类延迟之和,那么就可以保证下级寄存器采样到数据。所以这种电路中的信号,我们依然把他称之为同步信号。


在跨时钟域时,由于两个时钟之间没有任何关系,无论怎么调整周期,都不一定能满足下级寄存器采样到数据,肯定不能调成一致周期,那就变成了同步设计。例:用寄存器采样外部按键的输入,那么此时外部按键的信号对于寄存器来说就是异步信号,因为外部信号是随时都有可能有效,所以无论怎么调整,都不一定能够保证信号满足寄存器的建立保持时间。


那么既然在很多情况下,无论如何也避免不了异步信号带的坏处,那么能不能全部采用同步设计?显然是不太现实,不同接口或者存储器等都有自己频率,全部采用同步电路设计的方式将失去很多功能。例如:千兆以太网的GMII接口,采用125M接口,1080P的HDMI接口采用148.5MHz的接口。


既然无法避免,那就勇敢面对。


当信号不满足建立和保持时间时,寄存器会输出什么值呢?



在上图中,输入信号在clock的上升沿左右有了一个从高到低的变化,即不满足建立和保持时间。那么寄存器的输出端就会输出一个既不是高电平也是低电平的一个电平。


在数字电路中,高电平和低电平是两个稳定的电平值,能够一直维持不变化。如果不满足建立或者保持时间的话,输出的电平值不高也不低,但是此电平不稳定,称为亚稳态(类似于健康和亚健康)。亚稳定是不稳定的,终究要向高或者低电平进行变化。


那么有人说,亚稳态终究会走向稳态,那么岂不是没有影响了。答案是错误的。可以想象,亚稳态走向稳态是必然趋势,可是需要一定的时间,如果在这一段时间内,被其他电路所引用,那么就会造成亚稳态的传播,进而导致整个电路的瘫痪(因为整个电路都会变成非高非低的信号在运行)。


那么应该如何处理呢?


对于单bit信号,我们一般采用同步寄存器链来进行处理。



对于同步寄存器链的要求有三点:



第一:在同步寄存器链中,所有的寄存器都必须用同一个或者相关(例如:一个时钟是另外一个时钟的相位延迟180度)时钟驱动。


第二:第一个寄存器的输入为外部的异步信号。


第三:在同步寄存器链中,所有的输出只能给下一级使用。只有最后一级寄存器可以给其他的电路使用。


对于第一点和第二点,不再解释。下面解释一下第三点。



D3信号为clk2时钟域的异步信号,那么D4信号就有可能出现亚稳态。假设D4信号出现亚稳态后,恢复至稳态的时间为T1,组合逻辑2的延迟为T2,那么D5信号得到稳态的时间为T1+T2。如果没有组合逻辑2时,D5信号得到稳态的时间为T1。如果clk2的周期大于T1+T2,那么有无组合逻辑2,将不受影响;如果clk2的周期大于T1且小于T1+T2,那么有组合逻辑2,就会造成亚稳态的传播。如果clk2的周期小于T1,也会亚稳态的传播。


综上所述,组合逻辑2,还是不要有的好,能够大大增加D5得到稳态的几率。


在上述叙述中,我们只是提高了得到稳态的几率,但是还是有亚稳态传播的几率。


在实际电路中,一般同步寄存器链会有两级甚至多级。那么多级的同步寄存器链会有什么作用呢?


在上述叙述中得知,亚稳态是一种不稳定的状态,会向稳定状态过渡。如果第一级寄存器输出亚稳态,恢复时间为T1,如果clk的周期小于T1,那么亚稳态将会在第二级寄存器输出,由于第一级亚稳态已经经过clk一个周期的恢复,所以在第二级寄存器输出时,亚稳态恢复至稳态的时间T2将会缩短。T2< T1。


再多级的寄存器,也无法避免亚稳态,只是级数越多,最后一级输出亚稳态的几率将会越低。


在实际电路中,一般采用两级或者三级即可。






声明本文由电子发烧友社区发布,转载请注明以上来源。如需社区合作及入群交流,请添加微信EEFans0806,或者发邮箱liuyong@huaqiu.com。


更多热点文章阅读

  • 电子工程师分享:常用电平转换电路、电源自动切换电路、太阳能充电电路总结

  • 基于32位RISC-V设计的互联型微控制器,沁恒微CH32V307开发样例

  • RK3568!四核64位ARMv8.2A架构,汇聚编译源码及实战样例

  • 尺寸仅有21mm*51mm,板边采用邮票孔设计,合宙 Air105 核心板开发总结

  • 基于ESP32芯片,搭载OpenHarmony操作系统,NiobeU4开发板应用实例


原文标题:【教程分享】在FPGA中,同步信号、异步信号和亚稳态的理解

文章出处:【微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

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

原文标题:【教程分享】在FPGA中,同步信号、异步信号和亚稳态的理解

文章出处:【微信号:gh_9b9470648b3c,微信公众号:电子发烧友论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    复位电路的设计问题

    都有异步复位端口,因此采用异步复位可以节约资源。 ⑵设计相对简单。 ⑶异步复位信号识别方便,而且可以很方便地使用fpga的全局复位端口。 缺
    的头像 发表于 11-15 11:13 90次阅读
    复位电路的设计问题

    怎么判断同步清零和异步清零

    异步清零都是对寄存器或计数器进行清零操作的方式,它们的主要区别在于清零信号的触发方式。 同步清零:同步清零是指在时钟信号的控制下,将寄存器
    的头像 发表于 07-23 11:11 2096次阅读

    异步置零和同步置零的区别在哪里

    异步置零和同步置零是数字电路设计两种不同的置零方法。它们实现方式、性能和应用场景上有所不同。 实现方式: 异步置零:
    的头像 发表于 07-23 11:09 1354次阅读

    同步电路和异步电路怎么判断正负极

    同步电路和异步电路是电子电路设计的两种基本类型。它们设计、工作原理和应用方面都有很大的不同。 同步电路和
    的头像 发表于 07-22 17:37 355次阅读

    同步电路和异步电路的优缺点

    同步电路和异步电路是数字电路设计的两种基本类型。它们设计方法、性能、功耗、可靠性等方面存在显著差异。 同步电路 定义
    的头像 发表于 07-22 17:35 1124次阅读

    同步电路和异步电路的优缺点有哪些

    同步电路和异步电路是数字电路设计的两种基本类型,它们设计方法、性能特点和应用领域等方面存在显著差异。 同步电路 定义
    的头像 发表于 07-22 17:01 955次阅读

    FPGA同步复位和异步复位

    FPGA(Field-Programmable Gate Array,现场可编程门阵列)的复位操作是设计过程不可或缺的一环,它负责将电路恢复到初始状态,以确保系统的正确启动和稳定运行。
    的头像 发表于 07-17 11:12 1318次阅读

    FPGA异步信号处理方法

    FPGA(现场可编程门阵列)处理异步信号时,需要特别关注信号同步化、稳定性以及潜在的
    的头像 发表于 07-17 11:10 1046次阅读

    数字电路亚稳态是什么

    在数字电路的设计与实现亚稳态是一个不可忽视的现象。它可能由多种因素引发,对电路的稳定性和可靠性产生严重影响。本文将深入探讨数字电路中亚稳态的概念、产生原因、影响以及应对策略,以期为读者提供全面而深入的
    的头像 发表于 05-21 15:29 1100次阅读

    verilog同步异步的区别 verilog阻塞赋值和非阻塞赋值的区别

    Verilog是一种硬件描述语言,用于设计和模拟数字电路。Verilog同步异步是用来描述数据传输和信号处理的两种不同方式,而阻塞赋
    的头像 发表于 02-22 15:33 1535次阅读

    SPWM脉宽调制是异步还是同步

    SPWM脉宽调制是异步还是同步? SPWM脉宽调制是一种用于调节交流电压的技术,通过调整脉冲的宽度来模拟纯正的正弦电压信号SPWM技术
    的头像 发表于 02-06 11:33 713次阅读

    两级触发器同步,就能消除亚稳态吗?

    两级触发器同步,就能消除亚稳态吗? 两级触发器同步可以帮助消除亚稳态。本文将详细解释两级触发器同步原理、
    的头像 发表于 01-16 16:29 1118次阅读

    复位信号存在亚稳态,有危险吗?

    复位信号存在亚稳态,有危险吗? 复位信号电子设备起着重要的作用,它用于使设备回到初始状态,以确保设备的正常运行。然而,我们有时会发现复位
    的头像 发表于 01-16 16:25 455次阅读

    异步电路的时钟同步处理方法

    异步电路的时钟同步处理方法  时钟同步异步电路
    的头像 发表于 01-16 14:42 1077次阅读

    异步信号同步电路交互的问题及其解决方法

    不良影响。本文将详细介绍异步信号同步电路交互问题的背景、常见的问题及其解决方法。 一、背景 现代电子系统,通信和交互已经成为不可或缺的
    的头像 发表于 12-07 10:53 657次阅读