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

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

3天内不再提示

如何理解FPGA设计中的打拍(寄存)和亚稳态

C29F_xilinx_inc 来源:赛灵思 作者:赛灵思 2022-02-26 18:43 次阅读

1、前言

可能很多FPGA初学者在刚开始学习FPGA设计的时候(当然也包括我自己),经常听到类似于”这个信号需要打一拍、打两拍(寄存),以防止亚稳态问题的产生“这种话,但是对这个打拍和亚稳态问题还是一知半解,接下来结合一些资料谈下自己的理解。

2、触发器的建立时间和保持时间

时序电路的基础是触发器(FF、Flip-Flop),触发器正常工作需要满足建立时间和保持时间的时序要求。

如何理解FPGA设计中的打拍(寄存)和亚稳态

建立时间(Tsu:set up time)

是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入触发器,Tsu就是指这个最小的稳定时间

保持时间(Th:hold time)

是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是指这个最小的保持时间

3、亚稳态

亚稳态 (Metastability):如果数据传输中不满足触发器的Tsu和Th不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端在0和1之间处于振荡状态,而不是等于数据输入端D的值。这段时间称为决断时间Tmet(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是稳定到0或者1,是随机的,与输入没有必然的关系。

亚稳态振荡时间 Tmet 关系到后级寄存器的采集稳定问题,Tmet 影响因素包括:器件 的生产工艺、温度、环境以及寄存器采集到亚稳态里稳定态的时刻等。甚至某些特定条 件,如干扰、辐射等都会造成 Tmet 增长。

如何理解FPGA设计中的打拍(寄存)和亚稳态

只要系统中有异步元件,亚稳态就是无法避免的,亚稳态主要发生在异步信号检测、跨时钟域信号传输以及复位电路等常用设计中。由于产生亚稳态后,寄存器Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱。

4、如何防止亚稳态

首先,在同步系统中,输入信号总是系统时钟同步,能够达到寄存器的时序要求,所以亚稳态肯定不会发生。在异步系统的信号输出过程中,如果无法满足建立时间和保持时间的要求则会发生亚稳态。

预防亚稳态的方法就是将输入信号(单bit信号)打拍,也就是在要使用的时钟域下,将信号寄存。

如何理解FPGA设计中的打拍(寄存)和亚稳态

rx是相对于时钟域sys_clk的异步信号,rx_reg1、rx_reg2分别是rx在时钟域sys_clk打一拍(寄存一次、可以理解为延迟一个时钟周期 )、打两拍(寄存一两次、可以理解为延迟两个时钟周期)的信号。可以看到rx_reg1可能还存在低概率的亚稳态现象,当然rx_reg2虽然在示意图里是稳定的,不过实际过程中也仍然存在亚稳态发生的概率。

单比特信号从慢速时钟域同步到快速时钟域需要使用打两拍的方式消除亚稳态。 第一级寄存器产生亚稳态并经过自身后可以稳定输出的概率为 70%~80%左右,第二级寄存 器可以稳定输出的概率为 99%左右,后面再多加寄存器的级数改善效果就不明显了,所以 数据进来后一般选择打两拍即可。这里注意,该方法仅仅适用单比特信号从慢速时钟域同步到快速时钟域,单比特信号从快速时钟域同步到慢速时钟域还仅仅使用打两拍的方式则会漏采数据。

审核编辑:汤梓红

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

    关注

    1625

    文章

    21663

    浏览量

    601673
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61043
  • 亚稳态
    +关注

    关注

    0

    文章

    46

    浏览量

    13248
收藏 人收藏

    评论

    相关推荐

    参数化的延迟链代码分享

    在日常写代码的过程,我们经常会用到“打拍”的操作。如图1代码段所示。这个打拍的作用,很多时候主要是为了减少亚稳态
    的头像 发表于 10-21 13:54 133次阅读
    参数化的延迟链代码分享

    FPGA Verilog HDL代码如何debug?

    优点在于: 速度快,能够快速得出比较结果。 如果您的系统对时序要求较为严格,对亚稳态比较敏感,或者后续的逻辑处理需要严格按照时钟节拍进行,那么使用 4 级比较器搭配寄存器的方法可能更合适。 但如果您更
    发表于 09-24 19:16

    FPGA Verilog HDL有什么奇技巧?

    reg 变量,因为 initial 块是不可综合的,只能在仿真环境中使用,用于初始化寄存器、内存或执行仿真期间的其他任务。 但在 FPGA 设计,可以使用默认赋值或者使用有条件的赋值语句来为 reg
    发表于 09-12 19:10

    稳态触发器是什么耦合双稳态电路

    稳态触发器是一种具有两个稳定状态的数字逻辑电路,它可以在两个状态之间切换,并且能够在没有外部输入信号的情况下保持当前状态。双稳态触发器广泛应用于数字电子系统,如存储器、计数器、寄存
    的头像 发表于 08-11 10:15 623次阅读

    FPGA异步信号处理方法

    FPGA(现场可编程门阵列)在处理异步信号时,需要特别关注信号的同步化、稳定性以及潜在的亚稳态问题。由于异步信号可能来自不同的时钟域或外部设备,其到达时间和频率可能不受FPGA内部时钟控制,因此处理起来相对复杂。以下是对
    的头像 发表于 07-17 11:10 1045次阅读

    数字电路亚稳态是什么

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

    深入理解 FPGA 的基础结构

    转载地址:https://zhuanlan.zhihu.com/p/506828648 文章很详细的介绍了FPGA的基础结构,能更直观的理解内部结构原理。对深入学习很有帮助。 以下是正文: 这一段
    发表于 04-03 17:39

    为什么格雷码可以辅助解决多bit跨时钟域的问题​?求解

    单bit通过两级同步打拍可以有效的解决亚稳态问题。
    的头像 发表于 03-08 09:02 1254次阅读
    为什么格雷码可以辅助解决多bit跨时钟域的问题​?求解

    如何根据自己设计寄存器配置总线定义来生成一套寄存器配置模版

    无论是FPGA还是ASIC,系统设计总会存在配置寄存器总线的使用,我们会将各种功能、调试寄存器挂载在寄存器总线上使用。
    的头像 发表于 03-04 13:56 1051次阅读
    如何根据自己设计<b class='flag-5'>中</b>的<b class='flag-5'>寄存</b>器配置总线定义来生成一套<b class='flag-5'>寄存</b>器配置模版

    稳态是什么意思?单稳态是什么意思?双稳态是什么意思?

    稳态是什么意思?单稳态是什么意思?双稳态是什么意思?怎么区分这三种? 无稳态是指系统没有达到稳定状态,即系统的状态随时间变化而不断变化,没有趋于一个固定的平衡点。无
    的头像 发表于 02-18 16:26 1654次阅读

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

    两级触发器同步,就能消除亚稳态吗? 两级触发器同步可以帮助消除亚稳态。本文将详细解释两级触发器同步原理、亚稳态的定义和产生原因、以及两级触发器同步如何消除亚稳态的机制。 1. 两级触发
    的头像 发表于 01-16 16:29 1116次阅读

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

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

    时序优化之发送端打拍策略解析

    打拍是进行时需优化最常用和最简单的方式之一,不过握手型协议的打拍和通常的使能型协议是不同的。
    的头像 发表于 12-04 10:23 689次阅读
    时序优化之发送端<b class='flag-5'>打拍</b>策略解析

    时序优化之接收端打拍策略探讨

    这篇文章是探讨对接收端进行时序优化(即ready打拍,或称backward打拍)的方式。
    的头像 发表于 12-04 10:20 589次阅读
    时序优化之接收端<b class='flag-5'>打拍</b>策略探讨

    FPGA的电源管理解决方案

    电子发烧友网站提供《FPGA的电源管理解决方案.pdf》资料免费下载
    发表于 11-24 14:42 0次下载
    <b class='flag-5'>FPGA</b>的电源管<b class='flag-5'>理解</b>决方案