1.1什么是 CDC(跨时钟域)

跨时钟域就是模块和模块之间的进行数据交换,但是不是用的同一个时钟,这两个时钟的关系不明确。

从图中可以看出,如果clk1和clk2 的关系不明确,那么这个传输时间域就是一个跨时钟域传输,在一个SOC中可能会有这样的跨时钟域传输,但是会产生许多的问题。

1.2 SOC中跨时钟域的举例

下图是一个SOC的设计

每个模块都有自己的时钟,如果在一个SOC设计中有不明确的时钟关系,那么在进行数据交换的时候就会产生跨时钟域的问题,例如SD卡有自己的时钟,这时就会用到一个FIFO,来处理跨时钟域的问题。所以,如果不是工作在同一时钟下就会有跨时钟域的设计。在跨时钟域的分析中,不能用静态时序分析,因为静态时序分析是只针对同步电路进行分析,对于跨时钟域信号不适用,跨时钟域的分析可以依靠Spyglass进行分析。在进行综合之前可以先检查是否可以存在跨时钟域的分析。

1.3 CDC中的时钟域问题

典型的时钟域存在的问题:

  1. 亚稳态问题
  2. 时钟域数据的保持问题,从快到慢和从慢到快的时钟域。
  3. 数据的重覆盖(多比特数据的传输)
  4. 大量数据传输(握手)
  5. 异步复位

1.3.1 亚稳态


若只有一个时钟域,组合逻辑之间是可以通过寄存器进行同步的,对于同步电路来说,采样时刻不能出现建立时间和保持时间的违例。正如上图所示,在组合逻辑电路中,可以通过寄存器来去除竞争冒险的影响,但是也会引入亚稳态(在采样时刻,出现建立保持时间的违例
在异步电路中由于采样时钟和发送时钟的关系不明确,采样时钟很可能在数据出去未知状态时进行采样,这样就会导致亚稳态。
注意:静态时序分析:分析不了异步电路的
跨时钟域设计的产生的亚稳态问题:

亚稳态问题的解决办法:
采用多级同步电路(用接收寄存器打两拍后就能得到):这是单比特的问题的传输。

1.2 多bit数据的传输造成数据重复盖问题:


可从图中看出,多比特数据的传输经过两级同步后,虽然说去除了亚稳态的问题,但是由于每比特信息的延迟时间不同,导致接收方的数据信息发生变化,例如:想要传送11 的数据,经过发送的时钟域的时钟采样输出后X1Y1,由于经过线延迟,形成Y2X2,但是两条路径的延迟不一一定是一样的,所以到达CLK_B对数据进行采样的时候就会产生误码,解决办法格雷码,每次都只变化一个bit,这样可以等效为单比特传输,就可以用两级寄存器打两拍的办法解决。(重点:利用格雷码转换器,实现多比特传输转单比特传输的机制)

在格雷码转换器后,注意使用一个寄存器来打一拍。然后再通过两级同步电路。

1.3 数据保持的问题(信号从快时钟域到慢时钟域)


可以从图中看出,从快时钟域到慢时钟域的同步过程中,由于信号A经过clk_A打一拍的时间短于clk_B
寄存器的时钟,那么数据A的变化将快于时钟clk_B,这就会导致在CLK_B两次采样期间,A经过了数据的变换过程,clk_B
无法采集到数据。这就是数据保持的问题。
解决办法:数据的扩展(也就是延长数据A的保持时间)

用上述电路就可以实现时钟的扩展。如果A的频率是B的时钟是4倍,则就需要扩展4个时钟也就是4个寄存器。维持两拍的高电平用或门,如果维持n拍的低电平用与门。

1.4 多数据传输

第一个用交互信号
第二种用异步fifio大量的数据交换。

1.5 复位信号


由于异步复位信号是随时都可以进行复位的和释放的,在复位过程,是不受时钟信号的影响,这对电路是不会产生亚稳态的情况,但是如果复位释放操操作没有满足建立时间和保持时间,则会产生亚稳态。为了避免释放的时候造成亚稳态问题,提出了“异步复位,同步释放”的解决办法。所谓异步复位,就是复位信号可以直接不受时钟信号影响,在任意时刻只要是低电平就能复位(假如约定低电平复位),也就是说,复位信号不需要和时钟同步。而同步释放就很有意思了,它的意思是让复位信号取消的时候,必须跟时钟信号同步,也就是说正好跟时钟同沿。这就奇怪了!因为之前我们刚讲,要避免复位释放沿跟时钟沿同步。
http://xilinx.eetrend.com/blog/2020/100047719.html
下图是异步复位同步释放的电路图。

IC设计之CDC(跨时钟域)问题相关推荐

  1. FPGA CDC跨时钟域设计学习(一)亚稳态

    FPGA CDC跨时钟域设计学习(一) 亚稳态 MTBF - mean time before failure 同步器 理论 设计原则 学习资源主要来源于CummingsSNUG2008Boston_ ...

  2. 【Verilog基础】CDC跨时钟域问题,个人理解总结(下)(数据丢失、多路扇出、异步复位解决方案)

    文章目录 3.3.CDC问题3--数据丢失(延长信号) 3.4.CDC问题4--多路扇出(同步后扇出) 3.5.CDC问题5--异步复位(同步释放) 书接上回:[Verilog基础]CDC跨时钟域问题 ...

  3. FPGA设计中,跨时钟域问题的处理

    FPGA设计中,跨时钟域问题的处理 今天和大侠简单聊一聊FPGA设计中跨时钟域问题的处理,话不多说,上货. 跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPG ...

  4. cdc跨时钟域处理-结绳握手法

    参考文档 https://blog.csdn.net/u011412586/article/details/10009761 前言 对于信号需要跨时钟域处理而言,最重要的就是确保数据能稳定的传送到采样 ...

  5. 跨时钟域信号传输问题之握手同步

    所谓握手,即通信双方使用了专用控制信号进行状态指示,这个控制信号既有发送域给接受域的也有接收域给控制域的,有别于单向控制信号方式.        使用握手协议方式处理跨时钟域数据传输时,只需要对双方的 ...

  6. 跨时钟域为什么要双寄存器同步

    随着设计规模的不断攀升,各种接口外设琳琅满目,时钟"满天飞"就不可避免(注意这里的"满天飞"不是滥用,意指时钟频率多.时钟扇出多).而一个设计中,不同时钟频率之 ...

  7. VL48-使用Verilog解决多bit MUX同步器—慢时钟域同步到快时钟域(多bit跨时钟域),快时钟同步使能端并通过该使能端控制输出数据

    多bit MUX同步器:慢时钟域同步到快时钟域(多bit跨时钟域) 第一部分,题目描述及要求 1,题目要求 2,解题思路 第二部分,代码 1,RTL代码 2,RTL代码生成的门级网表 3,测试代码 4 ...

  8. 数字IC设计——跨时钟域篇1(时钟域)

    数字IC设计--跨时钟域篇1 一.时钟域概要 1. CDC介绍 CDC(clock domain crossing)检查(跨时钟域的检查)是对电路设计中同步电路设计的检查.非同步时钟没有固定的相位关系 ...

  9. 跨时钟域(CDC)设计方法之多bit信号篇(一)

    写在前面 本博客所有CDC相关的内容:跨时钟域(CDC)设计汇总 1.跨时钟域处理方法的分类 信号的跨时钟域传输可能会引入亚稳态问题,那么就需要想办法对其进行处理,从而降低亚稳态发生的概率(即提高MT ...

  10. 【数字IC基础】跨时钟域(CDC,Clock Domain Crossing)

    文章目录 一.什么是跨时钟域? 二.跨时钟域传输的问题? 2.1 亚稳态(单bit:两级D触发器(双DFF)) 2.2 数据收敛(多bit亚稳态)(格雷码编码.握手协议.异步FIFO.DMUX) 2. ...

最新文章

  1. 编译器 llvm clang 源码转换示例
  2. 盛大文学推出“一人一书”计划,发布电子书战略
  3. textmate开发一个blog
  4. 32位PLSQL Developer无法登录Oracle 11g 64位
  5. sql 语句-初级进阶(二)
  6. Spring的注解@Autowired和@Resource的区别
  7. v8声卡怎么录制唱歌_直播声卡怎么连接V8 V8声卡连接方法教程
  8. ❄️全网最详细的Python入门基础教程,Python最全教程(非常详细,整理而来)
  9. 小马哥----山寨高仿小米5 图片1:1机型 机型曝光 与真假鉴别方法
  10. 通过js打开浏览器独立的页面
  11. COPRA RF 2005 SR1最新版 (冷弯成型,轧辊设计)
  12. 计算机硕士工资一览表 (时间有点久远了)
  13. 熊猫阿波的故事 2201
  14. 安道麦四季度以最佳年度销售额和EBITDA收官全年
  15. H5开发使用 “navigationStyle“: “custom“,但是最外层的title标题显示不正确
  16. 《C语言点滴》一1.2 程序猿和互联网
  17. 【Restful接口】restful接口的两种使用方式
  18. linux分配iomem,linux 下__iomem 解析【转】
  19. 轻松掌握辗转相除法(原理+俩道简单编程题详解)
  20. Linux群组与文件权限

热门文章

  1. NB-IoT物联网技术
  2. 实战分析SpringBoot整合JSON,面试题附答案
  3. 稀疏存储矩阵 matlab,稀疏矩阵的数据结构_稀疏矩阵 matlab_稀疏矩阵存储格式总结+存储效率对比:COO,CSR,DIA,ELL,HYB...
  4. 今日恐慌与贪婪指数为10 恐慌程度稍有上升
  5. hyper-v开启与关闭
  6. php手机编程ios,在iOS上实现生产力级别PHP编程
  7. ssm共享充电宝管理系统计算机毕业设计
  8. java osgi框架_4大 Java OSGi 框架比较 (Knopflerfish, Apache Felix, Equinox, Spring DM)
  9. Methods annotated with ‘@Async‘ must be overridable
  10. 即时通讯IM,是时代进步的逆流?看看JNPF怎么说