本發(fā)明涉及微電子領(lǐng)域中的集成電路設(shè)計技術(shù)領(lǐng)域,特別涉及一種fpga中多功能硬件專用乘法器及fpga芯片。
背景技術(shù):
fpga是一種具有豐富硬件資源、強大并行處理能力和靈活可重配置能力的邏輯器件。這些特征使得fpga在數(shù)據(jù)處理、通信、網(wǎng)絡(luò)等很多領(lǐng)域得到了越來越多的廣泛應(yīng)用。
目前,在現(xiàn)場可編程邏輯門陣列(fieldprogrammablegatearray,fpga)應(yīng)用中,要求集成電路具有可編程或可配置的互連網(wǎng)絡(luò),邏輯門通過可配置的互連網(wǎng)絡(luò)而彼此連接。作為獨立芯片或系統(tǒng)中核心部分起作用的fpga已經(jīng)廣泛被應(yīng)用于大量微電子設(shè)備中。廣義的fpga的邏輯門的定義,不單指簡單的與非門,也指具有可配置功能的組合邏輯與時序邏輯的邏輯單元(le,logicelement)或由多個邏輯單元互連而組成的邏輯塊。
目前數(shù)字信號處理器dsp(digitalsignalprocessor)中的乘法器作用單一,已經(jīng)無法滿足高性能的fpga芯片的要求。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是針對現(xiàn)有技術(shù)的缺陷,提供了一種fpga中多功能硬件專用乘法器,該乘法器能夠?qū)崿F(xiàn)高速、高性能的乘法運算,實現(xiàn)濾波器設(shè)計、數(shù)據(jù)比較,尤其是大位寬數(shù)據(jù)的乘法和比較的功能。
本發(fā)明第一方面提供一種fpga中多功能硬件專用乘法器,該乘法器包括前加法器、后加法器、數(shù)據(jù)選擇器、進位控制器、數(shù)據(jù)匹配比較器以及乘法計算單元;其中,所述前加法器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸出端與所述乘法計算單元的輸入端相連;所述乘法計算單元的輸出端與所述后加法器的第一輸入端相連;所述數(shù)據(jù)選擇器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸出端與所述后加法器的第二輸入端相連; 所述進位控制器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸出端與所述前加法器的第三輸入端相連;所述后加法器一個輸出端輸出第二串并行數(shù)據(jù),其另一個輸出端與所述數(shù)據(jù)匹配比較器的一個輸入端相連;所述數(shù)據(jù)匹配比較器的另一個輸入端接收fpga芯片的第一串并行數(shù)據(jù)。
在上述乘法器中,所述前加法器包括兩個單獨的18比特位寬的計算單元以及加法選擇器;其中,所述兩個單獨的計算單元合并可實現(xiàn)34比特位寬的加、減法運算,其余2比特位做進位保護位;所述加法選擇器的輸入端可從所述前加法器的運算結(jié)果輸入、fpga芯片的邏輯輸入、所述乘法器的輸入以及與所述乘法器位置相鄰的前一個乘法器的級聯(lián)輸入中選擇。
在上述乘法器中,所述乘法器計算單元包括兩個單獨的18×18二進制補碼的布斯子乘法器。
在上述乘法器中,所述后加法器包括四個輸入端口和兩個輸出端口;其中,四個輸入端口為三個56比特位寬的數(shù)據(jù)輸入以及一個比特位寬的進位控制器輸入,且三個56比特位寬的數(shù)據(jù)輸入來自三種不同類型的選擇器。
在上述乘法器中,所述數(shù)據(jù)選擇器為8選1的56位選擇器。
在上述乘法器中,所述進位控制器的輸入為五個1比特位的數(shù)據(jù)輸入和控制信號輸入,其內(nèi)部包括檢測邏輯。
在上述乘法器中,所述數(shù)據(jù)匹配比較器包括兩個輸入端口以及四個輸出端口;其中,所述兩個輸入端口支持最高位寬為56比特位的數(shù)據(jù)輸入。
在上述乘法器中,所述乘法器在fpga芯片的底部逐一排列至芯片的頂部,且每個乘法器都有多個數(shù)據(jù)進位端口與相連的上、下的乘法器級聯(lián)。
本發(fā)明第二方面提供一種fpga芯片,所述芯片包括如上任一所述的乘法器。
本發(fā)明提供了一種fpga中多功能硬件專用乘法器,該乘法器能夠?qū)崿F(xiàn)高速、高性能的乘法運算,實現(xiàn)濾波器設(shè)計、數(shù)據(jù)比較,尤其是大位寬數(shù)據(jù)的乘法和比較的功能;該乘法器能夠滿足高性能fpga芯片的要求。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種fpga中多功能硬件專用乘法器的示意圖;
圖2為本發(fā)明實施例提供的一種多功能乘法器中前加法器的示意圖;
圖3為本發(fā)明實施例提供的一種多功能乘法器中后加法器的示意圖;
圖4為本發(fā)明實施例提供的一種多功能乘法器中數(shù)據(jù)選擇器的示意圖;
圖5為本發(fā)明實施例提供的一種多功能乘法器中進位控制器的示意圖;
圖6為本發(fā)明實施例提供的一種多功能乘法器中數(shù)據(jù)匹配比較器的示意圖;
圖7為本發(fā)明實施例提供的一種多功能乘法器兩級級聯(lián)的示意圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。
本發(fā)明提供了一種fpga中多功能硬件專用乘法器,該乘法器能夠?qū)崿F(xiàn)高速、高性能的乘法運算,實現(xiàn)濾波器設(shè)計、數(shù)據(jù)比較,尤其是大位寬數(shù)據(jù)的乘法和比較的功能。
下面以圖1為例,對本發(fā)明實施例進行說明。圖1為本發(fā)明實施例提供的一種fpga中多功能硬件專用乘法器的示意圖。
如圖1所示,該乘法器包括前加法器、后加法器、數(shù)據(jù)選擇器、進位控制器、數(shù)據(jù)匹配比較器以及乘法計算單元。
具體地,所述前加法器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸出端與所述乘法計算單元的輸入端相連;所述乘法計算單元的輸出端與所述后加法器的第一輸入端相連;所述數(shù)據(jù)選擇器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸出端與所述后加法器的第二輸入端相連;所述進位控制器的輸入端接收fpga芯片的第一串并行數(shù)據(jù),其輸 出端與所述后加法器的第三輸入端相連;所述后加法器一個輸出端輸出第二串并行數(shù)據(jù),其另一個輸出端與所述數(shù)據(jù)匹配比較器的一個輸入端相連;所述數(shù)據(jù)匹配比較器的另一個輸入端接收fpga芯片的第一串并行數(shù)據(jù)。
在上述乘法器中,所述前加法器包括兩個單獨的18比特位寬的計算單元以及加法選擇器;其中,所述兩個單獨的計算單元合并可實現(xiàn)34比特位寬的加、減法運算,其余2比特位做進位保護位;所述加法選擇器的輸入端可從所述前加法器的運算結(jié)果輸入、fpga芯片的邏輯輸入、所述乘法器的輸入以及與所述乘法器位置相鄰的前一個乘法器的級聯(lián)輸入中選擇。
下面以圖2為例對前加法器進行說明,圖2為本發(fā)明實施例提供的一種多功能乘法器中前加法器的示意圖。
如圖2所示,前加法器中包括連個獨立的18比特位寬的加、減法器,并且前加法器總共支持10路18比特位寬數(shù)據(jù)的輸入和8路18比特位寬的輸出;其中,包括4路級聯(lián)數(shù)據(jù)的輸入和4路級聯(lián)數(shù)據(jù)的輸出。前加法器中包括大量的數(shù)據(jù)選擇器,可支持c_u、d_u、c_l、d_l、c_u_cas_in和c_l_cas_in之間的任意加、減法的組合。并且,前加法器中每一條數(shù)據(jù)通路包括0~2級可選的流水線寄存器,以便支持高性能濾波器設(shè)計;同時兩個計算單元合并擴展,實現(xiàn)大比特,如34位加法、減法運算。加法選擇器支持4路18比特位寬數(shù)據(jù)輸入和輸出的任意組合;故本發(fā)明實施例的乘法器可支持(a+b)2的形式。
在這里,前加法器帶有0、1、2級流水線寄存器的選擇,前加法器的輸入選擇器可以選擇fpga的邏輯輸入、該乘法器本身連線輸入以及與該乘法器相鄰的前一個乘法器的級聯(lián)輸入,可以做靈活的選擇。
在上述乘法器中,所述乘法器計算單元包括兩個單獨的18×18二進制補碼的布斯子乘法器。
在上述乘法器中,所述后加法器包括四個輸入端口和兩個輸出端口;其中,四個輸入端口為三個56比特位寬的數(shù)據(jù)輸入以及一個比特位寬的進位控制器輸入,且三個56比特位寬的數(shù)據(jù)輸入來自三種不同類型的選擇器。
下面以圖3為例,對后本發(fā)明實施例中的加法器進行說明。圖3為本發(fā)明實施例提供的一種多功能乘法器中后加法器的示意圖。
如圖3所示,后加法器包括四輸入端口,其中三個為56比特位寬的數(shù)據(jù)輸入和一個1比特位寬的控制信號輸入;兩個輸出端口,且所有的輸出端口可經(jīng)過可選的流水線寄存器作為級聯(lián)輸出。通過不同的控制選項,該后加法器可支持三輸入加法、減法的任意組合。并且后加法器經(jīng)過相應(yīng)的設(shè)置,兩個輸入端口可實現(xiàn)“或”、“與”、“異或”、“與非”、“或非”和“同或”等邏輯比較功能;同時,兩個輸入端可支持均為補碼形式或其中一個為補碼形式的“或”、“與”、“異或”、“與非”、“或非”和“同或”等邏輯關(guān)系。
需要說明的是,后加法器的四個輸入端口,三個輸入端口的輸入來自三種不同類型的選擇器,并且可以與乘法計算單元的兩個乘法計算單元的輸出、后加法器的反饋以及與該乘法器位置相鄰的前一個乘法器的級聯(lián)輸入做靈活的選擇。并且邏輯運算器包括在后加法器中,通過特殊的邏輯電路實現(xiàn)兩個超大位寬數(shù)據(jù)比較的邏輯關(guān)系。
在這里,輸出至后加法器的選擇器,可支持后加法器結(jié)果的反饋,通過一級流水線寄存器的反饋以及與該乘法器位置相鄰的前一個乘法器的級聯(lián)輸入,并支持這些輸入的邏輯移位選擇器;例如:左移17位、左移34位等,通過不同移位選擇器可以靈活的實現(xiàn)各種大位寬乘法的運算,如35乘35、18乘69等。
在上述乘法器中,所述數(shù)據(jù)選擇器為8選1的56位選擇器。
下面以圖4為例,對本發(fā)明實施例的數(shù)據(jù)選擇器進行說明。圖4為本發(fā)明實施例提供的一種多功能乘法器中數(shù)據(jù)選擇器的示意圖。
如圖4所述的數(shù)據(jù)選擇器,為8選1的56位選擇器,支持前一級乘法器結(jié)果的級聯(lián)、一級寄存器以及右移35或17位的選項。同時支持該乘法器中后加法器結(jié)果的反饋以及右移35或17位的選項。此外,該數(shù)據(jù)選擇器還支持一路來自fpga邏輯的數(shù)據(jù)輸入,同時數(shù)據(jù)選擇器的結(jié)果作為后加法器的一路輸入。
在上述乘法器中,所述進位控制器的輸入為五個1比特位的數(shù)據(jù)輸入和控制信號輸入,其內(nèi)部包括檢測邏輯。
下面以圖5為例,對本發(fā)明實施例中的進位控制器進行說明。圖5為本發(fā)明實施例提供的一種多功能乘法器中進位控制器的示意圖。
如圖5所示,進位控制器支持5路1比特位數(shù)據(jù)輸入和一路控制信號輸入。該進位控制器內(nèi)部包括檢測邏輯,可根據(jù)兩個子乘法器或后加法器的結(jié)果的最高位,即符號位,產(chǎn) 生相應(yīng)的進位信息,從而實現(xiàn)四舍五入的邏輯功能。此外,進位控制器可支持前一級乘法的進位級聯(lián),從而可實現(xiàn)多個乘法器組合的超大比特位(如112位及以上)的加、減法。
需要說明的是,進位控制器包括支持fpga邏輯的輸入和該乘法器位置相鄰的前一個加法器的級聯(lián)輸入,將選擇的結(jié)果輸出到后加法器中。
在上述乘法器中,所述數(shù)據(jù)匹配比較器包括兩個輸入端口以及四個輸出端口;其中,所述兩個輸入端口支持最高位寬為56比特位的數(shù)據(jù)輸入。
下面以圖6為例,對本發(fā)明實施例的數(shù)據(jù)匹配比較器進行說明。圖6為本發(fā)明實施例提供的一種多功能乘法器中數(shù)據(jù)匹配比較器的示意圖。
如圖6所示,數(shù)據(jù)匹配比較器可以同時支持兩路超大位寬的數(shù)據(jù),如56比特數(shù)據(jù)的相等的比較及補碼形式的比較。其中兩路超大位寬的數(shù)據(jù)可來自于fpga邏輯或乘法器的結(jié)果,且兩組數(shù)據(jù)的匹配可以以1-56位任意長度設(shè)置為有效位。數(shù)據(jù)匹配比較器和其他邏輯電路組合可實現(xiàn)任意自定義比特位的上溢出和下溢出檢測。上、下溢出的指示信號可以選擇直接輸出或經(jīng)過寄存器后輸出。
在上述乘法器中,所述乘法器在fpga芯片的底部逐一排列至芯片的頂部,且每個乘法器都有多個數(shù)據(jù)進位端口與相連的上、下的乘法器級聯(lián)。
下面以圖7為例,對本發(fā)明實施例中的乘法器級聯(lián)進行說明。圖7為本發(fā)明實施例提供的一種多功能乘法器兩級級聯(lián)的示意圖。
如圖7所示,該乘法器以列為單位,從fpga陣列中的底部逐一進行排列到陣列的頂部。其中,每個乘法器具有大量的數(shù)據(jù)進位端口與其相鄰的上、下的乘法器級聯(lián)。
需要說明的是,本發(fā)明實施例中的乘法器,還包括乘法器的專用連線接口,這些專用連線接口可以與該乘法器中位置相鄰的上、下專用乘法器直接連接。
本發(fā)明提供了一種fpga中多功能硬件專用乘法器,該乘法器能夠?qū)崿F(xiàn)高速、高性能的乘法運算,實現(xiàn)濾波器設(shè)計、數(shù)據(jù)比較,尤其是大位寬數(shù)據(jù)的乘法和比較的功能;該乘法器能夠滿足高性能fpga芯片的要求。
專業(yè)人員應(yīng)該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。 這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上所述的具體實施方式,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施方式而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。