一、Verilog时钟切换
1、时钟切换问题
直接采用选择逻辑对时钟进行切换的电路如下图:

如果时钟选择信号sel_clk1与两个时钟都是异步的,则就会产生glitch

2、时钟切换方案
在两个电平相反的时候切换时钟,肯定会有毛刺,电平相同的时候,即使不产生毛刺,时钟切换后的第一个时钟周期占空比也是不理想的,所以,为避免毛刺,需要在两个时钟都为低电平的时候进行时钟切换。
一种典型的时钟切换电路:

该电路利用时钟下降沿对时钟选择信号sel_clk1进行缓冲,同时一个时钟选择信号对另一个时钟进行反馈控制,保证用一时刻只能一路时钟有效。最后采用“或操作”将两路时钟合并,完成时钟切换过程。

考虑到选择信号可能是异步信号,则需要在时钟选择信号的缓存寄存器之前加两级触发器进行同步处理,来减少亚稳态的传播,结构如下:

源码见附件:


2256

被折叠的 条评论
为什么被折叠?



