数字IC/FPGA——亚稳态及跨时钟域

  • 什么是亚稳态
  • 亚稳态会造成什么
  • 平均故障间隔时间
  • 如何解决亚稳态
  • 同步时钟和异步时钟
  • 单bit电平信号如何跨时钟域
  • 单bit脉冲信号如何跨时钟域
  • 多bit信号如何跨时钟域

目录

    • 一、亚稳态
      • 1.基本概念
      • 2.危害
      • 3.平均故障时间
      • 4.解决亚稳态的方法
    • 二、跨时钟域
      • 1.同步电路和异步电路
        • (1)同步电路
        • (2)异步电路
      • 2.单bit跨时钟域
        • (1)电平信号
        • (2)脉冲信号
      • 3.多bit跨时钟域
        • (1)格雷码
        • (2)DMUX
        • (3)异步FIFO

一、亚稳态

1.基本概念

亚稳态是指触发器无法在某个规定时间内达到一个确定的状态,当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时****输出才能稳定在某个正确的电平上。在这个期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去

在这里插入图片描述

从CMOS层级分析亚稳态产生的原因,下图是一个CMOS反相器的传输特性曲线:

在这里插入图片描述

电子技术——CMOS反相器-CSDN博客

其中BC段为MOS的放大器区,在BC端具有无限大的增益。将输入电压和输出电压相等的点即Vm=VDD/2称作是反相器的阈值电压,电平在这个点附近迅速完成了电平切换。

当输入电压处于0—V_IL时,反相器认为输入为低电平;当输入电压处于V_IH—VDD时,反相器认为输入为高电平。当输入电压处于V_IL—VIH之间时,反相器有可能会将其判断为低电平或高电平中的任意一种。

当输入数据不能够满足寄存器的建立时间和保持时间要求时,采样到的电压就可能会处于上述的V_IL和V_IH之间的区间,就会导致输出处于亚稳态。

2.危害

由于产生亚稳态后,寄存器Q端输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值。在信号传输中产生亚稳态就会导致与其相连其他数字部件将其作出不同的判断,有的判断到“1”有的判断到“0”,有的也进入了亚稳态,数字部件就会逻辑混乱

3.平均故障时间

平均故障时间指的是系统两次发生故障之间系统平均正常工作的时间,他是系统发生故障概率的倒数。用MTBF表示。平均故障间隔时间越长,系统越可靠。

M T B F = e t M E T / C 2 C 1 ⋅ f C L K ⋅ f D A T A MTBF=\frac{e^{t_{MET}}/C_2}{C_1\cdot f_{CLK}\cdot f_{DATA}} MTBF=C1fCLKfDATAetMET/C2

t_MET代表寄存器从时钟上升沿触发后的时序余量时间;

C1、C2与器件有关的参数,器件的建立时间和保持时间越小,C2越小

f_DATA是数据的变化频率

f_CLK是接收时钟域的时钟频率

4.解决亚稳态的方法

亚稳态不能消除,只能降低其发生的概率。

我们从MTBF入手:当数据的变化频率和接收时钟域的时钟频率越低,C2越小,MTBF越大。

因此可有以下几种方法:

(1)降低时钟频率;

(2)采用反应更快的触发器;

(3)跨时钟域处理。

二、跨时钟域

1.同步电路和异步电路

(1)同步电路

同步电路是指电路中所有由时钟控制的单元,都由一个统一的全局时钟控制。

优点

①时序收敛;

②可以避免噪声和毛刺的影响(采用的是边沿触发器)

缺点

时钟偏移的存在会导致时钟树综合时加入缓冲单元,以保证时钟偏移能够维持在一个较小的水平,这样使得电路的面积和功耗增加

(2)异步电路

电路中不是由一个统一的时钟控制,数据传输可以发生在任何时候。

优点:

①由于是异步时钟,无需考虑时钟偏移问题;

②相同条件下比同步电路功耗低;

缺点:

①设计复杂,缺少EDA工具支持;

②很大概率存在竞争与冒险;

③一般无法对异步电路进行静态时序分析。

2.单bit跨时钟域

(1)电平信号

电平信号是指长时间稳定在高电平或低电平的一种信号。因此对其进行跨时钟域处理时,可以直接在接收时钟域对数据进行打拍处理即可,一般为经过两级同步器。

跨时钟域之全面解析_cdc path-CSDN博客

在这里插入图片描述

需要注意的是,经过两级同步器并不代表数据采样一定正确,只是可以降低亚稳态发生的概率。

(1)如果亚稳态维持的时间不止一个周期,在下一个时钟上升沿没有稳定,那么第二级的FF也会进入亚稳态,这种情况的概率是1/MTBF

(2)第一级亚稳态在下一个时钟上升沿稳定,但是被是识别为0,那么第二级的FF输出bq2_dat就是0,说明信号跨时钟采样失败。但是这种情况不会造成亚稳态的传播,也就是不会影响后面的设计。针对这种情况,一般会改变设计,不会让快时钟域的单周期脉冲,跨时钟到慢的时钟内采样。

为什么跨时钟信号必须是寄存器的输出,中间不能有组合逻辑?

参考下面这篇文章,写的非常好。

跨时钟域之全面解析_cdc path-CSDN博客

在这里插入图片描述

观察图中我们可以发现,当采用组合逻辑后,会出现adat在一个周期内出现了多次跳变,也就是说数据变化的频率变大了,而参考MTBF的公式,当数据频率变大时会导致平均故障间隔时间变小,因此会提高亚稳态发生的概率。

(2)脉冲信号

脉冲信号是指在源时钟下只保持一个时钟周期的信号,为保持其信号特性,跨时钟后该信号需要在目的时钟域下也只保持一个时钟周期。需要考虑原时钟和目的时钟的频率关系,并在设计中采取不同的方式。

①慢时钟域到快时钟域

直接进行采样可能导致目的时钟对脉冲的重复采样。

将采样信号在目的时钟域打两拍稳定数据,再根据额外打一拍之后做边沿采样(与非),产生脉冲。

在这里插入图片描述

在这里插入图片描述

②快时钟域到慢时钟域

这种情况下可能会发生漏采,因此需要先对脉冲信号进行展宽,在源时钟域下根据脉冲信号生成电平信号,检测脉冲信号,将电平信号翻转一次。之后进行两级同步,再提取信号边沿(异或)。

在这里插入图片描述

3.多bit跨时钟域

(1)格雷码

格雷码相邻两个数之间只有1bit变化,只要其是连续变化,就可以通过两级同步器进行跨时钟域。

在这里插入图片描述

(2)DMUX

对于数值非连续变化数据保持多拍的多bit信号,可以通过DMUX同步器的方式来进行跨时钟域。

其实现方式为:

对数据有效信号通过两级同步器进行跨时钟域,之后在目的时钟域提取边沿信号,然后再在目的时钟域采样数据信号,因为此时数据信号已经稳定。但是这是对于原时钟域慢目的时钟域快的情况,当原时钟域快目的时钟域慢时需要对有效信号进行展宽,然后跨时钟域。

在这里插入图片描述

在这里插入图片描述

通常同步器模块的输入和多周期路径规划数据路径需要使用set_false_path命令。因为同步器的输入会出现时序问题。

(3)异步FIFO

对于数值非连续变化并且数据保持一个时钟周期的情况,应使用异步FIFO进行跨时钟域处理。

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

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

相关文章

RNN知识体系构筑:详尽阐述其理论基础、技术架构及其在处理序列数据挑战中的创新应用

一、为什么需要RNN 尽管神经网络被视为一种强大且理论上能够近似任何连续函数的模型,尤其当训练数据充足时,它们能够在输入空间中的某个点( x )映射到输出空间的特定值( y ),然而,这并不能完全解释为何在众多应用场景中&#xff…

牛客2024【牛客赛文X】春招冲刺ONT61 每日温度【hard 单调栈 Java、Go、PHP】

题目 题目链接: https://www.nowcoder.com/practice/1f54e163e6944cc7b8759cc09e9c78d8 思路 单调栈最直接的应用就是获取数组中每个位置i,i的左边第一个比i大或者小的位置/数以及,i的右边第一个比i大或者小的位置/数不懂的同学看这里https://blog.csdn.net/Borsl…

String类中常见面试题

1.string类属于基本类型吗? string类不是基本类型;它属于引用数据类型 2.操作字符串的类有哪些?有什么区别? 有三种:string,stringBuilder,stringBuffer 区别: String:不可变类,字符串一旦被创建就不能…

Unity打包出来的apk安装时提示应用程式与手机不兼容,无法安装应用程式

1、遇到的问题 * 2、解决办法 这是因为你在Unity中导出来的apk手机安装包是32位的,才导致上述问题发生,要解决这个办法,需要在Unity中导出64位的手机安装包。 32位跟64位的区别,以及如何区分打出来的手机安装包是否是32位或者是…

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程

腐蚀Rust 服务端搭建架设个人社区服务器Windows教程 大家好我是艾西,一个做服务器租用的网络架构师也是游戏热爱者。最近在steam发现rust腐蚀自建的服务器以及玩家还是非常多的,那么作为服务器供应商对这商机肯定是不会放过的哈哈哈! 艾西这…

Day:004(4) | Python爬虫:高效数据抓取的编程技术(数据解析)

XPath工具 浏览器-元素-CtrlF 浏览器-控制台- $x(表达式) Xpath helper (安装包需要科学上网) 问题 使用离线安装包 出现 程序包无效 解决方案 使用修改安装包的后缀名为 rar,解压文件到一个文件夹,再用 加载文件夹的方式安装即可 安装 python若使用…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型 AI 工具,成为了超越疫情的热门词条;而在 AI 的另一个分支——绘图领域,一款名为 Midjourney(MJ&…

2024年认证杯数学建模挑战赛C题全解析

2024年认证杯C题的已经完成啦,包括参考论文,模型代码,分享给大家~ 问题分析 对于这些问题,我们首先需要确定影响日光辐射降低效应的关键参数,例如海盐气溶胶的浓度、粒子大小、分布以及喷洒高度和范围。同…

再写-全景拼接

全景拼接 1. 将读取进行灰度转化,并且输出图像,关键点和计算描述 import cv2 import numpy as np# 将读取进行灰度转化,并且输出图像,关键点和计算描述 image_left cv2.imread("C:\\Users\\HONOR\\Desktop\\image\\pinjie…

机器人坐标系转换之从世界坐标系到局部坐标系

三角函数实现 下面是代码c和python实现&#xff1a; #include <iostream> #include <cmath>struct Point {double x;double y; };class RobotCoordinateTransform { private:Point origin; // 局部坐标系的原点在世界坐标系中的坐标public:RobotCoordinateTransfo…

【深度学习】图像风格混合——StyleGAN2原理解析

1、前言 上一篇文章&#xff0c;我们详细讲解了StyleGAN的原理。这篇文章&#xff0c;我们就来讲解一下StyleGAN2&#xff0c;也就是StyleGAN的改进版。 原论文&#xff1a;Analyzing and Improving the Image Quality of StyleGAN 参考代码&#xff1a;①Pytorch版本&#…

【Godot4.2】CanvasItem绘图函数全解析 - 7.自定义节点TextBoard

概述 之前发布的几篇文章几乎阐述了CanvasItem绘图函数最基础的内容。 本篇结合draw_style_box()和TextParagraph类&#xff0c;自定义了一个可以自适应宽高显示多行文本&#xff0c;且带有一个样式盒作为背景的文字板节点TextBoard。 系列目录 0.概述1.绘制简单图形2.设定绘…

SPP论文笔记

这篇论文讨论了在深度卷积网络中引入空间金字塔池化&#xff08;SPP&#xff09;层的方法&#xff0c;以解决传统深度卷积网络需要固定图像尺寸的限制。以下是论文各部分的总结&#xff1a; 1. 引言 论文指出现有的深度卷积神经网络&#xff08;CNN&#xff09;需要固定大小的…

全景剖析SSD SLC Cache缓存设计原理-2

四、SLC缓存对SSD的寿命是否有优化&#xff1f; 当使用QLC或TLC NAND闪存并将其切换到SLC模式进行写入时&#xff0c;会对闪存的寿命产生以下影响&#xff1a; 短期寿命提升&#xff1a; SLC模式下&#xff0c;每个存储单元仅存储一个比特数据&#xff0c;相对于QLC或TLC来说…

前端vue: 使用ElementUI适配国际化

i18n介绍 i18n&#xff08;其来源是英文单词 internationalization的首末字符i和n&#xff0c;18为中间的字符数&#xff09;是“国际化”的简称。 前端国际化步骤 1、安装i18n插件 安装插件时候&#xff0c;注意必须指定版本号&#xff0c;不然安装会报错。 npm i vue-i1…

linux 部署安装mongodb教程

现在去官网下载mongodb的tar包,在本地创建文件夹 cd /home wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz mv mongodb-linux-x86_64-rhel70-4.2.17 mongodb cd /home/mongodb mkdir log t…

GAN:对抗式生成网络之图片生成

对抗式生成网络(Adversarial Generative Network, AGN)这一术语在您提供的信息中并未直接出现。通常,在深度学习文献和实践中,与“对抗”和“生成”概念相结合的网络架构指的是生成式对抗网络(Generative Adversarial Networks, GANs)。GANs由Ian Goodfellow等人于2014年…

数据结构之单链表相关刷题

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构 数据结构之单链表的相关知识点及应用-CSDN博客 下面题目基于上面这篇文章&#xff1a; 下面有任何不懂的地方欢迎在评论区留言或…

wangeditor与deaftjs的停止维护,2024编辑器该如何做技术选型(一)

wangeditor暂停维护的声明&#xff1a; wangeditor是国内开发者开发的编辑器&#xff0c;用户也挺多&#xff0c;但是由于作者时间关系&#xff0c;暂停维护。 deaft的弃坑的声明&#xff1a; draft是Facebook开源的&#xff0c;但是也弃坑了&#xff0c;说明设计的时候存在很大…

LeetCode最长有效括号问题解

给定一个仅包含字符的字符串(’ 和 ‘)’&#xff0c;返回最长有效的长度(出色地-形成) 括号子弦。 示例1&#xff1a; 输入&#xff1a;s “(()” 输出&#xff1a;2 说明&#xff1a;最长的有效括号子字符串是 “()” 。 示例2&#xff1a; 输入&#xff1a;s “)()())…