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

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

    关注

    173

    文章

    6033

    浏览量

    175562
  • 时钟
    +关注

    关注

    11

    文章

    1908

    浏览量

    133454

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    一款芯片、电源、10bit、50MSPS的模数转换器-MS9280

    模数转换芯片 - MS9280是一款芯片、电源、10bit、50MSPS模数转换器;内部集成了采样保持放大器和电源基准源。MS9280使用多级差分流水线架构保证了50MSPS数据转换数率下全温度范围内无失码。
    的头像 发表于 06-09 17:16 ?337次阅读
    一款<b class='flag-5'>单</b>芯片、<b class='flag-5'>单</b>电源、10<b class='flag-5'>bit</b>、50MSPS的模数转换器-MS9280

    深入浅出解析:为什么高精度测量要选择12bit示波器?

    示波器是电子工程师的核心工具,能够直观观察信号特性。本文通过对比实验,分析12bit和8bit示波器在信号捕捉和波形还原方面的关键差异,解释为何高精度测量工作中,12bit示波器能提供更可靠的测量
    的头像 发表于 05-22 11:40 ?394次阅读
    深入浅出解析:为什么高精度测量要选择12<b class='flag-5'>bit</b>示波器?

    异步时钟处理方法大全

    该方法只用于慢到快时钟域的1bit信号传递。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)标记,将两个寄存器尽量靠近综合,降低 亚稳态因导线延迟太大而传播到第二个寄存器的可能性。
    的头像 发表于 05-14 15:33 ?803次阅读
    <b class='flag-5'>跨</b>异步<b class='flag-5'>时钟</b>域<b class='flag-5'>处理</b>方法大全

    ADAU1701 SigmaDSP 28/56 Bit音频处理器,内置2个ADC和4个DAC技术手册

    ADAU1701是一款完整的芯片音频系统,包含28/56 bit音频DSP、ADC、DAC以及类似微控制器的控制接口。信号处理包括平衡、混音、低音增强、波段动态
    的头像 发表于 05-12 16:13 ?722次阅读
    ADAU1701 SigmaDSP 28/56 <b class='flag-5'>Bit</b>音频<b class='flag-5'>处理</b>器,内置2个ADC和4个DAC技术手册

    DLP3010投影图片超过48Bit,超过48bit的图片不会投影是怎么回事?

    Run Continuously顺序依次投影条纹图片,但是目前发现系统只是在循环投影Pattern Set(1)里面的六张8bit的图片,其它Pattern Set里面的图片不会投影,我的目的是6个pattern set里面的共36张8Bit的条纹图片依次投影,请问如
    发表于 02-27 07:37

    在第48个1bit图片和第49个1bit图片直接,EVM会做什么呢?

    我现在需要在Pattern Sequence模式下投放远超48个的1bit图像,也就是说会遇到加载新图片的时间问题。dlp011f中提到加载时间是最长200ms,而真实加载时间和图片的复杂程度有关
    发表于 02-25 07:58

    DLP3010EVM-LC通过External Pattern获取幅1bit图像有竖条纹如何解决?

    最近购进3010evmlc评估板,目前在external模式下遇到问题。 我计划投影3张1bit图片,并同步相机拍摄。 我阅读了TI的说明书,采用下列操作: 把3张图片按二进制bitplane做成
    发表于 02-21 13:13

    DLP3010一个序列中包含8bit图和1bit图投影错误怎么解决?

    DLP3010投影仪投影两个图形序列。第一个序列包含1个8bit的pattern set,和一个1bit的pattern set。第二个序列仅包含1个1bit的pattern set。会根据需要切换
    发表于 02-21 10:15

    当ADS129X模拟部分工作在3V电源时,medSim 300B给出的ECG信号存在负电压,ADS129X的24BIT的ADC怎么处理

    当ADS129X的模拟部分工作在3V的电源时,而FLUKE的medSim 300B模拟器给出的ECG信号存在极其微弱的负电压,此时ADS129X的24BIT的ADC怎么处理,我目前得出的结果是ADC得出的结果溢出了
    发表于 02-11 07:05

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

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

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

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

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

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