0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

处理跨时钟域(CDC)信号同步的最常见方法

冬至子 来源:IC设计er 作者:Fantasy 2023-09-20 11:24 次阅读

时钟域( Clock Domain Crossing,CDC )通俗地讲,就是 模块之间数据交互时用的不是同一个时钟进行驱动 ,如下图所示:左边的模块FA由C1驱动,属于C1时钟域;右边的模块FB由C2驱动,属于C2时钟域。

图片

跨时钟域信号处理问题,首先要考虑的就是亚稳态问题。

为了使触发器正常工作,输入信号和时钟必须满足触发器的建立和保持时间要求。在上面的图2中,信号A与目标时钟域C2是异步的,因为C1和C2属于不同时钟域。一旦遇到异步信号进入时钟域,就不太可能满足建立和保持时序约束,因此触发器可能以进入亚稳态。在下图中,FA的输出信号A变化非常接近C2的时钟边缘,因此违反了FB的建立时间要求, 它可能导致目标触发器FB违反setup或hold时间。输出信号B可能会振荡不确定时长。因此输出是不稳定的,也可能会在C2的下一个时钟边缘到达之前稳定到某个值,这种现象被称为亚稳态。

图片

如果输入信号A变化非常接近时钟C2的上升沿,那么目标触发器的输出是亚稳态的。因此,可能最终稳定到信号B1和B2所描述的1或0。

处理跨时钟域**(CDC)信号同步**的最常见方法之一是使用同步器电路。同步器电路的目的是通过最小化亚稳态的可能性和增加MTBF来保护下游逻辑。其中一个基本的同步器电路是 两级触发器同步器 (也称为2-FF同步器)。

图片

2-** FF同步器处理跨时钟域信号同步**

两级触发器同步器是一种电路,其中两个触发器在目标时钟域中背靠背连接。如果第一个触发器由于建立/保持冲突而进入亚稳态,则第二个触发器会提供足够的时间让第一个触发器脱离亚稳态。从理论上讲,当第二个FF对值进行采样时,第一个FF可能仍处于亚稳态,因此可以对不正确的值进行采样,使用超过2级FF作为同步器(3或4级FF),可以增加MTBF。

2-FF同步器电路非常适合单比特控制信号的同步 ,其中输入切换速率小于目标时钟频率,换句话说,如果目标时钟频率超过源时钟频率的1.5倍,则不会丢失数据 。但是,如果源和目标时钟频率几乎相同或目标时钟频率较慢,则源必须保持其值稳定,以便目标捕获它,然后再更改为下一个值。这可以通过 握手时钟域交叉 (CDC)技术来处理。

图片

手机制处理跨时钟域信号同步

在握手技术中,源时钟域将**“请求”信号**发送到使用 2-FF同步器的目标域。一旦目标域收到请求,它就会向源域发送“ack”信号,该源域使用 2-FF 同步器进行同步。ack 信号向源时钟域指示目标已收到该值,源时钟域可以更新其值。握手机制有许多实现版本,但原理保持不变: 同步request和ack信号request信号将在总线上指示一个新值即将发送,ack信号将指示可以更新数据总线。

上述机制在接口的带宽使用方面确实有一个缺点。对于握手机制,数据总线在接收ack信号时无法更新,存在瓶颈,可以使用双时钟异步FIFO来解决这个问题。正确设计的FIFO可以增加整个接口的带宽,同时仍然保持跨时钟域的可靠通信

异步FIFO可以被视为数据容器,其中发送方以源时钟速率将数据写入,接收器以目标时钟速率弹出数据。FIFO的深度应该足够,以便它不能溢出或下溢数据。

图片

异步FIFO处理跨时钟域信号同步

时钟异步FIFO需要用到双端口SRAM,一个控制写入指针(数据应在SRAM中写入的地址)的源代码控制块,一个生成读取指针(应在SRAM中读取数据的地址)的目标控制块和二进制到格雷码编码器块以及2-FF同步器电路。指针由各自的控制块作为循环缓冲区进行管理。但是,要知道何时写入(FIFO 未满)和何时读取(FIFO 不为空),源时钟、目标时钟控制块需要分别具有读取和写入指针信号。将指针传输到另一个时钟域并非易事。由于指针是多位信号,因此直接使用2-FF同步器不是一个好的选择。因此,两个指针都通过二进制到格雷码编码块传递。这确保了在传输值时,只有矢量的一个位从一个时钟更新到另一个时钟,从而消除了在时钟边沿上同步多位总线的问题。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 触发器
    +关注

    关注

    13

    文章

    1462

    浏览量

    59838
  • 同步器
    +关注

    关注

    1

    文章

    73

    浏览量

    14331
  • FIFO存储
    +关注

    关注

    0

    文章

    87

    浏览量

    5852
  • 时钟驱动器
    +关注

    关注

    0

    文章

    21

    浏览量

    13642
  • SRAM存储器
    +关注

    关注

    0

    文章

    63

    浏览量

    12836
收藏 人收藏

    评论

    相关推荐

    三种时钟处理方法

    方法二:异步双口RAM  处理多bit数据的时钟,一般采用异步双口RAM。假设我们现在有一个信号采集平台,ADC芯片提供源同步时钟60MHz,ADC芯片输出的数据在
    发表于 01-08 16:55

    三种FPGA界最常用的时钟处理法式

    处理方法,这三种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的时钟处理,学会这三招之后,对于FPGA相关的时钟数据
    发表于 02-21 07:00

    如何处理好FPGA设计中时钟间的数据

    时钟处理方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的时钟处理,学会这3招之后,对于FPGA相关的
    发表于 07-29 06:19

    时钟信号的几种同步方法研究

    时钟信号同步方法应根据源时钟与目标时钟的相位关系、该信号的时间宽度和多个时钟信号之间的时序关系来选择。如果两时钟有确定的相位关系,可由目标
    发表于 05-09 15:21 63次下载
    <b>跨</b><b>时钟</b><b>域</b><b>信号</b>的几种<b>同步</b><b>方法</b>研究

    FPGA界最常用也最实用的3种时钟处理方法

    时钟处理方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的时钟处理,学会这3招之后,对于FPGA相关的
    发表于 11-15 20:08 1.3w次阅读

    cdc路径方案帮您解决时钟难题

    CDC也就是时钟可能存在的一些问题以及基本的时钟处理方法时钟的问题主要存在于异步
    的头像 发表于 11-30 06:29 6278次阅读

    关于FPGA中时钟的问题分析

    时钟问题(CDC,Clock Domain Crossing )是多时钟设计中的常见现象。在FPGA领域,互动的异步时钟的数量急剧增加。通常不止数百个,而是超过一千个时钟
    发表于 08-19 14:52 2509次阅读

    揭秘FPGA时钟处理的三大方法

    时钟处理方法,这三种方法可以说是 FPGA 界最常用也最实用的方法,这三种方法包含了单 bit 和多 bit 数据的时钟处理,学会这三招之后,对于 FPGA 相关的
    的头像 发表于 12-05 16:41 989次阅读

    CDC单bit脉冲时钟处理介绍

    时钟处理 简要概述: 在上一篇讲了总线全握手时钟处理,本文讲述单bit脉冲时钟处理为下一篇总线单向握手时钟处理做准备。脉
    的头像 发表于 03-22 09:54 2683次阅读

    介绍3种方法时钟处理方法

    时钟处理方法,这3种方法可以说是FPGA界最常用也最实用的方法,这三种方法包含了单bit和多bit数据的时钟处理,学会这3招之后,对于FPGA相关的
    的头像 发表于 09-18 11:33 2.1w次阅读
    介绍3种<b>方法</b><b>跨</b><b>时钟</b><b>域</b><b>处理</b><b>方法</b>

    关于时钟信号处理方法

    信号时钟的问题,于是整理了一下自己对于时钟信号处理方法
    的头像 发表于 10-09 10:44 3450次阅读

    FPGA时钟处理方法(二)

    时钟处理方法,这次解说一下多bit的时钟方法
    的头像 发表于 05-25 15:07 367次阅读
    FPGA<b>跨</b><b>时钟</b><b>域</b><b>处理</b><b>方法</b>(二)

    CDC时钟处理及相应的时序约束

    CDC(Clock Domain Conversion)时钟分单bit和多bit传输
    的头像 发表于 06-21 14:59 567次阅读

    处理单bit时钟信号同步问题来入手

    时钟处理是个很庞大的问题,因此将会作为一个专题来陆续分享。今天先来从处理单bit时钟信号同步问题来入手。
    发表于 06-27 11:25 447次阅读
    从<b>处理</b>单bit<b>跨</b><b>时钟</b><b>域</b><b>信号</b><b>同步</b>问题来入手

    时钟电路设计—单比特信号传输

    时钟CDC)的应从对亚稳定性和同步性的基本了解开始。
    的头像 发表于 06-27 14:25 234次阅读
    <b>跨</b><b>时钟</b><b>域</b>电路设计—单比特<b>信号</b>传输