基于FPGA的自然對(duì)數(shù)變換器的設(shè)計(jì)與實(shí)現(xiàn)
實(shí)現(xiàn)方法
本文引用地址:http://m.butianyuan.cn/article/86941.htm · 預(yù)處理單元
欲利用CORD IC方法求自然對(duì)數(shù),必須對(duì)輸入進(jìn)行初始化,經(jīng)迭代運(yùn)算后才能得到對(duì)數(shù)運(yùn)算值。該對(duì)數(shù)變換器的輸入為16位數(shù),在預(yù)處理單元中將輸入分別加減一,并將位寬擴(kuò)大為40位,最高位作為符號(hào)位覆值給第一次迭代的x0和y0,如圖1所示,圖中s代表符號(hào)位。擴(kuò)大位寬可以提高輸出精度。
圖1初始迭代值x0,y0
· CORD IC單元
CORD IC單元是實(shí)現(xiàn)對(duì)數(shù)變換器的核心。本文利用流水線結(jié)構(gòu)實(shí)現(xiàn)CORD IC算法,其結(jié)構(gòu)如圖2所示。在設(shè)計(jì)中,采用由28級(jí)CORD IC運(yùn)算單元組成的流水線結(jié)構(gòu),為擴(kuò)大輸入范圍,從n=-5開(kāi)始迭代,移位序列為[7,6,5,4,3,2,1,2…28]。前6級(jí)根據(jù)(3)式進(jìn)行迭代,后22級(jí)根據(jù)(4)式進(jìn)行迭代。經(jīng)過(guò)28級(jí)流水線運(yùn)算后,y變?yōu)?,z左移一位就是要求的對(duì)數(shù)值。每一級(jí)電路結(jié)構(gòu)主要包括2個(gè)移位寄存器和3個(gè)加減法器,這些移位寄存器各自有不同的固定的移位次數(shù),加減法選擇由該級(jí)中y的最高位(符號(hào)位)決定。θn為第n次迭代的旋轉(zhuǎn)角度,并作為常數(shù)直接連到了累加器上,不需要存儲(chǔ)空間和讀取時(shí)間。
圖2 CORDIC流水線結(jié)構(gòu)
· 后處理單元
由CORD IC得到的z=1/2ln(t),因此將結(jié)果左移一位,并截取高16位作為最終的輸出。其中最高位為符號(hào)位,最大輸入值65535的對(duì)數(shù)值為11.0903,對(duì)應(yīng)的輸出為7FFF,其余輸出均除以對(duì)應(yīng)的值即得到相應(yīng)的對(duì)數(shù)值。
實(shí)驗(yàn)結(jié)果
在Quartus II 5.1軟件環(huán)境下使用Verilog HDL語(yǔ)言完成了上述各算法,并在cyclone系列芯片EP1C6Q240C8上實(shí)現(xiàn)。圖3 為對(duì)數(shù)運(yùn)算時(shí)序仿真圖。表1為對(duì)數(shù)運(yùn)算結(jié)果與理論值的比較。
圖3對(duì)數(shù)運(yùn)算時(shí)序仿真圖
由表1可看出,該對(duì)數(shù)運(yùn)算器的輸出誤差為10-4數(shù)量級(jí)。由于采用流水線結(jié)構(gòu),能夠在執(zhí)行進(jìn)程的同時(shí)輸入數(shù)據(jù),從而極大的提高了程序的運(yùn)行效率。該設(shè)計(jì)需要30個(gè)時(shí)鐘周期獲取第一個(gè)計(jì)算結(jié)果,而只需要一個(gè)時(shí)鐘周期來(lái)獲取隨后的計(jì)算結(jié)果。利用Quartus Ⅱ5.1軟件進(jìn)行時(shí)序分析,該運(yùn)算器的最高頻率可達(dá)到80MHz。該運(yùn)算器適用于高速大數(shù)據(jù)量的數(shù)據(jù)處理。
表1對(duì)數(shù)運(yùn)算結(jié)果與理論值的比較
結(jié)語(yǔ)
利用對(duì)數(shù)變換可以將乘除法變換為加減法實(shí)現(xiàn),有利于乘除法在硬件中的實(shí)現(xiàn)。由于CORD IC算法完全由移位和相加運(yùn)算完成,降低了復(fù)雜性,易于硬件的實(shí)現(xiàn)。筆者利用CORD IC算法在FPGA上設(shè)計(jì)了一種自然對(duì)數(shù)變換器。實(shí)現(xiàn)過(guò)程中采用流水線結(jié)構(gòu),提高了系統(tǒng)的運(yùn)行效率。實(shí)驗(yàn)結(jié)果表明該對(duì)數(shù)運(yùn)算器的輸出誤差為10-4數(shù)量級(jí),最高頻率可達(dá)到80MHz。該運(yùn)算器適用于高速大數(shù)據(jù)量的數(shù)據(jù)處理。
參考文獻(xiàn):
1. 李剛、李秋霞、林凌、李小霞等,動(dòng)態(tài)光譜頻域提取的FFT變換精度分析,光譜學(xué)與光譜分析,2006,12:2177-2180
2. Bajard J C,Muller J M.BKM: A new hardware algorithm for complex elementary functions.IEEE Trans computers,1994,43(8):955-963
3. Hormigo J,Villalba J,Schulte M J.A hardware algorithm for variable precision logarithm[c]//proceedings of the IEEE inter conf on application-specific systems,architectures and processors,2000:215-224
4. Abed K H,Siferd R E. CMOS VLSI implementation of a low power logarithmic converter. IEEE Trans computers,2003,52(11):1421-1433
5. Uwe Meyer-Baese.Digital SignalProcessing with Field Programmable Gate Arrays[M].Tsinghua University Press. 2006:79-87
6. J.S.Walther. A unified algorithm for elementary functions. in proc.Spring Joint Comput.Conf.,1971:379-385
7. Chih-Hsiu Lin and An-Yeu Wu.Mixed-Scaling-Rotation CORDIC(MSR-CORDIC) Algorithm and Architecture for High-Performance Vector Rotational DSP Applications. IEEE Transactions on circuits and systems-I:REGULAR PAPERS, 2005,52(11):2385-2396
8. Xiaobo Hu,Ronald G. Harber,Expanding the range of convergence of the CORDIC algorithm. IEEE Transactions on computers, 1991,40(1):13-21
9. Altera公司,“Cyclone FPGA Family data Sheet”
評(píng)論