資源描述:
《奇數(shù)和半整數(shù)分頻器》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、奇數(shù)分頻器1引言分頻器在CPLD/FPGA設(shè)計(jì)中使用頻率非常高,盡管目前大部分設(shè)計(jì)中采用芯片廠家集成的鎖相環(huán)資源,但是對(duì)于要求奇數(shù)倍分頻、小數(shù)倍分頻的應(yīng)用場(chǎng)合卻往往不能滿足要求。硬件工程師希望有一種靈活的設(shè)計(jì)方法,根據(jù)需要,在實(shí)驗(yàn)室就能設(shè)計(jì)分頻器并馬上投入使用,更改頻率時(shí)無(wú)需改動(dòng)原器件或電路板,只需重新編程,在數(shù)分鐘內(nèi)即可完成。對(duì)于偶數(shù)分頻,使用一模N計(jì)數(shù)器模塊即可實(shí)現(xiàn),即每當(dāng)模N計(jì)數(shù)器從0開始計(jì)數(shù)至N時(shí),輸出時(shí)鐘進(jìn)行翻轉(zhuǎn),同時(shí)使計(jì)數(shù)器復(fù)位,使之從0開始重新計(jì)數(shù),以此循環(huán)即可實(shí)現(xiàn)。但對(duì)于奇數(shù)分頻,實(shí)現(xiàn)50%的占空比
2、卻是比較困難的。下面給出占空比50%的奇數(shù)分頻器的設(shè)計(jì)源程序和仿真結(jié)果。2VHDL程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL; --添加庫(kù)ENTITYfdivIS --設(shè)計(jì)實(shí)體PORT(clk,reset:INSTD_LOGIC; --端口說(shuō)明preset:ININTEGER; --preset: 分頻預(yù)置數(shù)clkout:OUTSTD_LOGIC); --clko
3、ut: 分頻后得到的時(shí)鐘ENDfdiv;ARCHITECTUREbehaveOFfdivIS --設(shè)計(jì)構(gòu)造體SIGNALs1,s2:STD_LOGIC; --內(nèi)部信號(hào)s1,s2SIGNALcnt:INTEGERRANGE0TOpreset-1; --模為preset的計(jì)數(shù)信號(hào)BEGINP1:PROCESS(clk,reset)--計(jì)數(shù)器BEGINIFreset='1'THENcnt<=0;ELSIFclk'eventANDclk='1'THENIFcnt=0THENcnt<=p
4、reset-1;ELSEcnt<=cnt-1;ENDIF;ENDIF;ENDPROCESS;P2:PROCESS(clk,reset)--信號(hào)1BEGINIFreset='1'THENs1<='1';ELSIFclk'eventANDclk='1'THENIFcnt=0THEN--計(jì)數(shù)信號(hào)為0時(shí),S1翻轉(zhuǎn)s1<=NOTs1;ELSEs1<=s1;ENDIF;ENDIF;ENDPROCESS;P3:PROCESS(clk,reset)--信號(hào)2BEGINIFreset='1'THENs2<='1';ELSIFclk'
5、eventANDclk='0'THENIFcnt=(preset-1)/2THEN--計(jì)數(shù)信號(hào)為N時(shí),S2翻轉(zhuǎn)s2<=NOTs2;ELSEs2<=s2;ENDIF;ENDIF;ENDPROCESS;clkout<=s1XORs2;--異或輸出ENDBEHAVE;程序說(shuō)明:以上程序?qū)崿F(xiàn)任意奇數(shù)為PRESET的50%占空比分頻,計(jì)數(shù)器CNT的模值為PRESET,計(jì)數(shù)器是為了控制信號(hào)S1和信號(hào)S2,使兩信號(hào)保持恒定的時(shí)間差。信號(hào)S1為上升沿觸發(fā),在CNT=0時(shí)翻轉(zhuǎn),信號(hào)S2為下降沿觸發(fā),在CNT=(PRESET-1)/2
6、時(shí)翻轉(zhuǎn)。然后將S1和S2異或輸出,這樣就實(shí)現(xiàn)了PRESET的50%占空比分頻。3仿真波形本設(shè)計(jì)選用的是FLEX10K系列器件,仿真波形如圖所示。圖中預(yù)置值為7,即分頻器分頻值為7,由圖中的波形可以看出,結(jié)果正確。波形分析:計(jì)數(shù)器CNT的模值為7,信號(hào)S1是上升沿觸發(fā),CNT=0時(shí)翻轉(zhuǎn),S2是下降沿觸發(fā),CNT=(7-1)/2=3時(shí)翻轉(zhuǎn),然后將S1和S2異或輸出,這樣就實(shí)現(xiàn)了50%占空比的7分頻。半整數(shù)分頻器1 引言在數(shù)字系統(tǒng)設(shè)計(jì)中,分頻器是一種基本電路。整數(shù)分頻器的實(shí)現(xiàn)非常簡(jiǎn)單,可采用標(biāo)準(zhǔn)的計(jì)數(shù)器來(lái)實(shí)現(xiàn)。但在某些場(chǎng)
7、合下,時(shí)鐘源所給頻率與所需頻率不成整數(shù)倍關(guān)系,譬如把12MHZ的時(shí)鐘頻率分頻為1.024MHZ的時(shí)鐘,分頻系數(shù)為11.71875,此時(shí)可采用小數(shù)分頻器進(jìn)行分頻。這類問題在通信ASIC的設(shè)計(jì)中用的比較多。作為小數(shù)分頻器的一個(gè)特例,本程序完成的是半整數(shù)分頻器的設(shè)計(jì)。2 半整數(shù)分頻器的基本原理設(shè)有一個(gè)5MHZ的時(shí)鐘源,但電路中需要產(chǎn)生一個(gè)2MHZ的時(shí)鐘信號(hào),這時(shí)就需要設(shè)計(jì)一個(gè)分頻比為2.5的分頻器,可采用以下方法:設(shè)計(jì)一個(gè)模3的計(jì)數(shù)器,再設(shè)計(jì)一個(gè)扣除脈沖電路,加在模3計(jì)數(shù)器輸出之后,每來(lái)兩個(gè)脈沖就扣除一個(gè)脈沖,就可以得到
8、分頻系數(shù)為2.5的小數(shù)分頻器。實(shí)現(xiàn)扣除的電路是由二分頻器和異或邏輯組成。采用類似的方法,可以設(shè)計(jì)出分頻系數(shù)為任意半整數(shù)的分頻器。3 電路組成設(shè)需要設(shè)計(jì)一個(gè)分頻系數(shù)為N-0.5的分頻器,其電路可由一個(gè)模N計(jì)數(shù)器、二分頻器和一個(gè)異或門組成,如圖(一)所示。異或邏輯模N計(jì)數(shù)器二分頻器inclkoutclk圖(一)通用半整數(shù)分頻器電路組成4 VHDL程序LIBRAR