跨时钟域(Clock Domain Crossing,CDC)
本文参考:http://t.csdnimg.cn/VHga2
【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)_ReRrain的博客-CSDN博客
同步设计:所有设计使用同一时钟源,频率相位可预知。
异步设计:设计中有两个或以上的时钟,且时钟之间是同频不同相或不同频的关系。
亚稳态:如果D在Tsu和Th时间内不断变化(非定值),导致触发器在触发沿时不知道应该输出高电平还是低电平,输出端处于不确定状态,这便是亚稳态,当输出端恢复稳定之后,这个输出值是随机的,与输入没有逻辑关系。常常出现在跨时钟域信号传输(时钟相移未知)、异步复位信号(任意时间到达寄存器)、异步信号采集等。
通俗来讲,一个时钟源就代表一个时钟域,跨时钟域就是把数据从一个时钟域传输到另一个时钟域。

跨时钟域的本质问题是:亚稳态。(还是建立时间、保持时间的问题),分为单比特亚稳态与多比特亚稳态。注意:组合逻辑才有竞争冒险,时序逻辑为亚稳态。
解决亚稳态问题的常用方法为用寄存器打拍,但是只能保证后续电路输出的稳定性,不能保证正确性。
打拍通常打两拍,解释:引入一个MTBF(平均失效时间间隔),即触发器采样失败的时间间隔:

MTBF越大,亚稳态对电路产生的影响越小。文献指出,对于一个采样频率为200MHz的系统,不做同步MTBF=2.5us,一级同步MTBF=23年,二级同步MTBF=640年。一级同步不太稳定,二级同步够用,三级同步会增加面积且可能影响系统性能,没必要。所以常常打两拍来消除亚稳态。跨时钟域常见以下场景:
①多路扇出:如果一个时钟域A的信号同时输出到时钟域B去驱动多个触发器,由于经过不同路径,多路扇出的值不一定相同。(如一个使能信号使能后续多个模块)

解决方法:在时钟域B打两拍后再多路扇出。
②数据丢失:信号长度太短,采样时钟频率太快,导致没踩到数据,或者漏采样。

解决方法:展宽信号。
③异步复位:异步复位信号释放时不满足recovery time 和 removal time,产生亚稳态。
解决方法:异步复位同步释放,即通过寄存器改变释放的时间,同步处理。

①单bit亚稳态:用两级D触发器做同步处理。如果时钟域A发出的信号经过了组合逻辑电路再传输到时钟域B,那么需要先在组合逻辑后先接一级时钟域A的寄存器,再打两拍时钟域B的寄存器进行同步。
②多bit亚稳态:数据收敛,确保一组相关联的同步信号在经过不同的路径后可以在某一相同的时钟周期正确到达另一个时钟域。
单比特电平信号:用两级D触发器做同步处理
单比特脉冲信号:
①从慢时钟域到快时钟域:打两拍(两级D触发器),再边沿检测

②从快时钟域到慢时钟域:先在快时钟域进行脉冲展宽,同步后再传输到慢时钟域进行边沿检测。

多比特信号:
1.格雷码+双DFF(即打两拍):常用于异步FIFO中读写地址的跨时钟域传输。

如图,格雷码两个连续值仅相差一位,所以在FIFO读写地址的增减过程中,每次地址位只变化一位,本身出现亚稳态的几率就比二进制低了不少。此外,可以保证FIFO数据安全写入读出的标准。当然,应用格雷码时必须保证首尾只有1bit不同,即数据个数必须为2^n,否则首尾不满足只差1位。
二进制转格雷码一般通过组合逻辑实现,所以输出后要先加一级DFF,保证输出数据的稳定性。
2.握手协议:讲多比特数据的跨时钟传输问题转换成单个信号的跨时钟传输,即引入请求信号req和应答信号ack进行同步,只对req和ack进行同步。数据准备好了再发出req,就只有req可能有亚稳态问题,因为data已经稳定不变了。握手即req+ack。
3.DMUX(D触发器加二选一选通器):通过使能信号判断多比特data是否已经稳定,稳定则选通当前data;不稳定则选通之前的data。所以需要暂存前一时刻的data。
相关文章:
跨时钟域(Clock Domain Crossing,CDC)
本文参考:http://t.csdnimg.cn/VHga2 【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)_ReRrain的博客-CSDN博客 同步设计:所有设计使用同一时钟源,频率相位可预知。 异步设计:设计中有两…...
PTA古风排版
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。 输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串&a…...
SQL 注入漏洞详解
SQL 注入漏洞详解 漏洞描述 sql注入漏洞是指恶意用户在应用与数据库交互的地方利用非法的操作获取数据库内容从以下两点分析: 没有对用户输入的数据进行充分的过滤和验证,导致一些用户利用此漏洞向数据库插入恶意sql语句非法请求数据库从而获得一些敏感数据在与数…...
关于阿里云 ACK ingress部分补充
强调: 本文只是作为记录,过一段时间会删除 跟唐老师学习网络 一 Nginx Ingress管理 ① 流量走向 需求: 应用绑定LoadBalance,会自动创建或使用SLBeip:port --> nodeport_ip:port --> service_ip:port --> pod_ip:port 支持的注解 通过…...
轻量封装WebGPU渲染系统示例<22>- 渲染到纹理(RTT)(源码)
当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/feature/rendering/src/voxgpu/sample/RTTTest.ts 当前示例运行效果: 此示例基于此渲染系统实现,当前示例TypeScript源码如下: export class RTTTest {private mRscene new RendererScene()…...
官方Redis视图化工具Redisinsight
一、下载最新版本的 docker pull redislabs/redisinsight mkdir /data/redisinsight docker run -d -u root -p 8001:8001 -v /etc/localtime:/etc/localtime -v /data/redisinsight:/db --restartunless-stopped redislabs/redisinsight:latest 二、浏览器打开 http://192…...
Vue+Django REST framework 打造生鲜电商项目课程下载树大根深
VueDjango REST framework 打造生鲜电商项目 链接:https://pan.baidu.com/s/1kEDxPsoTYSVWPYB2H0jbBw?pwd6666 提取码:6666Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它…...
react中遇到的分页问题
问题: 1.使用useState时不能够进行当前页码的改变,数据不会随着页码变化 2.删除当前页的最后一条数据时,页码返回上一页但是数据为空 解决: 1.由于useState和useRef的区别那我们就不考虑使用useState 2.再删除的逻辑当中添加判断条…...
变电站自动化系统中的安全措施分析及应用-安科瑞
安科瑞电气股份有限公司 上海嘉定 201801 摘要:阐述变电运行中的问题,电气自动化系统与安全运行措施,包括自动控制设备的投入,电气自动 化与计算机技术相、设备数据的采集与处理、自动化系统的升级、人工智能技术的应用。 关键…...
【MongoDB】索引 – 文本索引
一、准备工作 这里准备一些数据 db.books.insertMany([{_id: 1, name: "Java", description: "java 入门图书", translation: [{ language: "english", description: "java basic book" }]},{_id: 2, name: "C", descript…...
【广州华锐互动】影视制作VR在线学习:身临其境,提高学习效率
随着科技的不断发展,影视后期制作技术也在日新月异。然而,传统的教学方式往往难以满足学员的学习需求,无法充分展现影视后期制作的魅力和潜力。近年来,虚拟现实(VR)技术的崛起为教学领域带来了新的机遇。通过VR教学课件࿰…...
Linux 命令:PS(进程状态)
1. 写在前面 本文主要介绍:Linux 下常用命令 PS —— 进程状态; 公众号: 滑翔的纸飞机 2. PS — 介绍(进程状态) ps 命令:显示 Linux 系统中运行进程有关的信息。 rootdev:~# psPID TTY TIME C…...
手把手教你:LLama2原始权重转HF模型
LLama2是meta最新开源的语言大模型,训练数据集2万亿token,上下文长度由llama的2048扩展到4096,可以理解和生成更长的文本,包括7B、13B和70B三个模型,在各种基准集的测试上表现突出,该模型可用于研究和商业用…...
后入能先出,一文搞懂栈
目录 什么是栈数组实现链表实现栈能这么玩总结 什么是栈 栈在我们日常编码中遇到的非常多,很多人对栈的接触可能仅仅局限在 递归使用的栈 和 StackOverflowException,栈是一种后进先出的数据结构(可以想象生化金字塔的牢房和生化角斗场的狗洞)。 栈&…...
京东API接口的应用场景:商品信息查询,商品详情获取
京东API接口的应用场景涵盖了电商业务的各个方面,通过API的方式,开发者可以方便地获取京东平台上的商品信息、用户信息、订单信息等,进而进行个性化的应用开发。以下是几个典型的应用场景: 商品信息查询:通过京东API接…...
微信小程序使用iconfont坑
下载解压 font-face {font-family: "iconfont"; /* Project id 4322044 */src: url(iconfont.woff2?t1699515502419) format(woff2),url(iconfont.woff?t1699515502419) format(woff),url(iconfont.ttf?t1699515502419) format(truetype); }.iconfont {font-famil…...
最新Cocos Creator 3.x 如何动态修改3D物体的透明度
Cocos Creator 3.x 的2D UI有个组件UIOpacity组件可以动态修改UI的透明度,非常方便。很多同学想3D物体上也有一个这样的组件来动态的控制与修改3D物体的透明度。今天基于Cocos Creator 3.8 来实现一个可以动态修改3D物体透明度的组件Opacity3D。 对啦!这里有个游戏…...
golang 2018,go 1.19安装Gin
GOPROXYhttps://mirrors.aliyun.com/goproxy/ 一致提示URL不能有点,给我整郁闷了,换了这个地址好了 但是一致提示zip的包问题,最后还是不行又换回七牛 NEWBEE! [GIN-debug] Environment variable PORT is undefined. Using por…...
常用的三角函数公式
sin 2 x cos 2 x 1 \sin ^2 x \cos ^2 x 1 sin2xcos2x1 tan x sin x cos x \tan x \dfrac{\sin x}{\cos x} tanxcosxsinx cot x 1 tan x cos x sin x \cot x \dfrac{1}{\tan x}\dfrac{\cos x}{\sin x} cotxtanx1sinxcosx sec …...
【MySQL】一文学会所有MySQL基础知识以及基本面试题
文章目录 前言 目录 文章目录 前言 一、主流数据库以及如何登陆数据库 二、常用命令使用 三、SQL分类 3.1 存储引擎 四、创建数据库如何设置编码等问题 4.1操纵数据库 4.2操纵表 五、数据类型 六、表的约束 七、基本查询 八、函数 九、复合查询 十、表的内连和外连 十一、索引…...
HSTracker:macOS炉石传说玩家的终极智能助手,轻松提升你的游戏水平!
HSTracker:macOS炉石传说玩家的终极智能助手,轻松提升你的游戏水平! 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 还在为记不住对手…...
Dark Reader终极指南:如何为任何网站开启护眼深色模式
Dark Reader终极指南:如何为任何网站开启护眼深色模式 【免费下载链接】darkreader Dark Reader Chrome and Firefox extension 项目地址: https://gitcode.com/gh_mirrors/da/darkreader 你是否经常在夜间浏览网页时感到眼睛疲劳?面对刺眼的白色…...
别再纠结用哪个Patch了!手把手拆解ViT中那个神秘的cls_token到底在干啥
解密ViT中的cls_token:从设计哲学到实战价值 第一次接触Vision Transformer时,那个凭空多出来的cls_token总让人摸不着头脑——为什么要在所有图像块之外硬塞进一个"班级插班生"?这个看似多余的标记,实则是ViT架构中最精…...
如何应对Windows系统兼容性问题:ExplorerPatcher Win+X功能失效实战诊断与修复指南
如何应对Windows系统兼容性问题:ExplorerPatcher WinX功能失效实战诊断与修复指南 【免费下载链接】ExplorerPatcher This project aims to enhance the working environment on Windows 项目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher …...
OpenClaw实操指南28|Skill私有化改造:把别人的技能调教成你的“私房菜“
社区里有很多现成的技能,但"现成"不等于"合用"。 公共技能是为大多数人设计的,默认行为往往是最通用的那种。但你的工作流有自己的特点——文档格式不一样、发送目标不一样、输出风格不一样。 私有化改造就是把公共技能的源码拿过…...
Why Go Developers Avoid panic() - And When It‘s Actually Okay to Use
If youre coming to Go from another language, you might be surprised to find that Go developers dont really throw exceptions. In fact, they mostly avoid Go’s built-in panic() function unless absolutely necessary.But that doesn’t mean panic is bad. It just…...
20251219_105921_0基础如何转行学习网络安全?怎么开始?
网络安全学习全攻略:零基础到高薪,收藏这份攻防教程就够了 文章详细分析了网络安全的就业环境、学习路径和前期准备。就业方面,网络安全行业人才缺口大、薪资高,初级岗位年薪10-20万,高级可达百万。学习分为四个阶段&…...
Ripple:基于复杂自适应系统与星海合议架构的高效多智能体模拟引擎
1. 项目概述:从“一人一Agent”到“群体涌现”的范式跃迁如果你和我一样,在过去几年里尝试用大语言模型(LLM)来模拟人类社会的复杂行为,比如预测一条小红书笔记的传播效果,或者评估一个新产品在目标市场的接…...
Cubic:无侵入Java应用监控与Arthas动态诊断平台实战
1. 项目概述:Cubic,一个无侵入的应用级问题定位利器在Java应用开发和运维的日常里,最让人头疼的莫过于线上问题定位。日志没打全、监控指标不直观、想动态查看线程状态又不敢轻易重启服务……这些问题相信每个开发者都遇到过。传统的解决方案…...
微软紧急发布 .NET 10.0.7 更新,修复权限提升漏洞
微软已针对 .NET 10 发布了紧急带外 (OOB) 安全更新,于 2026 年 4 月 21 日发布了 10.0.7 版本,以解决在Microsoft.AspNetCore.DataProtectionNuGet 包中发现的严重权限提升漏洞。在标准的“周二补丁日”.NET 10.0.6 更新之后,客户开始报告其…...
