本發(fā)明涉及數(shù)字信號處理技術,尤其涉及一種有限長單位沖激響應(FIR,F(xiàn)inite Impulse Response)濾波器組及濾波方法。
背景技術:
近年來由于軟件定義網絡(SDN,Software Defined Network)、軟件定義存儲、軟件定義云計算等軟件定義概念的提出,使得對硬件產品的功能靈活性、易擴展性、可重構性需求日益增強。
FIR濾波器是數(shù)字信號處理系統(tǒng)中最基本的元件,在通信、圖像處理、模式識別等領域都有著廣泛的應用,例如,在無線通信系統(tǒng)中的數(shù)字上變頻器(DUC,Digital Up Converter)和數(shù)字下變頻器(DDC,Digital Down Converter)的鏈路中,包含有大量的FIR濾波器。
但是,目前在專用集成電路(ASIC,Application Specific Integrated Circuit)設計中,盡管出現(xiàn)了針對單個濾波器結構的可重構改進,但是,對于無法提供對于濾波器組的可重構能力;而且,目前所出現(xiàn)的通過修改濾波器間的連接關系來實現(xiàn)濾波器組的可重構方案,卻又缺乏單個濾波器的可重構能力,資源利用率低。無法在多種制式的通信標準長期共存的情況下,實現(xiàn)可重構、可重用且靈活可配置。
技術實現(xiàn)要素:
為解決上述技術問題,本發(fā)明實施例期望提供一種FIR濾波器組及濾波方法,實現(xiàn)濾波器組內部硬件資源可重構、可重用且靈活可配置,以及在合理的資源和速度的前提下能夠滿足不同的濾波組合。
本發(fā)明的技術方案是這樣實現(xiàn)的:
第一方面,本發(fā)明實施例提供了FIR濾波器組,所述FIR濾波器組包括相互耦接的控制電路和數(shù)據(jù)處理電路;所述數(shù)據(jù)處理電路包括數(shù)據(jù)流總線陣列、緩存資源池、算術邏輯單元ALU資源池、累加器資源池;所述控制電路包括:數(shù)據(jù)流控制器、緩存資源映射器、濾波系數(shù)存儲器、ALU控制器、累加資源組織器和輸出時序控制器;其中,
所述數(shù)據(jù)流總線陣列,用于從輸入端口接收輸入數(shù)據(jù),從所述累加器資源池接收輸出數(shù)據(jù);以及,根據(jù)所述數(shù)據(jù)流控制器的控制將所述輸入數(shù)據(jù)及所述輸出數(shù)據(jù)傳輸至所述緩存資源池,或者根據(jù)所述輸出時序控制器的控制將所述輸出數(shù)據(jù)傳輸至輸出端口;
所述緩存資源池,包括至少一個緩存資源塊,用于根據(jù)所述數(shù)據(jù)流控制器的控制接收所述數(shù)據(jù)流總線陣列傳輸?shù)臄?shù)據(jù),并通過所述數(shù)據(jù)流控制器根據(jù)濾波器階數(shù)、個數(shù)和級聯(lián)關系對所述數(shù)據(jù)流總線陣列傳輸?shù)臄?shù)據(jù)進行控制,形成待計算的濾波緩存;
所述ALU資源池包括至少一個ALU,用于根據(jù)所述緩存資源映射器、所述濾波系數(shù)存儲器以及所述ALU控制器對所述待計算的濾波緩存進行乘加計算,并將乘加計算的計算結果通過所述累加資源組織器傳輸至所述累加器資源池;
所述累加器資源池包括至少一個累加器,每個累加器與所述ALU資源池中的ALU一一對應,用于通過所述累加資源組織器根據(jù)濾波資源分配情況對所述ALU進行乘加計算的計算結果進行相加,得到濾波結果;并將所述濾波結果傳輸至所述數(shù)據(jù)流總線陣列。
在上述方案中,所述數(shù)據(jù)流總線陣列中數(shù)據(jù)流總線的數(shù)據(jù)結構包括:數(shù)據(jù)、與數(shù)據(jù)對應的緩存資源塊標識和用于表征數(shù)據(jù)為新數(shù)據(jù)的標識位。
在上述方案中,所述緩存資源池中每個緩存資源塊均包括至少一個串聯(lián)的寄存器組,一個緩存級聯(lián)開關;所述每個緩存資源塊的緩存級聯(lián)開關包括三個輸入端和一個輸出端,其中,所述緩存級聯(lián)開關的第一輸入端與所述數(shù)據(jù)流總線陣列相連,所述緩存級聯(lián)開關的第二輸入端與前級緩存資源塊的輸出相連; 所述緩存級聯(lián)開關的第三輸入端與所述數(shù)據(jù)流控制器相連;所述緩存級聯(lián)開關的輸出端與所述寄存器組的輸入端相連。
在上述方案中,當所述數(shù)據(jù)流控制器控制所述緩存級聯(lián)開關的第一輸入端開通,第二輸入端關閉時,所述緩存資源塊的寄存器組的輸入數(shù)據(jù)由所述數(shù)據(jù)流總線陣列提供;
當所述數(shù)據(jù)流控制器控制所述緩存級聯(lián)開關的第一輸入端關閉,第二輸入端開通時,所述緩存資源塊的寄存器組的輸入數(shù)據(jù)由前級的緩存資源塊提供。
在上述方案中,所述ALU資源池中的每個ALU均包括兩個ALU緩存塊,加法器、乘法器以及截位電路;其中,所述兩個ALU緩存塊分別對應于兩個緩存資源塊所輸出的待運算的濾波緩存,所述每個ALU緩存塊的大小與所述緩存資源塊中寄存器組的大小相同。
在上述方案中,兩個ALU緩存塊分別連接在加法器的兩個輸入端口,通過所述ALU控制器將兩個ALU緩存塊的緩存數(shù)據(jù)送入所述加法器;
所述加法器輸出端與所述乘法器相連,所述乘法器的另一輸入端與所述濾波系數(shù)存儲器相連,其中,所述濾波系數(shù)存儲器中的系數(shù)通過軟件初始化后,以預設的順序輸入所述乘法器進行濾波運算;
所述乘法器運算后的運算結果經過所述截位電路進行截位后送入所述累加資源池。
在上述方案中,所述累加器資源池中的每個累加器均包括一個加法器、截位器和一個緩存器;其中,所述加法器用于兩個ALU數(shù)據(jù)的相加或自累加;所述累加資源組織器根據(jù)濾波資源分配情況對ALU進行乘加計算的計算結果通過所述加法器、所述截位器和所述緩存器進行相加,得到濾波結果。
在上述方案中,所述數(shù)據(jù)流控制器用于根據(jù)配置控制所述累加器資源池中的累加器的濾波結果輸出到所述數(shù)據(jù)流總線陣列;或者,
所述數(shù)據(jù)流控制器用于根據(jù)配置控制所述累加器資源池中的累加器的濾波結果輸出至所述輸出端口。
第二方面,本發(fā)明實施例提供了一種濾波方法,所述方法應用于權利要求 1至8任一項所述的FIR濾波器組,所述方法包括:
通過輸入端口接收到輸入數(shù)據(jù)后,將所述輸入數(shù)據(jù)傳輸至數(shù)據(jù)流總線陣列;
緩存資源池中的緩存資源塊根據(jù)數(shù)據(jù)流控制器的控制接收所述數(shù)據(jù)流總線陣列傳輸?shù)臄?shù)據(jù),并通過所述數(shù)據(jù)流控制器根據(jù)濾波器階數(shù)、個數(shù)和級聯(lián)關系進行控制,形成待計算的濾波緩存;
算術邏輯單元ALU資源池中的ALU根據(jù)緩存資源映射器、濾波系數(shù)存儲器以及ALU控制器對所述待計算的濾波緩存進行乘加計算,并將乘加計算的計算結果通過累加資源組織器傳輸至累加器資源池;
所述累加器資源池中的累加器通過累加資源組織器根據(jù)濾波資源分配情況對所述ALU進行乘加計算的計算結果進行相加,得到濾波結果;
根據(jù)所述數(shù)據(jù)流控制器的控制將所述濾波結果傳輸至所述數(shù)據(jù)流總線陣列,并將所述數(shù)據(jù)流總線陣列中的濾波結果傳輸至輸出端口。
在上述方案中,所述方法還包括:所述數(shù)據(jù)流控制器通過控制所述數(shù)據(jù)流總線陣列將所述濾波結果回環(huán)至緩存資源塊。
本發(fā)明實施例提供了一種FIR濾波器組及濾波方法,通過將濾波器的所有硬件資源進行統(tǒng)一考量,從而實現(xiàn)濾波器組內部硬件資源可重構、可重用且靈活可配置,以及在合理的資源和速度的前提下能夠滿足不同的濾波組合。
附圖說明
圖1為本發(fā)明實施例所提出的一種FIR濾波器組的結構示意圖;
圖2為本發(fā)明實施例所提出的另一種FIR濾波器組的結構示意圖;
圖3為本發(fā)明實施例所提出的數(shù)據(jù)流總線陣列中數(shù)據(jù)流總線的數(shù)據(jù)結構示意圖;
圖4為本發(fā)明實施例所提出的緩存資源池中所包括的緩存資源塊結構以及緩存資源塊之間的連接關系示意圖;
圖5為本發(fā)明實施例所提出的ALU資源池中ALU的結構示意圖;
圖6為本發(fā)明實施例所提出的一種濾波方法的流程示意圖;
圖7為本發(fā)明實施例所提出的一種緩存資源塊的數(shù)據(jù)結構示意圖;
圖8為本發(fā)明實施例所提出的另一種緩存資源塊的數(shù)據(jù)結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。
實施例一
由于本發(fā)明實施例的技術方案的基本思想是將濾波器的所有硬件資源進行統(tǒng)一考量,使得能夠根據(jù)不同的應用場景,對濾波資源進行重組,從而形成不同的濾波器組的結構,實現(xiàn)濾波器組的可重構。
參見圖1,其示出了本發(fā)明實施例所提出的一種FIR濾波器組10的結構。如圖1所示,F(xiàn)IR濾波器組10包括:數(shù)據(jù)處理電路101和控制電路102兩個組成部分,這兩個組成部分相互之間是耦接的關系??梢岳斫獾兀捎诒緦嵤├菍τ贔IR濾波器組10的結構進行實例性的說明,因此,對于FIR濾波器組10相關的外部電路及電器元件,本實施例不作具體贅述,本領域技術人員可以根據(jù)實際應用場景的需要對本實施例所述的FIR濾波器組10的相關外部電路進行設計以滿足相應的應用需求。
參見圖2所示的FIR濾波器組10的具體結構,數(shù)據(jù)處理電路101可以包括數(shù)據(jù)流總線陣列1011、緩存資源池1012、ALU資源池1013以及累加器資源池1014;而控制電路102則可以包括:數(shù)據(jù)流控制器1021、緩存資源映射器1022、濾波系數(shù)存儲器1023、ALU控制器1024、累加資源組織器1025以及輸出時序控制器1026;其中,
數(shù)據(jù)流總線陣列1011,用于從輸入端口接收輸入數(shù)據(jù),從累加器資源池1014接收輸出數(shù)據(jù);以及,根據(jù)數(shù)據(jù)流控制器1021的控制將所述輸入數(shù)據(jù)及所述輸出數(shù)據(jù)傳輸至緩存資源池1012,或者根據(jù)輸出時序控制器1026的控制將所述輸出數(shù)據(jù)傳輸至輸出端口;
緩存資源池1012,包括至少一個緩存資源塊,用于根據(jù)數(shù)據(jù)流控制器1021 的控制接收數(shù)據(jù)流總線陣列1011傳輸?shù)臄?shù)據(jù),并通過數(shù)據(jù)流控制器1021根據(jù)濾波器階數(shù)、個數(shù)和級聯(lián)關系進行控制,形成待計算的濾波緩存;
ALU資源池1013包括至少一個ALU,用于根據(jù)緩存資源映射器1022、濾波系數(shù)存儲器1023以及ALU控制器1024對待計算的濾波緩存進行乘加計算,并將乘加計算的計算結果通過累加資源組織器1025傳輸至累加器資源池1014;
累加器資源池1014包括至少一個累加器,每個累加器與ALU資源池1013中的一個ALU對應,用于通過累加資源組織器1025根據(jù)濾波資源分配情況對ALU進行乘加計算的計算結果進行相加,得到濾波結果;并將濾波結果傳輸至數(shù)據(jù)流總線陣列1011。
在圖2所示的FIR濾波器組10的具體結構的基礎上,示例性地,參見圖3,數(shù)據(jù)流總線陣列1011中數(shù)據(jù)流總線的數(shù)據(jù)結構可以包括:數(shù)據(jù)、與數(shù)據(jù)對應的緩存資源塊標識ID和用于表征數(shù)據(jù)為新數(shù)據(jù)的標識位dv。其中,數(shù)據(jù)的位寬Data Width由從輸入端口所接收到的輸入數(shù)據(jù)的位寬決定;數(shù)據(jù)對應的緩存資源塊標識位寬由緩存資源池1012中緩存資源塊的數(shù)量決定;在用于表征數(shù)據(jù)為新數(shù)據(jù)的標識位dv有效的情況下,緩存資源塊入口處判斷數(shù)據(jù)流總線中與數(shù)據(jù)對應的緩存資源塊標識ID是否與緩存資源塊自身的ID相符,如果相符且該緩存資源塊的緩存級聯(lián)開關指向數(shù)據(jù)流總線陣列1011的輸入數(shù)據(jù)則該數(shù)據(jù)往后移位,否則忽略??梢岳斫獾氖?,在具體設計中需要考慮到流量的需求,可以有至少一組(例如m組)數(shù)據(jù)流總線組成數(shù)據(jù)流總線陣列1011。在緩存資源塊入口處根據(jù)數(shù)據(jù)流控制器1021進行控制選擇即可。
在圖2所示的FIR濾波器組10的具體結構的基礎上,示例性地,參見圖4,其示出了緩存資源池1012中所包括的緩存資源塊結構以及緩存資源塊之間的連接關系,如圖4中點劃線框所示,每個緩存資源塊都包括至少一個串聯(lián)的寄存器組,一個緩存級聯(lián)開關;每個緩存資源塊的緩存級聯(lián)開關包括三個輸入端和一個輸出端,其中,緩存級聯(lián)開關的第一輸入端與數(shù)據(jù)流總線陣列1011相連,需要說明的是,第一輸入端可以通過數(shù)據(jù)流總線陣列1011中數(shù)據(jù)流總線與數(shù)據(jù)對應的緩存資源塊標識ID來確定該緩存資源塊所接收的數(shù)據(jù)流總線陣列1011 中數(shù)據(jù)流總線的數(shù)據(jù);緩存級聯(lián)開關的第二輸入端與前級緩存資源塊的輸出相連;緩存級聯(lián)開關的第三輸入端與數(shù)據(jù)流控制器1021相連;緩存級聯(lián)開關的輸出端與寄存器組的輸入端相連。
數(shù)據(jù)流控制器1021可以根據(jù)濾波器階數(shù)、個數(shù)和級聯(lián)關系來控制緩存級聯(lián)開關的第一輸入端和第二輸入端的通斷,從而通過控制所述寄存器組的輸入數(shù)據(jù)的來源對濾波器階數(shù)、個數(shù)和級聯(lián)關系進行控制,還實現(xiàn)了緩存資源的重構。
具體地,當數(shù)據(jù)流控制器1021控制緩存級聯(lián)開關的第一輸入端開通,第二輸入端關閉時,緩存資源塊的寄存器組的輸入數(shù)據(jù)由數(shù)據(jù)流總線陣列1011提供,數(shù)據(jù)流總線陣列1011中可以提供由輸入端口接收的輸入數(shù)據(jù),也可以提供由累加器資源池1014接收的輸出數(shù)據(jù),當寄存器組的輸入數(shù)據(jù)是由數(shù)據(jù)流總線陣列1011提供的由累加器資源池1014接收的輸出數(shù)據(jù)時,也就實現(xiàn)了濾波器之間的級聯(lián);而當數(shù)據(jù)流控制器1021控制緩存級聯(lián)開關的第一輸入端關閉,第二輸入端開通時,緩存資源塊的寄存器組的輸入數(shù)據(jù)由前級的緩存資源塊提供,從而實現(xiàn)了濾波器內部緩存器的級聯(lián)。
例如,當數(shù)據(jù)流控制器1021通過控制緩存級聯(lián)開關來確定緩存資源塊的寄存器組的輸入數(shù)據(jù)由數(shù)據(jù)流總線陣列1011提供,且數(shù)據(jù)流總線陣列1011中數(shù)據(jù)流總線的用于表征數(shù)據(jù)為新數(shù)據(jù)的標識位dv有效時,緩存資源塊中的第一輸入端判斷數(shù)據(jù)流總線與數(shù)據(jù)對應的緩存資源塊標識ID與該緩存資源塊是否匹配,如果匹配則緩存資源塊整體右移。后級緩存資源塊如果與前級相連則跟著右移,形成一個待運算的濾波緩存。
需要說明的是,每一個緩存資源塊可以通過設置寄存器組中串聯(lián)的寄存器個數(shù)來確定緩存的長度,具體可以將最后幾個寄存器旁路掉,從而能夠保證系數(shù)對稱的濾波相的前后緩存資源塊數(shù)據(jù)的對稱性,方便后續(xù)ALU資源池中,ALU運算單元的復用處理。
在圖2所示的FIR濾波器組10的具體結構的基礎上,示例性地,參見圖5,其示出了ALU資源池1013中ALU的結構,如圖5中的點劃線框所示,ALU資源池1013中的一個ALU可以包含兩個ALU緩存塊,加法器、乘法器以及 截位電路。兩個ALU緩存塊分別與兩個緩存資源塊的輸出的待運算的濾波緩存對應,每個ALU緩存塊的大小與緩存資源塊中寄存器組的大小相同,從而能夠在緩存資源映射器1022的控制下,分時地將緩存資源塊輸出的待計算的濾波相映射到相應的ALU緩存塊上;兩個ALU緩存塊分別連接在加法器的兩個輸入端口,比如a端口和b端口,通過ALU控制器1024將兩個ALU緩存塊的緩存數(shù)據(jù)送入加法器。加法器輸出端與乘法器相連,乘法器的另一輸入端與濾波系數(shù)存儲器1023相連。濾波系數(shù)存儲器1023中的系數(shù)通過軟件初始化后,以一定的順序輸入乘法器參加濾波運算。乘法器運算后的運算結果經過截位電路進行截位后送入累加資源池。
具體地,加法器a端口緩存數(shù)據(jù)在ALU控制器1024的控制下從0地址或者配置地址到高地址依次按步進送入加法器,步進長度默認為1,根據(jù)系統(tǒng)需要可以設置不同數(shù)字;b端口從高地址或者一個配置地址到0地址依次按步進送入加法器,也可以選擇數(shù)據(jù)0。
示例性地,累加器資源池1014中的一個累加器可以包括一個加法器、截位器和一個緩存器,加法器既可以用于兩個ALU數(shù)據(jù)的相加,也可以作為自累加用。累加資源組織器1025根據(jù)濾波資源分配情況對ALU進行乘加計算的計算結果通過加法器、截位器和緩存器進行相加,得到濾波結果。進一步地,還可以根據(jù)ALU的復用需求配置累加資源組織器、控制ALU的相加關系和自累加循環(huán)次數(shù)。
示例性地,數(shù)據(jù)流控制器1021還可以用于根據(jù)配置控制累加器資源池1014中的累加器的濾波結果輸出到數(shù)據(jù)流總線陣列1011,從而通過數(shù)據(jù)流總線陣列1011將濾波結果回環(huán)到相應的緩存資源塊進行下一級濾波;或者根據(jù)配置控制累加器資源池1014中的累加器的濾波結果輸出到output端口。
示例性地,輸出時序控制器1026控制輸出端口的濾波結果按照預設的時序進行排序后進行輸出。
本實施例提供了一種FIR濾波器組,通過將濾波器的所有硬件資源進行統(tǒng)一考量,從而實現(xiàn)濾波器組內部硬件資源可重構、可重用且靈活可配置,以及 在合理的資源和速度的前提下能夠滿足不同的濾波組合。
實施例二
參見圖6,其示出了一種應用于前述實施例所述的FIR濾波器組的濾波方法,F(xiàn)IR濾波器組的具體結構如前述實施例所述,在此不再贅述,濾波方法可以包括:
S601:輸入端口接收到輸入數(shù)據(jù)后,將所述輸入數(shù)據(jù)傳輸至數(shù)據(jù)流總線陣列;
具體地,將所述輸入數(shù)據(jù)傳輸至數(shù)據(jù)流總線陣列,可以包括:
將所述輸入數(shù)據(jù)傳輸至數(shù)據(jù)流總線陣列中的數(shù)據(jù)流總線時對應進行標識ID,并將相應的用于表征數(shù)據(jù)為新數(shù)據(jù)的標識位dv設置為有效。
S602:緩存資源池中的緩存資源塊根據(jù)數(shù)據(jù)流控制器的控制接收數(shù)據(jù)流總線陣列傳輸?shù)臄?shù)據(jù),并通過數(shù)據(jù)流控制器根據(jù)濾波器階數(shù)、個數(shù)和級聯(lián)關系進行控制,形成待計算的濾波緩存;
其中,每個緩存資源塊都包括至少一個串聯(lián)的寄存器組,一個緩存級聯(lián)開關;每個緩存資源塊的緩存級聯(lián)開關包括三個輸入端和一個輸出端,其中,緩存級聯(lián)開關的第一輸入端與數(shù)據(jù)流總線陣列相連,需要說明的是,第一輸入端可以通過數(shù)據(jù)流總線陣列中數(shù)據(jù)流總線與數(shù)據(jù)對應的緩存資源塊標識ID來確定該緩存資源塊所接收的數(shù)據(jù)流總線陣列中數(shù)據(jù)流總線的數(shù)據(jù);緩存級聯(lián)開關的第二輸入端與前級緩存資源塊的輸出相連;緩存級聯(lián)開關的第三輸入端與數(shù)據(jù)流控制器相連;緩存級聯(lián)開關的輸出端與寄存器組的輸入端相連。
S603:ALU資源池中的ALU根據(jù)緩存資源映射器、濾波系數(shù)存儲器以及ALU控制器對所述待計算的濾波緩存進行乘加計算,并將乘加計算的計算結果通過累加資源組織器傳輸至累加器資源池;
具體地,每個ALU可以包含兩個ALU緩存塊,加法器、乘法器以及截位電路。兩個ALU緩存塊分別與兩個緩存資源塊的輸出的待運算的濾波緩存對應,每個ALU緩存塊的大小與緩存資源塊中寄存器組的大小相同,從而能夠在緩存資源映射器的控制下,分時地將緩存資源塊輸出的待計算的濾波相映射到 相應的ALU緩存塊上;兩個ALU緩存塊分別連接在加法器的兩個輸入端口,通過ALU控制器將兩個ALU緩存塊的緩存數(shù)據(jù)送入加法器。加法器輸出端與乘法器相連,乘法器的另一輸入端與濾波系數(shù)存儲器相連。濾波系數(shù)存儲器中的系數(shù)通過軟件初始化后,以一定的順序輸入乘法器參加濾波運算。乘法器運算后的運算結果經過截位電路進行截位后送入累加資源池。
S604:累加器資源池中的累加器通過累加資源組織器根據(jù)濾波資源分配情況對ALU進行乘加計算的計算結果進行相加,得到濾波結果;
需要說明的是,每個累加器與ALU資源池中的一個ALU對應,每個累加器可以包括一個加法器、截位器和一個緩存器;其中,加法器既可以用于兩個ALU數(shù)據(jù)的相加,也可以作為自累加用。累加資源組織器1025根據(jù)濾波資源分配情況對ALU進行乘加計算的計算結果通過加法器、截位器和緩存器進行相加,得到濾波結果。
S605:根據(jù)數(shù)據(jù)流控制器的控制將濾波結果傳輸至數(shù)據(jù)流總線陣列,并將數(shù)據(jù)流總線陣列中的濾波結果傳輸至輸出端口;
可以理解的,輸出端口可以在輸出時序控制器的控制下,將濾波結果以相應的時序進行輸出。
此外,數(shù)據(jù)流控制器還可以通過控制數(shù)據(jù)流總線陣列將濾波結果回環(huán)到相應的緩存資源塊進行下一級濾波,從而實現(xiàn)濾波器的級聯(lián)。
上述過程是FIR濾波器組對輸入數(shù)據(jù)進行濾波的方法流程,為了說明本實施例技術方案的詳細應用,通過實施例三至實施例六共四種具體實施例對FIR濾波器組的應用進行簡要說明。
實施例三
以兩個串聯(lián)濾波器為例,設定第一級濾波器為12個系數(shù)偶對稱,2倍抽取,3倍輸入復用比;第二級濾波器為47個系數(shù)奇對稱,2倍抽取,6倍輸入復用比?;谇笆鰧嵤├龅腇IR濾波器組與濾波方法,具體實施過程如下:
設置第一級濾波器占用標識為ID0、ID1兩個緩存資源塊,緩存資源塊ID0的緩存級聯(lián)開關設置為與數(shù)據(jù)流總線陣列相連,緩存資源塊ID0的寄存器組的 輸入數(shù)據(jù)由數(shù)據(jù)流總線陣列提供;緩存資源塊ID1的緩存級聯(lián)開關設置為與前級緩存資源塊ID0相連,緩存資源塊ID1的寄存器組的輸入數(shù)據(jù)由前級的緩存資源塊提供;
設置第二級濾波器占用標識為ID2-ID7共五個緩存資源塊,緩存資源塊ID2的緩存級聯(lián)開關設置為與數(shù)據(jù)流總線陣列相連;緩存資源塊ID3-ID7的緩存級聯(lián)開關均設置為與前級緩存資源塊相連。
由于第一級濾波可以在6個周期內完成6次乘加操作,因此,在ALU資源池中僅需要一個ALU0即可實現(xiàn)。如圖7所示的第一級濾波器的緩存資源塊的數(shù)據(jù)結構,緩存資源塊ID0的最后兩個寄存器被旁路,這樣使得緩存資源塊ID0和緩存資源塊ID1能夠針對對稱系數(shù)對應的抽頭數(shù)據(jù)進行相加的操作。緩存資源塊ID0與ID1分別通過緩存資源映射器被映射到ALU0的兩個ALU緩存塊上,在ALU控制器的控制下,6個周期依次完成對稱數(shù)據(jù)(d0,d11)、(d1,d10)、(d2,d9)、(d3,d8)、(d4,d7)和(d5,d6)的相加,然后分別與系數(shù)相乘、累加、截位等操作后得到的第一級濾波器的輸出數(shù)據(jù);
隨后,在數(shù)據(jù)流控制器的控制下將第一級濾波器的輸出數(shù)據(jù)加上緩存資源ID號后,通過數(shù)據(jù)流總線陣列將第一級濾波器的輸出數(shù)據(jù)路由到緩存資源塊ID2上,形成第二級濾波器的緩存存儲,如圖8所示的第二級濾波器的緩存資源塊的數(shù)據(jù)結構。由于第二級濾波器可以在12個周期以內完成24次乘加運算,因此,需要ALU資源池中的2個ALU進行實現(xiàn),設置為ALU1和ALU2。前四個周期將ID2和ID7同時映射到ALU1和ALU2的兩個ALU緩存塊上,其中,ALU1完成(d0,d46)、(d1,d45)、(d2,d44)以及(d3,d43)的對應加乘操作;ALU2完成(d4,d42)、(d5,d41)、(d6,d40)以及(d7,d39)的對應加乘操作。后8個周期分別將緩存資源塊ID3和ID6映射到ALU1的兩個緩存上,ID4和ID5映射到ALU2的兩個緩存上。在8個周期內分別完成剩余的數(shù)據(jù)運算。隨后在累加器資源池中將ALU1和ALU2的輸出相加之后再進行累加,最后將累加結果截位后,經過輸出端口進行輸出排序后輸出,實現(xiàn)兩個串聯(lián)濾波器。
實施例四
以兩個串聯(lián)濾波器復用一個ALU單元進行處理為例。設定第一級濾波器12個系數(shù)偶對稱,2倍抽取,12倍輸入復用比;第二級濾波器24個系數(shù)偶對稱,2倍抽取,24倍輸入復用比?;谇笆鰧嵤├龅腇IR濾波器組與濾波方法,具體實施過程如下:
設置第一級濾波器占用標識為ID0、ID1兩個緩存資源塊,緩存資源塊ID0的緩存級聯(lián)開關設置為與數(shù)據(jù)流總線陣列相連,緩存資源塊ID0的寄存器組的輸入數(shù)據(jù)由數(shù)據(jù)流總線陣列提供;緩存資源塊ID1的緩存級聯(lián)開關設置為與前級緩存資源塊ID0相連,緩存資源塊ID1的寄存器組的輸入數(shù)據(jù)由前級的緩存資源塊提供;
設置第二級濾波器占用標識為ID2-ID4共三個緩存資源塊,緩存資源塊ID2的緩存級聯(lián)開關設置為與數(shù)據(jù)流總線陣列相連;緩存資源塊ID3、ID4緩存資源塊的緩存級聯(lián)開關均設置為與前級緩存資源塊相連。
第一級濾波器的處理過程與實施例一相同,在此不再贅述。第一級濾波器在6個周期內完成運算,剩余18個周期的時間內完成第二級濾波器的運算。具體地,第二級濾波器的24個數(shù)的乘加運算可以在12拍以內完。前4個周期將緩存資源塊ID3同時映射到ALU0的兩個ALU緩存塊上,完成中間8個數(shù)據(jù)的加乘操作。后8個周期分別將緩存資源塊ID2和ID4映射到ALU0的兩個ALU緩存塊上,完成剩余的數(shù)據(jù)運算。這樣實現(xiàn)了兩個串聯(lián)濾波器復用一個ALU單元進行處理的配置。
實施例五
以兩組并聯(lián)的插值濾波器為例。第一組濾波器可以是兩個串聯(lián)濾波器,具體的緩存資源塊、ALU資源池中ALU的分配及具體處理實現(xiàn)過程如實施例二所述,在此不再贅述。
設定第二組為一個獨立濾波器,32個系數(shù)偶對稱,8倍輸入復用比,2倍插值。由于第二組濾波器是2倍插值,因此只需要存儲16個數(shù)據(jù),占用標識為ID5和ID6兩個緩存資源塊。
由于第二組濾波器是一個插值濾波器,在8個周期內完成兩個16個數(shù)據(jù)的乘加操作,因此共需要ALU資源池中的2個ALU分別完成奇、偶相的數(shù)據(jù)運算。將緩存資源塊ID5、ID6分別映射到ALU1、ALU2上。ALU1將相加之后的數(shù)據(jù)逐個與奇相系數(shù)相乘得到奇相濾波結果,經過累加、截位,將濾波結果輸出到輸出端口。偶相濾波結果由ALU2計算。在輸出端口通過整理時序,按要求依次輸出奇偶相值,得到第二組濾波器的輸出結果。
實施例六
以數(shù)據(jù)流總線陣列中的多組數(shù)據(jù)流總線的處理為例,對兩組并聯(lián)濾波器進行說明。設定第一組為兩個串聯(lián)濾波器,輸入復用比分別為2和4,與之并聯(lián)的第二組為一個濾波器,輸入復用比為2。其中,每個濾波器各占用一個緩存資源塊、一個ALU計算單元。此時,數(shù)據(jù)流總線陣列中的一組數(shù)據(jù)流總線顯然無法滿足流量需求。由于三個濾波器的復用比倒數(shù)之和等于5/4,因此,需要數(shù)據(jù)流總線陣列中的兩組數(shù)據(jù)流總線。
第一組串聯(lián)的兩個濾波器復用比倒數(shù)之和等于3/4,可以將第一組濾波器分配到第一組數(shù)據(jù)流總線上,第二組濾波器單獨使用第二組數(shù)據(jù)流總線。
當有多組數(shù)據(jù)流總線時,需要在緩存資源塊與數(shù)據(jù)流總線的接口處額外增加一級選擇匹配邏輯。在緩存資源塊ID0、ID1處將緩存級聯(lián)開關設置為與第一組數(shù)據(jù)流總線相連,緩存資源塊ID2處將緩存級聯(lián)開關設置為與第二組數(shù)據(jù)流總線相連。同樣在累加器的輸出通過第一組數(shù)據(jù)流總線路由到緩存資源塊ID1,實現(xiàn)第一組串聯(lián)的兩個濾波器中,兩級濾波器的串聯(lián)。
通過上述用于具體的應用場景實施例的說明,可以得知,本發(fā)明實施例所提出的濾波方法,由于應用在實施例一所述的FIR濾波器組中,因此,能夠將濾波器的所有硬件資源進行統(tǒng)一考量,從而實現(xiàn)濾波器組內部硬件資源可重構、可重用且靈活可配置,以及在合理的資源和速度的前提下能夠滿足不同的濾波組合。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用硬件實施例、軟件實施例、或結合軟件和 硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。