專利名稱:具有預加法器級的數(shù)字信號處理塊的制作方法
技術領域:
本發(fā)明涉及集成電路裝置(“IC”)。更明確地說,本發(fā)明涉及用于IC的具有預加法器級的數(shù)字信號處理塊。
背景技術:
可編程邏輯裝置(“PLD”)是一類眾所周知的集成電路,其可經(jīng)編程以執(zhí)行指定邏輯功能。一種類型的PLD(即,現(xiàn)場可編程門陣列(“FPGA”))通常包括可編程瓦片陣列。 舉例來說,這些可編程瓦片可包括輸入/輸出塊(“Ι0Β”)、可配置邏輯塊(“CLB”)、專用隨機存取存儲器塊(“BRAM”)、乘法器、數(shù)字信號處理塊(“DSP”)、處理器、時鐘管理器、延遲鎖定環(huán)路(“DLL”)等等。如本文中所使用,“包括”意味著不受限制地包括。每一可編程瓦片通常包括可編程互連和可編程邏輯兩者??删幊袒ミB通常包括大量具有不同長度的互連線,其通過可編程互連點(“PIP”)互連??删幊踢壿嬍褂每删幊淘韺嵤┯脩粼O計的邏輯,所述可編程元件可包括(例如)函數(shù)發(fā)生器、寄存器、算術邏輯等等。通常通過將配置數(shù)據(jù)流加載到內部配置存儲器單元中來編程可編程互連和可編程邏輯,所述內部配置存儲器單元定義如何配置可編程元件。配置數(shù)據(jù)可從存儲器(例如, 從外部PR0M)讀取或由外部裝置寫入到FPGA中。個別存儲器單元的集體狀態(tài)于是決定FPGA 的功能。另一類型的PLD是復雜可編程邏輯裝置或CPLD。CPLD包括兩個或兩個以上“功能塊”,其通過互連開關矩陣連接在一起,并連接到輸入/輸出(“I/O”)資源。CPLD的每一功能塊包括二級AND/OR結構,其類似于可編程邏輯陣列(“PLA”)和可編程陣列邏輯 (“PAL”)裝置中所使用的那些結構。在CPLD中,配置數(shù)據(jù)通常以芯片上形式存儲于非易失性存儲器中。在一些CPLD中,配置數(shù)據(jù)以芯片上形式存儲于非易失性存儲器中,接著下載到易失性存儲器,作為初始配置(編程)序列的一部分。對于所有這些可編程邏輯裝置(“PLD”),裝置的功能性由出于所述目的而提供給裝置的數(shù)據(jù)位控制。所述數(shù)據(jù)位可存儲在易失性存儲器(例如,靜態(tài)存儲器單元,如在FPGA 和一些CPLD中)中,存儲在非易失性存儲器(例如,快閃存儲器,如在一些CPLD中)中,或存儲在任何其它類型的存儲器單元中。其它PLD是通過應用處理層(例如金屬層)來編程的,所述處理層可編程地互連裝置上的各種元件。這些PLD稱為掩??删幊萄b置。還可以其它方式來實施PLD,例如使用熔絲或反熔絲技術。術語“PLD”和“可編程邏輯裝置”包括(但不限于)這些示范性裝置, 同樣涵蓋僅部分可編程的裝置。舉例來說,一種類型的PLD包括硬編碼晶體管邏輯與可編程開關結構的組合,所述可編程開關結構可編程地互連所述硬編碼晶體管邏輯。FPGA( "FPGA結構”)的可編程邏輯中所例示的設計的性能受FPGA結構的速度所限制。然而,專用電路資源(例如FPGA中的DSP)能夠比FPGA結構中所實施的等效電路更快速地執(zhí)行操作。因此,提供用于擴展DSP的有用性的構件將是合乎需要且有用的。
集成電路包含多種用以實施電路設計的電路元件。電路設計必須根據(jù)集成電路的電路元件的類型和可用位置來布局或“放置”。也就是說,電路設計的組件必須被指派或放置在集成電路的位點中。在放置電路設計的組件中,考慮各種因素來決定所述放置。放置組件的效率和改進實施所述組件的效率可導致集成電路裝置使用的顯著改進。盡管常規(guī)的集成電路在實施數(shù)字信號處理(DSP)應用特有的算術運算時是低效的,但一些集成電路可采用專用于實施DSP功能的電路塊。然而,常規(guī)裝置中的DSP塊可導致固有低效的布局,或可導致實施DSP應用所需要的電路的低效使用。也就是說,具有提供有限功能的DSP塊的集成電路可造成電路資源的低效使用??筛倪M電路布局的效率的DSP 塊可引起集成電路使用的顯著改進。
發(fā)明內容
一個或一個以上實施例大體上涉及集成電路裝置(“IC”),且更明確地說,涉及用于IC的具有預加法器級的數(shù)字信號處理塊。本發(fā)明的一個實施例大體上涉及一種具有數(shù)字信號處理塊的集成電路。所述數(shù)字信號處理塊包括預加法器級和控制總線。所述控制總線耦合到所述預加法器級以用于動態(tài)地控制所述預加法器級的操作。所述預加法器級包括耦合到所述控制總線的第一多路復用器的第一輸入端口 ;耦合到所述控制總線的第一邏輯門的第二輸入端口 ;耦合到所述控制總線的第二邏輯門的第三輸入端口 ;以及耦合到所述控制總線的加法器/減法器的第四輸入端口。在此實施例中,所述預加法器級可經(jīng)配置以用于響應于對所述第二輸入端口的輸入而動態(tài)地設置所述加法器/減法器的第一數(shù)據(jù)輸入,以經(jīng)由所述第一邏輯門的輸出接收零值。所述預加法器級可經(jīng)配置以用于響應于對所述第三輸入端口的輸入而動態(tài)地設置所述加法器/減法器的第二數(shù)據(jù)輸入,以經(jīng)由所述第二邏輯門的輸出接收零值。所述預加法器級可經(jīng)配置以用于響應于對所述第一輸入端口的輸入而動態(tài)地選擇具有0、1或2寄存器延遲的輸入數(shù)據(jù)。所述預加法器級可經(jīng)配置以用于響應于對所述第四輸入端口的輸入而動態(tài)地設置所述加法器/減法器以進行相加或相減。所述集成電路的此實施例進一步包含現(xiàn)場可編程邏輯門,所述現(xiàn)場可編程邏輯門可響應于配置位流而配置,以提供用于將輸入數(shù)據(jù)提供到所述數(shù)字信號處理塊的例示電路功能。在此實施例中,所述預加法器級可經(jīng)由由第一輸入端口、第二輸入端口、第三輸入端口和第四輸入端口組成的群組中的至少一個端口來動態(tài)地重新配置,而不必重新配置所述現(xiàn)場可編程邏輯門以提供所述輸入數(shù)據(jù);且所述預加法器級可動態(tài)地重新配置以提供絕對值功能、順序復數(shù)共軛功能、順序乘法功能、順序復數(shù)乘法、多路復用功能、寄存器堆功能、移位寄存器邏輯功能和管線重新平衡功能。本發(fā)明的另一實施例大體上涉及一種脈動有限脈沖響應濾波器,其包括耦合到數(shù)字信號處理塊鏈的移位寄存器。所述移位寄存器可經(jīng)配置以將廣播輸入廣播到所述鏈的數(shù)字信號處理塊中的除結尾塊之外的所有處理塊的每一第一寄存器。所述數(shù)字信號處理塊中的每一者可具有第二寄存器。所述數(shù)字信號處理塊中的每一者可具有第三寄存器。第二寄存器的輸出可耦合到第三寄存器的輸入,以使數(shù)字信號處理塊中的每一者提供其雙寄存器。所述雙寄存器可串聯(lián)耦合,以用于從所述鏈的數(shù)字信號處理塊中的開頭塊向數(shù)字信號處理塊中的結尾塊傳播濾波器輸入系列。數(shù)字信號處理塊中的每一者可具有第一加法器, 其經(jīng)耦合以用于接收來自第一寄存器和第三寄存器中的每一者的輸出以提供其第一總和。 數(shù)字信號處理塊中的每一者可具有第四寄存器,其經(jīng)耦合以用于接收相應的濾波器系數(shù)。 數(shù)字信號處理塊中的每一者可具有乘法器,其經(jīng)耦合以用于分別接收其第一總和以及濾波器系數(shù),且經(jīng)配置以用于提供其部分結果。數(shù)字信號處理塊中的每一者可具有第二加法器, 其經(jīng)耦合以用于接收其部分結果。數(shù)字信號處理塊的第二加法器可經(jīng)耦合以用于累加數(shù)字信號處理塊中的每一者的部分結果,以從所述鏈的數(shù)字信號處理塊中的結尾塊提供濾波器輸出系列。在此實施例中,數(shù)字信號處理塊中的每一者可包括第五寄存器,其經(jīng)耦合以用于接收其第一總和,之后將所述第一總和提供到其乘法器。數(shù)字信號處理塊的第二加法器可串聯(lián)耦合;且數(shù)字信號處理塊中的開頭塊的第二加法器可從其傳遞部分結果作為其第二總和,以用于輸入到數(shù)字信號處理塊中的鄰近塊的第二加法器,以與數(shù)字信號處理塊中的所述鄰近塊的部分結果相加以提供其第二總和。數(shù)字信號處理塊中的每一者可包括經(jīng)耦合以用于接收其部分結果的第六寄存器,以及經(jīng)耦合以用于接收其第二總和的第七寄存器。濾波器的此實施例可進一步包含耦合到門控邏輯的控制總線,所述門控邏輯用于門控從第一寄存器和第三寄存器中的每一者到第一加法器的輸出,其中第一加法器輸入可動態(tài)地配置以用于接收零值,以動態(tài)地調整鏈的有效長度,且第一加法器并不是在現(xiàn)場可編程門陣列結構中實施。所述門控邏輯可經(jīng)耦合以用于動態(tài)地將數(shù)字信號處理塊中的結尾塊置零,以將脈動有限脈沖響應濾波器操作為具有偶數(shù)數(shù)目個分接頭,但在鏈中存在奇數(shù)數(shù)目個數(shù)字信號處理塊。門控邏輯可經(jīng)耦合以用于動態(tài)地將數(shù)字信號處理塊中的結尾塊置零,以將脈動有限脈沖響應濾波器操作為具有奇數(shù)數(shù)目個分接頭,但在鏈中存在偶數(shù)數(shù)目個數(shù)字信號處理塊。本發(fā)明的又一實施例大體上涉及一種用于濾波的方法。獲得濾波器輸入系列,并將其提供到數(shù)字信號處理塊鏈作為其第一輸入。動態(tài)改變數(shù)字信號處理塊的有效長度以有效地調整濾波器分接頭的數(shù)目。所述方法的此實施例進一步包含將數(shù)字信號處理塊中的初始塊設置為具有第一操作模式;且將數(shù)字信號處理塊中除初始塊之外的所有處理塊設置為具有與第一操作模式不同的第二操作模式。此方法進一步包含在現(xiàn)場可編程邏輯門中例示移位寄存器;將濾波器輸入系列提供到移位寄存器;以及將來自移位寄存器的輸出廣播到至少所述鏈的數(shù)字信號處理塊中除最終塊之外的所有處理塊作為其第二輸入。此方法進一步包含分別將濾波器系數(shù)提供到數(shù)字信號處理塊中的每一者;依序將第一輸入從所述鏈的數(shù)字信號處理塊中的初始塊移位到數(shù)字信號處理塊中的最終塊;使用數(shù)字信號處理塊來確定相應的部分總和;以及累加所述部分總和以提供濾波器輸出系列。數(shù)字信號處理塊可動態(tài)地從作為奇數(shù)分接頭對稱脈動有限脈沖響應濾波器而操作改變?yōu)樽鳛榕紨?shù)分接頭對稱脈動有限脈沖響應濾波器而操作。數(shù)字信號處理塊可動態(tài)地從作為偶數(shù)分接頭對稱脈動有限脈沖響應濾波器而操作改變?yōu)樽鳛槠鏀?shù)分接頭對稱脈動有限脈沖響應濾波器而操作。根據(jù)本發(fā)明的實施例,揭示一種在電路中配置濾波器以在集成電路中實施的方法。所述方法包含接收所述電路的高級設計;識別所述高級設計中的濾波器;分析所述濾波器的系數(shù);以及將所述高級設計的濾波器轉變?yōu)槭褂盟鲭娐返慕?jīng)配置以適應共同系數(shù)的處理塊的濾波器,其中所述處理塊經(jīng)耦合以接收與所述共同系數(shù)相關聯(lián)的分接頭。將所述高級設計的濾波器轉變?yōu)槭褂媒?jīng)配置以適應共同系數(shù)的處理塊的濾波器可包含將所述濾波器配置為對稱轉置卷積濾波器。分析所述系數(shù)可包含識別濾波器的對稱系數(shù)。所述方法可進一步包含提供所述共同系數(shù)作為對所述處理塊的乘法器的第一輸入。所述方法可進一步包含提供與所述共同系數(shù)相關聯(lián)的分接頭的總和,作為對所述乘法器的第二輸入。耦合與共同系數(shù)相關聯(lián)的分接頭的總和作為對所述乘法器的第二輸入可包含使用DSP塊的預加法器電路來產(chǎn)生總和。所述方法可進一步包含提供與所述共同系數(shù)相關聯(lián)的分接頭的差值作為對所述乘法器的第二輸入。 根據(jù)替代實施例還揭示一種計算機程序產(chǎn)品。計算機程序代碼可包含包括將電路設計轉變?yōu)椴季峙渲玫挠嬎銠C可讀程序代碼的計算機可讀媒體,其中所述計算機可讀媒體包含識別高級設計中的濾波器的計算機可讀程序代碼;分析濾波器的系數(shù)的計算機可讀程序代碼;以及使用所述電路的經(jīng)配置以適應共同系數(shù)的處理塊來配置濾波器的計算機可讀程序代碼,其中所述處理塊經(jīng)耦合以接收與共同系數(shù)相關聯(lián)的分接頭。使用經(jīng)配置以適應共同系數(shù)的處理塊來配置濾波器的計算機可讀程序代碼可包含將濾波器配置為對稱轉置卷積濾波器的計算機可讀程序代碼。分析濾波器的系數(shù)的計算機可讀程序代碼可包含識別濾波器的對稱系數(shù)的計算機可讀程序代碼。計算機程序產(chǎn)品可進一步包含提供所述共同系數(shù)作為對處理塊的乘法器的第一輸入的計算機可讀程序代碼。 計算機程序產(chǎn)品可進一步包含提供與共同系數(shù)相關聯(lián)的分接頭的總和或差值作為對乘法器的第二輸入的計算機可讀程序代碼。提供與共同系數(shù)相關聯(lián)的分接頭的總和或差值作為對乘法器的第二輸入的計算機可讀程序代碼可包含使用DSP塊的預加法器電路來產(chǎn)生總和的計算機可讀程序代碼。計算機程序產(chǎn)品可進一步包含使用集成電路的電路元件來實施濾波器的計算機可讀程序代碼。根據(jù)另一實施例,在集成電路中實施濾波器的電路可包含多個延遲元件;預加法器電路,其經(jīng)耦合以借助于所述多個延遲元件中的第一延遲元件接收濾波器的第一分接頭,且借助于所述多個延遲元件中的第二延遲元件接收所述濾波器的第二分接頭,其中所述第一分接頭和所述第二分接頭具有共同系數(shù);乘法器,其經(jīng)耦合以在第一輸入處接收所述預加法器電路的包含所述第一分接頭與所述第二分接頭的總和的輸出,且在第二輸入處接收所述共同系數(shù);以及加法器,其經(jīng)耦合以接收所述乘法器的輸出。所述濾波器可包含轉置卷積濾波器。所述共同系數(shù)可與濾波器的對稱系數(shù)相關聯(lián)。所述濾波器的分接頭數(shù)目可包含偶數(shù)分接頭數(shù)目。所述濾波器的分接頭數(shù)目可包含奇數(shù)分接頭數(shù)目,且奇數(shù)數(shù)目個分接頭中的子集可耦合到預加法器電路。所述多個延遲元件、所述預加法器電路和所述乘法器可為集成電路的數(shù)字信號處理塊的一部分。
附圖展示根據(jù)本發(fā)明的一個或一個以上方面的示范性實施例;然而,不應將附圖看作將本發(fā)明限于所展示的實施例,而是僅用于闡釋和理解的目的。圖1為描繪其中可實施本發(fā)明的一個或一個以上方面的柱狀現(xiàn)場可編程門陣列 (“FPGA”)架構的示范性實施例的簡化框圖。圖2為描繪DSP切片的示范性實施例的框圖/電路圖。
圖3為描繪圖2的DSP切片的預加法器的示范性實施例的電路圖。圖4為描繪圖2的DSP切片的雙B寄存器的示范性實施例的電路圖。圖5為描繪inmode功能表的示范性實施例的表圖。圖6為描繪現(xiàn)有技術的8分接頭偶數(shù)對稱脈動有限脈沖響應(“FIR”)濾波器的示范性實施例的框圖/電路圖。圖7為描繪8分接頭偶數(shù)對稱脈動HR濾波器的示范性實施例的框圖/電路圖。圖8為描繪用于實施對稱脈動相加-相乘-相加處理模塊的具有OPMODE 0,0,1, 0,1,0,1的圖7的DSP切片的示范性實施例的框圖/電路圖。圖9為描繪9分接頭奇數(shù)對稱脈動HR濾波器的示范性實施例的框圖/電路圖。圖10為描繪9分接頭奇數(shù)對稱脈動HR濾波器的替代示范性實施例的框圖/電路圖。圖11為描繪FIR使用流程的示范性實施例的流程圖。圖12為根據(jù)本發(fā)明實施例的實施對稱轉置卷積有限脈沖響應濾波器的電路的框圖。圖13為根據(jù)本發(fā)明替代實施例的實施對稱轉置卷積有限脈沖響應濾波器的電路的框圖。圖14為根據(jù)本發(fā)明替代實施例的實施對稱轉置卷積有限脈沖響應濾波器的電路的框圖。圖15為展示根據(jù)本發(fā)明實施例的在集成電路中實施濾波器的方法的流程圖。圖16為根據(jù)本發(fā)明實施例的用于實施具有可編程邏輯的裝置的系統(tǒng)的框圖。圖17為根據(jù)本發(fā)明實施例的具有可編程邏輯的裝置的框圖。圖18為根據(jù)本發(fā)明實施例的可配置邏輯塊的可配置邏輯元件的框圖。
具體實施例方式在以下描述中,陳述許多具體細節(jié)以提供對本發(fā)明具體實施例的較透徹描述。然而,所屬領域的技術人員應明白,可在沒有以下給出的所有具體細節(jié)的情況下實踐本發(fā)明。 在其它例子中,尚未詳細描述眾所周知的特征以免混淆本發(fā)明。為了易于說明,在不同圖式中使用相同數(shù)字標簽來指代相同項目;然而,在替代實施例中,項目可為不同的。如上文所提及,高級FPGA可在陣列中包括若干不同類型的可編程邏輯塊。舉例來說,圖1說明FPGA架構100,其包括大量不同可編程瓦片,其中包括多千兆位收發(fā)器 (“MGT”)101、可配置邏輯塊(“CLB”)102、隨機存取存儲器塊(“BRAM”)103、輸入/輸出塊(“Ι0Β”)104、配置與計時邏輯(“C0NFIG/CL0CK”)105、數(shù)字信號處理塊(“DSP”)106、 專門輸入/輸出塊(“1/0”)107(例如,配置端口和時鐘端口 )以及其它可編程邏輯108, 例如數(shù)字時鐘管理器、模/數(shù)轉換器、系統(tǒng)監(jiān)視邏輯等等。一些FPGA還包括專用處理器塊 ("PROC")IlOo在一些FPGA中,每一可編程瓦片包括可編程互連元件(“INT”)111,其具有去往和來自每一鄰近瓦片中的對應互連元件的標準化連接。因此,所采用的可編程互連元件共同實施用于所說明FPGA的可編程互連結構??删幊袒ミB元件111還包括去往和來自同一瓦片內的可編程邏輯元件的連接,如圖1頂部所包括的實例所展示。
舉例來說,CLB 102可包括可經(jīng)編程以實施用戶邏輯的可配置邏輯元件 (“CLE”)112加上單個可編程互連元件(“INT”)111。除了一個或一個以上可編程互連元件之外,BRAM 103還可包括BRAM邏輯元件(“BRL”)113。通常,瓦片中所包括的互連元件的數(shù)目取決于瓦片的高度。在所圖示的實施例中,BRAM瓦片具有與五個CLB相同的高度, 但還可使用其它數(shù)目(例如,四個)。除了適當數(shù)目的可編程互連元件之外,DSP瓦片106 還可包括DSP邏輯元件(“DSPL”)114。舉例來說,除了可編程互連元件111的一個實例之外,IOB 104還可包括輸入/輸出邏輯元件(“I0L”)115的兩個實例。如所屬領域的技術人員將明白,舉例來說,連接到I/O邏輯元件115的實際I/O焊盤通常不局限于輸入/輸出邏輯元件115的區(qū)域。在所圖示的實施例中,在裸片(圖1中所示)中心附近的柱狀區(qū)域用于配置、時鐘和其它控制邏輯。從此列延伸的水平區(qū)域109用以跨越FPGA的寬度分布時鐘和配置信號。利用圖1中所說明的架構的一些FPGA包括中斷組成FPGA的大部分的規(guī)則柱狀結構的額外邏輯塊。額外邏輯塊可為可編程塊和/或專用邏輯。舉例來說,處理器塊110橫越若干CLB和BRAM列。請注意,圖1意在僅說明示范性FPGA架構。舉例來說,一列中的邏輯塊的數(shù)目、列的相對寬度、列的數(shù)目和次序、列中所包括的邏輯塊的類型、邏輯塊的相對大小以及圖1頂部所包括的互連/邏輯實施方案純粹是示范性的。舉例來說,在實際FPGA中,在CLB出現(xiàn)的任何地方通常包括一個以上鄰近的CLB列,以促進用戶邏輯的高效實施,但鄰近CLB列的數(shù)目隨FPGA的整體大小而變化。詹姆斯· M ·西姆金斯(James Μ. Simkins)等人的標題為“具有級聯(lián)DSP切片的集成電路 integrated Circuit with Cascading DSP Slices) ” 的第 7,472,155 號美國專利中以額外細節(jié)描述了 DSP 106,所述美國專利以全文引用的方式并入本文中。DSP 106 的實例實施方案可在可從加利福尼亞州圣何塞市賽靈思公司(Xilinxdnc.,of San Jose, California)獲得的 Virtex 和 Spartan FPGA 中找到。圖2為描繪DSP切片200的示范性實施例的框圖/電路圖。DSP切片200可為(但不需要為)圖1的FPGA 100的DSP 106的示范性實施例。將D輸入信號(“input”) 201、 A輸入211、AC輸入(“ACIN”)341和輸入模式信號(“ inmode”)202提供到具有預加法器(“preadder”)的雙A、D寄存器204,其中將inmode 202提供到用于預加法器204的 inmode寄存器203。將B輸入212和BC輸入(“BCIN”)441提供到雙B寄存器242。DSP 切片200的乘法器251和M寄存器253以及C寄存器和在其右側的其它電路是常規(guī)的,且可在Virtex-5 FPGA中找到。因此,出于清楚的目的而避免對此類先前已知電路的描述。 此外,術語“輸入”和“輸出”用以指示信號和端口中的任一者或兩者,包括(但不限于)其復數(shù)形式。圖3為描繪預加法器204的示范性實施例的電路圖。如下文以額外細節(jié)描述,預加法器204可經(jīng)動態(tài)配置以操作為深度為0、1、2或3個寄存器。預加法器204包括多路復用器301到306、寄存器311到314、邏輯門321和322以及加法器/減法器331。應了解,雖然在圖3中以及在圖2和圖4中根據(jù)Virtex-5 FPGA 的DSP切片的位寬度來說明性地展示位寬度,但可使用除本文中說明性地展示的位寬度以外或與本文中說明性地展示的位寬度相同的位寬度或其組合。
盡管出于清楚且不限制的目的而未展示,但在此實施例中,去往多路復用器301 到305的控制選擇輸入是從FPGA結構的配置存儲器單元提供的。此類配置存儲器單元是根據(jù)配置位流來配置的。因此,在FPGA的上下文中,當作為上電周期的一部分此FPGA正獲得狀態(tài)信息時,那些存儲器單元的編程狀態(tài)決定多路復用器301到305的選定輸出,且此類存儲器單元不能夠在不復位FPGA的情況下改變狀態(tài)。換句話說,多路復用器301到305在操作期間的狀態(tài)為靜態(tài)的。與多路復用器301到305在FPGA操作期間的靜態(tài)狀態(tài)相反,多路復用器306為可動態(tài)操作的;換句話說,多路復用器306可在不必復位FPGA的情況下使其控制選擇在此FPGA的操作期間改變。在此示范性實施例中,此控制選擇由inmode 202 的一部分(即,inmode 202-0)提供,其中“_0”用以指示inmode總線的位位置零。此外,除了多路復用器306的動態(tài)操作之外,可動態(tài)地操作邏輯門321和322以及減法器331。因此,此類可動態(tài)操作的組件可在用戶設計的操作期間改變。在此實施例中, 圖3的inmode 202-0到202-3以及圖4的inmode 202-4可隨時鐘信號的每一周期而改變。 出于借助于實例而非限制以實現(xiàn)清楚性的目的,未展示例如此處可使用的時鐘信令。將inmode 202-0作為動態(tài)控制選擇信號提供給多路復用器306以用于門控提供由Al寄存器311或A2寄存器312中的任一者延遲、由Al寄存器311和A2寄存器312兩者延遲或既不由Al寄存器311也不由A2寄存器312延遲的A輸入211或AC輸入341。同樣,一旦由存儲器單元狀態(tài)選定,來自多路復用器301到305的選定輸出在操作期間為靜態(tài)的而不復位FPGA。A輸入211或AC輸入341可從多路復用器301輸出。來自多路復用器301的輸出被提供作為對Al寄存器311的數(shù)據(jù)輸入以及作為對多路復用器302的數(shù)據(jù)輸入。Al寄存器311的輸出被提供作為對多路復用器302、304和306的數(shù)據(jù)輸入。多路復用器302的輸出被提供作為對A2寄存器312的數(shù)據(jù)輸入以及作為對多路復用器303的數(shù)據(jù)輸入。多路復用器303的輸出被提供作為對多路復用器304和306的數(shù)據(jù)輸入,以及被提供作為X MUX輸出342。參看圖2,預加法器204的X MUX輸出342可與圖2的雙B寄存器242的輸出442組合以獲得AB串聯(lián)信號250。返回到圖3,出于借助于實例而非限制以實現(xiàn)清楚性的目的,假設用戶已將多路復用器302和303設置為選擇其底部輸入作為輸出,且假設用戶已選擇AC輸入341 (即,來自另一 DSP切片的A級聯(lián)輸入)作為多路復用器301的輸出,于是作為對多路復用器306的數(shù)據(jù)輸入而提供的AC輸入341由Al寄存器311和A2寄存器312兩者記錄于多路復用器 306的上部數(shù)據(jù)輸入上以及多路復用器306的下部輸入上,AC輸入341僅由Al寄存器311 記錄。因此,應了解,用戶可將寄存器深度選擇到多路復用器306的上部端口,而對多路復用器306的下部端口的輸入的寄存器深度總是深度僅為Al。如先前所提及,預加法器204包括雙A寄存器和雙D寄存器。這意味著(例如)Al 寄存器311和A2寄存器312為雙寄存器可配置的,即使Al和A2寄存器兩者、Al和A2寄存器中的僅一者或Al和A2寄存器中沒有一者可用于經(jīng)由多路復用器306的輸出提供對邏輯門322的輸入也是如此。此外,雙D寄存器是關于D寄存器313和AD寄存器314。同樣,應了解,源自多路復用器301的輸出的對多路復用器306的上部輸入以及對多路復用器304的下部輸入可深度為無寄存器、深度為Al或A2或深度為Al和A2。此外, 同樣,多路復用器306的下部輸入以及多路復用器304的上部輸入深度總是為Al。多路復用器304的輸出為圖2的AC輸出(“AC0UT”)信號("AC output”)343,其可提供到另一 DSP切片,類似于AC輸入341被提供到圖2的DSP切片200。選擇多路復用器306的上部輸入還是下部輸入用于輸出是受inmode 202-0的狀態(tài)所控制,且來自多路復用器306的輸出被提供作為對邏輯門322的數(shù)據(jù)輸入。雖然針對邏輯門321和322說明性地描繪AND門,但應了解,可根據(jù)本文的描述使用其它邏輯門。AND 門322的其它輸入(其為反轉輸入)經(jīng)耦合以接收inmode 202-1。對于此實施例來說, inmode 202-1表示inmode 202的總線的位位置一。AND門322的輸出被提供作為對加法器/減法器331的輸入,即如下文以額外細節(jié)描述的A路徑輸入沈1,且提供到多路復用器 305的上部輸入。D輸入201被提供作為對D寄存器313的數(shù)據(jù)輸入。D寄存器313的數(shù)據(jù)輸出被提供到AND門321的上部輸入。AND門321的下部輸入經(jīng)耦合以接收inmode 202-2,其對于此實施例來說為inmode 202的總線的位位置二。AND門321的輸出被提供作為對加法器/減法器331的另一輸入,即如下文以額外細節(jié)描述的D路徑輸入沈2。加法器/減法器 331經(jīng)配置以用于相加還是相減是受inmode 202-3所控制,inmode 202-3對于此實施例來說為inmode 202的總線的位位置三。加法器/減法器331的輸出被提供到AD寄存器314 的數(shù)據(jù)輸入端口。AD寄存器314的輸出被提供作為對多路復用器305的另一輸入。多路復用器305的輸出為乘法器操作數(shù)信號,即A乘法器(“A MULT”)信號344(圖2中說明性地展示)。同樣,應了解,多路復用器306、AND門322、AND門321、加法器/減法器331分別出于動態(tài)操作的目的受inmode 202-0到202-3所控制,inmode 202-0到202-3分別表示 inmode 202的總線的位位置零到三。inmode 202-0和202-3用作控制選擇信號來選擇輸出或函數(shù),而inmode 202-1和202-2通過其狀態(tài)來操作以分別影響或不影響AND門322和 321的輸出。除了能夠動態(tài)地控制AND門321和322之外,AND門321和322中的任一者的輸出可用以產(chǎn)生對加法器/減法器331的零輸入。因此,應了解,如果AND門322向加法器/ 減法器311提供零操作數(shù)輸入,那么可被提供作為多路復用器305的輸出的D輸入201的輸入可穿過寄存器313和314,即二深寄存器路徑。或者,如果從AND門321的輸出產(chǎn)生零, 且使用加法器/減法器331,那么有可能針對A輸入211或AC輸入341中的任一者具有三深寄存器路徑,即穿過Al寄存器311、A2寄存器312和AD寄存器314。圖4為描繪圖2的DSP切片200的雙B寄存器M2的示范性實施例的電路圖。B 輸入信號(“B input”)212和BC輸入(“BCIN,,)信號("BC input”)441被提供作為對多路復用器401的輸入。如同多路復用器301到304,雙B寄存器M2的多路復用器401 到404在操作期間為靜態(tài)的,即其輸出在FPGA的配置期間確立且在操作期間無法動態(tài)重配置。如同多路復用器306,多路復用器405可響應于inmode 202-4而動態(tài)地操作,inmode 204對于此實施例來說表示inmode 202的總線的位位置四。Bl寄存器411和B2寄存器 412對應于Al寄存器311和A2寄存器312。同樣,多路復用器401到404分別對應于多路復用器301到304。此外,多路復用器405對應于多路復用器306。來自多路復用器404的 BC輸出(“BCOUT”)信號("BC output”) 443 (圖2中說明性地展示)對應于AC輸出343, 但對于此實施例來說具有較小的位寬度。
同樣,X多路復用器(“X MUX”)信號442對應于X多路復用器信號342,但再次對于此實施例來說具有較小的位寬度。應了解,X多路復用器信號342和442為AB串聯(lián)的, 如大體上指示為用于對X多路復用器252的輸入的圖2的AB信號250。多路復用器405的輸出為另一乘法器操作數(shù)信號,即B乘法器(“B MULT”)信號 444 (圖2中說明性地展示),其對應于A乘法器信號344。B乘法器信號444和A乘法器信號344對于此實施例來說具有不同的位寬度;然而,兩個輸出均可提供作為對圖2的乘法器 251的輸入操作數(shù)。因為雙B寄存器242與預加法器204的雙A寄存器部分相同或相似,所以出于清楚的目的而避免重復描述。同時參看圖2到圖4,進一步描述DSP切片200??蓪nmode 202視為動態(tài)控制總線。除了 inmode 202之外,可存在時鐘信號、時鐘啟用信號、設置信號或復位信號,以及其它寄存器控制信號。這些信號出于清楚而非限制的目的而未展示為進入寄存器中。AB串聯(lián)信號250在其路徑中沒有M寄存器253。因此,A與B之間的乘法運算具有三個管線寄存器級,且加法運算(例如,串聯(lián)的AB( “A:B”)與C的相加)具有兩個寄存器級。然而,通過使用A2寄存器312和B2寄存器412,寄存器A2 312和B2 412可用以提供寄存器管線級,其將以其它方式與M寄存器253相關聯(lián)。換句話說,用于對X多路復用器 252的輸入的管線級的數(shù)目可經(jīng)配置為在DSP切片200中為相同的,這可用以避免寄存器未中,即“磁泡”。因此,通過設置操作模式,如下文以額外細節(jié)描述,A:B+C運算(例如)和 Α^Φ+C運算(例如)兩者均可在三個時鐘周期中執(zhí)行,例如,對于A:B+C運算來說,圖2的 Al寄存器311到A2寄存器312到P寄存器,且對于A*B+C運算中的A來說,圖2的Al寄存器311到M寄存器253到P寄存器(例如,同樣,圖2的Bl寄存器411到M寄存器253到 P寄存器)。圖2的C寄存器在以上兩個實例中比A和B少一個寄存器,但此差異對于所有操作模式來說為可預測的,且因此可在FPGA結構中解決以針對C添加另一寄存器級。應理解,這允許在無磁泡的情況下隨交替時鐘周期在相乘與相加運算之間動態(tài)地交替。Al寄存器311和A2寄存器312以及Bl寄存器411和B2寄存器412可用以提供寄存器堆功能。由于inmode 202的動態(tài)控制總線功能,此寄存器堆可操作作為隨機存取寄存器堆?;蛘撸珹l寄存器311和A2寄存器312以及Bl寄存器411和B2寄存器412可經(jīng)配置以提供移位寄存器邏輯(“SRL”)。因此,隨機存取寄存器堆和SRL兩者的雙功能性在 DSP切片200內經(jīng)由inmode總線202使用動態(tài)控制來提供。例如,總線可表示信號群組或信號跡線群組或兩者。其它功能性包括使預加法器204用作二到一多路復用器,即通過經(jīng)由使操作數(shù)中的一者為零來使加法器/減法器331在對其的輸入之間進行選擇以獲得對AD寄存器314的輸出。換句話說,可分別響應于inmode 202-1和202-2來分別迫使AND門322和321的輸出中的一者為零。另外,如果A輸入路徑的輸出為負,那么可從沿去往加法器/減法器331 的D路徑的操作數(shù)輸入產(chǎn)生零,使得加法器/減法器331可用以產(chǎn)生提供到加法器/減法器331的A或AC操作數(shù)的絕對值。此外,通過使用Al和A2寄存器來使位移位,可執(zhí)行二的補碼反轉。因此,概括地說,inmode 202-0用作無/A1/A2選擇信號。inmode 202-1可用以使沿A寄存器路徑(S卩,寄存器Al和Α2( “Α寄存器”))的輸出歸零。換句話說,使輸出歸零的能力促進在不使用復位的情況下且在不破壞寄存器內容的情況下在A寄存器與D寄存器之間進行多路復用。當inmode 202-1等于邏輯1時,對加法器/減法器331的A路徑輸入 261被迫為零,且因此可有效地選擇對預加法器331的D路徑輸入沈2以用于輸出。另外, 當inmode 202-1等于邏輯1時,對多路復用器305的A路徑輸入261可用以迫使A乘法器信號344為零。然而,為了迫使A乘法器信號344為零,設置D端口設置(即,用于向多路復用器305提供控制選擇信號的配置存儲器單元設置)以停用D端口,S卩“如果使用D端口 =假,,。inmode 202_2可用以使沿先前相對于inmode 202_1而描述的線路的D寄存器 313的輸出和A寄存器選定路徑的輸出歸零。因此,對加法器/減法器331的D路徑輸入沈2 將為邏輯0,其可用于促進在A路徑輸入261與D路徑輸入262之間進行多路復用。此外, inmode 202-1和inmode 202-2可用于動態(tài)功率門控以實現(xiàn)功率節(jié)省。如果inmode 202-1 處于邏輯1狀態(tài),那么迫使對加法器/減法器331的A路徑輸入261為0,且如果inmode 202-2處于邏輯0狀態(tài),那么迫使對加法器/減法器331的D路徑輸入262為0。如果對加法器/減法器331的兩個輸入均為邏輯0,那么加法器/減法器331的操作消耗較少功率,因為在此條件下,在加法器/減法器331內不存在晶體管切換。因此,通過“動態(tài)功率門控”,意味著當未選擇加法器/減法器331功能性時,可將對加法器/減法器331的兩個輸入設置為邏輯零。通過使固定邏輯值提供作為對加法器/減法器331的操作數(shù)輸入,加法器/減法器331不切換,且這可用于動態(tài)功率節(jié)省。換句話說,因為可動態(tài)設置inmode以用于動態(tài)地固定對加法器/減法器331的操作數(shù)輸入,所以可動態(tài)地選擇或撤消選擇加法器/減法器功能性,且相對于后者,可實施動態(tài)功率節(jié)省。inmode 202-3可用以通過加法器/減法器331使A輸入路徑的A操作數(shù)與D 輸入路徑沈2的D操作數(shù)相加或從其減去。同樣,A輸入路徑261上的A操作數(shù)的動態(tài)反轉可用作絕對值函數(shù)。換句話說,舉例來說,可通過使D操作數(shù)輸入262被迫為零來動態(tài)反轉保持于Al或A2中的寄存器值,如先前所描述。inmode 202-4可以與inmode 202-0可用作A1/A2寄存器選擇信號相同的方式用作B1/B2寄存器選擇信號。因此,應了解,DSP切片200的功能性很好地延伸超出簡單地將預加法器添加到DPS,如在可從加利福尼亞州圣何塞市賽靈思公司(Xilinx,Inc. , of San Jose, California)獲得的 Spartan FPGA DSP 48A 中所做那樣。此外,應了解,可執(zhí)行復數(shù)乘法運算,例如(A+ai)*(B+bi) = (AB_ab) + (Ab+aB) i。A 和a可為分別通過使用提供給A2寄存器312和Al寄存器311的單獨時鐘啟用信號且響應于inmode 202-0從多路復用器306選擇性地輸出所述兩個操作數(shù)中的一者而輸入到A2寄存器312和Al寄存器311的單獨操作數(shù)。同樣,B和b可為分別通過使用提供給B2寄存器412和Bl寄存器411的單獨時鐘啟用信號且響應于inmode 202-4從多路復用器405選擇性地輸出所述兩個操作數(shù)中的一者而輸入到B2寄存器412和Bl寄存器411的單獨操作數(shù)。操作數(shù)A、B、a和b可本地存儲于BRAM中。由于操作數(shù)重用,BRAM僅在每隔兩個時鐘周期的突發(fā)中由DPS切片200存取,可針對實例復數(shù)乘法運算僅讀取一次,因為Al、A2、Bl 和B2寄存器可用以在本地存儲此類操作數(shù)的實數(shù)和虛數(shù)部分。盡管使用復數(shù)乘法的實例, 但應理解,執(zhí)行順序乘法也可為相同的,例如(A:a)*(B:b)。出于借助于實例而非限制以實現(xiàn)清楚性的目的,假定42位《4位用于(A: a) * (B:b),那么可通過A*B+shl7 (A*0b+B*00000 000a+shl7(0b*00000000a)來獲得結果,其中“shl7”指示17位位移。
圖5為描繪inmode功能表500的示范性實施例的表圖。表500的前五列分別展示分別對應于inmode 202-4到202-0的inmode位四到零的可能邏輯狀態(tài)。inmode 202-4 為B2/B1寄存器選擇信號,且因此如果邏輯0為inmode 202-4的狀態(tài),那么寄存器B2的內容可提供作為乘法器B端口 444的輸入,且如果inmode 202-4為邏輯狀態(tài)1,那么乘法器B 端口 444的輸入為Bl寄存器411的內容。因此,表500的第一列的邏輯0和1分別對應于表500的最后一列的B2和Bi。表500的第六列指示用以提供對圖3的多路復用器305的控制選擇控制的存儲器單元的編程狀態(tài),其大體上指示為控制選擇信號501 (圖3中說明性地展示)。因此,控制選擇信號501指示D端口(S卩,D輸入201)是否在使用中。如表500的前四行中所指示,假值指示預加法器204的D端口不在使用中。列501中的剩余行指示用于控制信號501的真值,其意味著預加法器204的D端口在使用中。表500的第七列指示乘法器A的端口 344上的操作數(shù)輸入。說明性地展示的可能操作數(shù)輸入為針對D寄存器保持于Al或A2中的值。另外,如先前所描述,邏輯0可提供作為A乘法器輸出344。此外,通過對存儲于AD寄存器314中的操作數(shù)值D+A2、D+A1、D_A2或 D-Al進行相加而獲得的值可提供作為A乘法器輸出344。符號A1/A2和B1/B2分別用以描述一或二深寄存器。如果對加法器/減法器331的A輸入操作數(shù)被門控斷開,那么寄存器 D 313和AD 314以組合方式呈現(xiàn)為用于D端口 201的二深記錄。因此,符號D1/D2分別指代分別用于一深和二深記錄的D/AD寄存器。在Spartan FPGA中,預加法器位于輸入寄存器與輸出寄存器之間,其中輸出寄存器對乘法器進行饋入。然而,此配置無法用于實施脈動濾波器。在以下描述中,將DSP切片 200描述為用于實施脈動濾波器。應理解,添加有預加法器204和雙B寄存器M2的DSP切片200能夠支持順序復數(shù)乘法、順序乘法和順序復數(shù)共扼運算。另外,通過使A2和B2寄存器本質上相對于M寄存器253來說為虛擬寄存器來平衡AB串聯(lián)路徑與AB相乘路徑的能力允許在三級管線的情況下在相乘與相加運算之間進行動態(tài)切換。此外,動態(tài)存取A1、A2、B1、B2寄存器以寫入到二深輸入寄存器中的任一者或從二深輸入寄存器中的任一者讀取的能力由inmode 202促進,如先前所描述。此外,使零輸入到任一預加法器輸入端口的靈活性促進多通道濾波器??衫缡褂肁l寄存器311、A2寄存器312和D寄存器312在本地存儲三組濾波器系數(shù),且能夠動態(tài)地(即,在每一時鐘周期)從對稱操作切換到非對稱操作。另外,應了解, 在不需要相加和相減功能性時,支持使用加法器/減法器331的AD多路復用能力以實現(xiàn)動態(tài)操作。當在本地存儲三組濾波器系數(shù)時,那么不使用預加法器對稱性。經(jīng)由B輸入端口 212和/或B級聯(lián)輸入端口 441來代替A輸入端口 211和/或A級聯(lián)輸入端口 341來施加原始數(shù)據(jù),且可通過使用加法器/減法器331提供多路復用功能來選擇濾波器系數(shù)。因此, 非對稱濾波器有可能具有三組濾波器系數(shù)。圖6為描繪現(xiàn)有技術的8分接頭偶數(shù)對稱脈動有限脈沖響應(“HR”)濾波器600 的示范性實施例的框圖/電路圖。HR濾波器600由DSP塊106組成,所述DSP塊106已被編程有操作模式(“0PM0DE” )。因此,DSP塊106-1到106-4表示具有級聯(lián)輸出以提供所得級聯(lián)輸出(即,“P”級聯(lián)60 的現(xiàn)有技術的DSP。至此,移位寄存器邏輯(“SRL”)604 由FPGA結構602中的寄存器形成,且因此抑制了性能。另外,預加法器級605和輸入寄存器級606先前形成于FPGA結構602中。圖7為描繪具有DSP切片200-1到200_4的8分接頭偶數(shù)對稱脈動HR濾波器700 的示范性實施例的框圖/電路圖。DSP切片200-1到200-4中的每一者可為圖2的DSP切片200。重新參看圖2到圖4且繼續(xù)參看圖7,進一步描述FIR濾波器700。盡管說明性地展示8分接頭濾波器,但應了解,可實施少于或多于8個分接頭,且因此可實施少于或多于四個 DSP 切片 200。DSP 切片 200-1 針對 OPMODE 設置為 0,0,0,0,1,0,1,且 DSP 切片 200-2 到200-4各自設置為具有OPMODE 0,0,1,0,1,0,1。這些OPMODE對于圖6的HR濾波器600 來說為相同的,且因為其是先前已知的,所以本文中不再以多余細節(jié)對其進行描述。盡管HR濾波器700具有與圖6的HR濾波器600不同的設計,但如果HR濾波器 600的寄存器606被推送到預加法器605的輸入,那么對預加法器331的A輸入(例如圖2 的A輸入端口 211或FIR濾波器700的濾波器輸入χ (η) 701)具有兩個管線式延遲級,其與兩個分接延遲線值匹配。因此,與使寄存器延遲線(例如SRL 604)分出并連接到A端口寄存器606以實現(xiàn)重新平衡相反,可避免此類分接,如對于HR濾波器700說明性地展示。可避免寄存器606鏡射于預加法器605的A輸入上。換句話說,不使用此類鏡射,因為二深A 寄存器輸出(即,A寄存器311和31 可用以提供(例如)與先前經(jīng)由鏡射路徑所提供的數(shù)據(jù)相同的原始數(shù)據(jù),且因此可消除此鏡射路徑。因此,預加法器605的D輸入側上的相對于寄存器606的鏡射寄存器在FIR濾波器700中有效地用D寄存器313代替。106-1中的第一寄存器因此為預加法器輸出寄存器,即DSP切片200-1中的AD寄存器314。除了消除 FIR濾波器600的預加法器A輸入上的額外寄存器之外,在HR濾波器700中,不必同時分出Al和A2寄存器輸入兩者,這與HR濾波器600相反。然而,與HR濾波器600相反,對于FIR濾波器700來說,輸入寄存器級606移動到預加法器級605的輸入,可在DSP中實施預加法器級605連同輸入寄存器606,且在FPGA 結構602中僅實施SRL 604。SRL 604為(例如)SRL 16,其具有八個寄存器級。對SRL 604 的輸入為濾波器輸入x(n)701,且來自SRL 604的輸出被并行地提供(即,廣播)到DSP切片200-1到200-4的每一 D寄存器313。濾波器輸入χ (η) 701還提供到DSP切片200_1到200-4的鏈的初始寄存器。對 HR濾波器700的輸入可相對于其中實施此HR濾波器700的FPGA以芯片上或芯片外形式獲得。濾波器輸入701被提供到DSP切片200-1的Al和Α2寄存器311和312,且接著提供到其它DSP切片中的每一者的呈移位寄存器形式的Al和Α2寄存器,即用于順序輸入。在此實施例中,DSP切片200-1到200-4的Al寄存器311和Α2寄存器312組合地具有與SRL 604相同的延遲或寄存器級數(shù)目。對SRL 604的濾波器輸入701在廣播到DSP切片200_1到200_4之前為D輸入 201。在此實施例中,因為D輸入201被廣播到DSP切片200-1到200-4中的每一者,所以其在FPGA結構中實施。濾波器輸入701還被提供作為對DSP切片200-1 (即,第一級DSP 切片)的輸入A 211。然而,對于對DSP切片200-2到200-4的輸入來說,此輸入為提供作為對級聯(lián)中的下一級的AC輸入341的AC輸出343。四個系數(shù)h0到h3分別被提供到B輸入端口,即DSP切片200-1到200-4的B輸入212。在此實施例中,系數(shù)h0到h3(即,系數(shù)703)被提供到DSP切片200-1到200-4中的每一者的相應B輸入端口 212,因為此類系數(shù)不是級聯(lián)的。換句話說,在此實施例中不使用BC輸入441和BC輸出443。系數(shù)703可輸入到Bl寄存器411或B2寄存器412。出于借助于實例而非限制以實現(xiàn)清楚性的目的,應假設使用Bl寄存器411 ;然而,應了解,可使用B2寄存器412來代替Bl寄存器411,或可使用Bl與B2寄存器的組合。PC輸出802與PC輸入801在DSP切片中的每一者之間級聯(lián)。DSP切片200-4的 PC輸出提供合成濾波器輸出y(n-8) 710。將復制分接頭延遲711輸入到SRL 604以便提供時序調整。應了解,可使用VHDL作為模塊化組件來為DSP切片200建模。圖8為描繪DSP切片200-2的示范性實施例的框圖/電路圖。DSP切片200-2可具有如先前針對此實施例所描述的OPMODE 0,0,1,0,1,0,1,以用于實施對稱脈動相加-相乘-相加處理模塊。同樣,將AC輸入341依序提供到Al和A2寄存器311和312。將每一 D輸入201 提供到D寄存器313,且將那些寄存器的輸出提供到處于相加模式的加法器/減法器331。同樣,將寄存器312的輸出作為AC輸出343依序提供到下游DSP切片200_3,即作為此下游DSP切片200-3的AC輸入341。同樣,從上游DSP切片200-1的AC輸出343獲得 AC輸入341。每一 B輸入212接收對例如Bl寄存器411等B寄存器的系數(shù)。將加法器/減法器331的輸出提供到AD寄存器314,且將寄存器411和314的輸出提供到乘法器251。將乘法器251的輸出提供到M寄存器253,且將M寄存器253的輸出提供到加法器,且接著提供到后續(xù)輸出寄存器級,如現(xiàn)有技術中所進行且因此出于清楚的目的而不再以多余細節(jié)進行描述。此外,如在現(xiàn)有技術中所進行且因此出于清楚的目的而不再以多余細節(jié)進行描述,將可從上游DSP切片200-1的PC輸出802獲得的PC輸出801輸入到此加法器以用于與寄存器253的輸出求和,且可將此相加的結果提供到輸出寄存器以用于將PC 輸出802提供到下游DSP切片200-3。圖9為描繪9分接頭奇數(shù)對稱脈動HR濾波器900的示范性實施例的框圖/電路圖。因為HR濾波器900類似于圖7的HR濾波器700,所以出于清楚的目的而僅描述不同之處。SRL 904為用于如先前所描述那樣廣播D輸入201的九深移位寄存器。添加額外 DSP切片(即,DSP切片200-5)作為用于產(chǎn)生輸出y(n-9)910的最終級。另外,將系數(shù)903 中的額外系數(shù)h4提供作為對DSP切片200-5的B寄存器411的輸入。DSP切片200-5具有與DSP切片200-2到200-4相同的0PM0DE。盡管D輸入201可移位到DSP切片200-5的寄存器313,但DSP切片200-5經(jīng)配置以停用D端口的使用,或在去往DSP切片200-5的處于相加模式的加法器/減法器331的D 輸入路徑262上輸入零。因此,應了解,使用動態(tài)配置,HR濾波器(例如HR濾波器900) 的最終級處的奇數(shù)切片(例如DSP切片200-5)可出于作為奇數(shù)數(shù)目的分接頭濾波器而操作的目的而動態(tài)地改變。同樣,A輸入路徑261可動態(tài)地改變,使得寄存器311和312中的內容不在DSP切片200-5的加法器/減法器311處顯現(xiàn),而是將邏輯0提供到加法器/減法器331的兩個輸入端口。換句話說,通過適當?shù)卦O置inmode 202-1和202_2,對加法器/減法器331的兩個輸入均可為零。另外,對于偶數(shù)數(shù)目的濾波器分接頭來說,將不會存在奇數(shù)系數(shù),例如 h4903,且因此用于任何未用分接頭的系數(shù)輸入可為邏輯1或邏輯0。因此,來自寄存器253 的輸出可為提供到最終級加法器以提供輸出的邏輯0,所述輸出實際上為具有額外管線延遲的圖7的y (n-8) 710。所得濾波器為具有圖9的y (n_9) 910的輸出等待時間的8分接頭濾波器。因此,應了解,如先前所描述那樣使用inmode 202-1和202-2且具有奇數(shù)數(shù)目的DSP 切片,此DSP濾波器可為可動態(tài)調整的,以提供奇數(shù)或偶數(shù)對稱脈動HR濾波。SRL 16可經(jīng)動態(tài)調整以適應不同濾波器長度。所以,對于將9分接頭濾波器轉換為輸出為y(n-9)910 的8分接頭濾波器的先前實例來說,SRL 16為z-8。另外,在此實施例中,在操作或將數(shù)據(jù)移位到HR濾波器中存在時滯,且因此動態(tài)調整以及從一個HR操作序列到另一 FIR操作序列的數(shù)據(jù)可被隱蔽。換句話說,在不必等待一個FIR操作(例如奇數(shù)HR操作)完成的情況下,用于后續(xù)HR操作的數(shù)據(jù)和參數(shù)可隱蔽到HR濾波器中,同時仍操作所述HR濾波器以完成先前HR操作序列。對于從奇數(shù) FIR操作序列到達偶數(shù)HR操作序列來說也是這樣。圖10為描繪9分接頭奇數(shù)對稱脈動HR濾波器1000的示范性實施例的框圖/電路圖,所述FIR濾波器1000為圖9的HR濾波器900的替代形式。在此實施例中,對于奇數(shù)操作來說,加法器/減法器331實際上不具有來自D輸入路徑沈2的零輸入。因此,實際上,最終DSP切片(其在此實施例中為DSP切片200-5)將數(shù)字相加到其自身,從而實際上使數(shù)字加倍。因此,系數(shù)1003為0. 5h40這意味著實際上在DSP切片200-5中2x(n)乘以 0. 5h4以便否定此切片的加法器/減法器331的相加效應。在此實施例中,系數(shù)1003中可能存在某種精度損失;然而,此實施例允許在不必經(jīng)由inmode 202-2動態(tài)調整D輸入201 的情況下鋪砌DSP切片。在圖9和圖10的實施例中的任一者中,最后一個DSP切片有效地繞過預加法器操作以實現(xiàn)奇數(shù)對稱脈動HR濾波。最后一個分接頭使用不同處理或迫使邏輯0為操作數(shù)輸入。因此,在此實施例中,可實施多級HR濾波器。此HR濾波器可經(jīng)實施以實現(xiàn)取決于應用的最長可能FIR使用。此FIR濾波器可(例如)用于時分多路復用應用,其中在不重新配置可編程邏輯的情況下動態(tài)地設置具有不同長度的^R濾波器。換句話說,用于廣播D輸入201的移位濾波器可經(jīng)設定以獲得用戶應用的最長HR濾波器;但動態(tài)地修改SRL 延遲以與濾波器中的分接頭數(shù)目匹配。盡管針對使用inmode進行動態(tài)設置僅描述了奇數(shù)FIR濾波器的最后一個DSP切片,但應了解,可如此動態(tài)地設置在HR末尾處的任何數(shù)目的DSP切片。因此,在上述9分接頭FIR濾波器中,此FIR濾波器可在不必重新配置用以實施移位寄存器的可編程邏輯的情況下,動態(tài)地從九個分接頭向下調整到一個分接頭,或甚至有效地在旁路模式中調整到?jīng)]有分接頭。更一般來說,濾波器輸入系列χ (η)可經(jīng)耦合以用于輸入到形成HR濾波器的 DSP鏈,以提供濾波器輸出系列y(n-p),其中ρ為有效分接頭數(shù)目的整數(shù)數(shù)目且可動態(tài)調離
iF. ο應了解,盡管描述了大體上固定的系數(shù),但此類系數(shù)可在應用之間改變。同樣,因為使用二深寄存器緩沖,所以可使用從一個HR深度到下一個HR深度的信息隱蔽,其中傳送針對每一級而交錯。圖11為描繪FIR使用流程1100的示范性實施例的流程圖。在1101處,實施FIR 濾波器,其在待使用的所有應用中具有最長數(shù)目的級。在1102處,獲得待針對當前應用使用的級數(shù)目。在1103處,如果還不是正確長度的話,動態(tài)地調整HR濾波器,以適應在1102處找到的待使用的級數(shù)目。在1104處,確定是否將執(zhí)行另一 FIR序列。如果沒有其它HR 序列要執(zhí)行,那么流程1100可在1199處結束。如果在1104處確定另一 FIR序列要執(zhí)行, 那么可在1105處獲得并隱蔽用于所述其它HR序列的輸入,且可在1102處再次確定待使用的級數(shù)目,以用于在1103處動態(tài)地調整(如果需要的話)HR濾波器。因此,應了解,可通過門控邏輯來對此濾波器進行門控,所述門控邏輯用于動態(tài)地將結尾的一個或一個以上DPS塊置零,以將此濾波器操作為具有偶數(shù)數(shù)目的分接頭,但鏈中存在奇數(shù)數(shù)目的DSP塊。此外,此門控邏輯可用于動態(tài)地將結尾的一個或一個以上DSP 塊置零,以將此濾波器操作為具有奇數(shù)數(shù)目的分接頭,但鏈中存在偶數(shù)數(shù)目的DSP塊。現(xiàn)轉向圖12,展示根據(jù)本發(fā)明實施例的實施對稱轉置卷積有限脈沖響應(FIR)濾波器的電路的框圖。圖12的實施例展示DSP塊的布置(其可組成DSP切片200),其經(jīng)配置以使用DSP塊的預加法器來啟用對稱轉置卷積FIR濾波器,且具有寄存器以提供具有共同系數(shù)的分接頭所必需的延遲,以在單個DSP塊中與所述共同系數(shù)相乘。選擇包含寄存器的延遲將取決于正被實施的濾波器的功能,其中圖12到圖14的DSP塊中的恰當延遲可使用上文陳述的圖3的電路或某種其它合適電路來實施。雖然DSP塊優(yōu)選包含相同元件,但其可不同地配置。舉例來說,可編程互連(例如上文參看圖1所描述的可編程互連)可用以連接所述延遲,如所展示,或配置位可用以選擇多路復用器,如參看圖3所描述。因為圖12到圖14的實施例涉及具有奇數(shù)數(shù)目的分接頭的對稱轉置卷積HR濾波器,所以DSP級中的一者將僅接收單個分接頭,而其它DSP級將接收具有共同系數(shù)的多個分接頭。如圖12到圖14中所配置,DSP塊的布置和配置使得能夠根據(jù)等式y(tǒng)(n-4) = k0*x( n-4) +kl*x (n-5) +k2*x (n_6) +kl*x (n_7) +k0*x (n-8)實施對稱轉置卷積 FIR 濾波器,所述等式當在對乘法器的輸入的時間幀中表達時,以因式分解形式書寫為kO{X(n-4)+X(n-8)}+kl {χ (η-5) +χ (η-7)} +k2*x (η-6)或以因式分解形式書寫為 y (n_2) = k0 {χ (η-2) +χ (η-6) }+kl{ X(n-3)+X(n-5)}+k2*X(n-4),如圖12和圖13中所展示。針對y(n_4)結果的內積計算展示每一濾波器分接頭的原始數(shù)據(jù)索引。因此,只有對乘法器1210的最右邊分接頭χ (η-2)輸入與Χ(η)對準,而其它濾波器分接頭在不同時間快照處展示原始數(shù)據(jù)。可根據(jù)上文在圖3 中描述的A級聯(lián)管線延遲(311和312)來實施延遲,其中ζ-1表示一個延遲,且ζ-2表示兩個延遲。舉例來說,加法器1206可由圖6的加法器/減法器331實施,其中對加法器/減法器331的輸入信號的選定延遲值是基于如上文陳述的對圖3的多路復用器的選擇輸入。在圖12的展示配置1200的實施例中,第一級200-1接收包含χ (η)信號的輸入 1201,其耦合到第一寄存器1202。如下文將參看圖13更詳細描述,可使用第二寄存器1204。 雖然DSP級200-1中的加法器1206展示為經(jīng)耦合以接收寄存器1202的輸出和零,但加法器1206可經(jīng)耦合以接收寄存器1202和1204的輸出,如DSP級200-2和200-3以及圖13 的配置1300中的DSP級200-1中所示。應注意,加法器1206可實施為減法器以處理具有反轉正負號的系數(shù)。寄存器1208耦合到加法器1206的輸出,且具有耦合到乘法器1210的輸出。乘法器1210還接收包含來自寄存器1212的系數(shù)的因數(shù)。乘法器1210的輸出處的寄存器1214也耦合到加法器1216,所述加法器1216的輸出存儲在寄存器1218中。雖然對加法器916的輸入在第一級200-1中為零,但加法器1216可接收前一級的輸出,如參看 DSP塊200-2和200-3所展示。在DSP級200-3的寄存器1218處產(chǎn)生包含信號y (η_4)的輸出1220。
應注意,第一級包含奇數(shù)數(shù)目的分接頭中的中間分接頭,且因此僅將單個分接頭耦合到加法器1206。然而,第二和第三級中的每一者接收具有共同系數(shù)的兩個分接頭。根據(jù)圖12的實施例,第二DSP級200-2將(X(n-5)+X(n-3))耦合到乘法器1210的接收共同系數(shù)kl的一個輸入,而第三DSP級200-3將(χ (η-6) +χ (η-2))耦合到乘法器1210的接收共同系數(shù)k0的一個輸入。選擇與加法器1206或乘法器1210相關聯(lián)的若干延遲以確保在加法器1206或乘法器1210處接收到正確的輸入。舉例來說,可通過將恰當?shù)亩嗦窂陀闷鬟x擇信號提供到圖3的多路復用器來選擇正確數(shù)目的延遲。如圖13中所展示,DSP級200-1 可經(jīng)配置以實施寄存器1204,其中將h (n-4)提供到乘法器1210的一個輸入,而將k2/2提供到另一輸入。盡管圖12到圖12的實施例展示對稱轉置卷積FIR濾波器的一個實例,但應理解,可實施由其它等式表示的濾波器。此外,圖12到圖13的實施例可用以實施任何功能,其中輸入可具有共同系數(shù),且可實施具有共同系數(shù)的任何數(shù)目的因數(shù)。應注意,不管初始分接頭數(shù)目是偶數(shù)還是奇數(shù),本發(fā)明的一個或一個以上電路都起作用。如圖14的配置1400中所展示,實施具有奇數(shù)數(shù)目的分接頭的濾波器功能。明確地說,實施對稱轉置卷積有限脈沖響應濾波器的電路的框圖展示在3個DSP塊中根據(jù)等式 y (n-4) = k0*x (n-4) +kl* (n_5) +k2*x (n_6) +k2*x (n_7) +kl*x (n_8) +k0*x (n_9)來實施 6 個分接頭,所述等式當在對乘法器的輸入的時間幀中表達時,以因子分解形式書寫為y(n-4) =k0 {χ (η-4) +χ (η-9)} +kl {χ (η_5) +χ (η_8)} +k2 {(χ-6) +χ (η_7)}或以因子分解形式書寫為 y (η-2) = k0 {χ (η-2) +χ (η_7)} +kl {χ (η_3) +χ (η-6)} +k2 {χ (η-4) +χ (η_5) },如圖 14 中所展示。如圖14中可見,每一級接收具有共同系數(shù)的兩個輸入,其中級200-1的DSP接收與系數(shù)k2相關聯(lián)的分接頭,級200-2的DSP接收與系數(shù)kl相關聯(lián)的分接頭,級200-3的DSP接收與系數(shù)k0相關聯(lián)的分接頭。通過采用預加法器,其中數(shù)據(jù)樣本在所要時鐘周期中到達預加法器是通過ACOUT/ ACIN傳播路徑來控制,可實施消耗較少裝置資源且消耗較少功率的濾波器。也就是說,并非在五個DSP塊中實施圖12到圖13的濾波器或在六個DSP塊中實施圖14的濾波器,所述濾波器中的每一者可在三個DSP塊中實施。另外,如下文將參看圖15更詳細描述,一種方法使得能夠從對濾波器的一般、非優(yōu)化、高級描述轉變到優(yōu)化形式。此方法不僅可由試圖以最優(yōu)方式手動描述此濾波器的任何人員使用,而且還可在任何合成工具中自動化為新的高級推斷能力。也就是說,并非用戶提供對(例如)圖12到圖14中所實施的DSP塊的描述, 合成工具將自動檢測對稱系數(shù)且配置DSP塊以利用預加法器,例如加法器1206,進而減少實施濾波器所需要的DSP塊的數(shù)目。因此,本發(fā)明的一個或一個以上電路和方法通過使用 DSP的預加法器執(zhí)行對稱組合來利用系數(shù)對稱性以使級聯(lián)DSP塊的數(shù)目減到最少。應注意,與其它實施方案(例如脈動濾波器實施方案)相比,本發(fā)明的一個或一個以上電路和方法不會在電路性能方面產(chǎn)生任何不利結果。DSP塊鏈在兩種情況下通過使用 DSP塊之間的包括P級聯(lián)(PC0UT/PCIN)和A級聯(lián)(AC0UT/ACIN)的快速級聯(lián)來得到優(yōu)化。 另外,應注意,本發(fā)明的一個或一個以上電路和方法確保鏈中的每一 DSP塊通過使用那些塊中的可用管線級(包括寄存器1202、1204、1208、1214和1218)而完全管線化以實現(xiàn)最佳性能。另外,在兩種情況下暗示等于DSP級數(shù)目的扇出。對于脈動實施方案來說,所述扇出在移位寄存器的輸出處找到,而對于上文陳述的轉置卷積實施方案來說,所述扇出在傳入數(shù)據(jù)節(jié)點自身上找到。
最后,應注意,轉變原理是通用的,且當在對稱系數(shù)(例如具有正負號的系數(shù)-k2、-kl、-k0、k0、kl、k2)之間存在正負號反轉時,或當不存在正負號反轉時起作用。雖然當今可能不必處理已知或常見濾波器應用,但本發(fā)明的一個或一個以上電路和方法可甚至在混合情形中應用,其中一些系數(shù)為正負號反轉的,而其它系數(shù)不是,例如具有正負號的系數(shù)-1^2、1^1、詘、1^、1^1、1^2?,F(xiàn)轉向圖15,流程圖展示根據(jù)本發(fā)明實施例的在集成電路中實施濾波器的方法。 圖15的方法可在如上文所述的圖1到圖14中的任一者或某些其它合適電路中實施。在步驟1502處接收電路的高級設計。舉例來說,高級設計可為對具有濾波器的電路的HDL描述或某種其它高級語言描述。如上文所陳述,對濾波器的描述可簡單地為基于系數(shù)和相關聯(lián)分接頭的對濾波器的描述。在步驟1504中識別高級設計中的濾波器。在步驟1506處分析濾波器的系數(shù)。在步驟1508處,使用處理塊的配置來配置濾波器以適應共同系數(shù),其中耦合單個處理塊以接收與共同系數(shù)相關聯(lián)的分接頭。舉例來說,可如參看圖12到圖14所展示和描述那樣實施處理塊的配置。在步驟1510處確立對處理塊的預加法器的輸入的必要延遲。在步驟1512處基于表示濾波器的等式中的系數(shù)的正負號來選擇預加法器的功能以進行相加或相減。在步驟1514處將預加法器的輸出提供到乘法器的第一輸入。在步驟1516 處將共同系數(shù)提供作為對單個處理塊的乘法器的第二輸入。最后,在步驟1518處使用集成電路的電路元件根據(jù)所述配置來實施濾波器。根據(jù)一個實施例,可在控制電路(例如控制電路160 中實施計算機程序代碼,如下文將參看圖16更詳細描述。計算機程序代碼可包含具有將電路設計轉變?yōu)椴季峙渲玫挠嬎銠C可讀程序代碼的計算機可讀媒體,其中所述計算機可讀媒體包含識別高級設計中的濾波器的計算機可讀程序代碼;分析濾波器的系數(shù)的計算機可讀程序代碼;以及使用所述電路的經(jīng)配置以適應共同系數(shù)的處理塊來配置濾波器的計算機可讀程序代碼,其中所述處理塊經(jīng)耦合以接收與共同系數(shù)相關聯(lián)的分接頭。使用經(jīng)配置以適應共同系數(shù)的處理塊來配置濾波器的計算機可讀程序代碼可包含將濾波器配置為對稱轉置卷積濾波器的計算機可讀程序代碼。分析濾波器的系數(shù)的計算機可讀程序代碼可包含識別濾波器的對稱系數(shù)的計算機可讀程序代碼。計算機程序產(chǎn)品可進一步包含提供所述共同系數(shù)作為對處理塊的乘法器的第一輸入的計算機可讀程序代碼。 計算機程序產(chǎn)品可進一步包含提供與共同系數(shù)相關聯(lián)的分接頭的總和或差值作為對乘法器的第二輸入的計算機可讀程序代碼。提供與共同系數(shù)相關聯(lián)的分接頭的總和或差值作為對乘法器的第二輸入的計算機可讀程序代碼可包含使用DSP塊的預加法器電路來產(chǎn)生總和的計算機可讀程序代碼。計算機程序產(chǎn)品可進一步包含使用集成電路的電路元件來實施濾波器的計算機可讀程序代碼。計算機程序產(chǎn)品可具有其它特征或為用于在集成電路中實施電路的較大程序的一部分。圖16展示根據(jù)本發(fā)明實施例的用于實施具有可編程資源的裝置的系統(tǒng)1600的框圖。明確地說,控制電路1602經(jīng)耦合以從存儲器1604接收輸入數(shù)據(jù),且產(chǎn)生存儲于存儲器 1606中的配置位流。如下文將更詳細描述,輸入數(shù)據(jù)可包含描述為高級設計的電路設計,例如以(例如)VHDL等硬件描述語言(HDL)定義的電路設計。控制電路可包含計算機運行軟件,其產(chǎn)生存儲于存儲器1606中的配置位流。配置位流包含布局配置,其提供與組件(例如將在裝置中實施的電路設計的DSP電路的組件)的布局有關的信息。存儲器1606包含非易失性存儲器,其用于存儲配置位流以將其加載到具有可編程資源的集成電路裝置1608 中??删幊藤Y源可為如下文更詳細描述的可編程邏輯,或集成電路的其它可編程元件。盡管本發(fā)明的一個或一個以上方法可應用于任何類型的集成電路中的DSP電路的布局,但所述方法特別適用于具有可編程邏輯的裝置,且在下文中參看具有可編程邏輯的裝置來詳細描述。如下文將更詳細描述,控制電路102產(chǎn)生具有DSP電路的優(yōu)化布局的配置位流。用于具有可編程資源的裝置的設計的軟件流程包含合成、打包、放置和路由,如此項技術中眾所周知。合成包含將呈高級設計的電路設計轉換為在具有可編程邏輯的裝置中找到的元件的配置的步驟。舉例來說,由控制電路1602操作的合成工具可實施電路設計中的實施可配置邏輯塊(CLB)或DSP塊中的特定功能的若干部分,如下文將更詳細描述??蓪嵤┍景l(fā)明的一個或一個以上方法的合成工具的實例為可從加利福尼亞州圣何塞市賽靈思公司獲得的ISE 工具,其中實施本發(fā)明的一個或一個以上方法的合成工具的輸出包含具有DSP塊的優(yōu)化配置的配置位流。打包包含將電路設計的若干部分分組為裝置的已定義塊(例如可配置邏輯塊)的步驟。如下文將更詳細描述,將DSP電路打包為DSP塊可根據(jù)本發(fā)明的各種方法來有效地實施。放置包含確定在打包步驟期間定義的裝置的快的位置的步驟,其中設計中的塊放置在與裝置的位點相關聯(lián)的二維柵格上。放置由放置器執(zhí)行,所述放置器可包含在計算機上運行的放置軟件或在計算機上運行以在裝置中實施電路設計的較大軟件封裝的一部分。最后,路由包含在具有可編程邏輯的裝置中選擇互連元件(例如可編程互連)的路徑。本發(fā)明的一個或一個以上電路和方法使得能夠實施最佳使用預加法器能力的對稱轉置卷積濾波器,同時去除對DSP塊外部的任何邏輯的需要。因而,與例如對稱脈動HR 濾波器等其它濾波器實施方案或其它實施對稱轉置卷積濾波器的電路相比,降低了資源要求和功率消耗。另外,下文陳述的電路和方法通過引入將允許合成工具獲得對濾波器的一般高級設計描述且經(jīng)由用以推斷濾波器設計的增強能力自動執(zhí)行微調和優(yōu)化工作的方法來解決設計者手動微調對其電路中所使用的濾波器的描述的需要。本發(fā)明的一個或一個以上電路和方法實現(xiàn)對稱轉置卷積濾波器實施方案,其不僅在所需DSP級方面為最小的,而且去除了對DSP塊外部的任何邏輯的需要。所述電路和方法因此進一步減小裝置利用率以及靜態(tài)和動態(tài)功率消耗。對于缺乏對DSP塊的特性的深刻理解或正尋找將不會使其依賴于特定裝置或裝置制造商的便攜式解決方案的設計者來說, 合成工具的獲得某些一般描述的濾波器代碼(例如HDL代碼)且執(zhí)行向優(yōu)化實施方案的轉變的能力是有益的。因此,描述可在合成工具中自動進行的推斷和優(yōu)化方法。如下文將更詳細描述,所述方法使得利用具有此能力的工具的設計者能夠以一般方式描述對稱轉置卷積濾波器。舉例來說,設計者可僅僅描述乘積的總和,以及待應用于給定濾波器的每一分接頭以實現(xiàn)合成工具所產(chǎn)生的最佳實施方案的系數(shù)的表格?,F(xiàn)轉向圖17,展示根據(jù)本發(fā)明實施例的具有可編程邏輯的裝置的框圖。裝置1702 并入有可編程邏輯1704,其中可編程邏輯可包含CLB電路1706、DSP電路1707和易失性存儲器1708,且可耦合到其它電路,例如非易失性存儲器1710和/或易失性存儲器1712。非易失性存儲器1710可耦合到裝置的I/O端口 1713,從而使得控制電路1714能夠將配置位流從I/O端口 1713加載到裝置的非易失性存儲器1710中。可將配置位流加載到裝置1702的非易失性存儲器1710中,且接著加載到易失性存儲器1708和易失性存儲器1712中?;蛘?,可通過控制電路1714或配置控制器1718將配置位流直接加載到易失性存儲器1708和易失性存儲器1712中。舉例來說,易失性存儲器1708可與可配置邏輯塊相關聯(lián),而易失性存儲器1712可與隨機存取存儲器塊(BRAM)或與配置存儲器單元相關聯(lián)。如下文將更詳細描述,將產(chǎn)生配置位流以實施可編程邏輯1704 的DSP電路1707?,F(xiàn)轉向圖18,展示根據(jù)本發(fā)明實施例的圖1的裝置的可配置邏輯元件的框圖。明確地說,圖18以簡化形式說明圖1的配置邏輯塊102的可配置邏輯元件。在圖18的實施例中,切片M 1801包括四個查找表(LUTM)1801A到1801D,其每一者由六個LUT數(shù)據(jù)輸入端子Al到A6、B1到B6、C1到C6和Dl到D6驅動,且每一者提供兩個LUT輸出信05和06。來自LUT1801A到1801D的06輸出端子分別驅動切片輸出端子A到D。LUT數(shù)據(jù)輸入信號由 FPGA互連結構經(jīng)由輸入多路復用器供應,所述輸入多路復用器可由可編程互連元件1811 實施,且LUT輸出信號也供應到互連結構。切片M還包括輸出選擇多路復用器1811A到 1811D,其驅動輸出端子AMUX到DMUX ;多路復用器1812A到1812D,其驅動存儲器元件1802A 到1802D的數(shù)據(jù)輸入端子;組合多路復用器1816、1818和1819 ;跳動多路復用器電路1822 到1823 ;由反轉器1805和多路復用器1806(其共同在輸入時鐘路徑上提供任選反轉)表示的電路;以及進位邏輯,其包含多路復用器1814A到1814DU815A到1815DU820到1821 以及異或門1813A到1813D。所有這些元件耦合在一起,如圖18中所示。在未針對圖18中所說明的多路復用器展示選擇輸入的情況下,選擇輸入由配置存儲器單元控制。也就是說, 存儲于配置存儲器單元中的配置位流的配置位耦合到多路復用器的選擇輸入,以選擇對多路復用器的正確輸入。這些配置存儲器單元(其是眾所周知的)為了清楚起見而從圖18 中省略,并且在本文中從其它選定圖式中省略。在所圖示的實施例中,每一存儲器元件1802A到1802D可經(jīng)編程以充當同步或異步觸發(fā)器或鎖存器。通過編程同步/異步選擇電路1803來針對切片中的所有四個存儲器元件進行同步與異步功能性之間的選擇。當存儲器元件經(jīng)編程以使得S/R(設置/復位) 輸入信號提供設置功能時,REV輸入端子提供復位功能。當存儲器元件經(jīng)編程以使得S/R輸入信號提供復位功能時,REV輸入端子提供設置功能。存儲器元件1802A到1802D由時鐘信號Ck計時,舉例來說,所述時鐘信號CK可由全局時鐘網(wǎng)絡或由互連結構提供。此類可編程存儲器元件在FPGA設計的技術中是眾所周知的。每一存儲器元件1802A到1802D將所記錄的輸出信號AQ到DQ提供到互連結構。因為每一 LUT 1801A到1801D提供兩個輸出信號05和06,所以LUT可經(jīng)配置以充當具有五個共享輸入信號(mi到1陽)的兩個5輸入 LUT,或充當具有輸入信號mi到IN6的一個6輸入LUT。在圖18的實施例中,每一 LUTM 1801A到1801D可以若干模式中的任一者起作用。 當處于查找表模式時,每一 LUT具有六個數(shù)據(jù)輸入信號mi到IN6,其由FPGA互連結構經(jīng)由輸入多路復用器供應。64個數(shù)據(jù)值中的一者以可編程方式基于信號mi到IN6的值從配置存儲器單元中選擇。當處于RAM模式時,每一 LUT充當單個64位RAM或兩個具有共享尋址的32位RAM。RAM寫入數(shù)據(jù)經(jīng)由輸入端子DIl (經(jīng)由用于LUT 1801A到1801C的多路復用器1817A到1817C)供應到64位RAM,或經(jīng)由輸入端子DIl和DI2供應到兩個32位RAM。 LUT RAM中的RAM寫入操作由來自多路復用器1806的時鐘信號CK以及由來自多路復用器 1807的寫入啟用信號TON控制,所述寫入啟用信號TON可選擇性地傳遞時鐘啟用信號CE或寫入啟用信號WE。在移位寄存器模式中,每一 LUT充當兩個16位移位寄存器,或其中所述兩個16位移位寄存器串聯(lián)耦合以形成單個32位移位寄存器。移入信號經(jīng)由輸入端子DIl 和DI2中的一者或兩者提供。16位或32位移出信號可通過LUT輸出端子來提供,且32位移出信號還可經(jīng)由LUT輸出端子MC31更直接地提供。LUT 1801A的32位移出信號MC31也可經(jīng)由輸出選擇多路復用器1811D和CLE輸出端子DMUX提供到一般互連結構以用于移位寄存器成鏈。 盡管前述內容根據(jù)本發(fā)明的一個或一個以上方面描述了示范性實施例,但可在不脫離其范圍的情況下構想出根據(jù)本發(fā)明的所述一個或一個以上方面的其它和另外實施例, 其范圍由所附權利要求書及其等效物決定。列舉步驟的權利要求并不暗示所述步驟的任何次序。商標為其相應擁有者的財產(chǎn)。
權利要求
1.一種集成電路,其包含 數(shù)字信號處理塊;所述數(shù)字信號處理塊包括預加法器級和控制總線;所述控制總線耦合到所述預加法器級,以用于動態(tài)地控制所述預加法器級的操作; 所述預加法器級包括耦合到所述控制總線的第一多路復用器的第一輸入端口; 耦合到所述控制總線的第一邏輯門的第二輸入端口; 耦合到所述控制總線的第二邏輯門的第三輸入端口 ;以及耦合到所述控制總線的加法器/減法器的第四輸入端口。
2.根據(jù)權利要求1所述的集成電路,其中所述預加法器級經(jīng)配置以用于響應于對所述第二輸入端口的輸入而動態(tài)地設置所述加法器/減法器的第一數(shù)據(jù)輸入以經(jīng)由所述第一邏輯門的輸出接收零值。
3.根據(jù)權利要求2所述的集成電路,其中所述預加法器級經(jīng)配置以用于響應于對所述第三輸入端口的輸入而動態(tài)地設置所述加法器/減法器的第二數(shù)據(jù)輸入以經(jīng)由所述第二邏輯門的輸出接收零值。
4.根據(jù)權利要求3所述的集成電路,其中所述預加法器級經(jīng)配置以用于響應于對所述第一輸入端口的輸入而動態(tài)地選擇具有0、1或2寄存器延遲的輸入數(shù)據(jù)。
5.根據(jù)權利要求4所述的集成電路,其中所述預加法器級經(jīng)配置以用于響應于對所述第四輸入端口的輸入而動態(tài)地設置所述加法器/減法器以進行相加或相減。
6.根據(jù)權利要求5所述的集成電路,其進一步包含現(xiàn)場可編程邏輯門,所述現(xiàn)場可編程邏輯門響應于配置位流而配置,以提供用于將輸入數(shù)據(jù)提供到所述數(shù)字信號處理塊的例示電路功能。
7.根據(jù)權利要求6所述的集成電路,其中所述預加法器級可經(jīng)由由所述第一輸入端口、所述第二輸入端口、所述第三輸入端口和所述第四輸入端口組成的群組中的至少一個端口來動態(tài)地重新配置,而不必重新配置所述現(xiàn)場可編程邏輯門以提供所述輸入數(shù)據(jù);且其中所述預加法器級可動態(tài)地重新配置以提供絕對值功能、順序復數(shù)共軛功能、順序乘法功能、順序復數(shù)乘法、多路復用功能、寄存器堆功能、移位寄存器邏輯功能和管線重新平衡功能。
8.根據(jù)權利要求1所述的集成電路,其進一步包含多個延遲元件;所述預加法器級經(jīng)耦合以借助于所述多個延遲元件中的第一延遲元件接收濾波器的第一分接頭,且借助于所述多個延遲元件中的第二延遲元件接收所述濾波器的第二分接頭,其中所述第一分接頭和所述第二分接頭具有共同系數(shù);乘法器,其經(jīng)耦合以在第一輸入處接收所述預加法器級的包含所述第一分接頭與所述第二分接頭的總和的輸出,且在第二輸入處接收所述共同系數(shù);以及加法器,其經(jīng)耦合以接收所述乘法器的所述輸出。
9.一種在電路中配置濾波器以在集成電路中實施的方法,所述方法包含 接收所述電路的高級設計;識別所述高級設計中的濾波器;分析所述濾波器的系數(shù);以及將所述高級設計的所述濾波器轉變?yōu)槭褂盟鲭娐返慕?jīng)配置以適應共同系數(shù)的處理塊的濾波器,其中所述處理塊經(jīng)耦合以接收與所述共同系數(shù)相關聯(lián)的分接頭。
10.根據(jù)權利要求9所述的方法,其中將所述高級設計的所述濾波器轉變?yōu)槭褂媒?jīng)配置以適應共同系數(shù)的處理塊的濾波器包含將所述濾波器配置為對稱轉置卷積濾波器。
11.根據(jù)權利要求9所述的方法,其中分析所述系數(shù)包含識別所述高級設計中的所述濾波器的對稱系數(shù)。
12.根據(jù)權利要求9所述的方法,其進一步包含提供所述共同系數(shù)作為對所述處理塊的乘法器的第一輸入。
13.根據(jù)權利要求12所述的方法,其進一步包含提供與所述共同系數(shù)相關聯(lián)的分接頭的總和作為對所述乘法器的第二輸入。
14.根據(jù)權利要求13所述的方法,其中提供與所述共同系數(shù)相關聯(lián)的所述分接頭的所述總和作為對所述乘法器的第二輸入包含使用DSP塊的預加法器電路來產(chǎn)生所述總和。
15.根據(jù)權利要求12所述的方法,其進一步包含提供與所述共同系數(shù)相關聯(lián)的分接頭的差值作為對所述乘法器的第二輸入。
全文摘要
本發(fā)明描述一種用于集成電路的具有預加法器級(204)的數(shù)字信號處理塊(200)。所述數(shù)字信號處理塊包括預加法器級(204)和控制總線(202)。所述控制總線耦合到所述預加法器級(204),以用于動態(tài)地控制所述預加法器級的操作。所述預加法器級包括耦合到所述控制總線的第一多路復用器(306)的第一輸入端口;耦合到所述控制總線的第一邏輯門(322)的第二輸入端口;耦合到所述控制總線的第二邏輯門(321)的第三輸入端口;以及耦合到所述控制總線的加法器/減法器(331)的第四輸入端口。
文檔編號H03H17/06GK102301325SQ201080005739
公開日2011年12月28日 申請日期2010年1月8日 優(yōu)先權日2009年1月27日
發(fā)明者梵希斯特·M·梵迪, 潘熾鋒, 穆罕默德·A·瑞柏, 約翰·M·藍汀, 薩威爾·溫德林, 詹姆士·M·席金斯, 阿爾文·Y·秦 申請人:吉林克斯公司