你的位置:首頁(yè) > 電路保護(hù) > 正文

絕對(duì)干貨:防毛刺的時(shí)鐘切換電路設(shè)計(jì)思路

發(fā)布時(shí)間:2015-01-16 責(zé)任編輯:sherryyu

【導(dǎo)讀】如果將如何設(shè)計(jì)防止毛刺發(fā)生的時(shí)鐘切換電路及危害告訴大家,大家知道后直接用這個(gè)電路就好了,但是如果你忘記了或者沒(méi)見(jiàn)過(guò)這個(gè)電路是不是就無(wú)從下手了!所謂知其然也要知其所以然,只有知道了防毛刺的時(shí)鐘切換電路設(shè)計(jì)思路才能夠融會(huì)貫通!
 
這里從一個(gè)角度,通過(guò)電路設(shè)計(jì)技巧來(lái)闡述防毛刺時(shí)鐘切換電路的設(shè)計(jì)思路。希望看過(guò)之后,不用參考文章就能夠自己設(shè)計(jì)出這個(gè)電路。
 
對(duì)于一個(gè)時(shí)鐘切換電路,輸入兩個(gè)異步時(shí)鐘clk0、clk1,以及一個(gè)選擇信號(hào)sel。
 
(1) 假設(shè)不考慮glitch,直接使用Mux就可以完成切頻。電路如下:
電路
由于clk0/clk1/sel之間是異步關(guān)系,時(shí)鐘切換會(huì)發(fā)生在任意時(shí)刻,有一定的概率會(huì)發(fā)生glitch. glitch的危害文章里已經(jīng)詳述,這里不再重復(fù)。
 
(2) 由于sel和clk0和clk1都是不同步的,我們可以從sel同步的方向入手,假如sel需要和clk0和clk1進(jìn)行同步,那么sel必須分成兩路,一個(gè)和clk0同步,一個(gè)和clk1同步,同步之后的sel訊號(hào)再和clk0/clk1 gating起來(lái),就可以讓問(wèn)題簡(jiǎn)單化。為了將sel分成兩路,并且clk0/clk1需要分別gating, 那么可以將mux邏輯用and/or設(shè)計(jì)出來(lái),如下:
電路
當(dāng)然此Mux電路還可以用兩個(gè)or加上一個(gè)and來(lái)實(shí)現(xiàn),都可以。 注意G0和G1兩點(diǎn)就是分別對(duì)clk0和clk1進(jìn)行g(shù)ating. 將來(lái)會(huì)在G0/G1點(diǎn)插入同步DFF.
 
(3) 將上面電路拆開(kāi)成兩部分,一部分電路通過(guò)sel產(chǎn)生sel+和sel-兩路,另一部分電路是gating mux電路, 如下:
 
對(duì)于一個(gè)時(shí)鐘切換電路,輸入兩個(gè)異步時(shí)鐘clk0、clk1,以及一個(gè)選擇信號(hào)sel。
 
(1) 假設(shè)不考慮glitch,直接使用Mux就可以完成切頻。電路如下:
電路
只需要將sel-接上G0, sel+接上G1就是一個(gè)mux電路。將電路分開(kāi),是為了后續(xù)技巧性的功能替換。
 
[page]

(4) 將part0電路換成同樣功能的帶反饋的組合電路(為何要這樣做,屬于電路設(shè)計(jì)直覺(jué)和技巧)。最常見(jiàn)帶反饋的電路是RS觸發(fā)器,因此可以將part0換成如下電路。
part0換成如下電路
(5) 將part0_a或者part0_b替換part0電路,功能不變。如下:
(5) 將part0_a或者part0_b替換part0電路
不過(guò),此時(shí)插入同步DFF的地方就多了一個(gè)選擇, 如果直接在G0, G1插入同步DFF, clk0和clk1的gating時(shí)間先后順序不確定,還是有可能發(fā)生毛刺。而在s0和s1處插入同步DFF, 正好利用反饋,讓時(shí)鐘切換按照安全的順序進(jìn)行:
 
(1) 先gating住之前選擇的時(shí)鐘
 
(2) 然后再放開(kāi)將要選擇的時(shí)鐘
 
在(1)和(2)之間, 輸出時(shí)鐘一直都是無(wú)效狀態(tài)(對(duì)于2and + 1or的mux來(lái)說(shuō),無(wú)效狀態(tài)就是0)
[page]

(6) 按照上面的分析,得到電路如下:
電路
注意幾點(diǎn):

(1) 對(duì)s0插入的DFF需要用clk0作為時(shí)鐘, 對(duì)于s1插入的DFF需要用clk1作為時(shí)鐘。
                     
(2) 后一級(jí)的DFF必須使用clock下降沿,因?yàn)槭怯肁ND門進(jìn)行g(shù)ating(如果用上升沿,則更容易出現(xiàn)毛刺)。如果換成2個(gè)OR+1個(gè)AND的MUX, 則必須用上升沿。
                    
(3) 必須插入兩級(jí)DFF防止metal stable, 前一級(jí)可以用上升沿,也可以用下降沿,用上升沿是為了節(jié)省時(shí)間。
                    
(4) 所有的DFF 復(fù)位值都是0,即讓clk_out處于無(wú)效狀態(tài)。
                    
(5) 必須滿足先gating后放開(kāi)的順序,如果不滿足,可以在G0/G1處各插入一個(gè)反相器。(用part0_b搭配part1的時(shí)候需要插入反相器,如下圖)
反相器
(6)搭配不同的part0電路和part1電路,經(jīng)過(guò)稍許修改,都可以完成防毛刺切頻電路的設(shè)計(jì)。
要采購(gòu)觸發(fā)器么,點(diǎn)這里了解一下價(jià)格!
特別推薦
技術(shù)文章更多>>
技術(shù)白皮書下載更多>>
熱門搜索
?

關(guān)閉

?

關(guān)閉