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

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

3天内不再提示

如何解决单bit和多bit跨时钟处理问题?

FPGA自习室 来源:FPGA自习室 作者:FPGA自习室 2021-03-22 10:28 次阅读

一、简要概述:

芯片设计过程中,一个系统通常是同步电路和异步电路并存,这里经常会遇到CDC也就是跨时钟域处理的问题,常见的处理方法,可能大家也已经比较熟悉了,主要有单bit跨时钟处理、多bit跨时钟处理两大类,本文以一个总线全握手跨时钟域处理为例解析,单bit和多bit跨时钟处理。这里需要注意是多bit含义比较广泛和总线不是一个概念,如果多个bit之间互相没有任何关系,其实,也就是位宽大于1的单bit跨时钟处理问题,如果多个bit之间有关系,作为一个整体,那么我们就叫做总线。因此,大家常说的“多bit跨时钟处理”也就是总线跨时钟处理。

二、总线全握手应用场景:

适用慢速总线信号跨时钟域。慢到快,快到慢均可,只要保证源信号更新时间大于同步时间即可。同步周期为6或者8个慢时钟周期。

三、总线全握手原理框图:

总线全握手跨时钟域原理图如下所示,使用了两个单bit同步器模块,因为是请求和响应都是电平信号,所以这里采用单bit同步器(寄存器打2拍或者3拍)。这里反馈过来的dst_ack_sync信号,经过一定处理可以得到src_req和sync_ok信号,图中我未画出。可以确定的是当请求和响应均为低电平时,表明一次同步完成。

两级触发器同步原理:假设第一级触发器的输入不满足其建立保持时间,它在第一个脉冲沿到来后输出的数据就为亚稳态,那么在下一个脉冲沿到来之前,其输出的亚稳态数据在一段恢复时间后必须稳定下来,而且稳定的数据必须满足第二级触发器的建立时间,如果都满足了,在下一个脉冲沿到来时,第二级触发器将不会出现亚稳态,因为其输入端的数据满足其建立保持时间。同步器有效的条件:第一级触发器进入亚稳态后的恢复时间 + 第二级触发器的建立时间 < = 时钟周期。

注意:在芯片设计中,单bit同步器通常不是私自直接打两拍处理的,而是使用专用的同步器单元,这样做的好处是方便后端(PR)可以把两级触发器视为一个整体,把两级触发器放的很近(线延时比较小)。这是因为能更好的满足第二级触发器建立时间,有效的减少亚稳态传播。

四、总线全握手仿真测试 :

场景1:源时钟100Mhz,目的时钟25Mhz,2级同步器。

从上图可以看出,同步完成需要6个目的时钟周期,也就是说完成一次全握手需要6个目的时钟周期的时间,这就要求源时钟数据信号的更新时间,必须大于同步时间。如果变化太快中间的数据会漏采。

场景2:源时钟25Mhz,目的时钟100Mhz,2级同步器

从上图可以看出,同步完成需要6个源时钟周期,也就是说完成一次全握手需要6个源时钟周期的时间,这就要求源时钟数据信号的更新时间,必须大于同步时间。如果变化太快中间的数据会漏采。

场景3:源时钟25Mhz,目的时钟100Mhz,3级同步器

从上图可以看出,同步完成需要8个源时钟周期,也就是说使用3级同步器完成一次全握手需要6+2个源时钟周期的时间。

结论:在使用总线全握手同步器时,不管源时钟与目的时钟多大,同步的时间均是慢时钟的6个时钟周期,如果使用3级同步器则是8个慢速时钟周期。这就要求源时钟信号不能变化太快。

原文标题:CDC(一) 总线全握手跨时钟域处理

文章出处:【微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

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

    关注

    172

    文章

    5906

    浏览量

    172166
  • 时钟
    +关注

    关注

    10

    文章

    1733

    浏览量

    131461

原文标题:CDC(一) 总线全握手跨时钟域处理

文章出处:【微信号:FPGA_Study,微信公众号:FPGA自习室】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ADS62P49输出是7bit怎么变为14bit呢?

    还有就是不太明白输出是7bit怎么变为14bit呢? 谢谢了~
    发表于 12-11 06:59

    MS9280——10bit、35MSPS 模数转换器

    MS9280 是芯片、电源、10bit、35MSPS 模数转换器,内部集成采样保持放大器和电源基准源。MS9280 使用多级差分流水线架构,保证 35MSPS 数据转换速率下,全温度范围内无失码。提供方案和FAE支持,欢迎咨
    的头像 发表于 12-02 11:23 352次阅读
    MS9280——10<b class='flag-5'>bit</b>、35MSPS 模数转换器

    在windows10 64bit系统下,无法打开usb连接,如何解决?

    我在windows10 64bit 系统下,无法打开usb 连接。请问如何解决?谢谢
    发表于 11-29 06:01

    DAC81416 FSDO=0时,SDO的bit位在时钟下降沿有效,为什么定义中写的是上升沿呢?

    , SDO updates during SCLK falling edges. 其读时序如下: 从时序图上看,FSDO = 0时,SDO的bit位在时钟下降沿有效,那么为什么定义中写的是上升沿呢 When 0, SDO updates during SCLK ris
    发表于 11-19 06:08

    MS51588N——16bit、8 通道、500kSPS、 SAR 型 ADC

    MS51588N 是 8 通道、16bit、电荷再分配逐次逼近型模数转换器,采用电源供电。提供方案和FAE支持,欢迎了解和咨询。
    的头像 发表于 11-15 10:14 196次阅读
    MS51588N——16<b class='flag-5'>bit</b>、8 通道、500kSPS、 SAR 型 ADC

    16bit 6通道带信号预处理的高速模数转换器——AiP8348

    16bit 6通道带信号预处理的高速模数转换器——AiP8348
    的头像 发表于 08-26 09:59 374次阅读
    16<b class='flag-5'>bit</b> 6通道带信号预<b class='flag-5'>处理</b>的高速模数转换器——AiP8348

    案例分享!RK3568 + FPGA通道AD采集处理与显示

    案例展示测试数据汇总表1本文带来的是基于瑞芯微RK3568J+紫光同创Logos-2的ARM+FPGA通道AD采集处理与显示案例。本次案例演示的开发环境如下:Windows开发环境
    的头像 发表于 06-27 15:19 826次阅读
    案例分享!RK3568 + FPGA<b class='flag-5'>多</b>通道AD采集<b class='flag-5'>处理</b>与显示

    STM32F407 ADC采样,12个bit能稳定10个bit吗?

    STM32F407 ADC采样,实验电源供电,测量干电池,12个bit能稳定10个bit么?
    发表于 03-12 07:03

    介绍一个IC设计错误案例:可读debug寄存器错误时钟

    本文将介绍一个时钟错误的案例如图所示,phy_status作为一个bit的phy_clk时钟域的信号,需要输入csr模块作为一个可读状态
    的头像 发表于 03-11 15:56 505次阅读
    介绍一个IC设计错误案例:可读debug寄存器错误<b class='flag-5'>跨</b><b class='flag-5'>时钟</b>

    为什么格雷码可以辅助解决bit时钟域的问题​?求解

    bit通过两级同步打拍可以有效的解决亚稳态问题。
    的头像 发表于 03-08 09:02 1339次阅读
    为什么格雷码可以辅助解决<b class='flag-5'>多</b><b class='flag-5'>bit</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b>域的问题​?求解

    CYUSB3014位宽为8bit、16bit和32bit时,最大传输速率是不是一样的?

    我想问一下CYUSB3014位宽为8bit、16bit和32bit时,最大传输速率是不是一样的?
    发表于 02-28 07:08

    芯片时钟域设计案例简析(一)

    最经典的2DFF 1-bit同步器如下,下图结构通常用于bit控制信号的异步处理
    的头像 发表于 01-18 09:24 1052次阅读
    芯片<b class='flag-5'>跨</b><b class='flag-5'>时钟</b>域设计案例简析(一)

    找一款24bit ADC,要求采样率8KSPS,能够提供裸DIE,有的加我

    1.采样位数:24bit 2.采样率:≥8k sps 4.支持端/差分输入 5.支持通道(端16路,差分8路) 6.ENOB: ≥16bit
    发表于 01-15 14:15

    请问ADUC7023 GPxDAT寄存器中bit16~bit23的作用是什么?

    请问 GPxDAT 寄存器 中的 bit16~bit23的作用是什么? 根据数据手册介绍,是用来配置端口x数据输出,但是改变端口电平不是通过GPxSET寄存器完成的吗?修改GPxSET寄存器会同
    发表于 01-11 07:12

    如何处理时钟域这些基础问题

    对于数字设计人员来讲,只要信号从一个时钟域跨越到另一个时钟域,那么就可能发生亚稳态。我们称为“时钟域”即“Clock Domain Crossing”,或CDC。
    发表于 01-08 09:39 637次阅读
    如何<b class='flag-5'>处理</b><b class='flag-5'>跨</b><b class='flag-5'>时钟</b>域这些基础问题