- 相關(guān)推薦
基于CPLD/FPGA的半整數(shù)分頻器的設(shè)計(jì)
摘要:簡(jiǎn)要介紹了CPLD/FPGA器件的特點(diǎn)和應(yīng)用范圍,并以分頻比為2.5的半整數(shù)分頻器的設(shè)計(jì)為例,介紹了在MAX+plusII開(kāi)發(fā)軟件下,利用VHDL硬件描述語(yǔ)言以及原理圖的輸入方式來(lái)設(shè)計(jì)數(shù)字邏輯電路的過(guò)程和方法。關(guān)鍵詞:VHDLCPLD/FPGA數(shù)字邏輯電路設(shè)計(jì)半整數(shù)分頻器
1引言
CPLD(ComplexprogrammableLogicDevice,復(fù)雜可編程邏輯器件)和FPGA(FieldprogrammableGatesArray,現(xiàn)場(chǎng)可編程門(mén)陣列)都是可編程邏輯器件,它們是在PAL、GAL等邏輯器件基礎(chǔ)上發(fā)展起來(lái)的。同以往的PAL、GAL相比,F(xiàn)PGA/CPLD的規(guī)模比較大,適合于時(shí)序、組合等邏輯電路的應(yīng)用。它可以替代幾十甚至上百塊通用IC芯片。這種芯片具有可編程和實(shí)現(xiàn)方案容易改動(dòng)等特點(diǎn)。由于芯片內(nèi)部硬件連接關(guān)系的描述可以存放在磁盤(pán)、ROM、PROM、或EPROM中,因而在可編程門(mén)陣列芯片及外圍電路保持不動(dòng)的情況下,換一塊EPROM芯片,就能實(shí)現(xiàn)一種新的功能。它具有設(shè)計(jì)開(kāi)發(fā)周期短、設(shè)計(jì)制造成本低、開(kāi)發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無(wú)需測(cè)試、質(zhì)量穩(wěn)定以及實(shí)時(shí)在檢驗(yàn)等優(yōu)點(diǎn),因此,可廣泛應(yīng)用于產(chǎn)品的原理設(shè)計(jì)和產(chǎn)品生產(chǎn)之中。幾乎所有應(yīng)用門(mén)陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場(chǎng)合均可應(yīng)用FPGA和CPLD器件。
在現(xiàn)代電子系統(tǒng)中,數(shù)字系統(tǒng)所占的比例越來(lái)越大。系統(tǒng)發(fā)展的越勢(shì)是數(shù)字化和集成化,而CPLD/FPGA作為可編程ASIC(專用集成電路)器件,它將在數(shù)字邏輯系統(tǒng)中發(fā)揮越來(lái)越重要的作用。
在數(shù)字邏輯電路設(shè)計(jì)中,分頻器是一種基本電路。通常用來(lái)對(duì)某個(gè)給定頻率進(jìn)行分頻,以得到所需的頻率。整數(shù)分頻器的實(shí)現(xiàn)非常簡(jiǎn)單,可采用標(biāo)準(zhǔn)的計(jì)數(shù)器,也可以采用可編程邏輯器件設(shè)計(jì)實(shí)現(xiàn)。但在某些場(chǎng)合下,時(shí)鐘源與所需的頻率不成整數(shù)倍關(guān)系,此時(shí)可采用小數(shù)分頻器進(jìn)行分頻。比如:分頻系數(shù)為2.5、3.5、7.5等半整數(shù)分頻器。筆者在模擬設(shè)計(jì)頻率計(jì)脈沖信號(hào)時(shí),就用了半整數(shù)分頻器這樣的電路。由于時(shí)鐘源信號(hào)為50MHz,而電路中需要產(chǎn)生一個(gè)20MHz的時(shí)鐘信號(hào),其分頻比為2.5,因此整數(shù)分頻將不能勝任。為了解決這一問(wèn)題,筆者利用VIDL硬件描述語(yǔ)言和原理圖輸入方式,通過(guò)MAX+plusII開(kāi)發(fā)軟件和ALTERA公司的FLEX系列EPF10K10LC84-4型FPGA方便地完成了半整數(shù)分頻器電路的設(shè)計(jì)。
2小數(shù)分頻的基本原理
小數(shù)分頻的基本原理是采用脈沖吞吐計(jì)數(shù)器和鎖相環(huán)技術(shù)先設(shè)計(jì)兩個(gè)不同分頻比的整數(shù)分頻器,然后通過(guò)控制單位時(shí)間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù)來(lái)獲得所需要的小數(shù)分頻值。如設(shè)計(jì)一個(gè)分頻系數(shù)為10.1的分頻器時(shí),可以將分頻器設(shè)計(jì)成9次10分頻,1次11分頻,這樣總的分頻值為:
F=(9×10+1×11)/(9+1)=10.1
從這種實(shí)現(xiàn)方法的特點(diǎn)可以看出,由于分頻器的分頻值不斷改變,因此分頻后得到的信號(hào)抖動(dòng)較大。當(dāng)分頻系數(shù)為N-0.5(N為整數(shù))時(shí),可控制扣除脈沖的時(shí)間,以使輸出成為一個(gè)穩(wěn)定的脈沖頻率,而不是一次N分頻,一次N-1分頻。
圖2模3計(jì)數(shù)器仿真波形
3電路組成
分頻系數(shù)為N-0.5的分頻器電路可由一個(gè)異或門(mén)、一個(gè)模N計(jì)數(shù)器和一個(gè)二分頻器組成。在實(shí)現(xiàn)時(shí),模N計(jì)數(shù)器可設(shè)計(jì)成帶預(yù)置的計(jì)數(shù)器,這樣可以實(shí)現(xiàn)任意分頻系數(shù)為N-0.5的分頻器。圖1給出了通用半整數(shù)分頻器的電路組成。
采用VHDL硬件描述語(yǔ)言,可實(shí)現(xiàn)任意模N的計(jì)數(shù)器(其工作頻率可以達(dá)到160MHz以上),并可產(chǎn)生模N邏輯電路。之后,用原理圖輸入方式將模N邏輯電路、異或門(mén)和D觸發(fā)器連接起來(lái),便可實(shí)現(xiàn)半整數(shù)(N-0.5)分頻器以及(2N-1)的分頻。
4半整數(shù)分頻器設(shè)計(jì)
現(xiàn)通過(guò)設(shè)計(jì)一個(gè)分頻系數(shù)為2.5的分頻器給出用FPGA設(shè)計(jì)半整數(shù)分頻器的一般方法。該2.5分頻器由模3計(jì)數(shù)器、異或門(mén)和D觸發(fā)器組成。
圖32.5分頻器電路原理圖
4.1模3計(jì)數(shù)器
該計(jì)數(shù)器可產(chǎn)生一個(gè)分頻系數(shù)為3的分頻器,并產(chǎn)生一個(gè)默認(rèn)的邏輯符號(hào)COUNTER3。其輸入端口為RESET、EN和CLK;輸出端口為QA和QB。下面給出模3計(jì)數(shù)器VHDL描述代碼:
libraryieee;
useieee.std-logic-1164.all;
useieee.std-logic-unsigned.all;
entitycounter3is
port(clk,reset,en:instd-logic;
qa,qb:outstd-logic);
endcounter3;
architecturebehaviorofcounter3is
signalcount:std-logic-vector(1downto0);
begin
process(reset,clk)
begin
ifreset='1'then
count(1downto0)<="00";
else
if(clk'eventandclk='1')then
if(en='1')then
if(count="10")then
count<="00";
else
count<=count+1;
endif;
endif;
endif;
endif;
endprocess;
qa<=count(0);
qb<=count(1);
endbehavior;
任意模數(shù)的計(jì)數(shù)器與模3計(jì)數(shù)器的描述結(jié)構(gòu)完全相同,所不同的僅僅是計(jì)數(shù)器的狀態(tài)數(shù)。上面的程序經(jīng)編譯、時(shí)序模擬后,在MAX+PLUSII可得到如圖2所示的仿真波形。
圖42.5分頻器仿真波形圖
4.2完整的電路及波形仿真
將COUNTER3、異或門(mén)和D觸發(fā)器通過(guò)圖3所示的電路邏輯連接關(guān)系,并用原理圖輸入方式調(diào)入圖形編輯器,然后經(jīng)邏輯綜合即可得到如圖4所示的仿真波形。由圖中outclk與inclk的波形可以看出,outclk會(huì)在inclk每隔2.5個(gè)周期處產(chǎn)生一個(gè)上升沿,從而實(shí)現(xiàn)分頻系數(shù)為2.5的分頻器。設(shè)inclk為50MHz,則outclk為20MHz。因此可見(jiàn),該電路不僅可得到分頻系數(shù)為2.5的分頻器(outclk),而且還可得到分頻系數(shù)為5的分頻器(Q1)。
5結(jié)束語(yǔ)
選用ALTERA公司FLEX系列EPF10K10LC84-4型FPGA器件實(shí)現(xiàn)半整數(shù)分頻后,經(jīng)邏輯綜合后的適配分析結(jié)果如表1所列。本例中的計(jì)數(shù)器為2位寬的位矢量,即分頻系數(shù)為4以內(nèi)的半整數(shù)值。若分頻系數(shù)大于4,則需增大count的位寬。
表1半整數(shù)分頻器適配分析結(jié)果
選用器件I/O延遲時(shí)間使用引腳數(shù)工作頻率EPF10K10LC84417.7ns5/84(5.95%)68.02MHz
【基于CPLD/FPGA的半整數(shù)分頻器的設(shè)計(jì)】相關(guān)文章:
基于CPLD/FPGA的出租車(chē)計(jì)費(fèi)器08-06
基于FPGA/CPLD和USB技術(shù)的無(wú)損圖像采集卡08-06
基于FPGA的高頻時(shí)鐘的分頻和分配設(shè)計(jì)08-06
基于FPGA的快速傅立葉變換08-06
基于FPGA的USB2.0控制器設(shè)計(jì)08-06
基于MicroBlaze軟核的FPGA片上系統(tǒng)設(shè)計(jì)08-06
基于FPGA的LCD&VGA控制器設(shè)計(jì)08-06