Glitch free 时钟切换技术


1. 应用场景

  • 异步电路,纯组合逻辑。
  • 使用组合逻辑进行不同时钟切换。

2. 解决方案

2.1 相关时钟源毛刺保护

  • 相关时钟源:同源时钟,存在整数倍数频率关系的时钟。
  • 采用下降沿采样控制信号SELECT信号的原因
    • Q只会CLK下降沿发生变化,而此时CLK时钟为0,两者相与一定为0,在CLK时钟为高电平时,才会将Q的值同步到OUT_CLOCK处。
    • 个人认为Q端输出和CLK做与操作部分和门控时钟原理一样,可以看这篇文章
      • 简单说,对于AND门,如果控制信号在时钟上升沿变化,那么会导致时钟被截断。
      • 对于用NAND Gate或者AND Gate实现的门控时钟,控制信号只能在时钟的低电平处进行跳变;对于用OR Gate或者NOR Gate实现的门控时钟,控制信号只能在时钟的高电平处跳变。
  • 具体分析如下波形所示。
    • SELECT初始值为0,此时由于上面寄存器DFF1输入值为0,所以DFF1的Qn输出值为1,那么下面寄存器DFF2的输入值为1,输出Q值为1;根据电路可以推出:输出OUT_CLOCK等于CLK0。
    • 当SELECT信号被拉高,但在T0时DFF2寄存器才检测到SELECT信号被拉高,输出端Q一直等于0.此时下面电路相当于被关闭。
    • 在T0之后的clk1的第一个下降沿,也就是T1时刻,DFF1输出端Q被拉高为1,此时输出OUT_CLOCK等于CLK1。
    • 完成两个时钟的切换,且没有毛刺。
  • 需要注意,DFF0和DFF1寄存器复位初始值都应该为0.

2.2 不相关时钟源毛刺保护

  • 2.1中介绍的电路并不适用处理异步信号。下图与上图只增加了一级两个上升沿的DFF,来避免出现亚稳态。
  • 其它原理与2.1节完全相同,仿真波形如下图所示。

posted @ 2023-07-19 13:03  可达达鸭  阅读(92)  评论(0编辑  收藏  举报