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

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

3天内不再提示

跨时钟域知识点梳理

Hack电子 来源:IC打工魂 2023-05-29 10:42 次阅读

随着实习面试的临近、秋招的逐步靠近,愈发觉得知识需要成系统,让它们串接起来。不然,太容易忘了

1、单比特信号

1.1电平同步

当我们需要在两个时钟域间传输一个电平信号,这里的电平信号表示信号能够维持一定的时间(如在原时钟域内至少维持两个周期),可以采用两个触发器打拍。

类似下面这种,持续一定时间,能在亚稳态稳定后采样到稳定的值,即第一个周期可能同步失败,但第二个周期有机会采样稳定的值,不发生亚稳态

wKgaomR0EVyAP5R_AAHWq4uaNko452.png

1.2、脉冲同步

当信号在发送端时钟域内只能持续一个周期时,可以称为脉冲信号。要注意的是,发送的是脉冲,收到的也应该是脉冲。

为了让脉冲能够被接收端采样,可以将脉冲信号在发送时钟域内变成电平信号。即采样到in_pulse为1,则翻转Q,将脉冲变成边沿。

只要脉冲有足够的间隔,就能保证接收端能够边沿检测,从而输出一个接收时钟周期的脉冲

wKgaomR0EVyANaeOAAAitsrSYDk246.png

1.3 握手

很显然,上面两种方式不存在接收方对发送方的反馈。

也可以使用握手协议,确保一笔一笔的完成传输,只有完成一笔传输,才会改变数据。

见:握手信号传输跨时钟域数据

wKgZomR0EVyAYiCkAACQWJ5j4q8062.png

1.4 展宽

当信号宽度不够,可以使用展宽的方法,如在发送域打拍,然后取或

wKgZomR0EVyAUYb_AADInV57AzU035.png

2、多bit

2.1 异步FIFO

使用异步FIFO传输数据--格雷码计数器实现

使用异步FIFO传输数据--对以前的强烈批判

2.2 多路复用

DMUX数据有效会搭配一个标志信号data_ready,对标志信号进行同步,将同步后的标志信号作为MUX的选通信号。

在发送时钟域内,标志信号和数据是同步的,在同步器内,标志信号同步有延迟。这样即使数据和标志信号在接收时钟上升沿附近变化,data_ready可能发生亚稳态,亚稳态结束后,同步后的标志信号可以正常工作。而数据在这些延迟内,能够达到稳定,即接收方采样的data是不变的,当然不会违反建立保持时间

这要求当data_ready=1时,data要保持

wKgZomR0EVyADD-TAACDdrvRnq0475.png

换种方式,我们可以将标志信号作为于触发器使能端。道理是类似的,en=0,并不会使能触发器的采样

wKgaomR0EVyAfABZAABDAgXl6Ww033.png

2.3 握手

和单bit类似,协议让数据维持足够的时间

wKgZomR0EV2Aetj-AAPF2tH_Qqc794.png

2.4 双口RAM

双口RAM可以同时读写

wKgaomR0EV2AVo1MAADYe3Jnstc366.png

增加读写控制逻辑,很像异步FIFO,不多说

wKgaomR0EV2AMRkbAAD9jr7J1bU223.png

3、收敛

当出现信号的合流时,如下图所示,dataa和datab将经过组合逻辑变成1bit。由于组合逻辑的延迟不同,可能出现毛刺,可能传输到错误的信号,

wKgaomR0EV2AchJTAAA45ryQWd0082.png

解决办法就是发送方再打拍

wKgZomR0EV2ACzM5AABVkwmJn94577.png

还要注意的是,两级同步后,也应该避免多比特使用组合逻辑,原因在于亚稳态恢复的数据不确定

wKgaomR0EV2AaRThAACZwKaxerk093.png

4、发散

当信号要作用于接收方的不同逻辑时,即有多个扇出,由于传播延时和不同的亚稳态解决时间meta-stable settling time,输出也可能不同。

因此只能先同步然后使用,避免分别同步使用

wKgZomR0EV2AAXG5AADGIK_Q7Z0804.png

审核编辑:汤梓红

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

    关注

    20

    文章

    884

    浏览量

    95522
  • fifo
    +关注

    关注

    3

    文章

    387

    浏览量

    43537
  • 信号
    +关注

    关注

    11

    文章

    2779

    浏览量

    76610
  • Mux
    Mux
    +关注

    关注

    0

    文章

    38

    浏览量

    23351
  • 时钟域
    +关注

    关注

    0

    文章

    52

    浏览量

    9528

原文标题:跨时钟域梳理

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    vivado约束案例:时钟路径分析报告

    时钟路径分析报告分析从一个时钟(源时钟)跨越到另一个
    的头像 发表于 11-27 11:11 5824次阅读
    vivado约束案例:<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>路径分析报告

    时钟控制信号传输设计方案

    1、时钟与亚稳态 时钟通俗地讲,就是模块之间有数据交互,但是模块用的不是同一个
    发表于 10-16 15:47 1136次阅读
    <b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>控制信号传输设计方案

    关于时钟信号的处理方法

    我在知乎看到了多bit信号时钟的问题,于是整理了一下自己对于时钟信号的处理方法。
    的头像 发表于 10-09 10:44 5974次阅读

    FPGA时钟处理的注意事项

    时钟之间不能存在组合逻辑。 时钟本身就容易产生亚稳态,如果在
    发表于 05-24 15:11 984次阅读
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理的注意事项

    关于cdc时钟处理的知识点,不看肯定后悔

    关于cdc时钟处理的知识点,不看肯定后悔
    发表于 06-21 07:44

    关于RTC时钟知识点

    在做智能手环时候使用到了关于RTC时钟的,今天我们来复习一下关于他的知识点。文章中我是参考的有STM32f411的中文参考手册,需要的话我会上传这个pdf版。实时时钟(RTC)养成查资料的好习惯
    发表于 08-11 08:27

    STM32时钟树的基础知识点汇总,绝对实用

    STM32时钟树的基础知识点汇总,绝对实用
    发表于 02-14 07:49

    PWM知识点详解

    PWM知识点
    发表于 03-16 08:00 44次下载

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

    这一章介绍一下CDC也就是时钟可能存在的一些问题以及基本的时钟处理方法。
    的头像 发表于 11-30 06:29 7140次阅读
    cdc路径方案帮您解决<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>难题

    关于FPGA中时钟的问题分析

    时钟问题(CDC,Clock Domain Crossing )是多时钟设计中的常见现象。在FPGA领域,互动的异步时钟
    发表于 08-19 14:52 3314次阅读

    关于时钟的详细解答

    每一个做数字逻辑的都绕不开时钟处理,谈一谈SpinalHDL里用于时钟处理的一些手段方法
    的头像 发表于 04-27 10:52 4226次阅读
    关于<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>的详细解答

    时钟电路设计总结

    时钟操作包括同步时钟操作和异步
    的头像 发表于 05-18 09:18 707次阅读
    <b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>电路设计总结

    FPGA时钟处理方法(一)

    时钟是FPGA设计中最容易出错的设计模块,而且一旦时钟出现问题,定位排查会非常困难,因为
    的头像 发表于 05-25 15:06 1923次阅读
    FPGA<b class='flag-5'>跨</b><b class='flag-5'>时钟</b><b class='flag-5'>域</b>处理方法(一)

    FPGA时钟处理方法(二)

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

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

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