基于FPGA的正交數字混頻器中數控振蕩器的設計與實現
要CORDIC(COordination Rotation DIgital Computer)算法實現正交數字混頻器中的數控振蕩器的方法。首先推導了算法產生正余弦信號的實現過程,然后給出了在中設計數控振蕩器的頂層電路結構,并根據算法特點在設計中引入流水線結構設計。
本文引用地址:http://www.ex-cimer.com/article/201809/388994.htmCORDIC算法;
/余弦信號正交特性好等特點。而且的相位、幅度均已數字化,可以直接進行高精度的數字調制解調。隨著數字通信技術的發(fā)展,傳送的數據速率越來越高。如何得到一個可數控的高頻載波信號是實現高速數字通信系統(tǒng)必須解決的問題。本文將介紹如何在中實現高速正交數字混頻器中的數控振蕩器設計。
1NCO的頂層電路結構
2CORDIC迭代算法的流水線結構
3NCO的部分仿真時序圖
, 傳統(tǒng)做法是采用查表法,即事先根據各個正余弦波相位計算好相位的正余弦值,并按相位角度作為地址在存儲器中對其進行尋址,構成一個幅度相位轉換電路即波形存儲器,通過該轉換電路進行查表獲得正余弦信號樣本。為了提高數控振蕩器的頻率分辨率,往往需要擴大波形存儲器的容量,造成存儲資源的大量消耗。而且,如果需要外掛來存儲波形,由于受到讀取速度的影響,數控振蕩器的輸出速率必然受到制約。因此,當設計高速、高精度的數控振蕩器時,查表法就不適合采用
/余弦樣本?;谑噶啃D的算法正好滿足了這一需求該算法有線性的收斂域和序列的特性,只要迭代次數足夠,即可保證結果有足夠的精度。統(tǒng)一的形式的基本原理是,初始向量1(x,y)旋轉角度V(x,y):
2=xcos1sin
2=ycos1sin (1)
2=(x-ytancos
2=(y+xtancos
2的整數次冪,即:-i)+1表示逆時針旋轉,表示順時針旋轉,故第步旋轉可用K表示,以字長為例,則為了抵消迭代對比例因子的影響,可將每級迭代的輸入數據、校正后再參與運算,以避免在迭代運算中增加校正運算,降低算法的速度。
z表示第次旋轉時與目標角度之差,n次旋轉后,式經次迭代可以得到以下結果z輸入,通過、兩式的迭代運算,迭代結果輸出的n和n就是所需要的三角函數值。
FPGA實現
1是數控振蕩器的頂層電路結構??梢钥吹?頻率控制字寄存器將接收到的的頻率控制字送入相位累加器,相位累加器對系統(tǒng)時鐘進行計數,每到達輸入頻率控制字的值即對相位進行累加,隨后將累加值送入相位相加器,與相位控制字寄存器接收到的初始相位相加,得到當前的相位值。其中,相位累加器是決定性能的一個關鍵模塊,可以利用器件的進位鏈實現快速、高效的電路結構。然而由于進位鏈必須位于臨近的邏輯陣列塊和邏輯單元內,所以長的進位鏈會減少其它邏輯使用的布線資源;同時,過長的進位鏈也會制約整個系統(tǒng)速度的提高。因此,設計中采用進位鏈和流水線技術相結合的辦法。采用以上做法實現的相位累加器既能保證具有較高的資源利用率又能大幅提高系統(tǒng)的性能和速度。
/余弦相位序列,將此序列送入基于算法的波形發(fā)生器,最終獲得兩路正交的正余弦輸出序列。
CORDIC運算迭代單元,然后在系統(tǒng)時鐘的驅動下,將本級的輸出作為本級的輸入,通過同一級迭代完成運算。這種方法雖然很直觀但是為了將計算結果提供給下一級運算,會占用大量的寄存器資源,帶來許多額外的資源消耗。而且其最大的缺點是運算速度較慢需要個時鐘周期才能輸出一個數據,不利于數據的高速實時處理。
2所示的由級運算單元組成的流水線結構,正常工作時只需一個時鐘周期就能輸出一個數據,為數據實現高速實時處理提供了保障。每一級實現的功能是根據式進行一次迭代,移位的位數等于當前的迭代級數,加減法選擇由該級中的最高位符號位決定,得到下一級的、和的值。經過級流水線運算后,的值變?yōu)?和的值則為初始值0的余弦和正弦值。每一級電路結構主要包括兩個移位器和三個加減法器,arctan(2),可將該小數轉換為二進制數后,保存于存儲單元中,為每一級流水線提供查找表。
n級迭代序列:,則迭代所能覆蓋的角度范圍僅有的迭代,將迭代序列擴展從而使角度覆蓋范圍也擴大。
Altera公司的軟件,采用對上述數控振蕩器結構進行描述,在上通過功能仿真,結果正確后綜合出電路網表,最后將程序下載至器件780C6中實現。
Stratix器件,該器件的位加減器工作頻率可以達到以上,從而為產生高速的正交信號提供高速可靠的工作時鐘??紤]到的工作時鐘瓶頸是在相位累加器,因此可以根據具體需要縮減相位累加器的位數來提高的工作時鐘頻率。本文設計的工作時鐘為,相位累加器的位數為位,輸入的頻率控制字為,根據公式: ,,其中為輸入的頻率控制字,clk為工作時鐘,為相位累加器位數,可算出輸出的正余弦信號的頻率out=30MHz,頻率分辨率。頻率分辨率說明:通過輸入頻率控制字來改變輸出正余弦信號的頻率時,可以達到的最小步進。另外,也可以根據實際需要的頻率改變輸入頻率控制字值。當然,輸出頻率的上限要受到定律的限制,即out的最大值為clk/2,實際設計一般不大于clk。
3為數控振蕩器的部分仿真時序圖。
FPGA器件中利用迭代算法產生正余弦信號。可以看到,該數控振蕩器不但省去了傳統(tǒng)龐大的存儲器資源,僅用移位寄存器和加法器就可產生正余弦信號,結構簡單,非常適用于在正交數字混頻器中進行高速高精度的數字調制解調。
評論