- 相關(guān)推薦
基于FPGA的直接數(shù)字頻率合成器的設(shè)計和實現(xiàn)
摘要:介紹了利用Altera的FPGA器件(ACEX EP1K50)實現(xiàn)直接數(shù)字頻率合成器的工作原理、設(shè)計思想、電路結(jié)構(gòu)和改進(jìn)優(yōu)化方法。關(guān)鍵詞:直接數(shù)字頻率合成(DDS) 現(xiàn)場可編程門陣列(FPGA)
直接數(shù)字頻率合成(Direct Digital Fraquency Synthesis,即DDFS,一般簡稱DDS)是從相位概念出發(fā)直接合成所需要波形的一種新的頻率合成技術(shù)。
目前各大芯片制造廠商都相繼推出采用先進(jìn)CMOS工藝生產(chǎn)的高性能和多功能的DDS芯片(其中應(yīng)用較為廣泛的是AD公司的AD985X系列),為電路設(shè)計者提供了多種選擇。然而在某些場合,專用的DDS芯片在控制方式、置頻速率等方面與系統(tǒng)的要求差距很大,這時如果用高性能的FPGA器件設(shè)計符合自己需要的DDS電路就是一個很好的解決方法。
ACEX 1K是Altera公司著眼于通信、音頻處理及類似場合的應(yīng)用而推出的FPGA器件芯片系列,總的來看將會逐步取代FLEX 10K系列,成為首選的中規(guī)模器件產(chǎn)品。它具有如下特點:
(1)ACEX 1K采用查找表(LUT)和EAB(嵌入式陣列塊)相結(jié)合的結(jié)構(gòu),特別適用于實現(xiàn)復(fù)雜邏輯功能存儲器功能,例如通信中應(yīng)用的數(shù)字信號處理、多通道數(shù)據(jù)處理、數(shù)據(jù)傳遞和微控制等。
(2)典型門數(shù)為1萬到10萬門,有多達(dá)49152位的RAM(每個EAB有4096位RAM)。
(3)器件內(nèi)核采用2.5V電壓,功耗低,能夠提供高達(dá)250MHz的雙向I/O功能,完全支持33MHz和66MHz的PCI局部總線標(biāo)準(zhǔn)。
(4)具有快速連續(xù)式延時可預(yù)測的快速通道互連(Fast Track);具有實現(xiàn)快速加法器、計數(shù)器、乘法器和比較器等算術(shù)功能的專用進(jìn)位鏈和實現(xiàn)高速多扇入邏輯功能的專用級連接。
ACEX EP1K50具有典型門數(shù)50000門,邏輯單元2880個,嵌入系統(tǒng)塊10個,完全符合單片實現(xiàn)DDS電路的要求。因此采用它設(shè)計DDS電路,設(shè)計工具為Altera的下一代設(shè)計工具Quartus軟件。
(范文先生網(wǎng)www.htc668.com收集整理)
1 DDS電路工作原理
圖1所示是一個基于的DDS電路的工作原理框圖。
DDS的工作原理是以數(shù)控振蕩器的方式產(chǎn)生頻率、相位可控制的正弦波。電路一般包括基準(zhǔn)時鐘、頻率累加器、相位累加器、幅度/相位轉(zhuǎn)換電路、D/A轉(zhuǎn)換器和低通濾波器(LPF)。頻率累加器對輸入信號進(jìn)行累加運算,產(chǎn)生頻率控制數(shù)據(jù)X(frequency data或相位步進(jìn)量)。相位累加器由N位全加器和N位累加寄存器級聯(lián)而成,對代表頻率的2進(jìn)制碼進(jìn)行累加運算,是典型的反饋電路,產(chǎn)生累加結(jié)果Y。幅度/相位轉(zhuǎn)換電路實質(zhì)上是一個波形寄存器,以供查表使用。讀出的數(shù)據(jù)送入D/A轉(zhuǎn)換器和低通濾波器。
具體工作過程如下:
每來一個時鐘脈沖Fclk,N位加法器將頻率控制數(shù)據(jù)X與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結(jié)果Y送至累加寄存器的輸入端。累加寄存器一方面將在上一時鐘周期作用后所產(chǎn)生的新的相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一時鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)X相加;另一方面將這個值作為取樣地址值送入幅度/相位轉(zhuǎn)換電路(即圖1中的波形存儲器),幅度/相位轉(zhuǎn)換電路根據(jù)這個地址輸出相應(yīng)的波形數(shù)據(jù)。最后經(jīng)D/A轉(zhuǎn)換器和低通濾波器將波形數(shù)據(jù)轉(zhuǎn)換成所需要的模擬波形。
相位累加器在基準(zhǔn)時鐘的作用下,進(jìn)行線性相位累加,當(dāng)相位累加器加滿量時就會產(chǎn)生一次溢出,這樣就完成了一個周期,這個周期也就是DDS信號的一頻率周期。
DDS輸出信號的頻率由下式給定:
Fout=(X/Y) ×Fclk
假定基準(zhǔn)時鐘為70MHz,累加器為16位,則Y=2 16=65536
Fclk=70MHz
再假定X=4096,則
Fout=(4096/65536) ×70=4.375MHz
可見,通過設(shè)定相位累加器位數(shù)、頻率控制字X和基準(zhǔn)時鐘的值,就可以產(chǎn)生任一頻率的輸出。DDS的頻率分辨率定義為:
Fout=Fclk/Y (2)
由于基準(zhǔn)時鐘一般固定,因此相位累加器的位數(shù)就決定了頻率分辨率。如上面的例子,相位累加器為16位,那么頻率分辨率就可以認(rèn)為是16位。位數(shù)越多,分頻率越高。
2 利用FPGA設(shè)計DDS電路
在用FPGA設(shè)計DDS電路
的時候,相位累加器是決定DDS電路性能的一個關(guān)鍵部分,小的累加器可以利用ACEX器件的進(jìn)位鏈得到快速、高效的電路結(jié)構(gòu)。然而由于進(jìn)位鏈必須位于臨近的LAB(邏輯陣列塊)和LE(邏輯單元)內(nèi),因此長的進(jìn)位鏈勢必會減少其它邏輯使用的布線資源,同時過長的進(jìn)位鏈也會制約整個系統(tǒng)速度的提高。
另一種提高速度的辦法是采用流水線技術(shù),即把在一個時鐘內(nèi)要完成的邏輯操作分成幾步較小的操作,并插入幾個時鐘周期來提高系統(tǒng)的數(shù)據(jù)吞吐率。但是流水線技術(shù)比較適合開環(huán)結(jié)構(gòu)的電路,要用在累加器這樣的閉環(huán)反饋的電路中必須謹(jǐn)慎考慮,以保證設(shè)計的準(zhǔn)確無誤。
綜合考慮后,相位累加器采用進(jìn)位鏈和流水線技術(shù)相結(jié)合的辦法來證明,這樣既能保證較高的資源利用率,又能大幅提高系統(tǒng)的性有和速度。
相位/幅度轉(zhuǎn)換電路是DDS電路中的另一個關(guān)鍵部分,設(shè)計中面臨的主要問題就是資源的開銷。該電路通常采用ROM結(jié)構(gòu),相位累加器的輸出是一種數(shù)字式鋸齒波,通過取它的若干位作為ROM的地址輸入,而后通過查表和運算,ROM就能輸出所需波形的量化數(shù)據(jù)。
在FPGA(針對Altera公司的器件)中,ROM一般由EAB實現(xiàn),并且ROM表的尺寸隨著地址位數(shù)或數(shù)據(jù)位數(shù)的增加成指數(shù)遞增關(guān)系,因此在滿足信號性能的前提條件下,如何減少資源的開銷就是一個重要的問題。在實際設(shè)計時我們充分利用了信號周期內(nèi)的對稱性和算術(shù)關(guān)系來減少EAB的開銷。
在實際設(shè)計中,根據(jù)項目具體要求,還設(shè)計了一個系統(tǒng)控制電路。
綜合以上考慮,整個DDS電路的電路結(jié)構(gòu)如圖2所示。
采用Verilog硬件描述語言實現(xiàn)整個電路,不僅利于設(shè)計文檔的管理,而且方便設(shè)計的修改和擴(kuò)充,還可以在不同F(xiàn)PGA器件之間實現(xiàn)移植。
由圖2可以清楚地看出,整個系統(tǒng)只加入了一級流水線來提高速度。需要說明的是,在ROM和系統(tǒng)控制電路之間也可以加入流水線,但實際仿真表明效果不明顯,反而消耗了更多的資源,因此綜合考慮后只加入一級流水線。
為了進(jìn)步提高速度,在設(shè)計相位累加器模塊和加法器模塊時并沒有采用FPGA單元庫中16~32位加法器,盡管它們可以很容易地實現(xiàn)高達(dá)32位的相位累加器,但當(dāng)工作頻率較高時,它們較大的延時不能滿足速度要求,故不可取。因此,具體實現(xiàn)時我們分別用了4個和8位4位的累加器以流水線的方式實現(xiàn)16位和32位累加器和加法器。比較仿真結(jié)果表明采用流水線技術(shù)可以大大提高系統(tǒng)的工作速度。
由前面分析可知,相位/幅度變換電路是比較難實現(xiàn)的電路,不僅要解決速度的問題,還要考慮節(jié)省資源的問題。如果有效利用FPGA的有限資源,是實現(xiàn)相位/幅度變換電路的最關(guān)鍵的一點。
在實際運用中,我們將著眼點主要放在了節(jié)省資源上,相位/幅度轉(zhuǎn)換電路中的主要問題在于ROM的大小。由于設(shè)計的DDS電路主要用于數(shù)字視頻編碼中,只需要輸出余弦(正弦)波,故考慮了以下的優(yōu)化方式:余弦波信號對于x=π直線成偶對稱,基于此可以將ROM表減至原來的1/2,再利用左半周期內(nèi),波形對于點(π/2,0)成奇對稱,進(jìn)一步將ROM表減至最初的1/4,因此通過一個正弦碼表的前1/4周期就可以變換得到的正弦和余弦的整個周期碼表。這樣就節(jié)省了將近3/4的資源,非?捎^。
系統(tǒng)控制電路主要是根據(jù)是否需要相位調(diào)制(BPSK)及頻率調(diào)制(BFSK),系統(tǒng)時鐘是否需要分頻得到所需的基準(zhǔn)時鐘,頻率碼的輸入方式是串行、并行還是微機(jī)接口方式,如何控制輸出等具體要求而設(shè)計的。這一電路可以靈活設(shè)計,凸現(xiàn)FPGA的優(yōu)點所在。
3 利用ACEX EP1K50實現(xiàn)的DDS電路和專用DDS芯片的比較
(1)系統(tǒng)速率:用ACEX EP1K50實現(xiàn)DDS電路,16位精度(分辨率)的DDS電路最高頻率達(dá)到148MHz,32位精度(分辨率)的電路最高工作頻率為107MHz,可以看出這個頻率已經(jīng)是比較高了;而采用專用DDS芯片,頻率可在數(shù)十至數(shù)百兆赫茲之間,如AD9850為125MHz,AD9851為180MHz,比較新的AD9854已經(jīng)達(dá)到300MHz。用FPGA實現(xiàn)的DDS電路能工作在如此之高的頻率主要依賴于ACEX EP1K50器件先進(jìn)的結(jié)構(gòu)特點,以及前面提出的多種優(yōu)化措施。
(2)可控性:雖然有的專用DDS芯片的功能也比較多,但控制方式卻是固定的,因此不一定是我們所需要的。而利用ACEX EP1K50器件則可以根據(jù)需要方便地實現(xiàn)各種比較復(fù)雜的調(diào)頻、調(diào)相和調(diào)幅功能,具有良好的實用性。
(3)信號質(zhì)量:專用DDS芯片由于采用特定的集成工藝,內(nèi)部數(shù)字信號抖動很小,可以輸出高質(zhì)量的模擬信號;利用ACEX EP1K50器件也能輸出較高質(zhì)量的信號,雖然達(dá)不到專用DDS芯片的水平,但信號精度誤差在允許范圍之內(nèi)。
(4)成本:專用DDS芯片價格較高,而將用FPGA器件設(shè)計的DDS電路嵌入到系統(tǒng)中并不會使成本增加多少。
利用Altera公司的ACEX EP1K50器件,通過各種優(yōu)化措施,設(shè)計開發(fā)的DDS電路,達(dá)到了預(yù)期的目的,具有較高的性價化。
【基于FPGA的直接數(shù)字頻率合成器的設(shè)計和實現(xiàn)】相關(guān)文章:
數(shù)字頻率合成器的FPGA實現(xiàn)08-06
基于FPGA的直接數(shù)字頻率合成技術(shù)設(shè)計08-06
實現(xiàn)直接數(shù)字頻率合成器的三種技術(shù)方案08-06
基于FPGA的高速高精度頻率測量的研究08-06
基于FPGA的核物理實驗定標(biāo)器的設(shè)計與實現(xiàn)08-06