基于CPLD/FPGA的多功能分頻器的設計與實(shí)現
引言
本文引用地址:http://dyxdggzs.com/article/191883.htm分頻器在CPLD/FPGA設計中使用頻率比較高,盡管目前大部分設計中采用芯片廠(chǎng)家集成的鎖相環(huán)資源 ,但是對于要求奇數倍分頻(如3、5等)、小數倍(如2.5、3.5等)分頻、占空比50%的應用場(chǎng)合卻往往不能滿(mǎn)足要求。硬件工程師希望有一種靈活的設計方法,根據需要,在實(shí)驗室就能設計分頻器并馬上投入使用,更改頻率時(shí)無(wú)需改動(dòng)原器件或電路板,只需重新編程,在數分鐘內即可完成。為此本文基于 CPLD/FPGA用原理圖和VHDL語(yǔ)言混合設計實(shí)現了一多功能通用分頻器。
分頻原理
偶數倍(2N)分頻
使用一模N計數器模塊即可實(shí)現,即每當模N計數器上升沿從0開(kāi)始計數至N時(shí),輸出時(shí)鐘進(jìn)行翻轉,同時(shí)給計數器一復位信號使之從0開(kāi)始重新計數,以此循環(huán)即可。偶數倍分頻原理示意圖見(jiàn)圖1。
奇數倍(2N+1)分頻
(1)占空比為X/(2N+1)或(2N+1-X)/(2N+1)分頻,用模(2N+1)計數器模塊可以實(shí)現。取0至2N之間一數值X(0 X2N),當計數器時(shí)鐘上升沿從0開(kāi)始計數到X值時(shí)輸出時(shí)鐘翻轉一次,在計數器繼續計數達到2N+1時(shí),輸出時(shí)鐘再次翻轉并對計數器置一復位信號,使之從0開(kāi)始重新計數,即可實(shí)現。
(2)占空比為50%的分頻,設計思想如下:基于(1)中占空比為非50%的輸出時(shí)鐘在輸入時(shí)鐘的上升沿觸發(fā)翻轉;若在同一個(gè)輸入時(shí)鐘周期內,此計數器的兩次輸出時(shí)鐘翻轉分別在與(1)中對應的下降沿觸發(fā)翻轉,輸出的時(shí)鐘與(1)中輸出的時(shí)鐘進(jìn)行邏輯或,即可得到占空比為50%的奇數倍分頻時(shí)鐘。當然其輸出端再與偶數倍分頻器串接則可以實(shí)現偶數倍分頻。奇數倍分頻原理示意圖見(jiàn)圖2。
N-0.5倍分頻
采用模N計數器可以實(shí)現。具體如下:計數器從0開(kāi)始上升沿計數,計數達到N-1上升沿時(shí),輸出時(shí)鐘需翻轉,由于分頻值為N-0.5,所以在時(shí)鐘翻轉后經(jīng)歷 0.5個(gè)周期時(shí),計數器輸出時(shí)鐘必須進(jìn)行再次翻轉,即當CLK為下降沿時(shí)計數器的輸入端應為上升沿脈沖,使計數器計數達到N而復位為0重新開(kāi)始計數同時(shí)輸出時(shí)鐘翻轉。這個(gè)過(guò)程所要做的就是對CLK進(jìn)行適當的變換,使之送給計數器的觸發(fā)時(shí)鐘每經(jīng)歷N-0.5個(gè)周期就翻轉一次。N-0.5倍:取N=3,分頻原理示意圖見(jiàn)圖3。
對于任意的N+A/B倍分頻(N、A、B∈Z,AQB)
分別設計一個(gè)分頻值為N和分頻值N+1的整數分頻器,采用脈沖計數來(lái)控制單位時(shí)間內兩個(gè)分頻器出現的次數,從而獲得所需要的小數分頻值??梢圆扇∪缦路椒▉?lái)計算個(gè)子出現的頻率:
設N出現的頻率為a,則N×a+(N+1)×(B-a)=N×B+A 求解a=B-A; 所以N+1出現的頻率為A.例如實(shí)現7+2/5分頻,取a為3,即7×3+8×2就可以實(shí)現。但是由于這種小數分頻輸出的時(shí)鐘脈沖抖動(dòng)很大,現實(shí)中很少使用,本次設計未予以設計。
分頻器相關(guān)文章:分頻器原理
評論