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

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

3天内不再提示

CDC单bit脉冲跨时钟域的处理介绍

FPGA自习室 来源:未知 作者:徐起 2021-03-22 09:54 次阅读

单bit 脉冲跨时钟域处理

简要概述:

在上一篇讲了总线全握手跨时钟处理,本文讲述单bit脉冲跨时钟域的处理为下一篇总线单向握手跨时钟域处理做准备。脉冲同步器其实就是带边沿检测的单bit同步器,基本原理就是把脉冲信号进行展宽。

脉冲同步器应用场景:

适用单bit脉冲信号跨时钟域。慢到快,快到慢均可,源脉冲间隔至少要为2个目的时钟周期,否则会被漏采。当然,在慢到快时钟比率大于2倍以上时也是可以实时采样的。

脉冲同步器原理框图:

脉冲同步器跨时钟域原理图如下所示,使用了1个单bit同步器模块,因为脉冲展宽后是电平信号,所以这里采用单bit同步器(寄存器打2拍或者3拍)。这里源脉冲与寄存打拍后的脉冲相或运算得到一定宽度的电平信号,电平宽度可由源时钟和目的时钟比例得到;展宽信号跨时钟域后在目的时钟域下进行边沿检测得到目的脉冲信号。

注意:在设计脉冲同步器电路时有一个易错点,就是少了图中的红色椭圆的D触发器,这会可能导致脉冲同步器同步失败。这是因为脉冲展宽后信号是组合逻辑直接进行了单bit同步器(s2d sync)跨时钟域处理,而组合逻辑输出是有毛刺的,这样单bit同步器可能会采到毛刺导致多采现象。

工具在进行时序分析时,只会分析同步路径,而且完整的时序路径从源D触发器器的CK端到目的D触发器的D端。如果少了中间的D触发器,则会出现3条红色箭头的异步路径(源脉冲寄存器输入),如下图所示。实际加上中间的D触发器只有一条黄色箭头的异步路径才符合预期。

脉冲同步器仿真测试:

场景1:快到慢, 源时钟100Mhz 目的时钟25Mhz,SEL设置为1展宽,RATIO比例设置为4(实际展宽了5倍)。

从上图可以看出,快到慢脉冲同步时,脉冲间隔至少为2个目的时钟,才能被正确采样,否则会被漏采,如图源脉冲的第3个和4个脉冲由于间隔太近被漏采。

场景2:快到慢,源时钟100Mhz 目的时钟12.5Mhz,SEL设置为1展宽,RATIO比例设置为8(实际展宽了9倍)。

从上图可以看出,快到慢脉冲同步时,脉冲间隔至少为2个目的时钟,才能被正确采样,否则会被漏采,如图发现第二个脉冲被漏采样了。细心的朋友可能会发现,最后一个是电平脉冲同步器也是会把它当做一个脉冲输出。

场景3:慢到快,源时钟25Mhz 目的时钟100Mhz,SEL设置为0不需要展宽,

从上图可以看出,慢到快脉冲同步时,该同步器天然也是支持的,只要保证源脉冲能被目的时钟采到即可,可以视为带边沿检测的单bit同步器(寄存器打两拍)。

原文标题:CDC(二) 单bit 脉冲跨时钟域处理

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

责任编辑:haq

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

    关注

    19

    文章

    853

    浏览量

    94765
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130303
  • bit
    bit
    +关注

    关注

    0

    文章

    47

    浏览量

    31853

原文标题:CDC(二) 单bit 脉冲跨时钟域处理

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

收藏 人收藏

    评论

    相关推荐

    时钟脉冲类型和作用介绍

     在数字电路中,时钟脉冲被用作触发器和寄存器的控制信号,用于同步和调度数据的传输和处理。它起到了分时和协调不同部件的作用,确保它们按照特定的时间顺序执行。
    的头像 发表于 01-26 17:27 1576次阅读

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

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

    什么是时钟电路?什么是脉冲时钟电路是如何生成脉冲的?

    什么是时钟电路?什么是脉冲时钟电路是如何生成脉冲的? 时钟电路是一种电路,它产生的周期性的信号被用作计算机系统的基准。
    的头像 发表于 10-25 15:14 915次阅读

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

    时钟域( **Clock Domain Crossing,CDC** )通俗地讲,就是 **模块之间数据交互时用的不是同一个时钟进行驱动** ,如下图所示:左边的模块FA由C1驱动,属于C1
    的头像 发表于 09-20 11:24 1533次阅读
    <b class='flag-5'>处理</b>跨<b class='flag-5'>时钟</b>域(<b class='flag-5'>CDC</b>)信号同步的最常见方法

    脉冲和连续的时钟信号有什么区别?

    ,这篇文章将会详细介绍它们之间的差异。 单脉冲时钟信号是指在短时间内以一定的速率发生较短、高速峰值的脉冲信号。它们通常用于时序控制,计数和精确时钟
    的头像 发表于 09-15 16:28 1146次阅读

    时钟脉冲的主要作用

    和信号、定时任务以及多种其他的应用。本文将会详细介绍时钟脉冲的主要作用。 1. 支持CPU时序 计算机内部的操作都需要按照一定的时间顺序进行,否则它们的执行将会出现异常甚至崩溃。CPU时序就是指CPU内部各个部件之间的时间顺序关系和
    的头像 发表于 09-15 16:28 1589次阅读

    时钟信号和脉冲信号有区别吗?

    时钟信号和脉冲信号有区别吗? 时钟信号和脉冲信号虽然在某些方面可能有相似之处,但它们在本质上是不同的。本文将深入探讨这两种信号的特点、应用和区别。 1.
    的头像 发表于 09-15 16:28 2053次阅读

    时钟脉冲的主要作用

    特殊的输入信号,可以控制电路的输出状态,从而实现各种实用的功能。 时钟脉冲的主要作用是控制数字电路中的各种操作。例如,CPU中的时钟是用来控制处理器的时序操作,如指令执行、数据读写等。同样地,在存储器、I/O控制器
    的头像 发表于 08-24 15:49 2254次阅读

    数字设计中常见的CDC问题

    在数字系统级别的时钟域交叉(CDC)中,亚稳态传播问题是一个重要的挑战。在这个问题中,由于时序差异,信号在触发器之间的传输可能会导致亚稳态值的产生和传播。让我们来看一下模型,如图1所示。
    的头像 发表于 08-14 11:48 635次阅读
    数字设计中常见的<b class='flag-5'>CDC</b>问题

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

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

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

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

    Snap:bit脉冲LED开源分享

    电子发烧友网站提供《Snap:bit脉冲LED开源分享.zip》资料免费下载
    发表于 06-20 11:12 0次下载
    Snap:<b class='flag-5'>bit</b><b class='flag-5'>脉冲</b>LED开源分享

    高级FPGA设计技巧!多时钟和异步信号处理解决方案

    提高设计的组织架构 l处理ASIC验证原型里的门控时钟 n建立一个时钟模块 n自动门控移除 图2:通过门控时钟创建的
    发表于 06-02 14:26

    FPGA多bit时钟域之格雷码(一)

    FPGA多bit时钟域适合将计数器信号转换为格雷码。
    的头像 发表于 05-25 15:21 2030次阅读
    FPGA多<b class='flag-5'>bit</b>跨<b class='flag-5'>时钟</b>域之格雷码(一)

    FPGA跨时钟处理方法(二)

    上一篇文章已经讲过了单bit时钟域的处理方法,这次解说一下多bit的跨时钟域方法。
    的头像 发表于 05-25 15:07 627次阅读
    FPGA跨<b class='flag-5'>时钟</b>域<b class='flag-5'>处理</b>方法(二)