时钟切换


芯片运行时需要切换不同的时钟源。两个不同的时钟之间可能是完全不相关的,即频率与相位均不相关,也可能存在一定的相位关系或频率倍数关系。但不管是何种关系,如果贸然进行简单的时钟切换的话,就会出现这种情况,上一个时钟还没有结束一个周期,替换的时钟就出现了,这样就会出现了毛刺。

简单的时钟切换

采用与门和或门构成的选择器电路,时钟选择由SEL信号控制。 当SELECT发生翻转时会切换时钟源,由于切换信号的时刻是不确定的,因此可能会出现毛刺。

实际波形展示:

无毛刺的时钟切换

在每个时钟源的选择路径中插入一个负边沿触发的D触发器。 在时钟的下降沿采样选择控制(SELECT),以及仅在首先使其他时钟无效后使能选择(SELECT),可以提供出色的输出保护。

可以分析一波,当select信号拉高时,此时DFF0输出QN还为0,所以需要等待CLK0下降沿到达,QN翻转为1,。此时DFF1的输入就为1,在CLK1下降沿到达后,输出时钟就会切换成了CLK1。
效果展示如下:

改进后的时钟切换

SELECT信号是要到CLK0和CLK1两个不同时域,他的变化会导致亚稳态的出现。所以我们要在两个时钟域中对它进行同步处理。
采用两级触发器,既可以实现同步,也可以避免毛刺。


文章作者: zhr
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhr !
  目录