绝对干货:防毛刺的时钟切换电路设计思路
品慧电子讯如果将如何设计防止毛刺发生的时钟切换电路及危害告诉大家,大家知道后直接用这个电路就好了,但是如果你忘记了或者没见过这个电路是不是就无从下手了!所谓知其然也要知其所以然,只有知道了防毛刺的时钟切换电路设计思路才能够融会贯通!这里从一个角度,通过电路设计技巧来阐述防毛刺时钟切换电路的设计思路。希望看过之后,不用参考文章就能够自己设计出这个电路。对于一个时钟切换电路,输入两个异步时钟clk0、clk1,以及一个选择信号sel。(1) 假设不考虑glitch,直接使用Mux就可以完成切频。电路如下:



- 第一页:防毛刺的时钟切换电路设计思路(1)
- 第二页:防毛刺的时钟切换电路设计思路(2)
- 第三页:防毛刺的时钟切换电路设计思路(3)
(4) 将part0电路换成同样功能的带反馈的组合电路(为何要这样做,属于电路设计直觉和技巧)。最常见带反馈的电路是RS触发器,因此可以将part0换成如下电路。


- 第一页:防毛刺的时钟切换电路设计思路(1)
- 第二页:防毛刺的时钟切换电路设计思路(2)
- 第三页:防毛刺的时钟切换电路设计思路(3)
(6) 按照上面的分析,得到电路如下:

(1) 对s0插入的DFF需要用clk0作为时钟, 对于s1插入的DFF需要用clk1作为时钟。 (2) 后一级的DFF必须使用clock下降沿,因为是用AND门进行gating(如果用上升沿,则更容易出现毛刺)。如果换成2个OR+1个AND的MUX, 则必须用上升沿。 (3) 必须插入两级DFF防止metal stable, 前一级可以用上升沿,也可以用下降沿,用上升沿是为了节省时间。 (4) 所有的DFF 复位值都是0,即让clk_out处于无效状态。 (5) 必须满足先gating后放开的顺序,如果不满足,可以在G0/G1处各插入一个反相器。(用part0_b搭配part1的时候需要插入反相器,如下图)

- 第一页:防毛刺的时钟切换电路设计思路(1)
- 第二页:防毛刺的时钟切换电路设计思路(2)
- 第三页:防毛刺的时钟切换电路设计思路(3)