基于FPGA的正交數(shù)字混頻器中數(shù)控振蕩器的設(shè)計(jì)與實(shí)
z表示第次旋轉(zhuǎn)時(shí)與目標(biāo)角度之差,n次旋轉(zhuǎn)后,式經(jīng)次迭代可以得到以下結(jié)果z輸入,通過、兩式的迭代運(yùn)算,迭代結(jié)果輸出的n和n就是所需要的三角函數(shù)值。
FPGA實(shí)現(xiàn)
1是數(shù)控振蕩器的頂層電路結(jié)構(gòu)。可以看到,頻率控制字寄存器將接收到的的頻率控制字送入相位累加器,相位累加器對(duì)系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù),每到達(dá)輸入頻率控制字的值即對(duì)相位進(jìn)行累加,隨后將累加值送入相位相加器,與相位控制字寄存器接收到的初始相位相加,得到當(dāng)前的相位值。其中,相位累加器是決定性能的一個(gè)關(guān)鍵模塊,可以利用器件的進(jìn)位鏈實(shí)現(xiàn)快速、高效的電路結(jié)構(gòu)。然而由于進(jìn)位鏈必須位于臨近的邏輯陣列塊和邏輯單元內(nèi),所以長(zhǎng)的進(jìn)位鏈會(huì)減少其它邏輯使用的布線資源;同時(shí),過長(zhǎng)的進(jìn)位鏈也會(huì)制約整個(gè)系統(tǒng)速度的提高。因此,設(shè)計(jì)中采用進(jìn)位鏈和流水線技術(shù)相結(jié)合的辦法。采用以上做法實(shí)現(xiàn)的相位累加器既能保證具有較高的資源利用率又能大幅提高系統(tǒng)的性能和速度。
/余弦相位序列,將此序列送入基于算法的波形發(fā)生器,最終獲得兩路正交的正余弦輸出序列。
CORDIC運(yùn)算迭代單元,然后在系統(tǒng)時(shí)鐘的驅(qū)動(dòng)下,將本級(jí)的輸出作為本級(jí)的輸入,通過同一級(jí)迭代完成運(yùn)算。這種方法雖然很直觀但是為了將計(jì)算結(jié)果提供給下一級(jí)運(yùn)算,會(huì)占用大量的寄存器資源,帶來許多額外的資源消耗。而且其最大的缺點(diǎn)是運(yùn)算速度較慢需要個(gè)時(shí)鐘周期才能輸出一個(gè)數(shù)據(jù),不利于數(shù)據(jù)的高速實(shí)時(shí)處理。
2所示的由級(jí)運(yùn)算單元組成的流水線結(jié)構(gòu),正常工作時(shí)只需一個(gè)時(shí)鐘周期就能輸出一個(gè)數(shù)據(jù),為數(shù)據(jù)實(shí)現(xiàn)高速實(shí)時(shí)處理提供了保障。每一級(jí)實(shí)現(xiàn)的功能是根據(jù)式進(jìn)行一次迭代,移位的位數(shù)等于當(dāng)前的迭代級(jí)數(shù),加減法選擇由該級(jí)中的最高位符號(hào)位決定,得到下一級(jí)的、和的值。經(jīng)過級(jí)流水線運(yùn)算后,的值變?yōu)?和的值則為初始值0的余弦和正弦值。每一級(jí)電路結(jié)構(gòu)主要包括兩個(gè)移位器和三個(gè)加減法器,arctan(2),可將該小數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)后,保存于存儲(chǔ)單元中,為每一級(jí)流水線提供查找表。
n級(jí)迭代序列:,則迭代所能覆蓋的角度范圍僅有的迭代,將迭代序列擴(kuò)展從而使角度覆蓋范圍也擴(kuò)大。
Altera公司的軟件,采用對(duì)上述數(shù)控振蕩器結(jié)構(gòu)進(jìn)行描述,在上通過功能仿真,結(jié)果正確后綜合出電路網(wǎng)表,最后將程序下載至器件780C6中實(shí)現(xiàn)。
Stratix器件,該器件的位加減器工作頻率可以達(dá)到以上,從而為產(chǎn)生高速的正交信號(hào)提供高速可靠的工作時(shí)鐘??紤]到的工作時(shí)鐘瓶頸是在相位累加器,因此可以根據(jù)具體需要縮減相位累加器的位數(shù)來提高的工作時(shí)鐘頻率。本文設(shè)計(jì)的工作時(shí)鐘為,相位累加器的位數(shù)為位,輸入的頻率控制字為,根據(jù)公式: ,,其中為輸入的頻率控制字,clk為工作時(shí)鐘,為相位累加器位數(shù),可算出輸出的正余弦信號(hào)的頻率out=30MHz,頻率分辨率。頻率分辨率說明:通過輸入頻率控制字來改變輸出正余弦信號(hào)的頻率時(shí),可以達(dá)到的最小步進(jìn)。另外,也可以根據(jù)實(shí)際需要的頻率改變輸入頻率控制字值。當(dāng)然,輸出頻率的上限要受到定律的限制,即out的最大值為clk/2,實(shí)際設(shè)計(jì)一般不大于clk。
3為數(shù)控振蕩器的部分仿真時(shí)序圖。
FPGA器件中利用迭代算法產(chǎn)生正余弦信號(hào)。可以看到,該數(shù)控振蕩器不但省去了傳統(tǒng)龐大的存儲(chǔ)器資源,僅用移位寄存器和加法器就可產(chǎn)生正余弦信號(hào),結(jié)構(gòu)簡(jiǎn)單,非常適用于在正交數(shù)字混頻器中進(jìn)行高速高精度的數(shù)字調(diào)制解調(diào)。
評(píng)論