基于CPLD/FPGA的半整數(shù)分頻器的設(shè)計實例
1 引言
CPLD(ComplexprogrammableLogicDevice,復(fù)雜可編程邏輯器件)和FPGA(FieldprogrammableGatesArray,現(xiàn)場可編程門陣列)都是可編程邏輯器件,它們是在PAL、GAL等邏輯器件基礎(chǔ)上發(fā)展起來的。同以往的PAL、GAL相比,FPGA/CPLD的規(guī)模比較大,適合于時序、組合等邏輯電路的應(yīng)用。它可以替代幾十甚至上百塊通用IC芯片。這種芯片具有可編程和實現(xiàn)方案容易改動等特點。由于芯片內(nèi)部硬件連接關(guān)系的描述可以存放在磁盤、ROM、PROM、或EPROM中,因而在可編程門陣列芯片及外圍電路保持不動的情況下,換一塊EPROM芯片,就能實現(xiàn)一種新的功能。它具有設(shè)計開發(fā)周期短、設(shè)計制造成本低、開發(fā)工具先進、標(biāo)準(zhǔn)產(chǎn)品無需測試、質(zhì)量穩(wěn)定以及實時在檢驗等優(yōu)點,因此,可廣泛應(yīng)用于產(chǎn)品的原理設(shè)計和產(chǎn)品生產(chǎn)之中。幾乎所有應(yīng)用門陣列、PLD和中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用FPGA和CPLD器件。
在現(xiàn)代電子系統(tǒng)中,數(shù)字系統(tǒng)所占的比例越來越大。系統(tǒng)發(fā)展的越勢是數(shù)字化和集成化,而CPLD/FPGA作為可編程ASIC(專用集成電路)器件,它將在數(shù)字邏輯系統(tǒng)中發(fā)揮越來越重要的作用。
在數(shù)字邏輯電路設(shè)計中,分頻器是一種基本電路。通常用來對某個給定頻率進行分頻,以得到所需的頻率。整數(shù)分頻器的實現(xiàn)非常簡單,可采用標(biāo)準(zhǔn)的計數(shù)器,也可以采用可編程邏輯器件設(shè)計實現(xiàn)。但在某些場合下,時鐘源與所需的頻率不成整數(shù)倍關(guān)系,此時可采用小數(shù)分頻器進行分頻。比如:分頻系數(shù)為2.5、3.5、7.5等半整數(shù)分頻器。筆者在模擬設(shè)計頻率計脈沖信號時,就用了半整數(shù)分頻器這樣的電路。由于時鐘源信號為50MHz,而電路中需要產(chǎn)生一個20MHz的時鐘信號,其分頻比為2.5,因此整數(shù)分頻將不能勝任。為了解決這一問題,筆者利用VIDL硬件描述語言和原理圖輸入方式,通過MAX+plusII開發(fā)軟件和ALTERA公司的FLEX系列EPF10K10LC84-4型FPGA方便地完成了半整數(shù)分頻器電路的設(shè)計。
2 小數(shù)分頻的基本原理
小數(shù)分頻的基本原理是采用脈沖吞吐計數(shù)器和鎖相環(huán)技術(shù)先設(shè)計兩個不同分頻比的整數(shù)分頻器,然后通過控制單位時間內(nèi)兩種分頻比出現(xiàn)的不同次數(shù)來獲得所需要的小數(shù)分頻值。如設(shè)計一個分頻系數(shù)為10.1的分頻器時,可以將分頻器設(shè)計成9次10分頻,1次11分頻,這樣總的分頻值為:
F=(9×10+1×11)/(9+1)=10.1
從這種實現(xiàn)方法的特點可以看出,由于分頻器的分頻值不斷改變,因此分頻后得到的信號抖動較大。當(dāng)分頻系數(shù)為N-0.5(N為整數(shù))時,可控制扣除脈沖的時間,以使輸出成為一個穩(wěn)定的脈沖頻率,而不是一次N分頻,一次N-1分頻。
圖2模3計數(shù)器仿真波形
3 電路組成
分頻系數(shù)為N-0.5的分頻器電路可由一個異或門、一個模N計數(shù)器和一個二分頻器組成。在實現(xiàn)時,模N計數(shù)器可設(shè)計成帶預(yù)置的計數(shù)器,這樣可以實現(xiàn)任意分頻系數(shù)為N-0.5的分頻器。圖1給出了通用半整數(shù)分頻器的電路組成。
采用VHDL硬件描述語言,可實現(xiàn)任意模N的計數(shù)器(其工作頻率可以達到160MHz以上),并可產(chǎn)生模N邏輯電路。之后,用原理圖輸入方式將模N邏輯電路、異或門和D觸發(fā)器連接起來,便可實現(xiàn)半整數(shù)(N-0.5)分頻器以及(2N-1)的分頻。
評論