glitch free的时钟切换技术

学习摘自数字芯片实验室

随着当今芯片中使用越来越多的时钟,通常在芯片运行时需要对时钟进行切换。

我们可以在芯片中复用两个不同频率的时钟源,由内部逻辑控制多路复用器的选择信号。

所复用的两个时钟频率可以完全无关,也可以是彼此的倍数。在任何一种情况下,都有可能在时钟切换时产生毛刺。时钟上的毛刺会造成整个系统功能的故障,因为它可能被某些寄存器认为是时钟边沿而被其他寄存器忽略。

在这里插入图片描述

上图显示了使用AND-OR型多路复用器逻辑的时钟切换的简单实现。

多路复用器有一个名为SELECT的控制信号,

当设置为“SELECT= 1’b0”时,它将CLK0传播到输出,当设置为“SELECT = 1’b1”时将CLK1传播到输出。当SELECT值改变时,可能会产生毛刺。

上图中的时序图显示了当SELECT控制信号发生变化时,输出OUT CLOCK如何产生毛刺。

在这里插入图片描述

上图显示了防止时钟切换出现毛刺的解决方案。在每个时钟源的选择路径中插入一个负边沿触发的D触发器。在其他时钟不使能后,在时钟的下降沿寄存选择控制信号,可以防止输出信号出现毛刺。

在时钟的下降沿寄存选择信号可确保在时钟处于高电平时输出端不会发生变化。

在上面的时序图中,SELECT信号从0到1的转变,在CLK0的下降沿停止CLK0传播到输出,然后在CLK1的后续下降沿开始CLK1传播到输出。

该电路中有三个时序路径需要特别考虑 - SELECT控制信号到两个负边沿触发触发器,DFF0输出到DFF1的输入,DFF1的输出到DFF0的输入。

如果这三条路径中的任何一条路径上的信号与触发器时钟边沿靠近,则该寄存器的输出很可能变为亚稳态。

在这里插入图片描述

如上图所示,通过为每个时钟源添加一个额外级的正边沿触发器,稳定数据来防止亚稳态的传播。

上述glitch free的时钟切换技术以非常小的开销避免在时钟切换时产生毛刺。这些技术可以扩展到两个以上的时钟切换。

对于多个时钟切换,每个时钟的选择信号将接受其他所有时钟源的反馈信号。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值