奇數分頻思路:(結合圖示進行理解)
第一步:在時鍾的上升沿和下降沿分別產生一個計數器。cnt_up 在時鍾上升沿計數,cnt_down 在時鍾下降沿計數(例:如果是 N 分頻,就從0計數到 N-1)
第二步:根據這兩個計數器產生兩個控制信號 clk_up , clk_down。
注意:clk_up 和 clk_down 的高低電平的比例是有規律的。
如果是N分頻,比例為 N/2 : N/2+1 或者 N/2+1 : N/2
如果是3分頻,那么比例就是 1:2 或者 2:1。
如果是5分頻,比例位2:3或者3:2
以此論推
第三步:求得分頻時鍾
如果高低電瓶比例為N/2 : N/2+1,則分頻時鍾 clk_div = clk_up || clk_down (如圖 1 所示)
如果高低電瓶比例為 N/2+1:N/2 ,則分頻時鍾 clk_div = clk_up && clk_down(如圖 2 所示)
以3分頻為例
圖 1:高低電瓶比例為 1:2,或操作
圖 2:高低電瓶比例為 2:1,與操作
圖1
圖2
圖2
這里我們只是學習時鍾分頻,但是在平時應用中最好是選擇PLL來產生時鍾,這是最穩定的。
如果對於無法使用PLL的器件來講,最好用使能時鍾來代替分頻時鍾,即將使能時鍾作為數據輸入端的選擇信號。
最后需要強調,使用組合邏輯產生的時鍾不可避免會有毛刺產生,因此一定不能將組合邏輯產生的時鍾信號或異步復位信號用於設計中,
如果一定要用也必須進行同步處理。
2017年4月20日
對於奇數分頻又有了新的感悟,上面我提到的方法中既用到了時鍾的上升沿又用到了下降沿,這樣在實際設計中是不可取的。
因為書中大部分都是這么寫的,所以自己就想當然了,突然領悟到,自己在寫分頻的時候總是強迫占空比為1/2,如果奇數分頻占空比為其他情況,就可以避免使用時鍾下降沿了。
轉載請注明出處: http://www.cnblogs.com/aslmer/p/5838395.html
aslmer come on !
打起精神,每天進步一點點,開開心心!