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