《Clock Domain Crossing》 翻译与理解(5)多信号跨时钟域传输

本系列将对sunburst design网站的2008最佳文章《Clock Domain Crossing (CDC) Design & Verification Techniques Using SystemVerilog》进行翻译和基于自我理解的分析阐述,本文介绍多信号跨时钟域传输。

目录

多信号跨时钟域传输

多比特 CDC策略

多比特信号融合

情况1——2个同步控制信号

解决方法——融合

情况2——2个含有相位差的控制信号

解决方法——融合并增加1个寄存器

情况3——多比特跨时钟信号

解决方法——多周期路径规划和FIFO

多周期路径规划——适用于多比特数据传输

同步使能并产生脉冲信号

带反馈机制的多周期路径规划

带握手反馈机制的多周期路径规划

格雷码

2比特深度FIFO


多信号跨时钟域传输

多信号传输和多比特数据跨时钟域传输是不完全相同的,多信号通常指的是多个单比特控制或使能信号,跨时钟域后对某个寄存器或者触发器进行控制,当然本文介绍的传输方法也适用于多比特数据跨时钟域传输。

由于多个信号其中每一个信号都是单比特,所以很多人选择单比特信号打两拍处理来进行跨时钟域同步。但是由于原时钟域的多个信号彼此之间存在skew,也许很小的时钟偏斜在跨时钟域被采样时钟采集时,会导致信号的相位延迟,而带来错误的结果。

多比特 CDC策略

多bit控制信号跨时钟域传输时,可以将通用策略分为三类:

  1. 多比特信号融合,如果可以的话,在跨时钟域之前先将多信号进行融合,前提是这些信号作用相同,这样融合后再跨时钟域就相当于单比特跨时钟域了。
  2. 多周期路径规划,用1个同步后的加载信号,来安全地传输多比特CDC信号。
  3. 使用格雷码。

多比特信号融合

情况1——2个同步控制信号

下图展示了一种2个同步控制请求信号在跨时钟域传输时,由于时钟偏斜所导致的数据传输失败案例。

b_load和b_en信号是bclk的加载和使能信号,需要跨时钟域传输,但是由于存在时钟偏斜,尽管分别都进行了打两拍处理,但是从上图这种情况可以看出来,偏移了一个时钟,导致最终数据加载失败。

解决方法——融合

既然两个控制信号需求相同,同时拉高与拉低,那么可以将两个信号合并,作为一个信号再打两拍进行跨时钟域,其结果如下图所示:

情况2——2个含有相位差的控制信号

原时钟域输出2个控制信号,这两个控制信号存在相位差值,目的是在目标时钟域上可以延迟1拍,错开1个cycle实现对于2个寄存器的控制,但是可能在2个控制信号分别打拍时,出现亚稳态信号,延迟1拍输出有效信号,导致数据加载错误,如下图所示:

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值