当前位置: 首页 > news >正文

【CDC】跨时钟域处理方法总结一

文章目录

  • 一、概述
    • 1.异步时序
    • 2.亚稳态与建立保持时间
  • 二、跨时钟域处理
    • 1.控制信号的跨时钟域处理(单bit数据)
      • a.慢时钟域到快时钟域
      • b.快时钟域到慢时钟域
        • 握手“扩宽”快时钟域脉冲
        • 时钟停止法
        • 窄脉冲捕捉电路
    • 2.数据信号的跨时钟域处理(多bit数据)
      • (1)开环结绳法(脉冲同步)
      • (2)闭环结绳法
      • (3)异步FIFO(推荐使用)

一、概述

1.异步时序

异步时序就是一个设计中有多个时钟,每个时钟的源头不一样,即:多个时钟之间无确定性关系,称为异步时序

2.亚稳态与建立保持时间

建立时间:在时钟有效沿到达之前数据保持稳定的时间
保持时间:在时钟有效沿到达之后数据保持稳定的时间
(为啥有建立保持时间要求见:寄存器为什么有建立保持时间要求)
建立时间和保持时间组成时间窗,如果信号在这个时间窗中间发生变化,则信号有效沿采样数据得到的结果是不可预知的,即亚稳态。
亚稳态:指触发器无法在某个规定的时间段内达到一个确定的状态,介于0和1之间。亚稳态是可以传输的,导致逻辑误判系统不稳定。亚稳态是无法消除的,只能被降低。

二、跨时钟域处理

1.控制信号的跨时钟域处理(单bit数据)

a.慢时钟域到快时钟域

这里的慢时钟域到快时钟域,需要满足:目标时钟频率必须是源时钟频率1.5倍及以上,才能算慢时钟域到快时钟域。这种情况下只需要考虑跨时钟域的情况,一般根据电路的工作频率,芯片所采用的工艺,决定打2拍或3拍,即常规的同步寄存器。电路图如下:(这里以2拍寄存器为例)
在这里插入图片描述

b.快时钟域到慢时钟域

注:目标时钟频率是源时钟频率的1~1.5倍,还是按照“快时钟域到慢时钟域”的方法来处理,目的是为了保险起见
快时钟域到慢时钟域除了要处理亚稳态问题,还要防止漏采,因为如果是快时钟域中的单脉冲信号,那么慢时钟域可能无法采样到该信号

握手“扩宽”快时钟域脉冲

在这里插入图片描述 如图所示:clkf为快时钟域,clks为慢时钟域。快时钟域信号asyin_f经过寄存器r1,穿到慢时钟域,经过r2,r3两级寄存器打拍后反馈回快时钟域,r1的输入在接收到反馈回的信号之后才拉低,通过“握手”实现asyin_f信号的扩宽,时序图如下所示:
在这里插入图片描述

时钟停止法

在这里插入图片描述
如图所示,时钟停止法与握手法类似,都是快时钟域信号到慢时钟域被正确采样后,反馈回快时钟域。只是时钟停止法,是通过在异步信号到来之后,将r1的输出拉高之后将r1的时钟停掉,这时由于时钟下一个有效沿未到达,r1寄存器的输出保持高电平不变,直到慢时钟域的信号反馈回来之后,r1寄存器的时钟才开始正确翻转,r1寄存器的输出才更新。通过这种方法也能扩宽asyin_f信号,保证其能正确被慢时钟域采样,时序图如下所示:
在这里插入图片描述

窄脉冲捕捉电路

在这里插入图片描述
这种方法比上面两种方法更节约寄存器资源,该方法通过异步脉冲信号驱动寄存器r1输出拉高,当r1为高之后,asyin_f已经停止(单脉冲),因此寄存器r1的输出保持为高不斌,然后等待慢时钟域信号拉低寄存器r1的输出(clr信号,高电平有效),时序图如下所示:
在这里插入图片描述
注:上面三种方法中,第二种和第三种方法都会对寄存器时钟进行操作,在实际设计中需要综合考虑。

2.数据信号的跨时钟域处理(多bit数据)

(1)开环结绳法(脉冲同步)

开环结绳的方法:
  • 在一个数据的起始端和结束端,发送两个脉冲(clka时钟域)
  • 第一个脉冲来,就hold一个信号,直到第二个脉冲到来,把hold信号拉低(hold_clka)
  • 在clkb时钟域采样hold_clka信号,得到hold_clkb
  • 将hold_clkb恢复成两个脉冲,根据这两个脉冲来采样clka时钟域的数据

(2)闭环结绳法

闭环结绳的方法:
  • 在数据起始端,clka拉起hold,为hold_clka
  • clkb采样hold_clka,得到hold_clkb,恢复为一个脉冲,对该数据采样,反馈该脉冲到clka
  • clka得到该脉冲,拉低hold_clka;同步到clkb,拉低hold_clkb

(3)异步FIFO(推荐使用)

异步FIFO的设计见 Verilog实现异步FIFO&异步FIFO常见问题集锦

相关文章:

【CDC】跨时钟域处理方法总结一

文章目录 一、概述1.异步时序2.亚稳态与建立保持时间 二、跨时钟域处理1.控制信号的跨时钟域处理(单bit数据)a.慢时钟域到快时钟域b.快时钟域到慢时钟域握手“扩宽”快时钟域脉冲时钟停止法窄脉冲捕捉电路 2.数据信号的跨时钟域处理(多bit数据…...

【Linux】创建分区后没有识别到分区盘?

如果在使用fdisk创建分区后明明输入p可以看到新建分区,但是lsblk查看的时候没有该分区,系统可能没有识别,你需要手动重新加载一下分区。 partprobe命令 partprobe命令用于重读分区表,将磁盘分区表变化信息通知内核,请求…...

W6100-EVB-PICO做DNS Client进行域名解析(四)

前言 在上一章节中我们用W6100-EVB-PICO通过dhcp获取ip地址(网关,子网掩码,dns服务器)等信息,给我们的开发板配置网络信息,成功的接入网络中,那么本章将教大家如何让我们的开发板进行DNS域名解…...

{Fixed} Android TV国内开机不会自动连接WIFI / 连接国内网络不会更新时间

引用: 悟空百科 使用usb adb、网络adb、串口敲以下命令修改安卓全局数据库 1、写入新的ntp服务器地址 adb shell settings put global ntp_server ntp.ntsc.ac.cn2、打开网络验 //如果你是Android R 以上的电视盒子 adb shell settings put global captive_portal_mode 1/…...

【ASP.NET MVC】数据到客户端(7)

前文ViewBag数据在服务端动态生成页面,也可以传到客户端浏览器供JS使用。 一、数据从控制器到客户端 前文介绍,动态生成页面时,控制器的数据 并没有传递到 客户端,而是给自己来用,生成View 再利用http传递到客户端浏…...

InnoDB有哪些特性

事务支持:InnoDB支持ACID(原子性、一致性、隔离性和持久性)事务,可以保证数据的完整性和一致性。它使用多版本并发控制(MVCC)来实现事务的隔离性,支持读已提交和可重复读两种隔离级别。 行级锁…...

【linux--->数据链路层协议】

文章目录 [TOC](文章目录) 一、数据链路层协议概念二、以太网帧格式1.字段分析 三、局域网通信原理四、ARP协议1.结构2.作用3.ARP通信过程4.ARP协议相关命令 五、局域网内中间人原理六、DNS系统(域名系统)1.域名概念2.DNS系统组成3.DNS协议3.浏览器输入域名后的通信过程4.dig工…...

如何在pytest接口自动化框架中扩展JSON数据解析功能?

开篇 上期内容简单说到了。params类类型参数的解析方法。相较于简单。本期内容就json格式的数据解析,来进行阐述。 在MeterSphere中,有两种方式可以进行json格式的数据维护。一种是使用他们自带的JsonSchema来填写key-value表单。另一种就是手写json。…...

哪些年,我们编程四处找的环境依赖

基于Maven&#xff0c;快速构建SSM项目 <properties><!-- 将spring和有关的升级版本&#xff0c;设置为5.0.5--><spring.version>5.0.5.RELEASE</spring.version><!-- 将mybatis和有关的升级版本&#xff0c;设置为3.1.1--><my…...

物联网工程开发实施,应该怎么做?

我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 物联网工程的概念 物联网工程是研究物联网系统的规划、设计、实施、管理与维护的工程科学&#xff0c;要求物联网工程技术人员根 据既定的目标&#xff0c;依照国家、行业或企业规范&#xff0c;制定物联网…...

mysql使用SUBSTRING_INDEX拆分字符串,获取省、市、县和详细现住址

mysql使用SUBSTRING_INDEX拆分字符串&#xff0c;获取省、市、县和详细现住址 一、如何把"江西-上饶市-广丰县-大南镇古村村张家82号"拆分为省、市、县和详细现住址二、mysql的解决办法 一、如何把"江西-上饶市-广丰县-大南镇古村村张家82号"拆分为省、市、…...

Kubernetes中的就绪(readinessProbe)和存活(livenessProbe)探针

目录 案例一 案例二 readinessProbe就绪探针 readinessProbe就绪探针的作用 livenessProbe存活探针 livenessProbe存活探针的作用 探针的几种类型 探针的几个参数...

docker端口映射详解(随机端口、指定IP端口、随意ip指定端口、指定ip随机端口)

目录 docker端口映射详解 一、端口映射概述&#xff1a; 二、案例实验&#xff1a; 1、-P选项&#xff0c;随机端口 2、使用-p可以指定要映射到的本地端口。 Local_Port:Container_Port&#xff0c;任意地址的指定端口 Local_IP:Local_Port:Container_Port 映射到指定地…...

俄罗斯方块

俄罗斯方块简单实现 使用 pygame 模块实现俄罗斯方块的简单实现&#xff0c;这里没有使用pygame 自带的碰撞检测&#xff0c;而是自定义的方法实现边界碰撞和方块间碰撞检测。 代码实现 import random import pygame import time # 初始化游戏 pygame.init()# 设置游戏窗口大…...

web服务

静态网页与动态网页的区别 在网站设计中&#xff0c;静态网页是网站建设的基础&#xff0c;纯粹 HTML 格式的网页通常被称为“静态网页”&#xff0c;静态网页是标准的 HTML 文件&#xff0c;它的文件扩展名是 .htm、.html&#xff0c;可以包含文本、图像、声音、FLASH 动画、…...

【Rust 基础篇】Rust类型别名:为类型赋予新的名字

导言 Rust是一种以安全性和高效性著称的系统级编程语言&#xff0c;其设计哲学是在不损失性能的前提下&#xff0c;保障代码的内存安全和线程安全。在Rust中&#xff0c;类型别名是一种常见的编程特性&#xff0c;它允许为现有类型赋予新的名字&#xff0c;从而提高代码的可读…...

【机器学习】 贝叶斯理论的变分推理

许志永 一、说明 贝叶斯原理&#xff0c;站在概率角度上似乎容易解释&#xff0c;但站在函数立场上就不那么容易了&#xff1b;然而&#xff0c;在高端数学模型中&#xff0c;必须要在函数和集合立场上有一套完整的概念&#xff0c;其迭代和运算才能有坚定的理论基础。 二、贝叶…...

Flink之RedisSink

在Flink开发中经常会有将数据写入到redis的需求,但是Flink官方并没有对应的扩展包,这个时候需要我们自己编译对应的jar资源,这个时候就用到了bahir,barhir是apahce的开源项目,是专门给spark和flink提供扩展包使用的,bahir官网,这篇文章就介绍下如何自己编译RedisSink扩展包. 下…...

STM32CubeMx学习与K210串口通信+识别橘色色块——点亮小灯

K210模块的串口发送代码 引入模块 import sensor, image,time,lcd,utime import KPU as kpu import gc, sys from fpioa_manager import fm from machine import UART 锁定引脚 和 申明串口 fm.register(9, fm.fpioa.UART1_TX, forceTrue) fm.register(10, fm.fpioa.UART1_R…...

睿讯微带你深度了解汽车交流充电桩

这几年随着新能源汽车的普及&#xff0c;充电桩也越来越多的出现在我们的视野中。新能源纯电汽车就好比一种大号的电子产品&#xff0c;而充电桩则是它不可缺少的子系统&#xff0c;是新能源车主们的必要选择。 汽车充电桩分为直流和交流两种&#xff0c;2022年底全国公共充电桩…...

Python实战:5种常用窗函数在音频信号处理中的对比与应用

Python实战&#xff1a;5种常用窗函数在音频信号处理中的对比与应用 当你第一次用麦克风录制一段钢琴曲时&#xff0c;可能会发现频谱图上出现了许多"不该存在"的频率成分。这种现象在专业术语中被称为频谱泄漏&#xff0c;而解决它的关键工具就是窗函数。作为音频处…...

一键清理Windows驱动垃圾:DriverStore Explorer帮你释放20GB磁盘空间

一键清理Windows驱动垃圾&#xff1a;DriverStore Explorer帮你释放20GB磁盘空间 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 你的Windows电脑是否越用越慢&#xff1f;C盘空间总是莫…...

KMS_VL_ALL_AIO激活工具应用指南:从问题解决到高效部署

KMS_VL_ALL_AIO激活工具应用指南&#xff1a;从问题解决到高效部署 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 在现代办公环境中&#xff0c;软件授权管理是系统维护的重要环节。无论是个人…...

3分钟搞定Goods查询页:Map传参+StringUtils分割符实战(附避坑指南)

3分钟搞定商品查询页&#xff1a;Map传参与字符串分割的高效实践 商品查询功能作为电商系统的核心模块&#xff0c;其性能与用户体验直接影响转化率。本文将聚焦查询页开发中的两个关键技术点&#xff1a;Map传参优化与StringUtils分割技巧&#xff0c;通过可落地的代码示例&a…...

飞书文档批量导出架构实战:企业级知识库迁移的高效解决方案

飞书文档批量导出架构实战&#xff1a;企业级知识库迁移的高效解决方案 【免费下载链接】feishu-doc-export 飞书文档导出服务 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 在企业数字化转型过程中&#xff0c;知识库迁移成为组织面临的核心挑战之一…...

Scalatra 健康检查与监控:构建企业级可观测性系统

Scalatra 健康检查与监控&#xff1a;构建企业级可观测性系统 【免费下载链接】scalatra Tiny Scala high-performance, async web framework, inspired by Sinatra 项目地址: https://gitcode.com/gh_mirrors/sc/scalatra Scalatra 作为一款轻量级高性能的 Scala Web 框…...

cv_unet_image-colorization多阶段Pipeline:先结构修复再色彩填充的两步上色优化方案

cv_unet_image-colorization多阶段Pipeline&#xff1a;先结构修复再色彩填充的两步上色优化方案 1. 项目概述 在数字影像修复领域&#xff0c;黑白照片上色一直是一个技术挑战。传统的单阶段上色方案往往直接对黑白图像进行色彩填充&#xff0c;容易产生颜色溢出、边界模糊和…...

2026届必备的AI写作神器实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 这会儿&#xff0c;AI正凭借一种从来没有过的态势深切改变着毕业论文的创作生态&#xff0c…...

拉普拉斯变换:从傅里叶到复频域的系统分析利器

1. 从傅里叶到拉普拉斯&#xff1a;为什么我们需要复频域&#xff1f; 第一次接触傅里叶变换时&#xff0c;你可能被它"时域转频域"的魔法惊艳到了——直到遇到一个尴尬问题&#xff1a;当信号不满足绝对可积条件时&#xff08;比如指数增长的信号e^t&#xff09;&am…...

OBS绿幕抠像技术解析:chroma_key_filter.effect源码实现与优化

1. 绿幕抠像技术基础与OBS实现原理 绿幕抠像&#xff08;Chroma Key&#xff09;是视频处理领域的经典技术&#xff0c;就像魔术师用的隐身斗篷&#xff0c;它能让特定颜色范围&#xff08;通常是绿色或蓝色&#xff09;变得透明。我在实际项目中发现&#xff0c;OBS Studio作为…...