一種可變點數(shù)的浮點fft處理器的制造方法
【專利摘要】本發(fā)明涉及一種可變點數(shù)的浮點FFT處理器,包括數(shù)據(jù)選擇存儲模塊,用于存儲輸入數(shù)據(jù),根據(jù)時域基2算法輸出蝶形運算單元所需要的數(shù)據(jù);當FFT點數(shù)選擇為1024點時,外部輸入的數(shù)據(jù)在數(shù)據(jù)選擇存儲模塊的RAM中按順序放置,當選擇其它點數(shù)時,數(shù)據(jù)間隔放置;蝶型運算單元,用于完成FFT算法中的蝶型運算,個數(shù)為4個。旋轉因子存儲器,用于存儲蝶型運算單元所需要的旋轉因子,其地址由數(shù)據(jù)選擇存儲模塊所控制。本發(fā)明擁有4個蝶形運算單元,可以使原來的運算時間減少四分之三,運算速度是ALTERA公司IP核的4倍;同時可以選擇32,64,128,256,512,1024點五種不同的點數(shù),點數(shù)可配置,使用更加靈活。
【專利說明】-種可變點數(shù)的淳點FFT處理器
【技術領域】
[0001] 本發(fā)明涉及數(shù)字信號處理和集成電路設計【技術領域】,尤其是一種可變點數(shù)的浮點 FFT處理器。
【背景技術】
[0002] 在氣象雷達信號處理中,快速傅里葉變換是常用的算法,由于其算法較為復雜,一 般在DSP處理器中實現(xiàn),但是在DSP處理器中實現(xiàn)則需要在電路板上設置額外的DSP處理 器而且受到DSP處理器運行速度的限制,無法實現(xiàn)并行運算。
[0003] 為了提高系統(tǒng)硬件的集成度,節(jié)約成本,提高運算速度,在FPGA控制器中實現(xiàn) FFT處理是一個更好的方案,然而在FPGA控制器中實現(xiàn)則要消耗相當多的資源,如果使用 IP(知識產權)核,還需要購買相應的license。
[0004] 氣象雷達信號處理的FFT運算點數(shù)一般為32點?1024點,同時為了保證FFT運 算的精度,一般需要進行浮點處理,目前ALTERA公司的浮點FFT處理器的IP核可以實現(xiàn)點 數(shù)的更改但是消耗的資源較多,而且只有一個蝶形運算單元,運算速度較慢。
【發(fā)明內容】
[0005] 本發(fā)明的目的在于提供一種具有4個浮點運算的蝶形運算單元,運算速度快,點 數(shù)可配置的可變點數(shù)的浮點FFT處理器。
[0006] 為實現(xiàn)上述目的,本發(fā)明采用了以下技術方案:一種可變點數(shù)的浮點FFT處理器, 包括: 數(shù)據(jù)選擇存儲模塊,用于存儲輸入數(shù)據(jù),根據(jù)時域基2算法輸出蝶形運算單元所需要 的數(shù)據(jù),并存儲蝶形運算單元的輸出數(shù)據(jù)用于下一級運算;當FFT點數(shù)選擇為1024點時,夕卜 部輸入的數(shù)據(jù)在數(shù)據(jù)選擇存儲模塊的RAM中按順序放置,當選擇其它點數(shù)時,數(shù)據(jù)間隔放 置; 蝶型運算單元,用于完成FFT算法中的蝶型運算,個數(shù)為4個; 旋轉因子存儲器,用于存儲蝶型運算單元所需要的旋轉因子,其地址由數(shù)據(jù)選擇存儲 模塊所控制。
[0007] 所述數(shù)據(jù)選擇存儲模塊由用于存儲實部數(shù)據(jù)的實部數(shù)據(jù)選擇存儲模塊和用于存 儲虛部數(shù)據(jù)的虛部數(shù)據(jù)選擇存儲模塊組成,實部和虛部數(shù)據(jù)先由外部輸入至數(shù)據(jù)選擇存儲 模塊,運算開始后數(shù)據(jù)選擇存儲模塊將數(shù)據(jù)輸出至對應的蝶形運算單元,同時旋轉因子存 儲模塊內的數(shù)據(jù)也輸出至蝶形運算單元,二者在蝶形運算單元內完成運算,其結果再輸出 至數(shù)據(jù)選擇存儲模塊,并在相應的位置存儲,如果最后一級運算完成,則由數(shù)據(jù)選擇存儲模 塊將結果輸出,即實部結果由實部數(shù)據(jù)選擇存儲模塊輸出,虛部結果由虛部數(shù)據(jù)選擇存儲 模塊輸出;否則,再進行下一級運算。
[0008] 所述實部數(shù)據(jù)選擇存儲模塊、虛部數(shù)據(jù)選擇存儲模塊的暫存空間均由八片雙口 RAM構成,每片雙口 RAM的大小為256 X32bit,其讀寫和使能信號由地址狀態(tài)機控制,地址 狀態(tài)機根據(jù)當前運行級數(shù)對外部輸入數(shù)據(jù)和上一級蝶型運算輸出數(shù)據(jù)進行分配,使其存儲 到合適地址,而輸出的數(shù)據(jù)通過數(shù)據(jù)輸出選通模塊通往相應的蝶型運算單元。
[0009] 所述蝶型運算單元由四個浮點乘法器和六個浮點加/減法器構成,完成輸入數(shù)據(jù) 和旋轉因子的運算,分為實部和虛部輸出; 蝶形運算單元用于實現(xiàn)一個標準的基2蝶形運算,如下式所示:
【權利要求】
1. 一種可變點數(shù)的浮點FFT處理器,其特征在于:包括: 數(shù)據(jù)選擇存儲模塊,用于存儲輸入數(shù)據(jù),根據(jù)時域基2算法輸出蝶形運算單元所需要 的數(shù)據(jù),并存儲蝶形運算單元的輸出數(shù)據(jù)用于下一級運算;當FFT點數(shù)選擇為1024點時,夕卜 部輸入的數(shù)據(jù)在數(shù)據(jù)選擇存儲模塊的RAM中按順序放置,當選擇其它點數(shù)時,數(shù)據(jù)間隔放 置; 蝶型運算單元,用于完成FFT算法中的蝶型運算,個數(shù)為4個; 旋轉因子存儲器,用于存儲蝶型運算單元所需要的旋轉因子,其地址由數(shù)據(jù)選擇存儲 模塊所控制。
2. 根據(jù)權利要求1所述的可變點數(shù)的浮點FFT處理器,其特征在于:所述數(shù)據(jù)選擇存 儲模塊由用于存儲實部數(shù)據(jù)的實部數(shù)據(jù)選擇存儲模塊和用于存儲虛部數(shù)據(jù)的虛部數(shù)據(jù)選 擇存儲模塊組成,實部和虛部數(shù)據(jù)先由外部輸入至數(shù)據(jù)選擇存儲模塊,運算開始后數(shù)據(jù)選 擇存儲模塊將數(shù)據(jù)輸出至對應的蝶形運算單元,同時旋轉因子存儲模塊內的數(shù)據(jù)也輸出 至蝶形運算單元,二者在蝶形運算單元內完成運算,其結果再輸出至數(shù)據(jù)選擇存儲模塊, 并在相應的位置存儲,如果最后一級運算完成,則由數(shù)據(jù)選擇存儲模塊將結果輸出,即實 部結果由實部數(shù)據(jù)選擇存儲模塊輸出,虛部結果由虛部數(shù)據(jù)選擇存儲模塊輸出;否則,再進 行下一級運算。
3.根據(jù)權利要求1所述的可變點數(shù)的浮點FFT處理器,其特征在于:所述實部數(shù)據(jù)選 擇存儲模塊、虛部數(shù)據(jù)選擇存儲模塊的暫存空間均由八片雙口RAM構成,每片雙口RAM的大 小為256X32bit,其讀寫和使能信號由地址狀態(tài)機控制,地址狀態(tài)機根據(jù)當前運行級數(shù)對 外部輸入數(shù)據(jù)和上一級蝶型運算輸出數(shù)據(jù)進行分配,使其存儲到合適地址,而輸出的數(shù)據(jù) 通過數(shù)據(jù)輸出選通模塊通往相應的蝶型運算單元。
4. 根據(jù)權利要求1所述的可變點數(shù)的浮點FFT處理器,其特征在于:所述蝶型運算單 元由四個浮點乘法器和六個浮點加/減法器構成,完成輸入數(shù)據(jù)和旋轉因子的運算,分為 實部和虛部輸出; 蝶形運算單元用于實現(xiàn)一個標準的基2蝶形運算,如下式所示:
其中,乂/2〇^)表示3端口輸入的復數(shù),父'/2〇^')表示13端口輸入的數(shù)據(jù),1 表示旋轉因子,為復數(shù),將上式按實部和虛部展開則得到蝶形運算單元的結構,結果數(shù)據(jù) XN(k)包含兩部分,分別由兩個端口輸出;N表示N點的FFT變換,X表示FFT變換中的數(shù) 字序列,X(k)表示這個序列中第k個數(shù)據(jù)。
5. 根據(jù)權利要求1所述的可變點數(shù)的浮點FFT處理器,其特征在于:所述FFT點數(shù)可 以選擇32、64、128、256、512、1024點中的任意一種。
6. 根據(jù)權利要求1所述的可變點數(shù)的浮點FFT處理器,其特征在于:所述的按順序放 置的地址為遞增的,設數(shù)據(jù)為乂〇〇沙=0,1,2- 1024,那么數(shù)據(jù)放置的地址為1^;數(shù)據(jù)間隔 放置的地址間隔為最大點數(shù)和當前點數(shù)之比,設數(shù)據(jù)為X(k),k=0,l,2…N,N彡 1024,其在 RAM中的地址為m*k,其中,m=1024/N。
【文檔編號】G06F9/302GK104268122SQ201410460573
【公開日】2015年1月7日 申請日期:2014年9月12日 優(yōu)先權日:2014年9月12日
【發(fā)明者】徐鵬來 申請人:安徽四創(chuàng)電子股份有限公司