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

    文章

    6063

    浏览量

    177454
  • 时钟
    +关注

    关注

    11

    文章

    1953

    浏览量

    134532

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FLASHDB中KVDB 的FDB_WRITE_GRAN可以改为64bit或者128bit而TSDB为什么不行?

    FLASHDB中KVDB 的FDB_WRITE_GRAN可以改为64bit或者128bit而TSDB为什么不行?
    发表于 09-23 06:54

    主板的RGB接口是16bit位(RGB-565),怎么24bit位RGB接口的 屏幕 接线 ?

    求助各位大神, 主板的RGB接口是16bit位(RGB-565),怎么24bit位RGB接口的 屏幕 接线 ?
    发表于 09-16 10:13

    大彩讲堂:VisualHMI-LUA教程-set_bit/get_bit函数应用

    set_bit/get_bit函数应用
    的头像 发表于 08-31 17:05 588次阅读
    大彩讲堂:VisualHMI-LUA教程-set_<b class='flag-5'>bit</b>/get_<b class='flag-5'>bit</b>函数应用

    液晶显示屏LVDS接口JEIAD 、VESA、18bit LVDS关联和区别

    方式: 它使用4个数据通道(3个传RGB数据,1个传时钟和控制信号)。 在每个时钟周期内,它将3个8bit的R/G/B数据(共24bit)和3个控制信号(HS, VS, DE)拆分到3
    发表于 08-30 09:13

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

    模数转换芯片 - MS9280是一款芯片、电源、10bit、50MSPS模数转换器;内部集成了采样保持放大器和电源基准源。MS9280使用多级差分流水线架构保证了50MSPS数据转换数率下全温度范围内无失码。
    的头像 发表于 06-09 17:16 540次阅读
    一款<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 785次阅读
    深入浅出解析:为什么高精度测量要选择12<b class='flag-5'>bit</b>示波器?

    面向电机系统的磁编解决方案:MT6501的12bit分辨率同步采样

    MT6501磁编码芯片以12bit分辨率、三路同步采样架构突破电机协同控制瓶颈,将时序误差压缩至50ns,全温区精度达±0.5°,在强干扰环境中实现零故障运行,重新定义工业运动控制的精度边界。
    的头像 发表于 05-19 16:50 707次阅读
    面向<b class='flag-5'>多</b>电机系统的磁编解决方案:MT6501的12<b class='flag-5'>bit</b>分辨率同步采样

    异步时钟处理方法大全

    该方法只用于慢到快时钟域的1bit信号传递。在Xilinx器件中,可以使用(* ASYNC_REG = "TRUE" *)标记,将两个寄存器尽量靠近综合,降低 亚稳态因导线延迟太大而传播到第二个寄存器的可能性。
    的头像 发表于 05-14 15:33 1278次阅读
    <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 1529次阅读
    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