中文在线中文资源,色鲁97精品国产亚洲AV高,亚洲欧美日韩在线一区,国产精品福利午夜在线观看

你的位置:首頁 > 電路保護 > 正文

絕對干貨:防毛刺的時鐘切換電路設計思路

發布時間:2015-01-16 責任編輯:sherryyu

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

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

(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的時候需要插入反相器,如下圖)
反相器
(6)搭配不同的part0電路和part1電路,經過稍許修改,都可以完成防毛刺切頻電路的設計。
要采購觸發器么,點這里了解一下價格!
特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索
?

關閉

?

關閉

  • <center id="09kry"></center>

  • 主站蜘蛛池模板: 松桃| 广灵县| 榆社县| 乐至县| 铜梁县| 尖扎县| 蓝田县| 桑日县| 白朗县| 华亭县| 彭山县| 资溪县| 东乡| 通道| 陆川县| 泽库县| 云霄县| 双流县| 寻甸| 张掖市| 吴堡县| 江口县| 青川县| 南澳县| 杭州市| 高邑县| 仪陇县| 邹平县| 巴林左旗| 甘谷县| 舞钢市| 武义县| 科技| 耒阳市| 石景山区| 枣强县| 定结县| 南昌县| 保康县| 江孜县| 泰顺县|