转-CRC问题的解决
CDC(不同时钟之间传数据)问题是ASIC/FPGA设计中最头疼的问题。CDC本身又分为同步时钟域和异步时钟域。这里要注意,同步时钟域是指时钟频率和相位具有一定关系的时钟域,并非一定只有频率和相位相同的时钟才是同步时钟域。异步时钟域的两个时钟则没有任何关系。这里假设数据由clk1传向clk2。
单bit传输时,同步时钟域因为频率和相位关系都是已知的,可以推导的,所以不需要采用额外的硬件电路就可以解决CDC问题,只需要源数据在clk1端保持足够长时间即可。让其保持足够长时间有两个好处:即便出现亚稳态,也可以在两个clk2时钟周期后数据变得稳定下来,从而采到正确的结果。还可以防止低频采高频时,因为频率跟不上而导致数据丢失。
单bit传输时,异步时钟域的传输就必须使用额外的电路模块(同步器)来保证数据正确的传输。最基本的同步器是双锁存结构的电平同步器,其余的同步器都是由其衍生而来。该同步器的基本原理,也是让数据至少在clk2的时钟下保存两个周期,消除亚稳态。当然同步器能解决异步时钟域的同步问题,自然也可以拿来解决同步时钟域的问题,毕竟同步时钟域更简单一些。
实际的电路设计中,才不会管那么多细节,不管你是同步时钟域还是异步时钟域,只要是不同的时钟之间传数据,就加上同步器的结构,这当然是一种偷懒的解决办法。脉冲同步器就是这么一种万能的结构,对于单bit跨时钟域传输而言,使用脉冲同步器就够了,不需要区分时钟有没有关系,也不需要区分是高频采低频还是低频采高频,毕竟也很少有人能掌握这么全的细节。
对于多bit传输,不能采用单bit传输的方法。原因在于,单bit传输时,不能确定该数据到底经过1个clk2时钟周期之后有效还是两个clk2时钟周期之后才有效。所以对多个bit各自采用单bit的同步机制,会导致输出一些错误的中间状态。对于多bit传输,只能使用握手信号或者异步fifo。
脉冲同步器
由于脉冲在快时钟域传递到慢时钟域时,慢时钟有时无法采样的信号奈奎是特采样定理
因此需要对信号进行处理,可以让慢信号采样到。
脉冲同步器的结果如图
总结如下:
1、有关系的时钟之间传单bit数据,理论上只需要源数据保持足够长的时间(clk2的两个周期)即可;
2、无关系的时钟之间传单bit数据,必须要使用同步器;
3、不管有无关系的时钟进行单bit传输,脉冲同步器都可以解决这个问题;
4、多bit传输只能使用握手机制或者异步fifo;
5、低频采高频,为防止数据不丢失,应当让源数据变慢,多保持一些周期;高频采低频则不需要,但是高频采低频得到的结果可能带有很多冗余。
————————————————
版权声明:本文为CSDN博主「龚黎明」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/verylogic/article/details/38640871
转-CRC问题的解决相关推荐
- 用计算机计数 常常出错怎么办,“ULtra DMA CRC 错误计数”解决办法。
西数硬盘经鲁大师检测后发现"ULtra DMA CRC 错误计数"解决办法. 这几次开机时有时一直停留在主板图标的画面而无法进入系统,以为是内存条的问题,拔了内存条再插入之后重启便 ...
- winrar CRC校验失败,文件被破坏的解决办法
昨天下载了一个将近一G的软件,在解压时,提示"CRC校验失败,文件被破坏",不至于再重新下载吧,需要四个多小时呢,网上的方法也试了好多种,都不好用... 我采用的方法很简 ...
- 用计算机计数 常常出错怎么办,提示“ultra dma crc错误计数”如何解决?原因分析+解决方法...
电脑经过了一段的使用时间,硬盘难免会出现一些问题,最近有位win7系统用户使用鲁大师对硬盘进行扫描时,系统却提示"ultra dma crc错误计数",用户不知道怎么解决这个问题, ...
- OpenShift 4 - CRC(Codeready Container)个人单机版 OpenShift 环境
<OpenShift 4.x HOL教程汇总> 说明:本文已经在支持OpenShift 4.9的Codeready Container环境中验证 文章目录 关于CRC - Coderead ...
- miui12.5 最简单快捷root刷面具+线刷降级+卡米解决教程(测试机小米10至尊版)
miui12.5 最简单快捷root刷面具+线刷降级+卡米解决教程(测试机小米10至尊版) 原文链接:小回博客 前言:本人在2019年发布过原创<框架玩机>小米手机玩机教程 时隔两年,突发 ...
- 如何解决rar文件解压缩失败
附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字. 因而下载完会出现压缩文件解压缩失败 解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败? ...
- 转:基于TLS1.3的微信安全通信协议mmtls介绍
转自: https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286266&idx=1&sn=f5d049033e ...
- ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写
** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...
- 阿里云创世纪之盘古传奇
文章目录 飞天(Apsara)云计算平台简介 面向私有云的Apsara Stack 盘古横空出世 盘古的架构 盘古基本介绍 盘古API 基于C++语言的SDK 基于命令行的文件操作接口pu 盘古中的目 ...
最新文章
- eclipse新建maven项目_通过Eclipse新建简单动态项目,访问成功
- 五个指标看BCH,它距离“币圈金本位”还有多远?
- 【51nod】1559 车和矩形
- c语言数字的拆解_C语言解决变态推理题
- 启动mongodb服务器时发生系统错误5,CentOS 7系统下SELinux阻止MongoDB启动的问题详解...
- [单刷APUE系列]第五章——标准I/O库
- 4.1.6 OS之文件的基本操作原理(创建、删除、打开、关闭、读-写)
- python中的单下划线和双下划线_python 里面的单下划线与双下划线的区别(私有和保护)...
- Socket系列3 Socket服务端开发 数据的接收和发送
- (JAVA)StringBuffer类
- mysql 备份 windows_windows mysql 自动备份的几种方法
- html中charset和content-language的区别
- 5.MySQL优化---索引优化专题
- 网络安全辅助工具:免费MD5解密网站
- 渗透工具-masscan
- 生成SGML格式,用于算BLEU,NIST,TER
- PMP之项目采购管理
- 西安邮电大学第五届ACM-ICPC校赛(同步赛)
- 笔记本驱动图标消失怎么办
- 云计算大数据基础知识点