專利名稱:一種可變數(shù)據(jù)個數(shù)的fft/ifft處理器的基4模塊的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于FFT/IFFT處理器的基4模塊,尤其涉及一種可變數(shù)據(jù)個數(shù)的 FFT/IFFT處理器的基4模塊。
背景技術(shù):
隨著通信技術(shù)和信號處理技術(shù)的發(fā)展,人們對多媒體的需求越來越多,質(zhì)量也越來越高,如何在現(xiàn)有的技術(shù)水平和硬件條件下實現(xiàn)合理優(yōu)化實時的多媒體通信終端設(shè)備和產(chǎn)品一直是近年來信號處理領(lǐng)域和相關(guān)公司關(guān)注的話題。移動數(shù)字電視作為多媒體通信以及集成電路產(chǎn)業(yè)發(fā)展的重要方向,近年來在國際上獲得飛速發(fā)展。作為數(shù)字電視標(biāo)準(zhǔn)中的佼佼者,CMMB(中國移動多媒體數(shù)字廣播)標(biāo)準(zhǔn)已覆蓋全國大多數(shù)大中型城市,隨著應(yīng)用的增多,擁有CMMB標(biāo)準(zhǔn)的數(shù)字電視將會深入到社會的每個角落。在信號分析處理方面有著卓越表現(xiàn)的快速傅里葉變換FFT及反快速傅里葉變換 IFFT不僅能將模擬信號轉(zhuǎn)換到頻域,而且還能把數(shù)字信號從頻域轉(zhuǎn)換到時域或從時域轉(zhuǎn)換到頻域;這使得它在通信領(lǐng)域應(yīng)用十分廣泛。在CMMB系統(tǒng)發(fā)送端需要對信號進行反快速傅里葉變換IFFT,而在CMMB系統(tǒng)接收端則需要對信號進行快速傅里葉變換FFT。FFT/IFFT系統(tǒng)中的核心運算就是基2或基4運算,基4或基2模塊的性能對整個FFT/IFFT系統(tǒng)的性能影響巨大。基于專利名稱為“用于實現(xiàn)可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊”(申請?zhí)枮?00910201955. 2)的發(fā)明專利的內(nèi)容,設(shè)計中采用的寄存器數(shù)據(jù)較多,在設(shè)計過程中占用大量的芯片資源,如何能在現(xiàn)有技術(shù)基礎(chǔ)上且不改變原有時鐘頻率設(shè)計,降低芯片面積,提高芯片設(shè)計的資源利用率,成為本發(fā)明所要解決的技術(shù)問題。
發(fā)明內(nèi)容
本發(fā)明目的提供一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,能夠在不改變原有時鐘頻率的前提下,合并多個寄存器,減少寄存器連線,縮小設(shè)計面積,節(jié)省芯片資源, 提高資源利用率。一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,由寄存器、基4運算單元、二選一多路選擇器、選擇與控制模塊、乘法模塊,旋轉(zhuǎn)因子模塊構(gòu)成。寄存器,用于數(shù)據(jù)存儲?;?運算單元,用以進行基4運算。二選一多路選擇器,包含兩個選擇器MUXl和MUX2。MUXl用于對輸入的數(shù)據(jù)流進行選擇控制;MUX2用于對寄存器和基4運算單元的輸出數(shù)據(jù)進行選擇控制。選擇與控制模塊,用于控制整個過程的數(shù)據(jù)流向和運算過程。乘法模塊,用于進行旋轉(zhuǎn)因子與基4運算結(jié)果的復(fù)乘運算。旋轉(zhuǎn)因子模塊,用于產(chǎn)生旋轉(zhuǎn)因子。
本發(fā)明中,寄存器的時鐘為外部輸入數(shù)據(jù)的時鐘的兩倍。在外部數(shù)據(jù)輸入時,數(shù)據(jù)塊被分成四塊,前三塊數(shù)據(jù)存儲在寄存器里,最后一塊數(shù)據(jù)到達(dá)時,與前面三塊被存儲在寄存器里的數(shù)據(jù)一起被送往基4運算單元進行運算。寄存器的訪問方式是先讀后寫。寄存器的輸入端口和輸出端口數(shù)據(jù)的位寬為外部輸入數(shù)據(jù)線 Din的位寬的三倍。外部輸入數(shù)據(jù)Din寫入所述寄存器時,將外部輸入數(shù)據(jù)Din所需存放地址的數(shù)據(jù)讀取出,再把該數(shù)據(jù)的某些位修改為外部輸入數(shù)據(jù)Din,再寫回所述寄存器。二選一選擇器中,二選一選擇器MUXl的兩個輸入端口和一個輸出端口的位寬都為外部輸入數(shù)據(jù)線Din的位寬的三倍。外部輸入數(shù)據(jù)線Din的數(shù)據(jù)在選擇與控制模塊的控制下拓展三倍位寬后,連接到所述第一個二選一選擇器MUXl的第一個數(shù)據(jù)輸入端口。二選一選擇器MUX2的兩個輸入端口和一個輸出端口的位寬都與外部輸入數(shù)據(jù)線Din的位寬一樣,所述寄存器的輸出端口的數(shù)據(jù)在選擇與控制模塊的控制下縮小三倍位寬,連接到所述第二個二選一選擇器MUX2的第一個數(shù)據(jù)輸入端口。當(dāng)外部輸入數(shù)據(jù)線Din的數(shù)據(jù)的位寬為M比特,輸入的數(shù)據(jù)塊總共有N個數(shù)據(jù), 分成四塊,則第一塊為第1 N/4個數(shù)據(jù);第二塊為第N/4+1 N/2個數(shù)據(jù);第三塊為第 N/2+1 3*N/4個數(shù)據(jù);第四塊為第3*Ν/4+1 N個數(shù)據(jù);寄存器的位寬為3*M。第一塊數(shù)據(jù)到來時,送往寄存器位寬為第0位到第M-I位的位置暫存;當(dāng)?shù)诙K數(shù)據(jù)到來時,送往寄存器位寬為第M位到第2*M-1位的位置暫存;當(dāng)?shù)谌龎K數(shù)據(jù)到來時,送往寄存器位寬為第2*M位到第3*M-1位的位置暫存。第四塊數(shù)據(jù)的第一個數(shù)據(jù)到來時,直接送往基4運算單元。同時從寄存器取出地址為0的位寬為第0位到第M-I位的數(shù)據(jù),位寬為第M位到第2*M-1位的數(shù)據(jù),位寬為第2*M 位到第3*M-1位的數(shù)據(jù),一起送往基4運算單元,進行基4運算,運算完成后產(chǎn)生的4個輸出數(shù)據(jù)。第1個基4運算單元的輸出數(shù)據(jù)直接輸出到乘法模塊,進行乘法運算,第2個基4 運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0的位寬為第0位到第M-I位的位置,保存在原來第1個數(shù)據(jù)的位置;第3個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0的位寬為第 M位到第2*M-1位的位置,保存在原來第N/4+1個數(shù)據(jù)的位置;第4個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0的位寬為第2*M位到第3*M-1位的位置,保存在原來第N/2+1 個數(shù)據(jù)的位置。接收第四塊數(shù)據(jù)第二個數(shù)據(jù),送往基4運算單元。同時從寄存器取出地址為1的位寬為第0位到第M-I位的數(shù)據(jù),位寬為第M位到第2*M-1位的數(shù)據(jù),位寬為第2*M位到第 3*M-1位的數(shù)據(jù),一起送往基4運算單元,進行基4運算,運算完成后產(chǎn)生的4個輸出數(shù)據(jù)。 第1個基4運算單元的輸出數(shù)據(jù)直接輸出到乘法模塊,進行乘法運算;第2個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1的位寬第0位到第M-I位的位置,保存在原來第2個數(shù)據(jù)的位置;第3個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1的位寬為第M位到第 2*M-1位的位置,保存在原來第N/4+2個數(shù)據(jù)的位置;第4個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1的位寬為第2*M位到第3*M-1位的位置,保存在原來第N/2+2個數(shù)據(jù)的位置。依次接收第四塊數(shù)據(jù)的第三個數(shù)據(jù),直至第四塊數(shù)據(jù)的最后一個數(shù)據(jù)處理完畢。第一塊數(shù)據(jù),第二塊數(shù)據(jù)和第三塊數(shù)據(jù)處理完畢,經(jīng)基4運算單元處理后的數(shù)據(jù)中,第一塊經(jīng)基4運算單元處理的數(shù)據(jù)已經(jīng)輸出到乘法模塊進行乘法運算,第二塊經(jīng)基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第0位到第M-I位的位置,第三塊經(jīng)基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第M位到第2*M_1位的位置,第四塊經(jīng)基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第2*M位到第3*M-1位的位置。在輸出完第一塊經(jīng)基4 運算單元處理的數(shù)據(jù)后,依次輸出暫存在寄存器的位寬為第0位到第M-I位位置中第二塊已被基4運算單元處理的數(shù)據(jù),同時接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第一塊數(shù)據(jù)保存在寄存器的位寬為第0位到第M-I位的位置。輸出完暫存在寄存器的位寬為第0位到第M-I位中經(jīng)基4運算單元處理的最后一個數(shù)據(jù)后,輸出暫存在寄存器的位寬為第M位到第2*M-1位中第三塊已被基4運算單元處理的數(shù)據(jù),同時接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第二塊數(shù)據(jù)保存在寄存器的位寬為第M位到第2*M-1位的位置。輸出完暫存在寄存器的位寬為第M位到第2*M-1位中已被基4運算單元處理的最后一個數(shù)據(jù)后,輸出暫存在寄存器的位寬為第2*M位到第3*M-1位中第四塊已被基4運算單元處理的數(shù)據(jù),接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第三塊數(shù)據(jù)保存在寄存器的位寬為第2*M位到第3*M-1位的位置。
圖1 一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊結(jié)構(gòu)框2通常情形下的寄存器應(yīng)用示意3基于本發(fā)明的寄存器應(yīng)用示意圖
具體實施方案以下結(jié)合各附圖對本發(fā)明所提出的內(nèi)容進行詳細(xì)的說明如圖1中所示,輸入數(shù)據(jù)的時鐘若為clklx,則基4模塊的三個寄存器以及相關(guān)控制邏輯電路的時鐘需采用兩倍時鐘clk2x,這樣才能保證在下一個數(shù)據(jù)塊到來時,對寄存器的先讀后寫操作不會出現(xiàn)出數(shù)據(jù)被覆蓋或丟失。下面以數(shù)據(jù)個數(shù)N為4096,位寬為10比特的數(shù)據(jù)塊的基4運算為例,進行詳細(xì)的說明外部輸入的數(shù)據(jù)塊總共有4096個數(shù)據(jù),分成四塊,第一塊為第1 IOM個數(shù)據(jù); 第二塊為第1025 2048個數(shù)據(jù);第三塊為第2049 3072個數(shù)據(jù);第四塊為第3073 4096個數(shù)據(jù),寄存器的位寬為30比特。當(dāng)?shù)谝粔K數(shù)據(jù)到來時,被送往寄存器位寬為第0位到第9位的位置暫存;當(dāng)?shù)诙K數(shù)據(jù)到來時,被送往寄存器位寬為第10位到第19位的位置暫存;當(dāng)?shù)谌龎K數(shù)據(jù)到來時,被送往寄存器位寬為第20位到第四位的位置暫存。當(dāng)?shù)谒膲K數(shù)據(jù)的第一個數(shù)據(jù)到來時,直接送往基4運算單元。同時從寄存器取出地址為0的位寬為第0位到第9位的數(shù)據(jù),位寬為第10位到第19位的數(shù)據(jù),位寬為第20 位到第四位的數(shù)據(jù),一起送往基4運算單元,進行基4運算。運算完成后產(chǎn)生的4個輸出數(shù)據(jù)中,第1個基4運算單元的輸出數(shù)據(jù)直接輸出到乘法模塊,進行乘法運算;第2個基4 運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0,位寬為第0位到第9位的位置,保存在原來第 1個數(shù)據(jù)的位置;第3個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0的位寬為第10位到第19位的位置,保存在原來第1025個數(shù)據(jù)的位置;第4個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為0的位寬為第20位到第四位的位置,保存在原來第2049個數(shù)據(jù)的位置。
然后接收第四塊數(shù)據(jù)第二個數(shù)據(jù),直接送往基4運算單元。同時從寄存器取出地址為1的位寬為第O位到第9位的數(shù)據(jù),位寬為第10位到第19位的數(shù)據(jù),位寬為第20位到第四位的數(shù)據(jù),一起送往基4運算單元,進行基4運算。運算完成后產(chǎn)生的4個輸出數(shù)據(jù)中,第1個基4運算單元的輸出數(shù)據(jù)直接輸出到乘法模塊,進行乘法運算;第2個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1的位寬第0位到第9位的位置,保存在原來第2 個數(shù)據(jù)的位置;第3個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1的位寬為第10位到第19位的位置,保存在原來第10 個數(shù)據(jù)的位置;第4個基4運算單元的輸出數(shù)據(jù)寫回到寄存器地址為1,位寬為第20位到第四位的位置,保存在原來第2050個數(shù)據(jù)的位置。依次再接受第四塊數(shù)據(jù)的第三個數(shù)據(jù),……直至第四塊數(shù)據(jù)的最后一個數(shù)據(jù)處理完畢。與此同時,第一塊數(shù)據(jù),第二塊數(shù)據(jù)和第三塊數(shù)據(jù)也已經(jīng)處理完畢,經(jīng)過基4運算單元處理后的數(shù)據(jù)中,第一塊已被基4運算單元處理的數(shù)據(jù)已經(jīng)輸出到乘法模塊進行乘法運算,第二塊已被基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第0位到第9位的位置, 第三塊已被基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第10位到第19位的位置,第四塊已被基4運算單元處理的數(shù)據(jù)暫存在寄存器的位寬為第20位到第四位的位置。在輸出完第一塊已被基4運算單元處理的數(shù)據(jù)后,開始依次輸出暫存在寄存器的位寬為第0位到第9位位置中第二塊已被基4運算單元處理的數(shù)據(jù),同時接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第一塊數(shù)據(jù)保存在寄存器的位寬為第0位到第9位的位置。輸出完暫存在寄存器的位寬為第0位到第9位中已被基4運算單元處理的最后一個數(shù)據(jù)后,開始依次輸出暫存在寄存器的位寬為第10位到第19位中第三塊已被基4運算單元處理的數(shù)據(jù),同時接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第二塊數(shù)據(jù)保存在寄存器的位寬為第10位到第19位的位置。輸出完暫存在寄存器的位寬為第10位到第19位中已被基4運算單元處理的最后一個數(shù)據(jù)后,開始依次輸出暫存在寄存器的位寬為第20位到第四位中第四塊已被基4運算單元處理的數(shù)據(jù),同時接收外面的輸入數(shù)據(jù),把外面輸入數(shù)據(jù)的第三塊數(shù)據(jù)保存在寄存器的位寬為第20位到第四位的位置。采用本發(fā)明所提供的可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,在同等設(shè)計情形中能減少大量寄存器連線,節(jié)省芯片資源。例如,在設(shè)計數(shù)據(jù)個數(shù)N = 4096的FFT處理器時,需要6級基4運算才能完成,在傳統(tǒng)方法中,每級基4運算至少要3個單口 SRAM,每個 SRAM需要一組時鐘,復(fù)位信號,片選信號,讀寫使能信號,地址線等,共需18組,其寄存器使用情況如圖2所示。而采用本發(fā)明所提供的基4模塊的設(shè)計方法后,每級的輸入數(shù)據(jù)線和輸出數(shù)據(jù)線寬度總和與傳統(tǒng)的方案一樣,但時鐘,復(fù)位信號,片選信號,讀寫使能信號,地址線等只需一組就夠了,總共僅需6組,寄存器設(shè)計情形如圖3所示。此外,寄存器塊數(shù)也由原來的18塊降為6塊,資源節(jié)約的效果非常明顯。當(dāng)數(shù)據(jù)個數(shù)N越大,節(jié)省的寄存器資源越多。在實現(xiàn)過程簡單,可在FPGA或者ASIC上實現(xiàn),適用于CMMB,DVB-T等移動數(shù)字電視芯片的設(shè)計。
權(quán)利要求
1.一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,由寄存器、基4運算單元、二選一多路選擇器、選擇與控制模塊、乘法模塊和旋轉(zhuǎn)因子模塊構(gòu)成。
2.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述寄存器與二選一多路選擇器連接,存放被分成四塊的外部輸入數(shù)據(jù)的前三塊。
3.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述寄存器的訪問為先讀后寫。
4.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述寄存器的時鐘為外部輸入數(shù)據(jù)的時鐘的兩倍。
5.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述二選一多路選擇器為兩個,二選一選擇器MUXl和二選一選擇器MUX2。
6.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述基4運算單元的四個輸入端口中有一個輸入端口連接到外部輸入數(shù)據(jù)線Din,其他三個輸入端口連接寄存器的輸出端;其四個輸出端口中有一個連接到二選一選擇器MUX2 的輸入端,其他三個輸出端口連接到二選一選擇器MUXl的輸入端。
7.如權(quán)利要求1所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述寄存器的輸入端口和輸出端口數(shù)據(jù)位寬為外部輸入數(shù)據(jù)線Din的位寬的三倍;
8.如權(quán)利要求1或5所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述二選一選擇器MUXl的兩個輸入端口和一個輸出端口的位寬設(shè)為外部輸入數(shù)據(jù)線Din的位寬的三倍;外部輸入數(shù)據(jù)線Din的數(shù)據(jù)在選擇與控制模塊的控制下拓展三倍位寬,連接到所述第一個二選一選擇器MUXl的第一個數(shù)據(jù)輸入端口。
9.如權(quán)利要求1或5所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述二選一選擇器MUX2的兩個輸入端口和一個輸出端口的位寬都與外部輸入數(shù)據(jù)線Din的位寬相同;所述寄存器的輸出端口的數(shù)據(jù)在選擇與控制模塊的控制下縮小三倍位寬,連接到所述第二選一選擇器MUX2的第一個數(shù)據(jù)輸入端口。
10.如權(quán)利要求1或2所述的一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,其特征在于所述數(shù)據(jù)塊為第一塊為第1到N/4個數(shù)據(jù);第二塊為第N/4+1到N/2個數(shù)據(jù);第三塊為第N/2+1到3*N/4個數(shù)據(jù);第四塊為第3*Ν/4+1到N個數(shù)據(jù),寄存器位寬為3*M,其中輸入數(shù)據(jù)塊數(shù)據(jù)為N,數(shù)據(jù)位寬為M比特。
全文摘要
一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,由寄存器、基4運算單元、二選一多路選擇器、選擇與控制模塊、乘法模塊,旋轉(zhuǎn)因子模塊構(gòu)成。二選一多路選擇器,包含兩個多路選擇器MUX1和MUX2。在外部數(shù)據(jù)輸入時,數(shù)據(jù)塊被分成四塊,前三塊數(shù)據(jù)存儲在寄存器里,最后一塊數(shù)據(jù)到達(dá)時,與前面三塊被存儲在寄存器里的數(shù)據(jù)一起被送往基4運算單元進行運算。采用本發(fā)明目的提供一種可變數(shù)據(jù)個數(shù)的FFT/IFFT處理器的基4模塊,能夠在不改變原有時鐘頻率的前提下,合并多個寄存器,減少寄存器連線,縮小設(shè)計面積,節(jié)省芯片資源,提高了資源利用率。
文檔編號H04N5/44GK102238348SQ201010152070
公開日2011年11月9日 申請日期2010年4月20日 優(yōu)先權(quán)日2010年4月20日
發(fā)明者左耀華 申請人:上海華虹集成電路有限責(zé)任公司