《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于VHDL和FPGA的多種分頻的實(shí)現(xiàn)方法
基于VHDL和FPGA的多種分頻的實(shí)現(xiàn)方法
摘要: 分頻器是數(shù)字系統(tǒng)設(shè)計(jì)中的基本電路,根據(jù)不同設(shè)計(jì)的需要,我們會遇到偶數(shù)分頻,、奇數(shù)分頻、半整數(shù)分頻等,,有時要求等占空比,有時要求非等占空比,。在同一個設(shè)計(jì)中有時要求多種形式的分頻,。通常由計(jì)數(shù)器或計(jì)數(shù)器的級聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇數(shù)分頻,實(shí)現(xiàn)較為簡單,。但對半整數(shù)分頻及等占空比的奇數(shù)分頻實(shí)現(xiàn)較為困難,。本文利用VHDL硬件描述語言,通過QuartusⅡ3.0開發(fā)平臺,,使用Altera公司的FPGA,,設(shè)計(jì)了一種能夠滿足上述各種要求的較為通用的分頻器。
關(guān)鍵詞: FPGA VHDL 分頻
Abstract:
Key words :

分頻器是數(shù)字系統(tǒng)設(shè)計(jì)中的基本電路,,根據(jù)不同設(shè)計(jì)的需要,我們會遇到偶數(shù)分頻,、奇數(shù)分頻,、半整數(shù)分頻等,有時要求等占空比,,有時要求非等占空比,。在同一個設(shè)計(jì)中有時要求多種形式的分頻。通常由計(jì)數(shù)器或計(jì)數(shù)器的級聯(lián)構(gòu)成各種形式的偶數(shù)分頻及非等占空比的奇數(shù)分頻,,實(shí)現(xiàn)較為簡單,。但對半整數(shù)分頻及等占空比的奇數(shù)分頻實(shí)現(xiàn)較為困難。本文利用VHDL硬件描述語言,,通過QuartusⅡ3.0開發(fā)平臺,,使用Altera公司的FPGA,設(shè)計(jì)了一種能夠滿足上述各種要求的較為通用的分頻器,。

  一,、電路設(shè)計(jì)

  采用FPGA實(shí)現(xiàn)半整數(shù)分頻器,可以采用以下方法:設(shè)計(jì)一個模N的計(jì)數(shù)器,,再設(shè)計(jì)一個脈沖扣除電路,,每來兩個脈沖扣除一個脈沖,即可實(shí)現(xiàn)分頻系數(shù)為N-0.5的分頻器,。脈沖扣除電路由異或門和一個2分頻器構(gòu)成,。本設(shè)計(jì)在半整數(shù)分頻器原理的基礎(chǔ)上,,對異或門加一個使能控制信號,通過對異或門和計(jì)數(shù)器計(jì)數(shù)狀態(tài)值的控制,,實(shí)現(xiàn)同一個電路完成多種形式分頻,,如圖1所示。

  


 

  二,、VHDL語言的實(shí)現(xiàn)

  現(xiàn)通過設(shè)計(jì)一個可以實(shí)現(xiàn)8.5分頻,,等占空比的17分頻,2,、4,、8、16,、32分頻,,及占空比為1∶8和4∶5的9分頻等多種形式分頻的分頻器,介紹該通用分頻器的FPGA實(shí)現(xiàn),。

  由圖1所示的電路原理圖可知,,分頻器由帶使能端的異或門、模N計(jì)數(shù)器和一個2分頻器組成,,本設(shè)計(jì)用D觸發(fā)器來完成2分頻的功能,,實(shí)現(xiàn)方法是:將觸發(fā)器的Q反輸出端反饋回輸入端D,將計(jì)數(shù)器的一個計(jì)數(shù)輸出端作為D觸發(fā)器的時鐘輸入端,。各功能模塊的VHDL語言實(shí)現(xiàn)如下,。

  1.模N計(jì)數(shù)器的實(shí)現(xiàn)

  一般設(shè)計(jì)中用到計(jì)數(shù)器時,我們可以調(diào)用lpm庫中的計(jì)數(shù)器模塊,,也可以采用VHDL語言自己設(shè)計(jì)一個模N計(jì)數(shù)器,。本設(shè)計(jì)采用VHDL語言設(shè)計(jì)一個最大模值為16的計(jì)數(shù)器。輸入端口為:使能信號en,,復(fù)位信號clr和時鐘信號clk;輸出端口為:qa,、qb、qc,、qd,。其VHDL語言描述略。

  2.帶使能控制的異或門的實(shí)現(xiàn)

  輸入端為:xor_en:異或使能,,a和b:異或輸入;輸出端為:c:異或輸出,。當(dāng)xor_en為高電平時,c輸出a和b的異或值,。當(dāng)xor_en為低電平時,,c輸出信號b。其VHDL語言略,。

  3.2分頻(觸發(fā)器)的實(shí)現(xiàn)

  輸入端為:時鐘信號clk,,輸入信號d;輸出端為:q:輸出信號a,,q1:輸出信號a反。其VHDL語言略,。

  4.分頻器的實(shí)現(xiàn)

  本設(shè)計(jì)采用層次化的設(shè)計(jì)方法,,首先設(shè)計(jì)實(shí)現(xiàn)分頻器電路中各組成電路元件,然后通過元件例化的方法,,調(diào)用各元件,,實(shí)現(xiàn)整個分頻器。其VHDL語言略,。

  三,、仿真結(jié)果及硬件電路的測試

  本設(shè)計(jì)的目的是通用性和簡易性,只要對上述程序稍加改動即可實(shí)現(xiàn)多種形式的分頻,。

  1.實(shí)現(xiàn)8.5分頻和等占空比的17分頻

  只要將上述程序中,,調(diào)用計(jì)數(shù)器模塊時端口qa、qb,、qc匹配為open狀態(tài),,同時置xor_en為高電平即可。從編譯報告看出總共占用8個邏輯單元(logic elements),,其仿真波形如圖2~4所示,。

  

 

  圖二

  

 

  圖三

  

 

  圖四

  由圖中qxiao和clk的波形可以看出,每隔8.5個時鐘周期,,qxiao信號產(chǎn)生一個上升沿,,從而實(shí)現(xiàn)分頻系數(shù)是8.5的分頻,同時在qzheng端得到等占空比的17分頻,。設(shè)clk為170MHz,則qxiao輸出為20MHz,,qzheng輸出為10MHz,。

  2.實(shí)現(xiàn)占空比為1∶8和4∶5的9分頻

  只要上述程序的xor_en置低電平即可在qxiao輸出占空比為1∶8的9分頻信號;在qzheng2輸出占空比為4∶5的9分頻信號。同樣僅占8個邏輯單元(logic elements),。仿真波形如下,。

  3.實(shí)現(xiàn)等占空比的2、4,、8,、16和32分頻 只要將上述程序中的xor_en置為低電平,同時將計(jì)數(shù)器模塊的計(jì)數(shù)最大值設(shè)為16即可,。仿真波形如下,。

  由此可見,只要稍微改變計(jì)數(shù)器的計(jì)數(shù)狀態(tài)值,,對異或門進(jìn)行選通控制,,即可實(shí)現(xiàn)上述多種形式的分頻,。本設(shè)計(jì)在Altera公司的EP1K50QC208-3構(gòu)成的測試平臺上測試通過,性能良好,。

  結(jié)束語

  我們在設(shè)計(jì)模擬雷達(dá)脈沖信號和用FPGA開發(fā)擴(kuò)頻芯片時就用到了上述多種形式得分頻,。本文旨在介紹一種進(jìn)行FPGA開發(fā)時,所需多種分頻的實(shí)現(xiàn)方法,,如果設(shè)計(jì)中所需分頻形式較多,,可以直接利用本設(shè)計(jì),通過對程序的稍微改動以滿足自己設(shè)計(jì)的要求,。如果設(shè)計(jì)中需要分頻形式較少,,可以利用本設(shè)計(jì)部分程序,以節(jié)省資源,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。