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问题的解决相关推荐

  1. 用计算机计数 常常出错怎么办,“ULtra DMA CRC 错误计数”解决办法。

    西数硬盘经鲁大师检测后发现"ULtra DMA CRC 错误计数"解决办法. 这几次开机时有时一直停留在主板图标的画面而无法进入系统,以为是内存条的问题,拔了内存条再插入之后重启便 ...

  2. winrar CRC校验失败,文件被破坏的解决办法

    昨天下载了一个将近一G的软件,在解压时,提示"CRC校验失败,文件被破坏",不至于再重新下载吧,需要四个多小时呢,网上的方法也试了好多种,都不好用...      我采用的方法很简 ...

  3. 用计算机计数 常常出错怎么办,提示“ultra dma crc错误计数”如何解决?原因分析+解决方法...

    电脑经过了一段的使用时间,硬盘难免会出现一些问题,最近有位win7系统用户使用鲁大师对硬盘进行扫描时,系统却提示"ultra dma crc错误计数",用户不知道怎么解决这个问题, ...

  4. OpenShift 4 - CRC(Codeready Container)个人单机版 OpenShift 环境

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在支持OpenShift 4.9的Codeready Container环境中验证 文章目录 关于CRC - Coderead ...

  5. miui12.5 最简单快捷root刷面具+线刷降级+卡米解决教程(测试机小米10至尊版)

    miui12.5 最简单快捷root刷面具+线刷降级+卡米解决教程(测试机小米10至尊版) 原文链接:小回博客 前言:本人在2019年发布过原创<框架玩机>小米手机玩机教程 时隔两年,突发 ...

  6. 如何解决rar文件解压缩失败

    附件经常会是一系列的压缩文件,下载是默认文件名是一个随机数字. 因而下载完会出现压缩文件解压缩失败 解决方法:下载时重命名为带一定顺序的文件名,如文件1,文件2,文件3等 如何解决单个文件解压失败? ...

  7. 转:基于TLS1.3的微信安全通信协议mmtls介绍

    转自: https://mp.weixin.qq.com/s?__biz=MzAwNDY1ODY2OQ==&mid=2649286266&idx=1&sn=f5d049033e ...

  8. ctf 改变图片高度_通过CRC32爆破修改图片的宽高 ctf-misc图片隐写

    ** 一.在处理图片隐写题的时候,可能会修改图片原有的宽高,导致图片里面的内容无法正常显示,那么怎么判断它的宽高是否被修改了呢? ** 1.把图片拖进010editor中会发现左下角提示CRC不匹配, ...

  9. 阿里云创世纪之盘古传奇

    文章目录 飞天(Apsara)云计算平台简介 面向私有云的Apsara Stack 盘古横空出世 盘古的架构 盘古基本介绍 盘古API 基于C++语言的SDK 基于命令行的文件操作接口pu 盘古中的目 ...

最新文章

  1. eclipse新建maven项目_通过Eclipse新建简单动态项目,访问成功
  2. 五个指标看BCH,它距离“币圈金本位”还有多远?
  3. 【51nod】1559 车和矩形
  4. c语言数字的拆解_C语言解决变态推理题
  5. 启动mongodb服务器时发生系统错误5,CentOS 7系统下SELinux阻止MongoDB启动的问题详解...
  6. [单刷APUE系列]第五章——标准I/O库
  7. 4.1.6 OS之文件的基本操作原理(创建、删除、打开、关闭、读-写)
  8. python中的单下划线和双下划线_python 里面的单下划线与双下划线的区别(私有和保护)...
  9. Socket系列3 Socket服务端开发 数据的接收和发送
  10. (JAVA)StringBuffer类
  11. mysql 备份 windows_windows mysql 自动备份的几种方法
  12. html中charset和content-language的区别
  13. 5.MySQL优化---索引优化专题
  14. 网络安全辅助工具:免费MD5解密网站
  15. 渗透工具-masscan
  16. 生成SGML格式,用于算BLEU,NIST,TER
  17. PMP之项目采购管理
  18. 西安邮电大学第五届ACM-ICPC校赛(同步赛)
  19. 笔记本驱动图标消失怎么办
  20. 云计算大数据基础知识点

热门文章

  1. 工具- 笔记软件Notion - 学习/实践
  2. D语言与C++做映射时需要注意的事情
  3. 5G移动性增强技术分析
  4. 写给理工科人看的乐理(五)调性
  5. 子曾经曰过,今天应该要振奋精神了。
  6. 区块链+游戏还有什么可能性?
  7. checkbox选中和不选中 jqu_jQuery控制checkbox选中状态但是不显示选中
  8. MySQL数据库技术 第二版 章末 答案—单元5---思考5
  9. Wpf使用Behaviors包
  10. 联通研究院注重自主研发能力提升, 3人荣获CKA认证