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

news2024/12/25 16:03:12

文章目录

  • 一、概述
    • 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常见问题集锦

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

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

相关文章

C++动态内存管理(new和delete)

C动态内存管理 1. C中动态内存管理1.1 new/delete操作内置类型1.2 new和delete操作自定义类型 2. operator new与operator delete函数2.1 operator new与operator delete函数(重点)3. new和delete的实现原理3.1 内置类型3.2 自定义类型 4. 常见面试题4.1…

快速转换PDF文件: Python和PyMuPDF教程

解决问题 有时候将文档上传Claude2做分析,有大小限制,所以需要切割pdf文档为几个小点的文档,故才有了本文章。 如何用Python和PyMuPDF制作你想要大小的PDF? PDF是一种广泛使用的文件格式,可以在任何设备上查看和打印…

C#核心知识回顾——19.插入排序

1.插入排序的基本原理 871542639 两个区域 排序区 未排序区 用一个索引值做分水岭 未排序区元素 与排序区元素比较 插入到合适位置 直到未排序区清空 int[] arr { 8, 6, 7, 2, 9, 4 };//第一步//能取出未排序区…

防御第六次作业-文案

1.录制一个讲解密码学综合应用视频,参考讲义中的综合应用图 过程: 发送者为Alice 接受者为Bob 首先对原始信息进行hash运算得到信息摘要,然后使用私钥进行签名(签名的作用是验证该信息是Alice的),然后将…

设备类资产盘点报告系统怎么处理?

对于一个企业或者公司来说,掌握公司资产的实际情况是最基本的。要知道公司的资产,主要工作内容之一就是固定资产盘点。对于资产盘点,有一些应用。Excel人力资源方式,有的则采用固定资产管理系统。 RFID固定资产管理系统是指通过射…

Footprint Analytics 宣布 20+ 链 API 免费增速,助力熊市 buidler

7 月 31 日,web3 数据供应商 Footprint Analytics 宣布其 API 产品的重大更新。 此次升级不仅大幅提升了 API 产品调用速度限制,还开放了包括 Ethereum, BNB, Polygon, zkSync 等在内的 20 公链的免费数据调用。 此外,Footprint 还更新了新…

【网络】传输层

目录 一、端口号 1、端口号范围划分 2、知名端口号(Well-Know Port Number) 3、netstat 4、pidof 二、UDP协议 1、UDP协议段格式 2、UDP的特点 3、面向数据报 4、UDP的缓冲区 5、UDP使用注意事项 6、基于UDP的应用层协议 三、TCP协议 1、TCP协议段格式 2、确认应…

vim、awk、tail、grep的使用

vim命令 $定位到光标所在行的行末^定位到光标所在行的行首gg定位到文件的首行G定位到文件的末行dd删除光标所在行ndd删除n行(从光标所在行开始)D删除光标所在行,使之变为空白行x删除光标所在位置字符nx删除n个字符,从光标开始向后…

mac屏幕提词器Presentation Prompter for mac

Presentation Prompter是一款专业的电脑提词器软件,主要用于辅助演讲者、主持人等在演讲或演示过程中更加流畅地展示内容。它可以将文字以滚动或分页的形式显示在屏幕上,帮助演讲者在不中断演讲的情况下更好地掌控演讲进度。 以下是Presentation Prompt…

城市内涝积水监测预警系统的重要性

一、系统概述 随着我国城镇化快速发展,城市建设产生的大量地面硬底化,大部分的降雨将形成地表径流,仅有少量雨水渗入地下,导致城市内涝等一系列问题。当前,全国多地发生洪涝,我国南北方全面进入主汛期。需要…

【数据库】mysql调用过程函数生成日期维表

写在前面的话 第一次使用sql中的函数部分,本文会记录sql函数的一些基础语法,如果你已经很熟练,请忽视掉 创建日期维表 使用环境 Navicat 12 创建存储日期的表(日期,日期的不同的表达形式,这一年的第几周&…

瑞芯微原厂源码目录介绍2-RK3568

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言顶层目录分析out 目录system 目录frameworks 目录了解目录有什么意义 前言 在上一个小节中,下载并解压了瑞芯微提供的 Android 源码,解…

51单片机学习--LED点阵屏显示图形动画

为了通用性考虑,需要把用到的几个口用特殊位声明来重新命名,由于RCLK在头文件中已有定义,所以这里把P3^5声明成RCK吧。。这样的做法可以提高可读性 sbit RCK P3^5; //RCLK sbit SCK P3^6; //SRCLK sbit SER P3^4;接下来编写74HC595的输…

开源软件包存储库存在1200+恶意包,供应链安全何去何从

一、前言 2020年12月13日,网络安全公司FireEye发布分析报告,称全球最著名的网络安全软件供应商SolarWinds遭受供应链攻击并被植入木马后门,影响版本为2019.4 HF 5 - 2020.2.1:使用该产品的机器可被攻击者完全操控。根据SolarWind…

前端学习——Vue (Day9)

Pinia 快速入门 https://pinia.vuejs.org/zh/getting-started.html npm install pinia import { createApp } from vue import { createPinia } from pinia import App from ./App.vueconst pinia createPinia() const app createApp(App)app.use(pinia) app.mount(#app)&l…

2分钟大白话:什么是大数据架构。人人好懂

问题背景 在40岁老架构师 尼恩的读者社区(50)中,尼恩一直指导大家写简历,做面试,最高的拿到年薪近100W。 昨天指导 一个 阿里 p6 小伙写简历,做面试。在帮他 挖掘简历亮点时,发现他项目在Java上没有什么技术亮点&…

Vcenter 创建 虚拟机配置 Thin Provision 模式 disk

介绍 在vCenter中选择虚拟磁盘格式通常也取决于您的需求和使用情况。 vSphere支持多种虚拟磁盘格式,以下是一些常见的格式: Thick Provision Lazy Zeroed:这是vSphere中的默认格式。它会预分配虚拟磁盘所需的存储空间,但只有在虚…

pdf大小如何压缩?三个压缩技巧快学来

在日常生活中,我们经常会遇到PDF文件过大,导致无法传输或存储的问题。那么,如何解决这个问题呢?其实,有很多软件可以帮助我们解决这个需求,下面就给大家汇总几个简单实用的PDF压缩工具,一起来看…

Python爬虫时遇到连接超时解决方案

在进行Python爬虫任务时,经常会遇到连接超时(TimeoutError)错误。连接超时意味着爬虫无法在规定的时间内建立与目标服务器的连接,导致请求失败。为了帮助您解决这个常见的问题,本文将提供一些解决办法,并提…

C# Blazor 学习笔记(3):路由管理

文章目录 前言路由管理App.razor设置登录页面设置空布局 前言 我们知道使用Blazor的官方模板,我们会自动得到一个拥有侧边栏的布局页面。但是我们发现我们所有新建的页面都有侧边栏。有时候我们需要跳出这个布局,比如我要做登录页面的时候,我…