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

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

3天内不再提示

探讨时钟切换电路的实现

工程师邓生 来源:芯司机 作者:芯司机 2022-08-31 18:04 次阅读

时钟芯片功能准确性、性能高低和功耗高低有着至关重要的影响。芯片的时钟来源一般有三种:

第一,通过外部引脚直接输入时钟信号,常用于接口芯片、传感器芯片,SOC系统中少见;

第二,外部晶振+内部时钟发生器产生时钟,常见于低速单片机

第三,内部时钟发生器+内部PLL +内部分频器产生时钟,常见于对安全、功耗有特殊要求的芯片;

第四,外部晶振+内部时钟震荡器+内部PLL +内部分频器产生时钟,性能高一点的MCU基本都采用这种方案。

以第四时钟方案为例,其采用外部晶振是因为外部晶振精度高,采用内部时钟振荡器是利用其安全、灵活、低功耗的优势,配置PLL可将外部晶振和内部振荡器的时钟倍频,再通过分频器分频供给到各个模块。且为了节省功耗该SOC系统往往工作频率可变,性能要求高时使用高频率、任务简单时使用低频率,不工作的时候可关掉时钟。这就是广泛应用的多时钟模式系统,实现该系统需要采用时钟切换、clock gating甚至power gating技术。

本文首先探讨时钟切换的实现,对于clock gating和power gating问题后续探讨。

7b53d9de-2910-11ed-ba43-dac502259ad0.png

图1

首先讨论两个时钟间的切换问题,这两个时钟可能是具有倍频关系的同步时钟,也能是不相关的异步时钟。很容易想到采用二选一选择器就可以实现这一功能,不幸的是无论这两个时钟关系如何,都可能在时钟线上引入毛刺,如图1所示。

二选一选择器采用与或门的形式实现,SEL是选择信号,选择CLK0或CLK1到输出端口CLKOUT,也就是说CLKOUT是CLK0和CLK1拼接的结果。

图1中,SEL信号由低到高变化,CLK0为高电平、CLK1为低电平,此时CLKOUT就会出现向下的毛刺;如果此时CLK0的频率高于CLK1,那么CLKOUT的毛刺就是向上的脉冲。既然毛刺的出现是选择信号SEL变化时,两个输入时钟CLK0和CLK1高低交错,高低电平拼接造成的。

那么,如果让选择信号在两个时钟的下降沿处分别将时钟截断,再拼接成输出时钟,是不是就可以避免毛刺出现了呢?为此,我们在选择路径中插入下降沿触发器对SELECT信号进行下降沿采样,如图2(a)所示。

7b626bb6-2910-11ed-ba43-dac502259ad0.png

图 2(a)

7b753c1e-2910-11ed-ba43-dac502259ad0.png

图 2(b)

但这样仍存在问题,存在着CLK0没有被SELECT关断,CLK1已经开始输出的情况,这仍有可能产生输出毛刺,如图2(b)所示。

为了保证一个时钟选择信号关断后另一个时钟再输出,再在触发器前插入与门,连接成交叉反馈结构,如图3(a)所示,这就是经典的时钟转换电路。但这还是不够,如果CLK1和CLK0是异步的,那还需要对其进行同步,采用传统同步方式,插入上升沿触发器即可,如图3(b)所示。

7b89e3bc-2910-11ed-ba43-dac502259ad0.png


图 3(a)

7b9d2ef4-2910-11ed-ba43-dac502259ad0.png

图 3(b)

到这里我们已经掌握了实现两个时钟切换的电路设计的基本思路,那如果有三个甚至更多时钟相切换又该怎么办?沿袭以上设计思路,将该电路结构进行扩展,每一路双锁存输出都相互交叉反馈即可,图4以四个时钟切换为例,给出了电路结构图。

7babbfdc-2910-11ed-ba43-dac502259ad0.jpg

图 4

以上就完成了时钟切换基础设计,总结一下大家需要知道,多时钟系统已经广泛应用,在进行时钟转换设计时, 1、单纯采用MUX对时钟做选择是不行的; 2、图3所示的时钟切换电路能够以较小的消耗而消除时钟切换时的毛刺; 3、该时钟切换电路结构可扩展,可按照这样的设计思路设计多选一时钟切换电路; 4、如果是异步时钟还要插入双锁存结构消除亚稳态。



审核编辑:刘清

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

    关注

    43

    文章

    433

    浏览量

    49316
  • 时钟发生器
    +关注

    关注

    1

    文章

    169

    浏览量

    66966
  • 时钟芯片
    +关注

    关注

    2

    文章

    229

    浏览量

    39577

原文标题:你不可不知的——时钟切换电路

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

收藏 人收藏

    评论

    相关推荐

    数字电路时钟切换电路解析

    以上是一个比较经典的时钟切换电路。 根据实际使用场景的不同,时钟切换有很多不同的实现方法,都可以
    的头像 发表于 02-18 18:22 1166次阅读
    数字<b class='flag-5'>电路</b>之<b class='flag-5'>时钟</b><b class='flag-5'>切换</b><b class='flag-5'>电路</b>解析

    基于MOS管的双电源自动切换电路设计

    实现双电源自动切换电路,其中利用了三个MOS管进行的电路设计。
    的头像 发表于 01-10 09:36 6008次阅读
    基于MOS管的双电源自动<b class='flag-5'>切换</b><b class='flag-5'>电路</b>设计

    主备电源延时切换电路设计运行原理

    主备电源延时切换电路运行原理:我们通过一个中间继电器和一个通电延时继电器来实现主备电源延时切换。我们把主备电源同时送电。
    的头像 发表于 12-17 17:49 673次阅读
    主备电源延时<b class='flag-5'>切换</b><b class='flag-5'>电路</b>设计运行原理

    如何实现分频时钟切换

    其实这个分频时钟切换很简单,根本不需要额外的切换电路。一个共用的计数器,加一点控制逻辑,就可以了,而且可以实现2到16任意整数分频率之间的无
    的头像 发表于 12-14 15:28 315次阅读
    如何<b class='flag-5'>实现</b>分频<b class='flag-5'>时钟</b>的<b class='flag-5'>切换</b>

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

    什么是时钟电路?什么是脉冲?时钟电路是如何生成脉冲的? 时钟电路是一种
    的头像 发表于 10-25 15:14 928次阅读

    嵌入式单片机开发的“时钟”是如何实现的?

    的时间数据,为各种应用提供准确的时间参数。时钟实现通常需要在硬件和软件两个方面进行相关设计。 硬件部分 时钟电路 时钟
    的头像 发表于 10-25 15:07 652次阅读
    嵌入式单片机开发的“<b class='flag-5'>时钟</b>”是如何<b class='flag-5'>实现</b>的?

    系统时钟切换到外部时钟后内部的时钟是否应关闭?

    系统时钟切换到外部时钟后内部的时钟是处于关闭状态还是保持动作状态?
    发表于 10-25 06:56

    一种RFID密集天线切换电路实现

    电子发烧友网站提供《一种RFID密集天线切换电路实现.pdf》资料免费下载
    发表于 10-23 10:23 0次下载
    一种RFID密集天线<b class='flag-5'>切换</b><b class='flag-5'>电路</b>的<b class='flag-5'>实现</b>

    使用普通的多路复用器进行切换时钟会发生什么?

    在现代芯片中,芯片运行时有必要在两个不同的时钟之间切换。如果我们使用普通的多路复用器进行切换时钟会发生什么?
    的头像 发表于 09-20 10:53 935次阅读
    使用普通的多路复用器进行<b class='flag-5'>切换</b><b class='flag-5'>时钟</b>会发生什么?

    时钟电路有哪几种 时钟电路的工作原理及过程

    时钟分频电路通过将输入的高频时钟信号分频,生成较低频率的时钟信号。它通常基于计数器和逻辑门实现,用于将高频
    的头像 发表于 09-14 14:53 5956次阅读

    讯维无缝切换矩阵的设计与实现

    讯维无缝切换矩阵是一种基于云计算的视频处理技术,主要应用于视频会议、在线教育、远程医疗等领域。它可以将多个输入输出设备连接起来,实现音视频的采集、编码、解码和传输,同时根据网络状况和设备性能动态调整
    的头像 发表于 08-31 16:10 246次阅读

    如何仅使用逻辑门和寄存器产生无毛刺输出的时钟切换

    大部分开发者使用 BUFGCTRL 或 BUFGMUX进行时钟切换,它们在时钟切换上可以提供无毛刺输出。
    的头像 发表于 08-16 09:05 834次阅读
    如何仅使用逻辑门和寄存器产生无毛刺输出的<b class='flag-5'>时钟</b><b class='flag-5'>切换</b>?

    如何去实现一种基于psoc6的时钟系统设计?

    近年来,随着电子产品的发展,人们对时钟的要求越来越高。时钟系统是一种用数字电路技术实现年、月、日、周、时、分、秒计时的装置,与机械式时钟相比
    的头像 发表于 07-31 14:51 587次阅读
    如何去<b class='flag-5'>实现</b>一种基于psoc6的<b class='flag-5'>时钟</b>系统设计?

    如何去实现一种跨时钟电路的设计?

    在一个复杂的SoC(System on Chip)系统中,不可能只有一个时钟。我们一般认为,一个时钟控制的所有寄存器集合处于该时钟时钟域中。
    的头像 发表于 07-13 17:39 1074次阅读
    如何去<b class='flag-5'>实现</b>一种跨<b class='flag-5'>时钟</b>域<b class='flag-5'>电路</b>的设计?

    探讨两种时钟同步的总线电路方案

    高速数字电路模块通常以同步(synchronous)电路的形式实现,它们由一个或者多个时钟驱动(触发)。
    的头像 发表于 06-27 15:18 1032次阅读
    <b class='flag-5'>探讨</b>两种<b class='flag-5'>时钟</b>同步的总线<b class='flag-5'>电路</b>方案