乙個計數器的奇數分頻
小數分頻
偶數分頻比較簡單,如果分頻係數是n(且n是偶數,那麼n/2是整數),那麼在輸入時鐘的每隔n/2個週期時(計數器從0到n/2-1),改變輸出時鐘的電平即可得到50%固定占空比的時鐘。
1.如果n是奇數,那麼n/2非整數,使用2個暫存器,分別用上公升沿暫存器計數到(n-1)/2-1,然後將訊號a電平由高電平翻轉至低電平,再計數到n-1,將訊號a電平由低電平翻轉至高電平。再用下降沿暫存器計數到(n-1)/2-1,然後將訊號b由高電平翻轉至低電平,再計數到n-1,將訊號b由低電平翻轉至高電平。得到兩個波形a和b,然後a和b相或。
2.如果n是奇數,那麼n/2非整數,使用2個暫存器,分別用上公升沿暫存器計數到(n-1)/2-1,然後將訊號a電平由低電平翻轉至高電平,再計數到n-1,將訊號a電平由高電平翻轉至低電平。再用下降沿暫存器計數到(n-1)/2-1,然後將訊號b由低電平翻轉至高電平,再計數到n-1,將訊號b由高電平翻轉至低電平。得到兩個波形a和b,然後a和b相與。
3.如果n是奇數,那麼n/2非整數,使用2個暫存器,分別用上公升沿暫存器計數到(n-1)/2,然後將訊號a電平由高電平翻轉至低電平,再計數到n-1,將訊號a電平由低電平翻轉至高電平。再用下降沿暫存器計數到(n-1)/2,然後將訊號b由高電平翻轉至低電平,再計數到n-1,將訊號b由低電平翻轉至高電平。得到兩個波形a和b,然後a和b相與。
由於兩個計數器分別計數上公升沿和下降沿,所以我們只需要關注高電平占用幾個時鐘和低電平占用幾個時鐘,如果高電平佔(n-1)/2+1個,低電平佔(n-1)/2,則對a、b訊號相「與」;
如果高電平佔(n-1)/2個,低電平佔(n-1)/2+1,則對a、b訊號相「或」。
如上圖所示5分頻,首先計數至2,第乙個訊號由低電平變高電平,計數至4時,訊號由高電平變至低電平。
第二個訊號是使用時鐘下降沿對第乙個訊號取樣得到的結果
第三個訊號是將第乙個訊號和第二個訊號相「或」得到的分頻結果
FPGA任意奇偶數分頻占空比50
簡單的是計數取反,奇數略有不同,分為上公升沿和下降沿計數取反然後再邏輯與即可,相當於補了半個週期 module pulsediv input clk 100m,input n rst,output reg pulseout reg 7 0 divcnt reg clkp,clkn 任意偶數分頻占空比...
非整數分頻的實現
時鐘分頻是數位電路設計的基礎,我們在數字系統設計過程會遇到多種分頻需求,常見的有偶數分頻 奇數分頻,和一些非整數的分頻等。在某些設計中,對分頻出時鐘的占空比也有嚴格的要求。常見的分頻思路 這裡以50 占空比情況舉例 一 偶數分頻 比如分頻係數為n,宣告乙個計數器count,count從0計數到n 1...
分數分頻的FPGA實現
分頻對於許多fpga的學習者來說很常見,無論是偶數分頻還是奇數分頻。但是分數分頻在我們製作時並不常見。現在我們來說分數分頻。分數分頻顧名思義分頻比並不是乙個整數,而是乙個分數。往常我們接觸的積分頻,偶分頻分頻比都是整數,而分數分頻的小數如何實現就是這個的核心問題。在實現分數分頻的過程中,我們並不是使...