資源描述:
《雙模式cordic算法的fpga實現(xiàn)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、雙模式CORDIC算法的FPGA實現(xiàn)王暕來楊春玲(哈爾濱工業(yè)大學(xué)電氣工程及自動化學(xué)院,哈爾濱150001)摘要:CORDIC算法將復(fù)雜的算術(shù)運算轉(zhuǎn)化為簡單的加法和移位操作,然后逐次逼近結(jié)果。這種方法很好的兼顧了精度、速度和硬件復(fù)雜度,它與VLSI技術(shù)的結(jié)合對DSP算法的硬件實現(xiàn)具有極大的意義,因而在數(shù)字信號處理領(lǐng)域得到了廣泛應(yīng)用。本文首先簡要介紹了CORDIC算法的原理,然后詳細(xì)描述了雙模式(旋轉(zhuǎn)/向量)CORDIC算法的預(yù)處理和后處理,并且基于FPGA實現(xiàn)了流水線雙模CORDIC算法。關(guān)鍵詞:CORDIC算
2、法;FPGAImplementationofdual-modeCORDICbasedonFPGAWANGJian-laiYANGChun-ling(ElectricalEngineering,HarbinInstituteofTechnology,Harbin,150001)Abstract:Byconvertingcomplexarithmeticintosimpleoperationssuchasaddingandshiftthengraduallyapproachtheexactresult,CORDI
3、Calgorithmkeepsbalancebetweenprecision,speedandhardwarecomplexity,andwhosecombinationwithVLSIperformsagreatroleinthehardwareimplementationofDSPalgorithm,enhanceCORDIChasbeenwidelyusedinthefieldofdigitalsignalprocessing.WestudiedtheprincipleofCORDICalgorithm
4、,anddescribedthepreandpostprocessofdualmodeCORDICalgorithm,thenthepipelineddual-modeCORDICalgorithmisimplementedbasedonFPGA.Keywords:CORDIC;FPGA引言[1,2]CORDIC(CoordinateRotationalDigitalComputer,坐標(biāo)旋轉(zhuǎn)計算機)算法是Volder于1959年在美國航空控制系統(tǒng)的設(shè)計中提出來的,它是一種用于計算運算函數(shù)的循環(huán)迭代算法。其基
5、本思想是用一系列與運算基數(shù)相關(guān)的角度的不斷偏擺,從而逼近所需旋轉(zhuǎn)的角度。從廣義上講它是一個數(shù)值計算逼近的方法。這些固定的角度與計算基數(shù)有關(guān),運算只有移位和加減??赏ㄟ^該算法不同的實現(xiàn)形式(如圓周模式、雙曲線模式、線性模式等)來計算包括乘、除、[3]平方根、正旋、余弦、反正切、向量旋轉(zhuǎn)(即復(fù)數(shù)乘法)以及指數(shù)運算等。[4]1971年,J.SWalther提出了統(tǒng)一的CORDIC算法形式,把圓周旋轉(zhuǎn)、雙曲旋轉(zhuǎn)和直線旋轉(zhuǎn)統(tǒng)一到同一個CORDIC迭代方程中,為統(tǒng)一硬件實現(xiàn)多功能運算奠定了基礎(chǔ)。傳統(tǒng)上計算三角函數(shù)和其它一
6、些硬件不易實現(xiàn)的函數(shù),一般使用查表法、多項式展開或近似的方法。這些方法不能兼顧速度、精度、簡單性等方面的要求。CORDIC算法正是為解決這種問題而產(chǎn)生的。它從算法本身入手,將復(fù)雜的算法分解成一些在硬件中容易實現(xiàn)的基本算法,如加法、移位等,從而使得這些算法在硬件上可以得到較好的實現(xiàn)。由于該算法是一種規(guī)則化的算法,它滿足了硬件對算法的模塊化、規(guī)則化的要求,因此CORDIC算法可以充分發(fā)揮硬件的優(yōu)勢,利用硬件的資源,從而實現(xiàn)硬件與算法相結(jié)合的一種優(yōu)化方案。正是由于上述各種原因,CORDIC算法的原始思想一經(jīng)提出,就
7、受到人們的普遍關(guān)注。40年來人們不斷的對其進(jìn)行探索,并提出各種改進(jìn)算法和優(yōu)化方案,以適應(yīng)各種不同的需求。CORDIC算法已應(yīng)用在包括適應(yīng)性濾波器、FFT、DCT、解調(diào)器和神經(jīng)網(wǎng)絡(luò)等諸多領(lǐng)域中。1CORDIC算法原理本文以CORDIC的圓周模式為例闡述CORDIC算法的兩種工作模式:旋轉(zhuǎn)模[5]式和向量模式。1.1CORDIC旋轉(zhuǎn)模式假設(shè)直角坐標(biāo)系內(nèi)有一個向量aX(,Y),逆時針旋轉(zhuǎn)θ角度后得到另一個aa向量bX(,Y),如圖1所示。bbYYYbb23aaa1θθθXXbX圖1旋轉(zhuǎn)模式單次旋轉(zhuǎn)圖圖2旋轉(zhuǎn)模式多次
8、旋轉(zhuǎn)圖圖3向量模式旋轉(zhuǎn)圖這個過程可以用矩陣形式表示如下:??Xb??cosθθ?sin?Xa???=????(1)??YYba??sinθθcos??把cosθ提出來,式(1)可以重新表示為:??Xba??1t?anθ?X???=cosθ????(2)??Yba??tanθ1?Y?如果向量aX(,Y)經(jīng)過n次旋轉(zhuǎn)才到達(dá)向量bX(,Y),如圖2所示:aabb其中第i次旋轉(zhuǎn)的角度為θ,那么第i次旋轉(zhuǎn)的表