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
    +关注

    关注

    1655

    文章

    22282

    浏览量

    630071
  • 触发器
    +关注

    关注

    14

    文章

    2050

    浏览量

    63035
  • 亚稳态
    +关注

    关注

    0

    文章

    47

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一文读懂稳态太阳光模拟器

    在光伏产业、材料科学、航空航天等领域,模拟自然太阳光的光照环境是开展测试的核心需求。稳态太阳光模拟器作为实现这一需求的关键设备,凭借其能持续稳定输出符合太阳光谱特性光照的能力,成为科研与生产
    的头像 发表于 11-05 18:03 1037次阅读
    一文读懂<b class='flag-5'>稳态</b>太阳光模拟器

    如何利用Verilog HDL在FPGA上实现SRAM的读写测试

    、建立读写操作、配置地址计数器、模拟数据流、综合与仿真以及下载到FPGA进行硬件测试。通过实践,掌握SRAM在FPGA的使用和基本读写方法,加深对FPGA工作原理的
    的头像 发表于 10-22 17:21 3948次阅读
    如何利用Verilog HDL在<b class='flag-5'>FPGA</b>上实现SRAM的读写测试

    聊聊FPGA的TDC原理

    今天我们不谈高大上的物理学,只聊聊如何在 FPGA ,用一串加法器和 D 触发器,“数清楚时间”——这就是时间数字转换器(TDC)的魅力。
    的头像 发表于 09-02 15:15 910次阅读
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

    UPS电源—确保UPS电源稳态测试靠谱的妙招

    在UPS电源稳态测试,确保测试的准确性和可靠性是至关重要的。汇智天源工程师给大家分享一些关键措施,旨在提高测试过程的精确度和可信度。
    的头像 发表于 08-28 18:19 532次阅读
    UPS电源—确保UPS电源<b class='flag-5'>稳态</b>测试靠谱的妙招

    FPGA调试方式之VIO/ILA的使用

    在Vivado,VIO(Virtual Input/Output)是一种用于调试和测试FPGA设计的IP核,它允许设计者通过JTAG接口实时读取和写入FPGA内部的寄存器,从而检查设
    的头像 发表于 06-09 09:32 3082次阅读
    <b class='flag-5'>FPGA</b>调试方式之VIO/ILA的使用

    使用寄存器点亮LED灯

    学习本章时,配合以上芯片手册的“19. I/O Ports”章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。本章内容涉及到较多寄存器方面的深入内容,对于初学者而言这些内容丰富也较难
    的头像 发表于 05-28 17:37 1024次阅读
    使用<b class='flag-5'>寄存</b>器点亮LED灯

    跨异步时钟域处理方法大全

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

    在APP FPGA 通过IIC接口对DLPC910寄存器进行配置遇到的两个问题求解

    在APP FPGA 通过IIC接口对DLPC910寄存器进行配置,有两个问题想要请教: 1、DLPC910被封装成了FPGA,通过IIC改变它的
    发表于 02-25 06:47

    使用FPGA控制DLPC3438,采用IIC协议进行读写操作,读取的数据存在错误,无法正确从寄存读取数据怎么解决?

    规定的字节数一致? (2)FPGA控制IIC读数据按照如下协议,但是读取的数据存在错误,无法正确从寄存读取数据。 (3)下图为FPGA的IIC读时序,请帮忙查看是否是
    发表于 02-24 07:47

    如何理解芯片设计的IP

    本文主要介绍如何理解芯片设计的IP 在芯片设计,IP(知识产权核心,Intellectual Property Core)是指在芯片设计采用的、已经开发好的功能模块、设计或技术,
    的头像 发表于 02-08 10:43 2064次阅读

    CMOS逻辑IC使用时如何应对电路的危害、亚稳态、锁存以及ESD—东芝半导体带你深入电子设计

    提要 本期课堂,我们将继续深入CMOS逻辑IC的使用注意事项,介绍如何应对电路的危害、亚稳态、锁存以及ESD防护等问题。 Q 危害的问题 如果是由OR(或)、AND(与)和其它门组成的多输入组合
    的头像 发表于 02-07 17:43 1832次阅读
    CMOS逻辑IC使用时如何应对电路<b class='flag-5'>中</b>的危害、<b class='flag-5'>亚稳态</b>、锁存以及ESD—东芝半导体带你深入电子设计

    一文解析高频交易FPGA的作用及面试建议

    和其他人的亲身经历,写了一篇关于测试职位是什么样子以及如何准备面试的文章。 HFT 世界是什么样的 为了理解这些术语并以更合适的方式做好准备,我们首先来谈谈 HFT 是什么,以及为什么 FPGA 在交易
    的头像 发表于 01-23 10:57 1429次阅读
    一文解析高频交易<b class='flag-5'>中</b><b class='flag-5'>FPGA</b>的作用及面试建议

    XILINX FPGA CLB单元之移位寄存

    一、移位寄存器 SLICEM函数发生器也可以配置为32位移位寄存器,而无需使用slice可用的触发器。以这种方式使用,每个LUT可以将串行数据延迟1到32个时钟周期。 移入D(DI1 LUT引脚
    的头像 发表于 01-16 17:45 1442次阅读
    XILINX <b class='flag-5'>FPGA</b> CLB单元之移位<b class='flag-5'>寄存</b>器

    xilinx FPGA IOB约束使用以及注意事项

    xilinx FPGA IOB约束使用以及注意事项 一、什么是IOB约束 在xilinx FPGA,IOB是位于IO附近的寄存器,是FPGA
    的头像 发表于 01-16 11:02 1484次阅读
    xilinx <b class='flag-5'>FPGA</b> IOB约束使用以及注意事项

    FPGA配置ADS5562怎么确认寄存器是否配置正常?

    1、用FPGA配置ADS5562怎么确认寄存器是否配置正常 2、输入时钟和输出时钟的延时怎样配置在合理的范围里
    发表于 01-02 06:49