|
方案一,此方法為傳統的設計方法,如果分頻系數N為偶數,采用具有二狀態觸發的(J,K)觸發器或(D)觸發器即可實現所要(求的)分頻;如果分頻系數N為奇數,根據公式fp=2f/2N,則先對基準信號倍頻,再進行偶數分頻(占空比為50%)。
顯然這種方案不但設計復雜而且還大大降低了FPGA的工作頻率,所以這種方法只會在設計一些分頻系數較低且固定的場合下用到。
方案二,當分頻系數N為偶數時,計數器從0到N-1循環計數,且計數器計數小于N/2時輸出1,計數大于等于N/2則輸出0;當分頻系數N為奇數時,計數器從0到N-1循環計數,且計數器小于(N+1)/2時輸出0,計數等于(N+1)/2時則輸出0到1的跳變信號,且此跳變信號必須在標準時鐘的下降沿跳變(滿足50%占空比),計數大于(N+1)/2時則輸出1。
很明顯,采用這種方案沒有利用倍頻,可以充分利用器件的最高工作頻率,且輸出信號的占空比為50%。流程圖如下:
51hei.png (15.32 KB, 下載次數: 90)
下載附件
2021-3-21 23:08 上傳
但是在現實中我們很快發現用單計數器根本不能實現對雙邊沿的探測。所以說這個方案只能在理論上成立,實際上根本做不出來。
方案三,這里我們對方案二進行了改進,采用雙計數器實現同樣的功能,這也是本設計的突破點和創新點所在。當分頻系數N為偶數時,方法同上;當分頻系數N為奇數時,采用雙計數器計數。兩個計數器同時計數,一個沿上升沿計數,另一個則沿下降沿計數。計數器從0到N-1循環計數,且計數器計數小于(N-1)/2時輸出1,計數大于等于(N-1)/2則輸出0。在這樣的控制方式下,分頻后輸出的波形恰好相差1/2時鐘周期,將兩個波形進行或(or)操作后,即可得到所要的波形(占空比50%)。下面是用這種方法進行5分頻時的波形圖:
其中,clk1是兩計數器的時鐘,p1是計數器1的輸出波形,p2是計數器2的輸出波形,q是最終的輸出波形。
可見經過這樣一個小小的技術改進,不但沒有增加設計的復雜性,而且真正的實現了奇數分頻的等占空比。
因此在奇數的等空比分頻上我們最終選擇了方案三。
3.1.3 非等占空比的設計
由于非等占空比的分頻器設計較為簡單,現實的技術也很成熟,從科技創新本身來說,真正創新的內容不多,所以在這里我們就不多加說明。
下面介紹的一種非等占空比的分頻器是我們在做項目過程中發現的一種比較有特點分頻器,其設計思想如下:
在一般的計數器中,參與計數(電平有變化)的計數器最高位的輸出波形就是以此計數器的模數為分頻系數的分頻器。由這一思想,只需根據輸入的分頻系數判斷出參與計數的計數器最高位,把此計數器的此位波形輸出即可得到所要波形。如10進制計數器,其最高位第四位的輸出波形是輸入波形的10分頻。波形圖如下:
|
-
51hei.png
(9.77 KB, 下載次數: 158)
下載附件
2021-3-21 23:06 上傳
-
51hei.png
(22.43 KB, 下載次數: 122)
下載附件
2021-3-21 23:07 上傳
-
-
基于fpga可控分頻器.doc
2021-3-21 19:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
3.17 MB, 下載次數: 14, 下載積分: 黑幣 -5
基于fpga可控分頻器.doc
|