戈華,聶陽
(集寧師范學院 物理系,內蒙古 集寧 012000)
隨著現代通信的高速發展,高精度的正交三角信號廣泛應用在頻率轉換電路中。目前產生正交三角信號的主要的方法是使用直接數字頻率合成器 (Direct Digital Frequency Synthesizer,DDFS)。DDFS中頻率控制字提供周期性的相位數字序列,在參考時鐘的作用下這些相位作為地址信號來讀取存儲在ROM中三角函數的波形幅度值。然而,隨著存儲的波形數據和地址信號位數不斷增加的,電路會消耗大量的硬件資源。
文中采用CORDIC算法代替ROM儲存表結構,并實現正弦和余弦正交三角的函數信號電路。
CORDIC算法是J.E.Volder在進行航天飛行控制系統設計時提出[1],它是一種迭代算法,在實現過程中利用移位和加法運算來代替乘法運算,因此特別適合于硬件實現。假設初始向量 OW1(x,y)旋轉 θ角度后得到向量 OW2(x1,y1),如圖1所示。
由三角函數得:


圖1 向量旋轉θ角度Fig.1 Vector rotationθangle
假設經過i次旋轉后角度為θi,xi+1和yi+1分別為:

對 θi進行一定的限制[2-3],令 tanθi=2-i,即 θi=arctan2-i。 旋轉角度的總和時表示向量逆時針旋轉,di=-1時表示向量順時針旋轉。Ki為伸縮因子,表示每次旋轉時向量模長發生的變化。

如果位寬一定,旋轉次數趨于無窮大時,總的伸縮因子K為:

為了使算法的迭代實現更具有實用性,用zi表示第i次旋轉后剩余的角度值,這樣每次的迭代運算可以簡化為:

根據式(5)可知CORDIC算法的多級迭代運算電路主要由加、減法運算器和移位寄存器構成,非常適合于FPGA設計與實現,具體設計結構原理如圖2所示。

圖2 CORDIC算法結構原理圖Fig.2 Structure diagram of CORDICalgorithm
整個ODDFS電路由相位累加器、相位加法器、相位幅值轉化器、CORDIC處理單元4個基本模塊構成,結構如圖3所示。

圖3 ODDFS電路結構圖Fig.3 Structure diagram of ODDFScircuit
相位累加器是ODDFS電路的核心,在參考時鐘作用下對頻率控制字不斷進行線性累加,當累加器輸出溢出時,就完成一個周期。累加器的輸出數據代表了正余弦曲線的相位。
相位加法器通過改變相位控制字可以控制輸出信號的相位,相位累加器的輸出與相位控制字的代數和作為相位幅值轉換單元的地址數據,使輸出的信號產生了不同的相移。
CORDIC處理單元包含相位象限處理單元和相位幅值轉換單元。通過CORDIC算法可以實現(-99.9°,99.9°)內的正余弦值的計算。將累加器輸出的最高兩位用于表示相位所在的象限。通過目標角度進行預處理,可以在原有旋轉角度的基礎上再添加兩級迭代,實現輸出(-189.9°,189.9°)所有象限內的正余弦值。相位幅值轉換單元存儲正余弦信號值作為基本幅值信號輸出給相位幅值轉化器。
相位幅值轉化器之后插入一個幅值乘法器,通過幅度控制字對輸出的幅度編碼進行幅值調制,生成不同幅度的正余弦信號。
在MATLAB2012a平臺下利用Xilinx公司的SystemGenerator DSP開發工具,采用XILINX的xc3s500e-4fg320 FPGA作為驗證平臺,在ISE14.1中進行綜合、實現、布局布線,最后使用Modelsim6.6a進行電路的時序仿真,電路的功能仿真和時序仿真如圖4和圖5所示。

圖4 ODDFS電路功能仿真Fig.4 Functional simulation of ODDFScircuit

圖5 ODDFS電路時序仿真Fig.5 Timing simulation of ODDFScircuit
文中利用CORDIC算法進行的ODDFS電路設計和建模仿真,實現了ODDFS電路的基本功能,采用FPGA為驗證平臺,在MATLAB2012、Xilinx System Generator DSP完成的電路的驗證。仿真結果表明,系統不但滿足高速信號處理的要求,而且具有很高的實用價值。
[1]Volder JE.The CORDIC trigonometric computing technique[J].IRE Trans.Electronic Computers,1959:330-334.
[2]Haviland G,Tuszynski A.A CORDIC arithmetic processor chip[J].IEEE Transaction on Computers,1996:68-79.
[3]Volder J E.The birth of CORDIC[J].Journal of VLSI Signal Processing,2000:101-105.
[4]Srikanthan T,Gisuthan B.A novel technique for eliminating iterative based computation of polarity of micro rotations in CORDIC based sine-cosine generators[J].Microprocessors and Microsystems,2002:243-252.
[5]Kebbati H S,Blonde J Ph,Braun F.A new semi-flat architecture for high speed and reduced area CORDIC chip[J].Microelectronics Journal,2006:181-187.
[6]Juang T T B,Hsiao S F,Tsai M Y.Para-CORDIC:parallel CORDICrotation algorithm[J].IEEE Transactions on Circuits and Systems I,2004:1515-1524.