時鐘切換電路的使用方法介紹
時鐘同步問題講完了,下面就開始講講soc中另一種常見的情況,有時為了考慮到功耗,性能的問題,某個模塊可能在某一種情況下工作在一個頻率,另一種情況下工作在另一種頻率,這個時候就需要進行mux的切換,有的人就會說了,哪簡單啊,加個mux啊,可事實真的如此嗎?
如上圖,大家會很自然而想到的一種時鐘切換電路,可是,你仔細分析,你會發現該電路會出現如下的問題,毛刺!這個毛刺無論對于clk0還是clk1都不是好事,它不屬于任何一個時鐘域,它的脈寬根本無法確定,你切換的點會影響毛刺的寬度。
那么該如何消除毛刺,進而消除后面可能帶來的問題呢,見下圖,加入反饋電路。
反饋是為了確保時鐘真正被關閉了,例如,select從0切換到1,也就是選擇clk1,但是這時要確保clk0被完全關閉了,所以通過clk0時鐘域的DFF反饋回來的1(如果能反饋1說明0已經進入到clk0時鐘域的DFF中了)與clk1時鐘域的select進行相與。
另外,為了解決跨時鐘域的問題(select畢竟是不同于clk0,clk1時鐘域的),通常還會加入1-2級的DFF。
另外,這幾個電路使用時需要注意一點的是兩個clk都必須要震蕩起來后才可以進行select,否則進行切換可能導致select不能被正確的傳送到最后一級的與門上,這樣消除毛刺的功能可能就無效。
-
切換電路
+關注
關注
0文章
30瀏覽量
9425 -
時鐘切換電路
+關注
關注
0文章
7瀏覽量
5786
發布評論請先 登錄
相關推薦
評論