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

news2024/11/25 2:26:54
  • 什么是亚稳态
  • 亚稳态会造成什么
  • 平均故障间隔时间
  • 如何解决亚稳态
  • 同步时钟和异步时钟
  • 单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.coloradmin.cn/o/1591489.html

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

相关文章

c语言例题,求数组中最大值,99乘法口诀表

例题1:求出数组中最大的值 根据题意,我们知道的是需要从一个数组中找到一个最大的元素并且输出。那首先我们先建立一个数组,然后将一些不有序的整型元素放到数组中,然后再建立一个变量来存放数组中的第一个元素,通过一…

使用avx2 指令集加速向量算法运算

使用cpu-z 查看cpu指令集 2 向量加&#xff0c;乘法&#xff0c;除法 我们使用向量加&#xff0c;为什么函数是0 到 8 的计算&#xff0c;因为avx2 寄存器为256位&#xff0c;同时设置启动增强指令集 #include <immintrin.h> // 引入包含AVX2指令集的头文件void vecto…

AI识别技术详解 --在windows环境中部署基于YOLO v8模型的目标检测

首先 YOLO是一个端到端的目标检测算法&#xff0c;一次前向传播计算&#xff0c;实现图像的多目标检测任务&#xff0c;我么可以在ultralytics官网上查看YOLO的各个版本&#xff08;v1-v8&#xff09;以及源码 使用YOLO v8提供的python接口&#xff0c;训练一个佩戴安全帽的目标…

vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示

vue 百度地图 使用 vue-baidu-map 进行当前位置定位和范围展示&#xff08;考勤打卡&#xff09; 一、创建百度地图账号&#xff0c;获取秘钥二、 引入插件1、安装vue-baidu-map2、在main.js中引入 三、 简单使用 最近写项目的时候&#xff0c;做到了考勤打卡的模块内容&#x…

Qt控件---容器类

文章目录 QGroupBox&#xff08;有标题的分组框&#xff09;QTabWidget&#xff08;带有标签页控件&#xff09; QGroupBox&#xff08;有标题的分组框&#xff09; 属性说明title分组框的标题alignment分组框内部内容的对齐方式flat是否为 扁平 模式checkable是否可选&#x…

僵尸进程和孤儿进程

目录 引言僵尸进程僵尸进程的状态僵尸进程周边知识 孤儿进程孤儿进程的状态 进程中的其他状态①.R---表示进程运行状态。②.S---表示进程的休眠状态。(进程什么都没做)③T 和 t 进程的运行、阻塞和挂起运行阻塞挂起状态&#xff1a; 引言 今天我们来将僵尸进程和孤儿进程以及其…

两数之和-第12届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第51讲。 两数之和&#xf…

深入解析API技术:原理、实现与应用

在现代软件开发中&#xff0c;API&#xff08;应用程序接口&#xff09;扮演着至关重要的角色。API 允许不同的软件应用程序和系统之间进行通信和数据交换&#xff0c;从而构建出更加高效、灵活和可扩展的软件解决方案。本文将深入解析API技术的原理、实现方法&#xff0c;并附…

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例

FANUC机器人通过ROBOGUIDE实现与实际的机器人进行程序导入导出的具体方法示例 如下图所示,在电脑的开始菜单中找到”Robot Neiborhood”,点击进入, 如下图所示,设置要连接的机器人名称和主机IP地址(要确保自己的电脑和机器人IP地址在同一网段内),点击Add添加, 添加在线…

TCP 三次握手与四次挥手面试题(计算机网络)

TCP 基本认识 TCP 头格式有哪些&#xff1f; 序列号&#xff1a;在建立连接时由计算机生成的随机数作为其初始值&#xff0c;通过 SYN 包传给接收端主机&#xff0c;每发送一次数据&#xff0c;就「累加」一次该「数据字节数」的大小。用来解决网络包乱序问题。 确认应答号&a…

成都百洲文化传媒有限公司电商领域的新锐力量

在电商服务领域&#xff0c;成都百洲文化传媒有限公司凭借其专业的服务理念和创新的策略&#xff0c;正逐渐成为行业内的翘楚。这家公司不仅拥有资深的电商团队&#xff0c;还以其精准的市场定位和高效的服务模式&#xff0c;赢得了众多客户的信赖和好评。 一、专业团队&#…

基于 FPGA 的 DE1-SoC 功率估算器

Introduction 功耗是当今许多技术都要考虑的重要因素。例如&#xff0c;手机生产商总是谈论他们在电源管理方面的改进&#xff0c;以及如何延长电池的使用寿命。功能与功耗之间的平衡是许多人都在研究的有趣课题。然而&#xff0c;当我们做实验时&#xff0c;我们很少会考虑我…

centos7上docker搭建vulhub靶场

1 vulhub靶场概述 VulHub是一个在线靶场平台&#xff0c;提供了丰富的漏洞环境供安全爱好者学习和实践。 该平台主要面向网络安全初学者和进阶者&#xff0c;通过模拟真实的漏洞环境&#xff0c;帮助用户深入了解漏洞的成因、利用方式以及防范措施。 此外&#xff0c;VulHub还…

信号完整性的常见术语概念(面试常用)

目录 术语 概念一览 1&#xff0e;信号完整性&#xff08;Signal Integrity&#xff09; 2&#xff0e;传输线&#xff08;Transmission Line&#xff09; 3&#xff0e;特性阻抗&#xff08;Characteristic Impedance&#xff09; 4&#xff0e;反射&#xff08;Reflecti…

Stable Video Diffusion(SV3D)安装和测试(windows10)

SVD 安装教程 1.安装miniconda https://docs.anaconda.com/free/miniconda/index.html 2.创建python环境 conda create --name sv3d python3.10conda activate sv3d3.安装triton2.0.0 下载地址&#xff1a;https://huggingface.co/r4ziel/xformers_pre_built/resolve/mai…

AndroidAutomotive模块介绍(一)整体介绍

前言 Android Automotive 是一个基本 Android 平台&#xff0c;可运行 IVI 系统中预安装的 Android 应用以及可选的第二方和第三方 Android 应用。 本系列文档将会系统的介绍 Android Automotive 的功能、架构、逻辑等。模块逻辑将从 应用api接口、系统服务、底层服务&#x…

Arduino _按键点亮——led

int8_t led_pin13;int8_t led2_pin12; void setup() {// put your setup code here, to run once:pinMode(led_pin, INPUT);//输入pinMode(led2_pin, OUTPUT);//输出 }void loop() {// put your main code here, to run repeatedly:if(digitalRead(led_pin)1){//digitalRead(…

校园通用型发生网络安全事件解决方案

已知校园多教学楼、多教学机房、非标网络机房缺乏防护设备、检测设备、安全保护软件(杀软) 切断所有外网&#xff0c;断网处理!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 部署路由系统可选择爱快、routeros、openwrt。等。可将日志上传到日志分析系统。《这项非必要的》 部署开源防火…

弱口令入侵FE企业管理平台【附口令】

漏洞描述 飞企互联-FE企业运营管理平台 druid路径弱口令&#xff0c;攻击者可能通过尝试弱口令&#xff0c;非法进入系统&#xff0c;恶意操作或者收集信息进一步攻击利用。 漏洞复现 1、Fofa app"飞企互联-FE企业运营管理平台"2、零零信安 (html_banner360浏览…

使用Docker Registry-v2搭建镜像仓库详细教程

我们使用docker来部署私有化镜像仓库… 1、下载 registry:v2 镜像 docker pull registry:22、在私有仓库所在的主机目录新建一个文件夹&#xff0c;用于持久化保存仓库中的镜像 mkdir -p /opt/registry3、启动registry镜像 使用docker镜像启动私有仓库容器服务&#xff0c;…