本文摘要:
以前有篇文章描写了时钟转换的时候毛刺(glitch)带给的危害,以及如何设计避免毛刺再次发生的时钟转换电路。但是没谈到电路设计的构想从何而来,大家看了之后告诉必要用这个电路,但是假如不看这篇文章,自己由头设计还是无从下手。 在这里,换另外一个角度,通过电路设计技巧来阐释以防毛刺时钟转换电路的设计思路。 期望看完之后,不必参照文章就需要自己设计出有这个电路。 对于一个时钟转换电路,输出两个异步时钟clk0、clk1,以及一个自由选择信号sel。以前有篇文章描写了时钟转换的时候毛刺(glitch)带给的危害,以及如何设计避免毛刺再次发生的时钟转换电路。但是没谈到电路设计的构想从何而来,大家看了之后告诉必要用这个电路,但是假如不看这篇文章,自己由头设计还是无从下手。 在这里,换另外一个角度,通过电路设计技巧来阐释以防毛刺时钟转换电路的设计思路。 期望看完之后,不必参照文章就需要自己设计出有这个电路。
对于一个时钟转换电路,输出两个异步时钟clk0、clk1,以及一个自由选择信号sel。 (1)假设不考虑到glitch,必要用于Mux就可以已完成切频。电路如下: 由于clk0/clk1/sel之间是异步关系,时钟转换不会再次发生在给定时刻,有一定的概率不会再次发生glitch.glitch的危害文章里早已概述,这里仍然反复。 (2)由于sel和clk0和clk1都是不实时的,我们可以从sel实时的方向应从,假如sel必须和clk0和clk1展开实时,那么sel必需分为两路,一个和clk0实时,一个和clk1实时,实时之后的sel讯号再行和clk0/clk1gating一起,就可以让问题形式化。
为了将sel分为两路,并且clk0/clk1必须分别gating,那么可以将mux逻辑用and/or设计出来,如下: 当然此Mux电路还可以用两个or再加一个and来构建,都可以。留意G0和G1两点就是分别对clk0和clk1展开gating.将来不会在G0/G1点放入实时DFF. (3)将上面电路拆下出两部分,一部分电路通过sel产生sel+和sel-两路,另一部分电路是gatingmux电路,如下: 只必须将sel-接通G0,sel+接通G1就是一个mux电路。
将电路分离,是为了先前技巧性的功能更换。 (4)将part0电路替换成某种程度功能的带上对系统的人组电路(为何要这样做到,归属于电路设计直觉和技巧)。
最少见带上对系统的电路是RS触发器,因此可以将part0替换成如下电路。 (5)将part0_a或者part0_b更换part0电路,功能恒定。如下: 不过,此时放入实时DFF的地方就多了一个自由选择,如果必要在G0,G1放入实时DFF,clk0和clk1的gating时间先后顺序不确认,还是有可能再次发生毛刺。而在s0和s1一处放入实时 DFF,正好利用对系统,让时钟转换按照安全性的顺序展开: (a)。
先gating寄居之前自由选择的时钟 (b)。然后再行放松即将自由选择的时钟 在(a)和(b)之间,输入时钟仍然都是违宪状态(对于2and+1or的mux来说,违宪状态就是0) (6)按照上面的分析,获得电路如下: 留意几点: (1)对s0放入的DFF必须用clk0作为时钟,对于s1放入的DFF必须用clk1作为时钟。
(2)后一级的DFF必需用于clock上升沿,因为是用AND门展开gating(如果用下降沿,则更容易经常出现毛刺)。如果替换成2个OR+1个AND的MUX,则必需用下降沿。
(3)必需放入两级DFF避免metalstable,前一级可以用下降沿,也可以用上升沿,用下降沿是为了节省时间。 (4)所有的DFF废黜值都是0,即让clk_out正处于违宪状态。
(5)必需符合先gating后放松的顺序,如果不符合,可以在G0/G1处各放入一个反相器。(用part0_b配上part1的时候必须放入反相器,如下图) (6)配上有所不同的part0电路和part1电路,经过稍许改动,都可以已完成以防毛刺切频电路的设计。
本文关键词:防止,开云体育app下载安装,毛刺,的,时钟,切换,电路,设计思想,以
本文来源:开云体育app下载手机版-www.hgehdq.com