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

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

3天内不再提示

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

全栈芯片工程师 来源:全栈芯片工程师 2024-01-18 09:24 次阅读

(一)单bit信号同步器

最经典的2DFF 1-bit同步器如下,下图结构通常用于单bit控制信号的异步处理:

3a796b5a-b54a-11ee-8b88-92fbcf53809c.png

绝大数情况下,当第一个寄存器R1进入亚稳态后,在第二级寄存器R2采样R1的输出前,R1的输出已经能稳定在0或1。

注意:

cdc_s信号必须做到glitch free,也就是我们通常说的寄存输出;

int_s信号链路禁止组合逻辑,其本质也是杜绝glitch的出现。

偏执狂的IC designer肯定会问,第一级寄存器R1的行为到底是啥样子的?由于cdc_s信号是Tx clock Domain,而R1寄存器的采用时钟是Rx clock Domain,当Rx clock采样时,若cdc_s正好跳变(不满足setup/hold),那么就会出现如下两种情况,而前仿真是无法仿真出下图2种行为的(具体见芯片设计之CDC异步电路(一)一文)。

3a8b93a2-b54a-11ee-8b88-92fbcf53809c.png

(二DMUX同步器 两级寄存器(先进工艺要求三级)的同步器通常用于控制信号的异步处理,但是data bus的异步处理呢?我们可以采用DMUX结构。

3a9e4b8c-b54a-11ee-8b88-92fbcf53809c.png

注意:

tx_sel、rx_sel有效时,cdc_d数据总线必须保持稳定;

(三握手处理

源时钟域先将数据发送到总线上,并给出一个valid信号,而目标时钟域同步valid信号后,若valid信号为高电平则采样总线数据,并返回一个ready信号给源时钟域。源时钟域再次同步该ready信号,若ready信号为高,则代表一次握手成功,数据传输完毕,开始进行下一次数据传输。

采用握手机制可以保证异步multi-bit数据传输不出现错误,但由于需要等待握手的完成再传输数据,因此传输效率较低。

3aae9bb8-b54a-11ee-8b88-92fbcf53809c.png

(四)异步FIFO

老生常谈的异步FIFO,其本质是采用格雷码,在地址连续的情况下,其对应格雷码每个周期只变化1bit,因此可以直接异步采样。

3ac449fe-b54a-11ee-8b88-92fbcf53809c.png

注意:

FIFO的overflow、underflow问题;

tx_addr是连续的,即地址hamming distance是1;

FIFO深度须2^n;

经典的FIFO结构如下:

3adb6062-b54a-11ee-8b88-92fbcf53809c.png

核心电路:是将FIFO读写地址指针的二进制码转成格雷码,方便同步器打两拍传递到对向时钟域去做空满判断。

3ae5ce9e-b54a-11ee-8b88-92fbcf53809c.png

空满判断:为了区别空满,我们增加1bit的地址(MSB),我习惯直接用Gray码比较读写指针判定空满:

当Gray码读写指针完全相等时,FIFO空;

当Gray码读写指针最高2bit相反,其余bit相同时,FIFO满; 通常二进制码比较空满是:最高bit不同,其余bit相同,则FIFO满,而格雷码则不同哈。

3af20dda-b54a-11ee-8b88-92fbcf53809c.png








审核编辑:刘清

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

    关注

    30

    文章

    5032

    浏览量

    117745
  • CDC
    CDC
    +关注

    关注

    0

    文章

    55

    浏览量

    17679
  • 同步器
    +关注

    关注

    1

    文章

    78

    浏览量

    14489
  • FIFO存储
    +关注

    关注

    0

    文章

    102

    浏览量

    5895
  • 异步处理
    +关注

    关注

    0

    文章

    7

    浏览量

    6531

原文标题:芯片跨时钟域设计(一)

文章出处:【微信号:全栈芯片工程师,微信公众号:全栈芯片工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    射频识别芯片设计中时钟树功耗的优化与实现

    在RFID芯片中的功耗主要有模拟射频前端电路,存储器,数字逻辑三部分,而在数字逻辑电路中时钟树上的功耗会占逻辑功耗不小的部分。本文着重从降低数字逻辑时钟树功耗方面阐述了一款基于ISO18000-6
    发表于 03-24 14:36 3827次阅读

    TC3xx芯片时钟系统的锁相环PLL详解

    中的Tick数就是基于模块时钟的)。本系列文章就来详细介绍TC3xx芯片时钟系统及其具体配置。本文为TC3xx芯片时钟系统的锁相环PLL详解。
    的头像 发表于 12-01 09:37 804次阅读
    TC3xx<b class='flag-5'>芯片时钟</b>系统的锁相环PLL详解

    两级DFF同步器时钟处理

    异步bus交互()— 两级DFF同步器时钟处理 & 亚稳态处理1.问题产生现在的芯片(比如SOC,片上系统)集成度和复杂度越来越高,通
    发表于 02-17 06:34

    高性能锁相回路(PLL)的单芯片时钟IC Si5374和Si5375

    Si5374和Si5375是业界第一款集成了四个独立高性能锁相回路(PLL)的单芯片时钟IC,它所提供的PLL集成是其它竞争解决方案的两倍,抖动则低了40%。
    发表于 05-18 09:39 2276次阅读
    高性能锁相回路(PLL)的单<b class='flag-5'>芯片时钟</b>IC Si5374和Si5375

    时钟芯片有哪些,时钟芯片作用是什么?

    目前,在市场所比较流行的时钟芯片有很多种,并且被广泛的使用。这些时钟芯片具有着价格低廉、使用方便、功能强大的作用。那么时钟
    发表于 10-18 15:18 4.1w次阅读

    实时时钟芯片有哪些_实时时钟芯片选型介绍

    本文主要介绍了时钟芯片有哪些、时钟芯片结构与工作原理,其次介绍了时钟芯片布线与
    发表于 01-29 08:44 3.9w次阅读
    实时<b class='flag-5'>时钟</b><b class='flag-5'>芯片</b>有哪些_实时<b class='flag-5'>时钟</b><b class='flag-5'>芯片</b>选型介绍

    使用51单片机和DS1302芯片设计的LED时钟的C语言程序和工程文件

    本文档的主要内容详细介绍的是使用51单片机和DS1302芯片设计的LED时钟的C语言程序和工程文件免费下载。
    发表于 09-03 08:00 7次下载
    使用51单片机和DS1302<b class='flag-5'>芯片</b>设计的LED<b class='flag-5'>时钟</b>的C语言程序和工程文件

    GD32107C芯片RTC时钟源代码

    GD32107C芯片-RTC时钟源代码
    发表于 10-08 14:57 1次下载

    芯片为什么要时钟信号

    芯片为什么要时钟信号 芯片是现代电子设备的核心组成部分,广泛应用于计算机、手机、电视等各个领域。芯片内部有着复杂的电子元件和电路结构,这些元件和电路结构需要进行同步操作,以实现正确的工
    的头像 发表于 09-01 15:38 1583次阅读

    用FPGA的锁相环PLL给外围芯片提供时钟

    用FPGA的锁相环PLL给外围芯片提供时钟 FPGA锁相环PLL(Phase-Locked Loop)是一种广泛使用的时钟管理电路,可以对输入时钟信号进行精确控制和提高稳定性,以满足各
    的头像 发表于 09-02 15:12 1510次阅读

    芯片为什么要时钟信号?

    芯片为什么需要时钟信号? 在我们日常生活中,我们所使用的各种电子设备都需要一个时钟信号来进行计时和同步,例如:手机、电脑、电视、汽车、机器人、智能家居等设备都需要时钟信号。对于各种这些
    的头像 发表于 09-15 16:28 1609次阅读

    芯片时钟不稳定会怎么样?芯片内部时钟紊乱的原因

    芯片时钟不稳定会怎么样?芯片内部时钟紊乱的原因  芯片是电子设备中最重要的组成部分之一,因为它们负责控制电子设备的整个操作,并保证设备的稳定运行。在
    的头像 发表于 10-25 15:07 1323次阅读

    FPGA为什么有时候还需要一个时钟配置芯片提供时钟呢?

    FPGA为什么有时候还需要一个时钟配置芯片提供时钟呢? FPGA(Field Programmable Gate Array)是一种可编程逻辑器件,可以根据不同需要编程,实现不同的功能。在FPGA
    的头像 发表于 10-25 15:14 1152次阅读

    Xilinx FPGA芯片内部时钟和复位信号使用方法

    如果FPGA没有外部时钟源输入,可以通过调用STARTUP原语,来使用FPGA芯片内部的时钟和复位信号,Spartan-6系列内部时钟源是50MHz,Artix-7、Kintex-7等
    的头像 发表于 10-27 11:26 1091次阅读
    Xilinx FPGA<b class='flag-5'>芯片</b>内部<b class='flag-5'>时钟</b>和复位信号使用方法

    芯片为什么要时钟信号 时钟芯片的作用是什么?

    芯片为什么要时钟信号 时钟芯片的作用是什么? 时钟信号在芯片中起着非常重要的作用。它是
    的头像 发表于 01-29 18:11 1083次阅读