【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法

2023-10-26

一、亚稳态的产生原因

如图所示,当 sys_clk 时钟信号上升沿踩到 Rx 信号的变化间隙时,此时输出的 Rx_reg1 信号就会出现亚稳态,其输出信号就会出现震荡、毛刺或者固定在某一电压值,而不是等于 D 端输入的值,经过震荡之后,Q 端会输出 0 或者 1。

出现亚稳态的原因:

在信号输入到寄存器的时候,建立时间Tsu和保持时间Th不满足条件。

这里就涉及到建立时间和保持时间的概念。

建立时间:

时钟信号上升沿到来之前,输入信号数据需要维持一定时间的稳定状态,这个“一定时间”就是建立时间。

保持时间:

时钟信号上升沿到来之后,输入信号数据也需要保持一定时间的不变,这个“一定时间”就是保持时间。

如上图所示,在时钟信号上升沿到输出信号出现毛刺时,这段时间为寄存器的延时时间 Tco。

Q端输出的信号不稳定的状态时间称为决断时间Tmet,因为在这段时间要决断接下来为 1 还是 0。

二、亚稳态的危害

如何亚稳态不解决,这个亚稳态会一直向下面传播,如果后面是一堆组合逻辑,这个亚稳态就会消除不掉,会一直抖动,这样就会严重影响数据提取和处理,因此要消除亚稳态。

三、如何消除亚稳态

需要使用到寄存器,为什么要用寄存器呢?因为寄存器本身就具有稳定亚稳态的作用,因此经过一个寄存器,亚稳态就会好很多,因为经过一个寄存器后,它的抖动时长即决断时间Tmet会缩短,因此会采用多个寄存器的方式,也就是通常说的多打几拍。

从左图可以看出来,如果延时一拍,即通过一个寄存器后,时钟信号的上升沿是处于决断时间当中的,此时的延时信号数据仍然不行,当经过n个寄存器后,可以看到左图决断时间变短,当决断时间小于一个完整的时间周期时,这时候亚稳态对实验工程的影响就很小了。

四、其他补充

如果单比特信号从高速时钟域同步到低俗时钟域,如果采用打拍的方式,会出现数据漏采的情况,所以一般使用脉冲同步或者握手信号的方式实现信号的同步。但是多比特信号如果经过跨时钟域处理时,一般会进行格雷码的编码,然后进行打拍处理,或者使用FIFO、RAM来进行数据的同步。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法 的相关文章

  • stm32毕设分享 stm32单片机酒精浓度酒驾检测系统 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 硬件设计 MQ 3酒精乙醇传感器模块 SIM800C模块 5 软件说明 系统框图
  • 【MCU简单且容易理解的工作原理】

    SOC是啥 System on Chip 一个芯片 但是片上有好多东西的意思 市面上的AI芯片 包括你知道的麒麟xxx 骁龙xxx等等一些列手机芯片都是SOC 对于SOC设计者来讲 显然要知道码农们码出来的一行行代码是如何在SOC上跑起来的
  • STM32F207 I2C 测试失败

    我正在使用 STM32F207 微控制器在 STM3220G EVAL 板上学习嵌入式开发 我尝试通过连接同一芯片上的两个 I2C2 和 I2C3 模块并发送 接收字符来测试 I2C 接口 这是我当前编写的代码 使用 mdk arm 5 i
  • 普冉32位单片机 PY32C642,M0+内核,1.7 V ~ 5.5 V宽工作电压

    PY32C642 单片机采用高性能的 32 位 ARM Cortex M0 内核 宽电压工作范围 嵌入 24Kbytes Flash 和 3 Kbytes SRAM 存储器 最高工作频率 24 MHz 包含多种不同封装类型产品 工作温度范围
  • 毕设开题分享 单片机智能教室系统(智能照明+人数统计)

    1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 单片机智能教室系统 智能照明 人数统计 大家可用于 课程设计 或 毕业设计 项目分享 https gitee com feifei1122 simulation project
  • 为什么C语言没有被C++所取代呢?

    今日话题 为什么C语言没有被C 所取代呢 C 的复杂编译器实现和嵌入式平台的限制 使C语言保持了其地位 嵌入式系统多数仅支持C 即使支持C 也会限制某些功能 尤其是异常处理和RTTI 此外 C 引入的功能增加了二进制文件大小和运行时内存占用
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • 物联网项目分享 Stm32单片机的音乐播放器设计 - 物联网 嵌入式

    文章目录 0 前言 1 简介 2 主要器件 3 实现效果 4 设计原理 5 部分核心代码 6 最后 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉
  • STM32F4XX的12位ADC采集数值超过4096&右对齐模式设置失败

    文章目录 一 前言 二 问题1 数值超过4096 三 问题1的排错过程 四 问题2 右对齐模式设置失败 五 问题2的解决方法 5 1 将ADC ExternalTrigConv设置为0 5 2 使用ADC StructInit 函数 一 前
  • 模拟器和合成器之间初始化状态机的差异

    我的问题是关于合成状态机中使用的第一个状态 我正在使用莱迪思 iCE40 FPGA 用于仿真的 EDA Playground 和用于综合的莱迪思 Diamond Programmer 在下面的示例中 我生成一系列信号 该示例仅显示引用状态机
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 您可以使用类 C 语言对 FPGA 进行编程吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在大学里 我用类似 C 的语言编写了 FPGA 不过 我也知道人们通常使用 Verilog 或 VHD
  • 通过JTAG恢复STM32 MCU磨掉的标记

    我有一块可能带有 STM32 MCU 的板 我想为该板制作定制固件 因为库存板有很多问题 不幸的是 电路板制造商很友善地磨掉了所有标记 有没有办法通过 jtag 获取设备 系列 ID 并将其交叉引用到型号 我能找到的一切都是关于获取芯片的唯
  • STM32 上的位置无关代码 - 指针

    我已成功在 STM32 上构建并运行位置无关的代码 向量表和 GOT 已修补 一切正常 但我对这样的代码有问题 double myAdd double x return x 0 1 double ptrmyAdd double myAdd
  • 从 OpenCV 代码到 FPGA 代码的转换是否比 Matlab 代码更容易? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想做一个关于图像处理的项目 我想知道如果我想在FPGA上实现这个项目 我应该在第一阶段选择Matla
  • 在 Contiki 程序中使用 malloc

    考虑以下 Contiki 程序 include
  • 如何从 Spartan 6 写入 Nexys 3 FPGA 板上的 Micron 外部蜂窝 RAM?

    我到处都查过了 数据表 Xilinx 网站 digilent 等等 但什么也没找到 我能够使用 Adept 工具来验证我的蜂窝 RAM 是否正常运行 但我找不到任何库存 VHDL 代码作为控制器来写入数据和从中读取数据 帮助 找到了此链接
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 STM32 USB 设备库将闪存作为大容量存储设备

    我的板上有这个闪存IC 它连接到我的STM32F04 ARM处理器 处理器的USB端口可供用户使用 我希望我的闪存在通过 USB 连接到 PC 时被检测为存储设备 作为第一步 我在程序中将 USB 类定义为 MSC 效果很好 因为当我将主板
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015

随机推荐

  • 海思3516系列芯片SPI速率慢问题深入研究与优化(基于PL022 SPI 控制器)

    海思3516系列芯片SPI速率慢问题深入分析与优化 基于PL022 SPI 控制器 我在某个海思主控的项目中需要使用SPI接口来驱动一块液晶屏 液晶屏主控为 st7789 分辨率 240x240 图像格式 RGB565 查阅海思相关手册可知
  • HDU - 1598之为达目的不择手段(并查集的应用)

    find the most comfortable road Time Limit 1000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submissi
  • docker快速搭建redis集群(两种暴露宿主网络的方法)

    宿主机IP 192 168 123 181 方案一 host网络模式 1 新建6个容器节点 for port in seq 4001 4006 do docker run itd name redis port network host v
  • Java线程:volatile关键字

    本文转载至 http lavasoft blog 51cto com 62575 222076 Java线程 volatile关键字 Java 语言包含两种内在的同步机制 同步块 或方法 和 volatile 变量 这两种机制的提出都是为了
  • 自制个人图床

    如何自制个人图床 有时候我们想要将自己的图片以链接的形式展示 就得需要使用图床 或者上传到自己的服务器 别人的图床会担心图片链接过期 然而自己的服务器会占用内存资源 所以我们就自制个人图床 首先你得有服务器和域名 好了废话不多说直接上教程
  • 2021-10-21

    当打开一个页面 需要第一行显示当前用户能够领取奖励的按钮 应用场景 1 当某些游戏有在线领奖的活动 比如在线10分钟 20分钟 以此类推可以领取一些奖励 当有很多时 页面装不下的时候 我们希望显示的第一个就是玩家可以领取的奖励 比如10分钟
  • C++—类和对象

    文章目录 1 类 2 对象 2 1 创建对象 2 2 对象的操作 2 3 构造函数 2 4 析构函数 3 静态成员 4 this指针 5 友元 一切我们研究的事物 都可以叫做对象 对象具有状态 操作和行为 通常用一个数值来描述对象的状态 对
  • DVWA ----Buete Force

    DVWA Buete Force 暴力破解 low 直接使用Burip suite来进行暴力破解 medium 与low的方法一样 但是在破解速度上比较慢 因为在源代码中多了sleep 函数 high 同样使用Burip suite进行暴力
  • RK3588开发板上使用Qt+OpenCV捕获摄像头图像

    在Qt下没有专门的视频采集与播放工具 这里使用了OpenCV所带的库函数捕获摄像头的视频图像 硬件环境 讯为RK3588开发板 OV5695 MIPI接口 摄像头 软件版本 OS ubuntu20 04镜像固件 QT 5 12 8 Qt C
  • 安全运营场景下的语言模型应用

    接上篇 将安全运营的定义为 使用算法能力提取关键信息 以此来规避算法误判漏判带来的责任问题 同时提升运营人员的工作效率 在这篇尝试对语言模型的使用方法做一下讨论和分享 1 语言模型 先聊一下语言模型 这里刻意规避了 大模型 这个词 主要是对
  • 【Python】循环语句

    目录 1 while 循环 2 for 循环 3 continue 4 break 1 while 循环 基本语法格式 while 条件 循环体 条件为真 则执行循环体代码 条件为假 则结束循环 例1 打印 1 10 的整数 num 1 w
  • pyspark合并两个dataframe_PySpark源码解析,教你用Python调用高效Scala接口

    在数据科学领域 Python 一直占据比较重要的地位 仍然有大量的数据工程师在使用各类 Python 数据处理和科学计算的库 例如 numpy Pandas scikit learn 等 相较于Scala语言而言 Python具有其独有的优
  • Mybatis 快速入门之mybatis与spring集成

    目录 一 基本概念撰述 1 SqlSessionFactory对象 只有创建了SqlSessionFactory对象 才能调用openSession 方法得到SqlSession对象 2 dao接口的代理对象 例如StudentDao接口
  • Hadoop Ls命令添加显示条数限制參数

    前言 在hadoop的FsShell命令中 预计非常多人比較经常使用的就是hadoop fs ls lsr cat等等这种与Linux系统中差点儿一致的文件系统相关的命令 可是细致想想 这里还是有一些些的不同的 首先 从规模的本身来看 单机
  • adfs服务器获取信息失败,为什么 elasticsearch 获取节点信息失败?

    在 spring boot 项目中即成集成 elasticsearch dao层数据与es交互使用的的是 spring data elasticsearch 首先安装了服务器端的 es 服务 和 head 插件 es 服务启动正常 node
  • C++中关于count的用法总结

    华为OD机试真题 2022 2023 真题目录 点这里 华为OD机试真题 信号发射和接收 试读 点这里 华为OD机试真题 租车骑绿道 试读 点这里 C 中关于count的用法总结 下面是关于字符串中count的两种用法 STL容器 数组的用
  • JS逆向笔记之断点分类

    JS逆向笔记之断点分类 文章目录 JS逆向笔记之断点分类 1 JS断点 2 DOM断点 3 XHR断点 4 事件监听器断点 1 JS断点 1 Sources断点 Sources断点添加的流程是 F12 Ctrl Shift I 打开开发工具
  • Python-opencv读取深度图像

    由于实验需要用到Kinect2 0采集的深度图像 但是用以下程序读取深度图片的时候显不方便观察 temp img cup depth png depth filename os path join image dir depth img t
  • Error during job, obtaining debugging information... FAILED: Execution Error, return code 2 from org

    create table userbehavior partitioned2 user id string item id string category id string behavior type string partitioned
  • 【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法

    一 亚稳态的产生原因 如图所示 当 sys clk 时钟信号上升沿踩到 Rx 信号的变化间隙时 此时输出的 Rx reg1 信号就会出现亚稳态 其输出信号就会出现震荡 毛刺或者固定在某一电压值 而不是等于 D 端输入的值 经过震荡之后 Q