跨时钟域学习记录(一)

亚稳态

  亚稳态是电平介于高低电平之间的一种暂时状态。在同步系统中,当寄存器的信号无法满足建立时间和保持时间时,输出端的信号就可能出现亚稳态。在异步系统中,亚稳态并非一定在建立时间和保持时间无法满足时出现。
  受噪声、温度、电压纹波等因素的影响,多数情况下,信号在经过一段时间(受工作条件影响)后会从亚稳态回到一个稳定的状态,然而具体逻辑电平的值是不可预知的(0或1)。
  下图以滚球模型形式介绍了寄存器输出的三种可能状态。
在这里插入图片描述

  亚稳态发生时,寄存器输出信号存在0、1、亚稳态三种可能,可能会导致下级电路出现不可预测的故障行为。不从根本上遏制亚稳态的传输,会增大系统故障概率。

平均故障时间与故障概率

  • 平均故障时间

  衡量两次亚稳态导致系统故障的平均时间可以用平均故障时间(MTBF, mean time before failure)表示,
M T B F = e t M E T / C 2 C 1 f c l k 1 f c l k 2 MTBF=\frac {e^{t_{MET} / C_2}} {C_1 f_{clk1} f_{clk2}} MTBF=C1fclk1fclk2etMET/C2
  其中 C 1 C_1 C1 C 2 C_2 C2为与工艺、工作条件相关的常量, f c l k 1 f_{clk1} fclk1 f c l k 2 f_{clk2} fclk2为进行同步的两个时钟的时钟频率, t M E T t_{MET} tMET是同步链中所有寄存器输出信号时序裕量之和。由于指数关系,增加 T m e t T_{met} Tmet(提高同步链每级的时序裕量、增加同步链的级数)可以显著提高平均故障时间。
  除上述因素外,数据的翻转频率也会影响故障时间,翻转频率越高,故障概率越高。(稳定数据跨时钟传输不易出现亚稳态)

  • 故障概率

在这里插入图片描述
  如上图,单比特长电平信号的跨时钟域传输通常采用两级触发器同步器,经过两级触发器处理,亚稳态传输到下游触发器后继续输出亚稳态的概率会减小。两级触发器同步出现亚稳态的故障概率是平均故障时间的倒数:
q f a i l u r e = 1 M T B F q_{failure}=\frac {1} {MTBF} qfailure=MTBF1
  若设计中存在多个独立的跨时钟域信号,则系统的故障概率为:
Q f a i l u r e = ∑ q f a i l u r e = ∑ 1 M T B F Q_{failure}=\sum q_{failure} = \sum \frac {1} {MTBF} Qfailure=qfailure=MTBF1
  系统的平均故障时间为:
M T B F s y s = 1 ∑ 1 M T B F MTBF_{sys}=\frac 1 {\sum \frac {1} {MTBF}} MTBFsys=MTBF11

消除跨时钟域过程的亚稳态

单比特长脉冲、慢时钟到快时钟信号同步

1. 时序逻辑信号同步

  亚稳态主要在不同时钟域交界处出现,以下图为例,在某时钟上升沿处,D1的输入端已经建立稳定的逻辑电平,则c1能够正确输出结果;D2的输入端在时钟上升沿后稳定,则c2会比c1落后一个时钟周期,D3在时钟沿上升沿附近跳变,则c3会出现一个亚稳态。

在这里插入图片描述
  为了减少亚稳态发生的概率,通常采用多级触发器组成同步链的方式,如下图所示,这种方式可以显著增加平均故障时间。
在这里插入图片描述
   对于上两张图所示的跨时钟多径信号传输(clk1时钟域下信号a在clk2的扇出大于1),c1、c2、c3对于同一输入b可能产生不同的采样结果,因此对于多径信号传输最好采用先对跨时钟信号同步,再将同步后的信号分发的方式。
在这里插入图片描述

2. 组合逻辑信号同步

   组合逻辑各输入信号的时序弧和传输延时存在差异,使得组合逻辑输出端可能出现窄脉冲或毛刺,从而具有更高的信号的翻转率,更短寄存器同步链的故障时间,更高的故障概率。
在这里插入图片描述
在这里插入图片描述
   为了解决组合逻辑的问题,可以采用在源时钟域先采样寄存再同步的方式,能够显著消除毛刺、窄脉冲,降低输出信号的翻转率。
在这里插入图片描述

单比特短脉冲、快时钟到慢时钟信号同步

1. 延长脉冲宽度的同步

   如下几幅图所示,短、脉冲信号从快时钟同步到慢时钟时,可能出现信号丢失。

在这里插入图片描述
   clk1的整个脉冲落在clk2的一个时钟周期内,会出现信号丢失。
在这里插入图片描述
   clk1的整个脉冲正好落在clk2的一个完整时钟周期,由于信号变化出现在时钟沿附近,容易引起亚稳态,若亚稳态未因此输出信号从旧数据变到新数据,同样会出现信号丢失。
在这里插入图片描述
   通常情况下,只有当clk1的整个脉冲宽度达到clk2的1.5倍时钟周期时,才能保证脉动信号不被遗漏。

2. 带反馈的同步

   采用延长脉动宽度的同步方式依赖于clk1与clk2的周期关系,不具有广泛适用性和可移植性。如下图所示的采用反馈信号的同步方式更具有广泛适用性。
   当信号b从低电平翻转到高电平后,clk2对信号b进行两级触发器同步采样得到信号d,clk1通过两级触发器同步采样得到ack2,当ack2的值与a相同为高电平时,同步一定完成,此时信号b返回低电平,再次等到ack2返回低电平,完成一次脉冲信号的传输。
   这种采用反馈信号的方式能够保证不会出现信号丢失,然而反馈信号的引入会带来额外的延时,导致操作周期较长。
在这里插入图片描述
在这里插入图片描述

多比特信号同步

  由于亚稳态在传输过程中行为的随机性,多比特数据传输可能存在一个周期的不定态,以下图为例。信号s0, s1通过两级触发器从clk1同步到clk2的信号d0,d1。
  当{s0, s1}信号从{1’b0, 1’b1}变到{1’b1, 1’b0}时,{d0, d1}信号在从{1’b0, 1’b1}变到{1’b1, 1’b0}的过程中还可能出现一个周期的{1’b0, 1’b0}或{1’b1, 1’b1}状态。
在这里插入图片描述
在这里插入图片描述
  因此,通常多比特信号的同步需要引入额外的单比特信号作为有效信号。

在这里插入图片描述

  对于数据流场景,设计没有额外的时间传递同步有效信号,需要使用存储器件处理并行数据的跨时钟域转换,在FPGA上,并行多比特数据的跨时钟域转换需要用到FIFO或DPRAM(Dual Port RAM)。无论哪种方式,都需要保证源时钟域的带宽不高于目的时钟域的带宽,这样才能防止信号丢失。

1. FIFO

  采用FIFO进行数据同步还需要确保突发的数据写入量不会导致FIFO溢出,否则除了信号丢失外,还可能导致写指针跑飞。
   如下图所示,FIFO的Almost Full / Almost Empty信号在处理跨时钟域情景时能够提供灵活的FIFO控制方式。
在这里插入图片描述
   下面列举了三种依靠Almost Full / Almost Empty信号握手进行读写异步FIFO,进行数据同步的方式。

A. 慢写入、快读出

   这种方式持续写入数据,在Almost Full有效时开始读出数据,直到Almost Empty有效后结束读数据,依次往复。
在这里插入图片描述

B. 快写入、慢读出

   这种方式持续读出数据,在Almost Empty有效时开始写入数据,直到Almost Full有效后结束写数据,依次往复。
在这里插入图片描述

C. 等速传输

   这种方式不依赖Almost Full / Almost Empty信号,保证FIFO不会溢出或读空,这种无握手的等速传输一般不如依赖Almost Full / Almost Empty信号可靠。
在这里插入图片描述

2. DPRAM

   在使用时与FIFO类似,不过需要设计异步时钟间握手信号的产生、同步方式、地址、控制信号的产生。可参考牛客网异步FIFO设计习题如何将DPRAM设计为异步FIFO。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ZYNQ学习之PetaLinux开发环境搭建

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ FTP&#xff1a;File Transfer Protocol 一、Ubuntu 和 Windows 文件互传 1.1、开启 Ubu…

HarmonyOS系统开发ArkTS常用组件文本及参数(五)

目录 一、Text组件 1、Text组件案例 二、Text组件参数 1、string字符串类型 2、Resources类型 2.1、resources中内容配置 base/element/string.json 中的内容 zh_US/element/string.json 中的内容 es_US/element/string.json 中的内容 2.2、环境适配 适配英文 适配中文…

初探Ruby编程语言

文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好&#xff0c;今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘&#xff08;Yukihiro Matsumoto&#xff09;于1993年发明…

计算机网络实验——学习记录二(HTTP协议)

1. Linux主机上连接互联网的网络接口是&#xff1a;ens33。 2. 在显示过滤器&#xff08;Filter&#xff09;中输入“ http.host www.zzu.edu.cn”&#xff0c;筛选出HTTP协议报文首部行中包含“ Host&#xff1a;www.zzu.edu.cn”的报文&#xff08;目的地址是Web服务器的报…

微前端——qiankun

一、微前端 微前端是指存在于浏览器中的微服务&#xff0c;其借鉴了后端微服务的架构理念&#xff0c;将微服务的概念扩展到前端。即将一个大型的前端应用拆分为成多个模块&#xff0c;每个微前端模块可以有不同的团队开发并进行管理&#xff0c;且可以自主选择框架&#xff0…

RSTP、MSTP、VRRP

RSTP协议原理与配置 问题一、STP的收敛延时&#xff08;30秒&#xff08;有BP端口情况下RP端口down&#xff09;或者50秒&#xff08;没有BP端口情况下RP端口down&#xff09;&#xff09; RSTP&#xff1a;Rapid Spanning Tree Protocol RSTP和STP从原理流程上一样&#xf…

Vivado的SIMULATION的Scope和source的层级怎么看

一、查看source source的层级可以很容易看出来&#xff0c;上面是tb文件的名称&#xff0c;下面的 axi_full_wrapper : axi_full_wrapper (axi full wrapper.v) (1)中&#xff0c;右边的那个axi_full_wrapper是模块名称&#xff0c;也是源文件名称&#xff08;因为module之后接…

天正T20V10 下载地址及安装教程

天正软件是一家专业的工程设计软件和解决方案提供商&#xff0c;主要致力于建筑、结构、暖通、给排水、电气等领域的设计和施工工程。他们开发和提供多种软件产品&#xff0c;涵盖了建筑设计、结构设计、暖通空调设计、给排水设计、电气设计等方面。 天正软件的产品具有丰富的…

Python的7大就业方向!小白适合哪个方向?学了Python能干什么?

每个程序员都有自己主要的开发语言&#xff0c;并且都认为自己的语言是最好的&#xff0c;懂的朋友在评论区里打个666~ 我的主要开发语言是Python&#xff0c;Python在我们编程圈里呢&#xff0c;是非常流行。 最近两年甚至火出了编程圈&#xff0c;越来越多不是程序员的朋友也…

Vulnhub:DR4G0N B4LL: 1

目录 信息收集 1、arp 2、nmap WEB web信息收集 gobuster 隐藏目录发现 图片隐写 ssh登录 提权 get user 系统信息收集 get root 信息收集 1、arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l …

谷歌seo怎么优化产品推广?

想要在谷歌SEO上优化产品推广&#xff0c;关键在于理解和利用搜索引擎的工作原理来提升你的产品在搜索结果中的可见性&#xff0c;结构化数据就很重要了&#xff0c;它能让谷歌更容易理解你的页面内容&#xff0c;让他知道你这个页面不是文章页&#xff0c;主页&#xff0c;而是…

【AI】大模型API调研及推荐

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 【AI】大模型API调研及推荐引入调研KimiAPI对接 国内GPT4的转发API对接 总结 【AI…

生态系统碳循环模型CENTURY 建模方法

原文链接&#xff1a;生态系统碳循环模型CENTURY 建模方法https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598976&idx6&snb684175e24c5600a69033a838535078d&chksmfa820267cdf58b71cb1d119dfe101f7b3a312e8c0b1b8ef4adbef2894aa902b290ef7e091de2&am…

Lightroom Classic 2024,成就专业摄影梦想mac/win版

Lightroom Classic 2024是一款功能强大的数字图像处理和管理工具&#xff0c;专为摄影师和摄影爱好者设计。它提供了丰富的照片调整、处理、管理和分享功能&#xff0c;帮助用户轻松管理、编辑和展示他们的照片。 Lightroom Classic 2024软件获取 首先&#xff0c;Lightroom C…

MixKG: Mixing for harder negative samples in knowledge graph---没代码

摘要 知识图嵌入(KGE)旨在将实体和关系表示为低维向量&#xff0c;用于许多现实世界的应用。实体和关系的表征是通过对比正负三联体来学习的。因此&#xff0c;高质量的阴性样品在KGE中是非常重要的。然而&#xff0c;目前的KGE模型要么依赖于简单的负抽样方法&#xff0c;这使…

为什么有的测径仪断电重启后自动恢复,有的手动恢复

关键字&#xff1a;测径仪断电重启&#xff0c;测径仪自动恢复&#xff0c;测径仪严重故障&#xff0c;测径仪手动恢复&#xff0c;蓝鹏测控 测径仪断电重启后能否自动恢复&#xff0c;主要取决于其内部的设计、配置以及所面对的具体问题。 对于大多数智能测径仪来说&#xf…

机器学习-05-回归算法

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中回归算法&#xff0c;包括线性回归&#xff0c;岭回归&#xff0c;逻辑回归等部分。 参考 fit_transform,fit,transform区别和作用详解&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&am…

【Java】基于SpringCloud的考研复试辅导平台

1、前端请求后端服务提供的接口。 2、后端服务的控制层Controller接收前端的请求。 3、Contorller层调用Service层进行业务处理。 4、Service层调用Dao持久层对数据持久化。 XXX-api&#xff1a;接口工程&#xff0c;为前端提供接口。 XXX-service: 业务工程&#xff0c;为…

模型怎么处理不同尺寸的输入图像

1.有全连接层的的CNN模型 卷积能够处理不同尺寸的输入图像&#xff0c;但全连接层不行&#xff0c;因此在送入全连接层之前需将卷积层提取的特征转换为一个固定长度的特征向量。 那么如何转换&#xff1f; 1.1 GAP(Global Average Pooling)全局平均池化 直接代码举例&#…

后端常问面经之Spring和Mybatis框架

Spring的IOC介绍一下&#xff1a; 所谓控制就是对象的创建、初始化、销毁。 创建对象&#xff1a;原来是 new 一个&#xff0c;现在是由 Spring 容器创建。 初始化对象&#xff1a;原来是对象自己通过构造器或者 setter 方法给依赖的对象赋值&#xff0c;现在是由 Spring 容器…