資源描述:
《基于CORDIC算法的DDS的FPGA設(shè)計與優(yōu)化》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、29卷第8期微電子學(xué)與計算機Vol.29No.82012年8月MICROELECTRONICS&COMPUTERAugust2012基于CORDIC算法的DDS的FPGA設(shè)計與優(yōu)化陳義和1,2,佘磊1,2,李交美1,2(1中國科學(xué)院武漢物理與數(shù)學(xué)研究所,湖北武漢430071;2中國科學(xué)院原子頻標重點實驗室(武漢物理與數(shù)學(xué)研究所),湖北武漢430071)摘要:采用CORDIC算法計算三角函數(shù)值來實現(xiàn)DDS,可以減少存儲資源,便于在FPGA中實現(xiàn).通過對傳統(tǒng)CORDIC算法流水結(jié)構(gòu)的分析,提出了一種在迭代過程采用不同位寬的寄存器存儲角度值和幅度值的優(yōu)化方法,可以節(jié)省資源而不影響計算精
2、度,并且在FPGA中實現(xiàn)了該方法.關(guān)鍵詞:DDS;CORDIC算法;FPGA;優(yōu)化中圖分類號:TN741文獻標識碼:A文章編號:1000-7180(2012)08-0111-04DesignandOptimizationofDDSBasedonCORDICinFPGA1,2,SHELei1,2,LIJiao-mei1,2CHENYi-he(1WuhanInstituteofPhysicsandMathematics,ChineseAcademyofSciences,Wuhan430071,China;2KeyLaboratoryofAtomicFrequencyStandards
3、(KLAFS),WuhanInstituteofPhysicsandMathematics,ChineseAcademyofSciences,Wuhan430071,China)Abstract:ThispaperrealizesDDSbyusingtheCORDICalgorithmtocalculatethevalueoftrigonometricfunction,whichisconvenienttotheFPGAimplement.AccordingtoanalysisofthetraditionalpipelinestructureCORDICalgorithm,wep
4、resentanewmethodofoptimizationthatusingdifferentbitstosavetheangervalueandamplitudevalueduringiterations,andrealizeitinFPGA,whichcanreducetheFPGAresource.Keywords:DDS;CORDIC;FPGA;Optimization計方法.通過該方法實現(xiàn)的DDS已經(jīng)成功應(yīng)用在汞1引言離子微波頻標實驗中.DDS(直接數(shù)字頻率合成)在通信、雷達以及頻[1]2DDS基本原理與CORDIC算法標等領(lǐng)域得到了廣泛的應(yīng)用,傳統(tǒng)的DDS一般是基于
5、存儲表的方法實現(xiàn)的,該方法要求存儲表容量傳統(tǒng)的DDS工作原理框圖如圖1所示.它的數(shù)[2]非常大,不利于在FPGA中實現(xiàn).由Volder于字部分主要由相位累加器和波形存儲表組成,相位1959年提出的CORDIC(coordinaterotationdigitalcomputer,坐標旋轉(zhuǎn)數(shù)字計算)算法,通過迭代的方法,只需要少量的存儲空間,而且每一級的迭代只需要通過簡單的移位、加/減法運算和少量的查表操作,便能夠計算出三角函數(shù)值,因此基于CORDIC算法的頻率綜合器在很多方面得到了應(yīng)用.本文通過對CORDIC算法的流水結(jié)構(gòu)的分析,提出了一種圖1DDS工作原理框圖可以減少FPGA資源
6、而不影響計算精度的優(yōu)化設(shè)累加器的輸出作為波形存儲表的地址,查表得到對收稿日期:2012-11-20;修回日期:2012-01-29基金項目:國家自然科學(xué)基金青年基金(10904163)112微電子學(xué)與計算機2012年應(yīng)的三角函數(shù)值,經(jīng)過DAC輸出,平滑濾波后便得z0=θ,zi=zi-1-μi-1θi-1,[3]到對應(yīng)的正弦信號.如果zi≥0,則μi=1,否則μi=-1.第i次旋轉(zhuǎn)如果沒有相位截斷,N比特的相位所對應(yīng)的波后得到的坐標與前一次的坐標滿足如下的關(guān)系形存儲器必須有2N個條目,因此不便于在FPGA-i)烄xi+1=cosθi(xi-μiyi*2,andμi=+1or-1.中
7、實現(xiàn).而利用CORDIC算法則只用存儲少量的數(shù)烅y-i)烆i+1=cosθi(yi+μixi*2據(jù),通過計算便可以得出三角函數(shù)值.-2i令ki=cosθi=1/(槡1+2)是第i次旋轉(zhuǎn)的增CORDIC算法有兩種運算模式:旋轉(zhuǎn)模式和向益因子,與μi的值無關(guān),因此在實際的迭代過程中,量模式.利用CORDIC算法可以計算三角函數(shù)值、可以將其放到最后一步進行修正,此時迭代關(guān)系式開方及反三角函數(shù)值等.這里只介紹基于CORDIC為算法的三角函數(shù)值的計算.在旋轉(zhuǎn)模式中,如圖2所x-i,i+1=