chapter1——亚稳态的世界

news2024/11/19 5:40:59

目录

  • 1.亚稳态理论
  • 2.亚稳态窗口
  • 3.计算MTBF
  • 4.避免亚稳态
    • 多级同步器
    • 时钟倍频电路的多级同步器
  • 5.亚稳态测试电路
  • 6.同步器类型
  • 7.综合性建议

在异步系统中,由于数据和时钟的关系不是固定的,因此有时会出现违反建立和保持时间的现象,此时便会输出介于两个有效状态之间的中间级电平且无法确定停留在中间状态的时间,或者在经过一定的延迟后才能进行正常转换。

1.亚稳态理论

  • 亚稳态是由于违背了触发器的建立和保持时间而产生的。触发器的输出会因此产生毛刺,或者暂时保持在不稳定状态而且需要较长时间才能回到稳定状态。
  • 当触发器处在亚稳态时,输出会在高低电平之间波动这会导致延迟输出转换过程。并非所有不满足建立和保持时间的输入变化都会导致亚稳态输出。触发器是否进入亚稳态和返回亚稳态所需时间取决于生产器件的工艺技术与外界环境。一般来说,触发器都会在一个或者两个时钟周期内返回稳态。
  • 当信号在一个时钟域(src_data_out)里变化,在另外一个时钟域(dest_data_in)内采样时,就会导致输出变成亚稳态。这就是所谓的同步失败。(如下图所示)
    在这里插入图片描述

2.亚稳态窗口

亚稳态窗口具有特定的时间长度,在这段时间内输入信号和时钟都应该保持不变。如果它们发生变化,输出就可能变成亚稳态。如下图所示,建立时间和保持时间共同决定亚稳态窗口的宽度。
在这里插入图片描述
窗口越大,进入亚稳态的概率越高。在大多数情况下,较新的逻辑器件会有更小的亚稳态窗口,也就意味着器件进入亚稳态的概率会更小。

3.计算MTBF

当系统的故障率恒定时,MTBF(Mean Time Between Failures,平均无故障时间)就是故障率的倒数。我们可以由此得到特定触发器发生故障的频率。
对于一个具有给定时钟频率和在该时钟周期内具有均匀概率密度的异步数据信号边沿的单季同步器,亚稳态事件的发生率可以用建立、保持时间窗口和时钟周期的比值乘以信号触发频率来计算。
在这里插入图片描述
由故障率和时间的关系可以计算出触发器的亚稳态(解析)时间常数:
在这里插入图片描述
在这里插入图片描述
由1.1和1.2两个式子可以计算出两级同步器的MTBF:
在这里插入图片描述
1.1计算出了第一级同步器的MTBF,实质上就是下一级的亚稳态发生率。1.2则根据解析时间的值计算出了亚稳态事件的解析概率。两项结果的乘积就是两级同步器的整个MTBF。

4.避免亚稳态

如上所述,每当违背建立、保持时间时,亚稳态就会出现。
在以下条件中,信号可能违背时序要求:

  • 输入信号是异步信号。
  • 时钟偏移/摆动(上升/下降时间)高于容限值。
  • 信号在两个不同频率或者相同频率但是相位和偏移不同的时钟域下跨时钟域工作。
  • 组合延迟使触发器的数据输入在亚稳态窗口内发生变化。

虽然亚稳态不能根除,但是可以减小亚稳态发生的概率。

多级同步器

避免亚稳态最常见的方法就是在跨时钟域的信号上加上一个或者多个同步触发器。如下图所示,这种方法用一个完整的时钟周期来解决第一级同步触发器的亚稳态问题(不包括第二级触发器的建立时间)。但是这种方法也增加了观察同步逻辑输入的延迟。
在这里插入图片描述

时钟倍频电路的多级同步器

多级同步器的一个局限就是系统需要花费较长的时间去响应异步输入。这里可以使用倍频时钟作为两个同步触发器的时钟输入去解决这个问题。如下图所示。
在这里插入图片描述
这种方法不仅能让系统在一个系统时钟周期内响应一个异步输入,而且改善了MTBF。

5.亚稳态测试电路

每当触发器采样一个异步输入时,触发器输出都可能会产生一个不可预测的延迟,虽然概率很低。这不仅会在输入违反建立、保持时间要求时发生,而且在触发器接受新的输入这一小段时序窗口内也会发生。在这些情况下,触发器都会进入亚稳态。
下图描述的测试电路可以用来确定触发器的亚稳态特征。电路给出了有一个异步输入“async_in”的触发器“FFA”,再由时钟“clk”的上升沿触发。触发器“FFB”和“FFC”都在时钟下降沿触发,这样做是为了捕捉FFA的亚稳态事件。
在这里插入图片描述

当两个互补的信号分别传递到“FFB”和“FFC”的输入时,无论“FFA”什么时候出现亚稳态事件,异或非门(XNOR)门的输出都会变为高电平。在触发器“FFD”输出端捕捉到高电平就表明已经检测到亚稳态事件。
测试电路中所有节点的时序如下图所示。
在这里插入图片描述

6.同步器类型

一个异步输入电路的MTBF和用于从亚稳态恢复的时间呈指数关系。用同步器构成的时间缓冲器可以帮助从亚稳态中恢复。
要注意,一个异步信号不应该被两个或多个同步器所同步(这样会存在多级同步器输出产生不同信号的风险)。
两级同步器有两种模式:

  • 模式A
    模式A是一个标准的电路,当异步输入信号比时钟周期大得多时最有效。
    在这里插入图片描述

对于同步器的模式A,第一级触发器的输入D与Vcc相连,同时时钟信号是异步输入信号。另外两个触发器直接由系统时钟(clk)控制。一个短脉冲让q1变成高电平,这个高电平在经过两个时钟(clk)沿后从sync_out输出。(书上的这段话写在了模式B的部分,应该是写错了)

需要注意的是,即使异步输入在建立时间区间之外稳定,它仍然需要由时钟驱动产生两个周期的延迟,否则FF1可能进入亚稳态。如果亚稳态在不到一个时钟周期内就解析了,FF2就会有稳定的输入,否则就需要更深层的级联。

但是,模式A不能用于异步输入信号的宽度小于时钟周期的情况。在这种情况下要用模式B。

  • 模式B
    在这里插入图片描述
    经验规则如下:
    1.当信号必须跨时钟域工作时,要采用同步器。
    2.如果clk1 > clk2,在时钟域2里用同步器的模式A,否则就采用同步器的模式B。

7.综合性建议

在两个相互异步系统的交界面亚稳态是不可避免的。以下几点可以明显减小亚稳态发生的概率:

  • 采用同步器。
  • 采用响应更快的触发器。(缩短亚稳态窗口)
  • 使用亚稳态硬化触发器。
  • 使用级联触发器(两个或多个)作为同步器。如果一个触发器的亚稳态失败概率是P,那么N个触发器的亚稳态失败率就是P的N次方。
  • 减少采样速率。
  • 避免使用dV/dt低的输入信号。

更多详细内容可参考《硬件架构的艺术:数字电路的设计方法与技术》

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

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

相关文章

OTA: Optimal Transport Assignment for Object Detection原理与代码解读

paper:OTA: Optimal Transport Assignment for Object Detection code:https://github.com/Megvii-BaseDetection/OTA 背景 标签分配(Label Assignment)是目标检测中重要的一环,经典的标签分配策略采用预定义的规则…

Type-challehges learning: pick

type-challenges/README.zh-CN.md at main TIMPICKLE/type-challenges GitHub 最近真的是迷上了type-challenges。无法自拔 TS真是太香了&#xff01; 今天手写一个pick 从类型定义的属性中&#xff0c;选取指定一组属性&#xff0c;返回一个新的类型定义。 type Pick<T…

Npm——发布依赖库并使用

1. 注册一个NPM账号 npm官方地址&#xff1a;https://www.npmjs.com/ 2. 在本地创建一个目录,输入npm初始化命令&#xff0c;并修改package.json,创建src/index.js入口文件 npm init --yespackage.json name npm发布时的包名&#xff0c;和已有的npm库不能重复version 包版本…

网络安全——SQL注入之安全狗bypass深度剖析

作者名&#xff1a;Demo不是emo 主页面链接&#xff1a;主页传送门 创作初心&#xff1a;舞台再大&#xff0c;你不上台&#xff0c;永远是观众&#xff0c;没人会关心你努不努力&#xff0c;摔的痛不痛&#xff0c;他们只会看你最后站在什么位置&#xff0c;然后羡慕或鄙夷座…

这些调试API技巧你熟悉吗?

通常&#xff0c;我们在调试第三方提供的API时&#xff0c;有时候并没那么顺畅&#xff0c;甚至可能本身就是API服务有问题&#xff0c;但是需要提供你结论的"依据"。下面整理了一些API调试技巧&#xff0c;也方便你甩锅 简单来说分为以下两点 检测状态信息检测返回…

MySQl(八):索引机制

MySQl&#xff1a;索引索引概述索引结构B树的演变过程B树Hash索引分类聚集索引和二级索引### 回表查询思考索引语法普通索引联合索引删除索引索引使用索引使用规则之验证索引效率索引使用规则之最左前缀法则索引使用规则之索引失效情况索引使用规则之SQL提示索引使用规则之覆盖…

java多线程

最近看了寒食君的java多线程的教程&#xff0c;感觉深受启发&#xff0c;做个笔记以后方便回忆。 寒食君的个人空间-寒食君个人主页-哔哩哔哩视频 java多线程 什么是线程模型? JVM线程与操作系统线程之间存在着某种映射关系&#xff0c;这两种不同维度的线程之间的规范和协…

SpringCloud微服务(十)——Hystrix服务降级熔断限流

Hystrix服务降级熔断限流 SpringCloud&#xff0c;已停更 前言 分布式系统面临的问题&#xff0c;复杂分布式体系结构中的应用程序&#xff0c;有数10个依赖关系&#xff08;feign调用&#xff09;, 每个依赖关系在某些时候将不可避免地失败。低耦合就是微服务之间关系少。当…

pytorch初学笔记(十):神经网络基本结构之最大池化的使用

目录 一、最大池化&#xff1a;下采样 1.1 参数介绍 1.2 公式 二、最大池化的作用和目的 三、代码实战 3.1 题目要求 3.2 池化的具体实现 3.2.1 步骤 3.2.2 报错及其原因 3.2.3 ceil_mode不同运行的结果不同 3.2.4 完整代码 3.3 tensorboard可视化 一、最大池化&…

【强化学习论文合集】AAMAS-2022 强化学习论文 | 2022年合集(三)

强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。 本专栏整理了近几年国际顶级会议中,涉及强化学习(Rein…

相控阵天线(六):直线阵列特殊综合方法(变形泰勒综合法、贝利斯综合法、伍德沃德抽样法)

目录简介变形泰勒综合法贝利斯综合法伍德沃德-劳森抽样法配相抵消法简介 阵列天线的综合问题是其分析的逆问题&#xff0c;即是在预先给定辐射特性(如方向图形状、副瓣电平等)的情况下&#xff0c;综合出阵列激励幅度和相位。其中特殊综合主要包括&#xff1a;左右副瓣电平不相…

关于Idea合并不同分支代码你怎么看

一、环境说明 1. IDEA版本 2020.1 2. git版本 2.33.0 二、整体合并 1. 软件开发中&#xff0c;在一次版本迭代过程中&#xff0c;大家可能会在同一个开发分支dev进行开发&#xff0c;同时开发不同功能 &#xff0c;开发完以后需要自行合并到测试分支test&#xff0c;交给测试…

Feign高级实战-源码分析

目录参考导读什么是FeignFeign 和 Openfeign 的区别OpenFeign的启动原理在启动类申明EnableFeignClientsregisterDefaultConfigurationregisterFeignClientsregisterFeignClientgetTarget()创建一个代理对象HttpClientFeignLoadBalancerConfigurationOpenFeign 的工作原理动态代…

多策略协同改进的阿基米德优化算法及其应用(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

论文阅读:On the User Behavior Leakage from Recommender System Exposure

论文地址 Motivation&#xff1a; 现阶段对于用户行为的保护仅仅从用户端来考虑&#xff0c;比如用户的行为数据等。然而推荐系统是一个闭环的过程&#xff0c;即用户交互了物品&#xff0c;推荐系统根据用户的交互信息去推荐物品&#xff0c;用户也会根据推荐系统推荐的物品做…

[Java] 浅析rpc的原理及所用到的基本底层技术

文章目录前言阅读前须知rpc是什么&#xff1f;别的进程 vs 别的机器rpc的目的或是我们为什么需要rpc&#xff1f;实现rpc所涉及到的底层技术1. 通信技术&#xff08;网络IO、Network IO&#xff09;套接字&#xff08;Socket&#xff09;bio、nio与Netty2. 网络协议&#xff08…

【仿真建模】第三课:AnyLogic入门基础课程 - 多层建筑行人疏散仿真讲解

文章目录一、Agent类的概念二、行人疏散仿真2.1 仿真模型示意图2.2 具体实现步骤一、Agent类的概念 二、行人疏散仿真 2.1 仿真模型示意图 2.2 具体实现步骤 首先&#xff0c;新建模型 新建一个MyFloor1对象&#xff0c;代表第一个楼层 创建矩形墙&#xff0c;并放到原点…

专业数采软件DXP OPC Server售后问题解决方案

DeviceXPlorer OPC Server是一套实现工业自动化设备数据读取或发送的软件。它提供与制造车间中的控制设备&#xff08;如 PLC、机床和机器人&#xff09;的连接&#xff0c;支持200多种设备通讯协议&#xff0c;便捷的配置&#xff0c;快速实现设备联网采集。 在与设备通讯方面…

HTML+CSS大作业 环境网页设计与实现(垃圾分类) web前端开发技术 web课程设计 网页规划与设计

&#x1f380; 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

idea永久设置maven配置,新项目不用再设置

在这里设置就是永久的设置&#xff0c;新项目将使用该设置&#xff0c;maven的配置也在新项目和新模块创建的时候直接加载 英文的话&#xff0c;看位置大概也应该可以找到 点开后左上角搜索maven&#xff0c;找到如图maven的设置 主路径就是maven的安装包软件的路径 用户设置…