本發(fā)明屬于無線通信電路領(lǐng)域,涉及一種基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路。
背景技術(shù):
1、fft廣泛應(yīng)用于諸如通信和圖像處理的各種領(lǐng)域,經(jīng)常占用硬件實現(xiàn)系統(tǒng)種的大部分芯片區(qū)域,提高fft處理速度、降低存儲壓力、低延遲的要求已成為數(shù)字信號處理領(lǐng)域的研究熱點。
2、cordic算法從廣義上講是從廣義上講是一種數(shù)值逼近的迭代算法,用于計算一些常用的基本運算函數(shù)和算數(shù)操作。其基本思想是按照一系列與運算基數(shù)相關(guān)的角度不斷偏擺,從而逼近所需旋轉(zhuǎn)的角度,將一系列復(fù)雜的數(shù)學(xué)運算分解成一些簡單的且在硬件中容易實現(xiàn)的基本運算操作,如加法、移位等,從而能夠降低設(shè)計的復(fù)雜性,節(jié)省硬件資源。這種算法是由j.d.volder等人于1959年在美國航空控制系統(tǒng)設(shè)計中首先提出的。1971年j.s.walther將其推廣到各種初等函數(shù)的計算中,提出了統(tǒng)一的cordic算法形式,把圓周旋轉(zhuǎn)、雙曲旋轉(zhuǎn)、直線旋轉(zhuǎn)統(tǒng)一到同一個cordic迭代方程里,使同一硬件能夠?qū)崿F(xiàn)多功能運算,從而展示出廣闊的應(yīng)用前景。cordic算法能夠計算的函數(shù)包括乘、除、平方根、正弦、余弦、反正切、向量旋轉(zhuǎn)(即復(fù)數(shù)乘法)以及指數(shù)運算等。近年來,隨著vlsi技術(shù)的不斷發(fā)展,cordic算法越來越受到科研工作者的重視,對這種算法的研究與應(yīng)用也越來越廣泛。目前,cordic算法已經(jīng)被成功地用在fft、dct等信號處理、圖像處理,以及線性系統(tǒng)等眾多領(lǐng)域。
3、常用復(fù)數(shù)乘法運算是傳統(tǒng)fft硬件,制約著電路系統(tǒng)的工作頻率,同時又需要占用較多的硬件資源,有時甚至是難以實現(xiàn)的。cordic算法正是為了解決這些問題而產(chǎn)生的,它從算法本身入手,將其分解成一些簡單的移位相加操作,從而提高了系統(tǒng)的運算速度。同時cordic算法又是一種規(guī)則化的算法,它滿足了硬件對算法模塊化、規(guī)則化的要求,能夠充分發(fā)揮硬件優(yōu)勢、利用硬件資源,是實現(xiàn)算法與硬件相結(jié)合的理想方案。
技術(shù)實現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路。
2、為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
3、一種基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,包括:
4、地址產(chǎn)生單元,分別與隨機存儲單元、旋轉(zhuǎn)角度產(chǎn)生單元、基于三段式cordic算法的復(fù)乘單元、基四蝶形單元、輸出處理單元和倒序單元連接,用于控制整體電路的工作時序;
5、隨機存儲單元,包括實部存儲器和虛部存儲器,具有讀寫端口,與地址產(chǎn)生單元連接,用于存儲基于三段式cordic算法的復(fù)乘單元運算數(shù)據(jù);
6、旋轉(zhuǎn)角度產(chǎn)生單元,與地址產(chǎn)生單元連接,用于產(chǎn)生fft運算所需的旋轉(zhuǎn)角度;
7、基于三段式cordic算法的復(fù)乘單元,包括角度二極化編碼、移位相加單元、合并迭代單元、rom表和角度區(qū)間映射,其輸入端與旋轉(zhuǎn)角度產(chǎn)生單元連接,輸出端與基四蝶形單元連接,用于執(zhí)行復(fù)數(shù)乘法運算;
8、基四蝶形單元,其輸入端與隨機存儲單元和基于三段式cordic算法的復(fù)乘單元連接,輸出端與倒序單元連接,用于執(zhí)行fft運算;
9、輸出處理單元,與基四蝶形單元連接,用于處理fft運算結(jié)果;
10、倒序單元,與基四蝶形單元和輸出處理單元連接,用于對fft運算結(jié)果進行倒序處理。
11、進一步,所述基于三段式cordic算法的復(fù)乘單元中,角度二極化編碼用于將輸入角度進行角度二極化重編碼,以利用正余弦函數(shù)的對稱性進行折疊映射。
12、進一步,所述基于三段式cordic算法的復(fù)乘單元中,移位相加單元用于執(zhí)行移位相加操作,實現(xiàn)復(fù)數(shù)乘法運算。
13、進一步,所述基于三段式cordic算法的復(fù)乘單元中,合并迭代單元用于將迭代過程分為三個階段,以提高運算效率。
14、進一步,所述基于三段式cordic算法的復(fù)乘單元中,rom表用于存儲預(yù)先計算好的迭代結(jié)果,以加速運算過程。
15、進一步,所述基于三段式cordic算法的復(fù)乘單元中,角度區(qū)間映射用于根據(jù)輸入角度的值,確定rom表的尋址地址。
16、進一步,所述基于三段式cordic算法的復(fù)乘單元采用流水線結(jié)構(gòu),包括x、y和θ三個運算通道,每個通道包含多個運算級,每個運算級由兩個加法器、兩個移位器和一個判決器組成。
17、進一步,所述fft硬件加速電路的工作流程為:
18、地址產(chǎn)生單元產(chǎn)生初始化信號,將時域數(shù)據(jù)輸入至隨機存儲單元進行初始化;
19、地址產(chǎn)生單元產(chǎn)生第一級運算指示信號,控制基四蝶形單元和旋轉(zhuǎn)角度產(chǎn)生單元進行第一級運算;
20、依次進行第二級、第三級……直到第log4n級的運算;
21、地址產(chǎn)生單元產(chǎn)生輸出結(jié)果有效信號,控制倒序單元將基四蝶形單元處理后的數(shù)據(jù)進行倒序處理并輸出。
22、本發(fā)明的有益效果在于:
23、(1)三段式cordic算法將復(fù)數(shù)乘法分解為簡單的移位相加操作,并利用流水線結(jié)構(gòu)進行并行處理,顯著提高了fft運算速度。
24、(2)采用rom表存儲預(yù)先計算好的迭代結(jié)果,減少了運算過程中的數(shù)據(jù)存儲需求,有效降低了存儲壓力。
25、(3)cordic算法將復(fù)雜的數(shù)學(xué)運算分解為簡單的硬件操作,減少了硬件資源消耗,提高了電路的集成度。
26、(4)流水線結(jié)構(gòu)和rom表的使用,減少了運算過程中的功耗,延長了設(shè)備的續(xù)航時間。
27、(5)cordic算法規(guī)則化程度高,易于硬件實現(xiàn),降低了電路設(shè)計難度。
28、(6)本發(fā)明可用于各種fft算法,具有良好的通用性。
29、本發(fā)明的其他優(yōu)點、目標(biāo)和特征在某種程度上將在隨后的說明書中進行闡述,并且在某種程度上,基于對下文的考察研究對本領(lǐng)域技術(shù)人員而言將是顯而易見的,或者可以從本發(fā)明的實踐中得到教導(dǎo)。本發(fā)明的目標(biāo)和其他優(yōu)點可以通過下面的說明書來實現(xiàn)和獲得。
1.一種基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:包括:
2.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元中,角度二極化編碼用于將輸入角度進行角度二極化重編碼,以利用正余弦函數(shù)的對稱性進行折疊映射。
3.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元中,移位相加單元用于執(zhí)行移位相加操作,實現(xiàn)復(fù)數(shù)乘法運算。
4.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元中,合并迭代單元用于將迭代過程分為三個階段,以提高運算效率。
5.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元中,rom表用于存儲預(yù)先計算好的迭代結(jié)果,以加速運算過程。
6.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元中,角度區(qū)間映射用于根據(jù)輸入角度的值,確定rom表的尋址地址。
7.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述基于三段式cordic算法的復(fù)乘單元采用流水線結(jié)構(gòu),包括x、y和θ三個運算通道,每個通道包含多個運算級,每個運算級由兩個加法器、兩個移位器和一個判決器組成。
8.根據(jù)權(quán)利要求1所述的基于三段式cordic算法的復(fù)乘單元的fft硬件加速電路,其特征在于:所述fft硬件加速電路的工作流程為: