亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于fpga芯片的乘法器的制造方法

文檔序號:8257890閱讀:467來源:國知局
基于fpga芯片的乘法器的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種乘法器,尤其涉及一種基于FPGA芯片的乘法器。
【背景技術(shù)】
[0002]在FPGA設(shè)計中,經(jīng)常要用到乘法操作。而在FPGA的芯片架構(gòu)中,通常會擁有大量的進位鏈用于實現(xiàn)加法操作。
[0003]現(xiàn)有技術(shù)中,在FPGA芯片中利用加法進位鏈實現(xiàn)乘法功能的研究目前還處于空白狀態(tài),而利用其他方法實現(xiàn)乘法的功能時,由于最終乘積的串行加法運算的次數(shù)往往過大,從而造成整個FPGA芯片運行效率低。

【發(fā)明內(nèi)容】

[0004]本發(fā)明的目的是針對現(xiàn)有技術(shù)的缺陷,提供了一種基于FPGA芯片的乘法器,該乘法器可以利用FPGA芯片中的加法進位鏈來實現(xiàn)乘法的功能。
[0005]為實現(xiàn)上述目的,本發(fā)明提供了一種基于FPGA芯片的乘法器,該乘法器包括:
[0006]部分積產(chǎn)生器,由第一查找表實現(xiàn),用于對乘數(shù)和被乘數(shù)中每一位分別進行與操作,獲得η項部分積數(shù)據(jù),所述乘數(shù)包括m位數(shù)據(jù),所述被乘數(shù)包括η位數(shù)據(jù),所述η項部分積數(shù)據(jù)中各項均包括m位數(shù)據(jù),其中,所述第一查找表根據(jù)乘數(shù)和被乘數(shù)中每一位分別進行與操作時,和所述被乘數(shù)相與的數(shù)據(jù)的位置而選定,使前述對乘數(shù)和被乘數(shù)中每一位分別進行與操作的所述第一查找表彼此相對移位,使得η項部分積數(shù)據(jù)彼此實現(xiàn)移位;
[0007]累加器,由第二查找表實現(xiàn),用于實現(xiàn)對所述η項部分積數(shù)據(jù)的累加處理,獲得求和數(shù)據(jù),所述求和數(shù)據(jù)包括m+n位數(shù)據(jù)。
[0008]在一種可能的實現(xiàn)方式,當所述乘法器處理的乘數(shù)和被乘數(shù)具有符號位時,所述部分積產(chǎn)生器還用于對所述獲得的η項部分積數(shù)據(jù)中第1、2.....η-1項部分積數(shù)據(jù)的第η
位進行取反操作,同時對第η項部分積數(shù)據(jù)的第1、2.....η-1位進行取反操作。
[0009]在一種可能的實現(xiàn)方式中,所述累加器包括第三查找表,用于實現(xiàn)對所述η項部分積數(shù)據(jù)的累加處理后的進位處理。
[0010]在一種可能的實現(xiàn)方式中,用最優(yōu)二叉樹來構(gòu)建實現(xiàn)對所述η項部分積數(shù)據(jù)的累加處理的累加器。
[0011]在一種可能的實現(xiàn)方式中,所述第一查找表對乘數(shù)的第i位和被乘數(shù)的第j位進行與操作而獲得一項部分積數(shù)據(jù)中的一位,所述第二查找表輸入乘數(shù)的第I位和被乘數(shù)的第J位以及所述一項部分積數(shù)據(jù)中的一位,對乘數(shù)的第I位和被乘數(shù)的第J位執(zhí)行與操作而獲得另一項部分積數(shù)據(jù)中的一位,對所述一項部分積數(shù)據(jù)中的一位和所述另一項部分積數(shù)據(jù)中的一位執(zhí)行異或運算,將運算結(jié)果輸入到多路選擇器和邏輯電路中,由所述多路選擇器向高位數(shù)據(jù)進位,由所述邏輯電路輸出所述兩項部分積數(shù)據(jù)中兩位的第一累加和,其中,i,j,I和J均為自然數(shù),i,I彡m,j,J彡η。
[0012]在一種可能的實現(xiàn)方式中,所述第二查找表輸入乘數(shù)的第t位和被乘數(shù)的第T位以及兩項部分積數(shù)據(jù)中兩位的第一累加和,對乘數(shù)的第t位和被乘數(shù)的第T位進行與操作而獲得另一項部分積數(shù)據(jù)中的一位,對所述第一累加和和所述另一項部分積數(shù)據(jù)中的一位執(zhí)行異或運算,將運算結(jié)果輸入到多路選擇器和邏輯電路中,由所述多路選擇器向高位數(shù)據(jù)進位,由所述邏輯電路輸出所述三項部分積數(shù)據(jù)中三位的第二累加和,其中,t和T均為自然數(shù),t彡m, T彡η。
[0013]在一種可能的實現(xiàn)方式中,所述累加器還包括第四查找表;所述第四查找表輸入兩項部分積數(shù)據(jù)中兩位的第三累加和和另兩項部分積數(shù)據(jù)中兩位的第四累加和,對所述第三累加和和所述第四累加和執(zhí)行異或運算,將運算結(jié)果輸入到多路選擇器和邏輯電路中,由所述多路選擇器向高位數(shù)據(jù)進位,由所述邏輯電路輸出所述四項部分積數(shù)據(jù)中四位的第五累加和。
[0014]在一種可能的實現(xiàn)方式中,所述部分積產(chǎn)生器中的所述第一查找表和所述累加器中的所述第二查找表部分合并為同一個查找表。
[0015]在一種可能的實現(xiàn)方式中,所述累加器還用于:對所述獲得的求和數(shù)據(jù)和一個常數(shù)項做累加處理。
[0016]本發(fā)明的基于FPGA芯片的乘法器,在對乘數(shù)和被乘數(shù)進行乘法運算時,其中,乘數(shù)包括m位,被乘數(shù)包括η位,且m>=n,通過由查找表實現(xiàn)的部分積產(chǎn)生器產(chǎn)生η項部分積數(shù)據(jù),通過基于最優(yōu)二叉樹構(gòu)建的累加器實現(xiàn)該η項部分積數(shù)據(jù)的累加,從而保證了 η項部分積數(shù)據(jù)的串行加法次數(shù)不超過log2n次,提高了整個FPGA芯片的運行效率。
【附圖說明】
[0017]圖1為本發(fā)明實施例一提供的基于FPGA芯片的乘法器;
[0018]圖2為用查找表實現(xiàn)4*4無符號數(shù)累加處理示意圖;
[0019]圖3為用查找表實現(xiàn)進位處理的不意圖;
[0020]圖4為本發(fā)明實施例二提供的基于FPGA芯片的乘法器;
[0021]圖5為用最優(yōu)二叉樹構(gòu)建的累加器實現(xiàn)4*4無符號數(shù)累加處理的示意圖;
[0022]圖6為用查找表實現(xiàn)累加操作示意圖之一;
[0023]圖7為用查找表實現(xiàn)累加操作示意圖之二 ;
[0024]圖8為用查找表實現(xiàn)累加操作示意圖之三;
[0025]圖9為本發(fā)明利用最優(yōu)二叉樹構(gòu)建累加器的邏輯示意圖。
【具體實施方式】
[0026]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
[0027]圖1為本發(fā)明實施例一提供的基于FPGA芯片的乘法器,如圖1所示,該基于FPGA芯片的乘法器10包括部分積產(chǎn)生器101和累加器102。
[0028]部分積產(chǎn)生器101,由第一查找表實現(xiàn),用于對乘數(shù)和被乘數(shù)中每一位分別進行與操作,獲得η項部分積數(shù)據(jù),所述乘數(shù)包括m位數(shù)據(jù),所述被乘數(shù)包括η位數(shù)據(jù),所述η項部分積數(shù)據(jù)中各項均包括m位數(shù)據(jù),其中,所述第一查找表根據(jù)乘數(shù)和被乘數(shù)中每一位分別進行與操作時,和所述被乘數(shù)相與的數(shù)據(jù)的位置而選定,使前述對乘數(shù)和被乘數(shù)中每一位分別進行與操作的所述第一查找表彼此相對移位,使得η項部分積數(shù)據(jù)彼此實現(xiàn)移位。
[0029]具體地,假如乘數(shù)包括m位數(shù)據(jù),表示為A[0]、A[1].....A[m_l],被乘數(shù)包括η位數(shù)據(jù),表示為B [O]、Β[1].....B [η-1],將乘數(shù)和被乘數(shù)的每一位分別進行與操作,獲得η項部分積數(shù)據(jù);需要說明的是,此處m>=n,當m〈n的時候,需要將乘數(shù)與被乘數(shù)進行交換,這樣才能保證部分積的數(shù)量盡量少,從而累加的次數(shù)盡量少,運行的效率才會高。將乘數(shù)和被乘數(shù)的每一位分別進行與操作具體實現(xiàn)為首先將A[0]、A[1].....A[m-1]分別與B[0]進行與操作,獲得第一項部分積數(shù)據(jù)Ρο[0]、Ρ(ι[1].....Ptl[m-1],該第一項部分積數(shù)據(jù)總共包括m
位,然后將A[0]、A[1].....A [m-1]分別與B [I]進行與操作,獲得第二項部分積數(shù)據(jù)Pl [O]、
P1 [I].....P1 [m-1],該第二項部分積數(shù)據(jù)總也包括m位,以此類推,直至將A[O]、A[I].....A [m-1]分別與B [η-1]進行與操作,獲得第η項部分積數(shù)據(jù)Plri [O]、Plri [I].....Pn^1 [m-1]。
需要說明的是,在上述過程中,乘數(shù)的第i位A[1-1]和被乘數(shù)的第j位B[j-1]的與操作通過第一查找表實現(xiàn),其中,i, j均為自然數(shù),且i < m,j < n,該第一查找表只實現(xiàn)兩位數(shù)據(jù)相與的操作;在將乘數(shù)的第i位A[1-1]和被乘數(shù)的第j位B[j-1]進行相與的操作時,根據(jù)j去選定相應的第一查找表,從而使前述對乘數(shù)和被乘數(shù)中每一位分別進行與操作的第一查找表彼此相對移位,使得η項部分積數(shù)據(jù)彼此實現(xiàn)移位。
[0030]累加器102,由第二查找表實現(xiàn),用于實現(xiàn)對所述η項部分積數(shù)據(jù)的累加處理,獲得求和數(shù)據(jù),所述求和數(shù)據(jù)包括m+n位數(shù)據(jù)。
[0031]為了提高運算效率,即在實現(xiàn)與操作的同時進行異或操作,將部分積產(chǎn)生器101中的第一查找表和累加器102中的第二查找表部分合并為同一個查找表。優(yōu)選地,由第二查找表同時實現(xiàn)對輸入的數(shù)據(jù)進行與操作和異或操作。圖2為用查找表實現(xiàn)4*4無符號數(shù)累加處理示意圖,圖中,乘數(shù)包括4位數(shù)據(jù),表示為A [O]、A [I].....A [3],被乘數(shù)包括4位數(shù)據(jù),表示為B[0]、B[1].....B[3],第一列是乘數(shù)的各位與被乘數(shù)的第一位B[0]進行與操作,即從第一行開始依次選定四個第一查找表LUTAND即可,第二列是乘數(shù)的各位與被乘數(shù)的第二位B[l]進行與操作,由于是與被乘數(shù)的第二位進行與操作,且同時可與第一列的結(jié)果數(shù)據(jù)進行異或操作,所以從第二行開始依次選定四個第二查找表LUT4CA即可,依次類推,直至選定第四列的四個第二查找表LUT4CA。從圖2中可以看出,上述選定的4列查找表彼此相對移位,使得四項部分積數(shù)據(jù)彼此實現(xiàn)移位;對該四項部分積數(shù)據(jù)做累加處理之后,即可獲得求和數(shù)據(jù)P [O]、P [I].....P [7],該求和數(shù)據(jù)包括4+4=8位數(shù)據(jù)。
[
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1