欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種可重構(gòu)的乘法器的制作方法

文檔序號(hào):6464535閱讀:262來(lái)源:國(guó)知局

專(zhuān)利名稱(chēng)::一種可重構(gòu)的乘法器的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及集成電路及可編程門(mén)陣列(FieldProgrammableGateArray簡(jiǎn)稱(chēng)FPGA)設(shè)計(jì)
技術(shù)領(lǐng)域
,具體涉及到FPGA芯片中專(zhuān)用乘法器模塊的設(shè)計(jì),為了滿(mǎn)足日益增長(zhǎng)的對(duì)信號(hào)處理能力的需求,本發(fā)明提供了一種用于FPGA芯片中的專(zhuān)用的可重構(gòu)的乘法器。
背景技術(shù)
:在多媒體及通信領(lǐng)域,一般要涉及到大量的數(shù)據(jù)運(yùn)算。比如在音視頻處理中的離散余弦變換及其逆變換、快速傅里葉變換以及GSM通訊系統(tǒng)中的編碼/解碼等,每秒鐘都要進(jìn)行數(shù)百萬(wàn)次的數(shù)據(jù)運(yùn)算,因此提高數(shù)據(jù)運(yùn)算的速度具有非常重大的意義。而乘法運(yùn)算是這些數(shù)據(jù)運(yùn)算中最主要也是最耗費(fèi)時(shí)間的運(yùn)算,因此高性能的乘法器在多媒體處理及通訊類(lèi)芯片、現(xiàn)代微處理器、數(shù)字信號(hào)處理器以及FPGA芯片中具有很重要的地位。
發(fā)明內(nèi)容(一)要解決的技術(shù)問(wèn)題有鑒于此,為了提高FPGA處理數(shù)據(jù)運(yùn)算的速度,本發(fā)明提供一種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器。(二)技術(shù)方案為達(dá)到上述目的,本發(fā)明提供了一種可重構(gòu)的乘法器,包括輸入單元,用于將乘數(shù)和被乘數(shù)分別輸出至部分積產(chǎn)生單元;部分積產(chǎn)生單元,用于對(duì)接收自輸入單元的乘數(shù)和被乘數(shù)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元;部分積壓縮單元,用于對(duì)部分積產(chǎn)生單元輸入的部分積進(jìn)行進(jìn)位保留加法器累加壓縮,得到一排和信號(hào)以及一排進(jìn)位信號(hào),輸出給最終積合成單元;最終積合成單元,包括一低位超前進(jìn)位加法器和一高位超前進(jìn)位加法器,用于對(duì)接收自部分積壓縮單元的一排和信號(hào)以及一排進(jìn)位信號(hào)進(jìn)行合并而產(chǎn)生積,并輸出給輸出單元;輸出單元,用于將接收自最終積合成單元的積采用異步操作或同步操作方式進(jìn)行輸出。上述方案中,所述輸入單元包括一乘數(shù)寄存器、一乘數(shù)選擇器、一被乘數(shù)寄存器和一被乘數(shù)選擇器,其中,乘數(shù)和被乘數(shù)的每一位進(jìn)入各自寄存器,然后寄存器的輸出信號(hào)與寄存器的輸入信號(hào)作為選擇器的兩個(gè)輸入信號(hào),在外部配置電路產(chǎn)生的選擇信號(hào)的作用下選擇輸出哪一個(gè)信號(hào)至部分積產(chǎn)生單元,且乘數(shù)的每一位經(jīng)過(guò)寄存器與選擇器后的輸出信號(hào)按三位一組,作為部分積產(chǎn)生單元中波茨編碼器的輸入信號(hào)。上述方案中,所述部分積產(chǎn)生單元包括一波茨編碼器和一部分積產(chǎn)生器,波茨編碼器對(duì)接收自輸入單元的三位一組的輸入信號(hào)進(jìn)行編碼,產(chǎn)生三個(gè)控制信號(hào)comp、shift、zero,并將產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero輸出給部分積產(chǎn)生器;部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元。上述方案中,所述部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積包括當(dāng)shift、zero均為"1",comp為"0"或"1"中的任一個(gè)時(shí),部分積產(chǎn)生器的輸出為0;當(dāng)comp、shift、zero均為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位a,;當(dāng)comp、zero均為"0",同時(shí)shift為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的低位信號(hào)aj.,,即左移一位;當(dāng)comp、shift均為"1",同時(shí)zero為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai的低位信號(hào)a卜,的取反:,即左移一位并取反;當(dāng)shift、zero均為"0",同時(shí)comp為"l"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的取反^。上述方案中,所述部分積壓縮單元是一進(jìn)位保留加法器陣列,對(duì)于18x18的可重構(gòu)的乘法器,是采用8級(jí)的進(jìn)位保留加法器來(lái)累加9排的部分積,其中第一排和第二排部分積作為第一級(jí)進(jìn)位保留加法器的輸入,這一級(jí)產(chǎn)生的和信號(hào)以及進(jìn)位信號(hào)與第三排部分積作為第二級(jí)進(jìn)位保留加法器的輸入,然后以此類(lèi)推;經(jīng)過(guò)8級(jí)進(jìn)位保留加法器累加后,輸出兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào),輸出給最終積合成單元。上述方案中,所述在8級(jí)的進(jìn)位保留加法器陣列的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器和選擇器,來(lái)選擇是采用帶流水線(xiàn)的操作還是不帶流水線(xiàn)的操作。上述方案中,所述最終積合成單元中的低位超前進(jìn)位加法器和高位超前進(jìn)位加法器,是低18位超前進(jìn)位加法器和高18位超前進(jìn)位加法器,該低18位超前迸位加法器和高18位超前進(jìn)位加法器將部分積壓縮單元輸入的兩排信號(hào)分成低18位與高18位兩組,每組由4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并,其中4位超前進(jìn)位加法器之間、4位超前進(jìn)位加法器與2位超前進(jìn)位加法器之間以及低位超前進(jìn)位加法器和高位超前進(jìn)位加法器之間都采用行波進(jìn)位方式,最后產(chǎn)生36位的積,輸出給輸出單元。上述方案中,所述輸出單元包括一高位輸出寄存器、一高位選擇器、一低位輸出寄存器和一低位選擇器,最終積合成單元輸入的積依次進(jìn)入高位寄存器和高位選擇器,或者低位寄存器和低位選擇器,來(lái)選擇是采用異步操作還是同步操作,最后從輸出單元中高位選擇器或低位選擇器輸出的36位信號(hào)就是最后的結(jié)果。上述方案中,該可重構(gòu)的乘法器通過(guò)外部配置電路對(duì)輸入單元、輸出單元以及部分積壓縮單元中選擇器的選擇位進(jìn)行配置,該乘法器共可配置成以下五種工作模式模式1:異步操作模式,乘法器的輸入、輸出以及中間結(jié)果都不帶寄存器,乘法器完全由組合電路組成;模式2:輸入同步模式,在乘法器的兩個(gè)輸入即被乘數(shù)和乘數(shù)之后帶寄存器,對(duì)輸入進(jìn)行同步;模式3:輸出同步模式,在乘法器的最后結(jié)果即積后帶寄存器,對(duì)輸出進(jìn)行同步;模式4:中間結(jié)果同步模式,對(duì)于18x18的乘法器,在8級(jí)的CSAarray的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器對(duì)中間結(jié)果進(jìn)行同步;模式5:流水線(xiàn)工作模式,對(duì)于18x18的乘法器,在乘法器的輸入、輸出以及8級(jí)CSAarray的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間均加入寄存器,實(shí)現(xiàn)一級(jí)的流水線(xiàn)操作,以提高乘法器的數(shù)據(jù)吞吐量與性能。上述方案中,所述外部配置電路是基于SRAM的6管單元,且該可重構(gòu)的乘法器是可擴(kuò)展的,可擴(kuò)展為任意位數(shù)的乘法器,在整個(gè)FPGA芯片中可根據(jù)應(yīng)用的需要增加或者減少乘法器的數(shù)目,乘法器的數(shù)目是參數(shù)化(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、本發(fā)明提供的這種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器,由于采用了專(zhuān)用的硬件來(lái)實(shí)現(xiàn)乘法運(yùn)算,而不是采用FPGA中的速度較慢并且需要用到大量的速度很慢并且占用很大面積的布線(xiàn)資源的查找表來(lái)實(shí)現(xiàn)乘法,所以,能夠大大提高FPGA處理數(shù)據(jù)運(yùn)算的速度。2、本發(fā)明提供的這種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器,由于采用了波茨編碼算法將部分積減少了一半,所以,能夠大大節(jié)省產(chǎn)生部分積以及累加部分積所需要的硬件資源,從而大大節(jié)約了芯片面積并且極大地提高了芯片速度。3、本發(fā)明提供的這種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器,由于采用了結(jié)構(gòu)規(guī)則并且速度很快的進(jìn)位保留加法器陣列來(lái)累加部分積,所以,能夠得到很規(guī)則的芯片版圖,并且大大提高了擴(kuò)展性,可以很方便的將其擴(kuò)展為位數(shù)更寬的乘法器。4、本發(fā)明提供的這種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器,由于采用了兩組超前進(jìn)位加法器,每組由4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并最終積,所以,能夠最大限度的滿(mǎn)足乘法器速度與面積的折衷。5、本發(fā)明提供的這種嵌入在FPGA芯片中的專(zhuān)用的可重構(gòu)乘法器,8由于在輸入、輸出以及中間結(jié)果處都插入了寄存器與選擇器,可以配置成同步操作模式以及流水線(xiàn)模式,而不需要用到FPGA中邏輯單元中的D觸發(fā)器以及大量的速度很慢并且占用很大面積的布線(xiàn)資源來(lái)實(shí)現(xiàn)同步操作和流水線(xiàn)操作,所以,能夠大大提高芯片的速度,節(jié)約芯片的資源。圖l是本發(fā)明提供的乘法器的結(jié)構(gòu)示意圖2是本發(fā)明提供的乘法器的五種工作模式的示意圖;其中,(a)是模式1:異步操作模式,(b)是模式2:輸入同步模式,(c)是模式3:輸出同步模式,(d)是模式4:中間結(jié)果同步模式,(e)是模式5:流水線(xiàn)工作模式;圖3是本發(fā)明提供的乘法器的外部配置電路的電路圖示意圖。具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明是一個(gè)用于FPGA芯片中的專(zhuān)用的可重構(gòu)的乘法器。該乘法器采用改進(jìn)的波茨編碼算法來(lái)減少部分積的數(shù)目。該乘法器的兩個(gè)輸入a和b都是18位的,輸出p是36位的,并且都用二進(jìn)制補(bǔ)碼表示。該乘法器可以完成18xl8的有符號(hào)乘法,也可以完成17xl7的無(wú)符號(hào)乘法,并且是可重構(gòu)的。該乘法器可以配置成異步的操作與同步的操作,同時(shí)也可以配置成帶流水線(xiàn)的操作與不帶流水線(xiàn)的操作。該乘法器一共可配置成五種工作模式。該乘法器的構(gòu)造方法為首先采用改進(jìn)的波茨編碼算法對(duì)乘數(shù)b(18位)進(jìn)行波茨編碼來(lái)產(chǎn)生3個(gè)控制信號(hào),并且用這三個(gè)控制信號(hào)來(lái)控制被乘數(shù)a(18位)的每一位ai進(jìn)行操作并產(chǎn)生部分積;然后用加法器樹(shù)將產(chǎn)生的部分積進(jìn)行累加從而產(chǎn)生最后兩排的和與進(jìn)位;最后用一個(gè)快速加法器將最后兩排的和與進(jìn)位相加從而產(chǎn)生最后的積p。如圖1所示,圖1是本發(fā)明提供的乘法器的結(jié)構(gòu)示意圖,該乘法器包括輸入單元、部分積產(chǎn)生單元、部分積壓縮單元、最終積合成單元和輸出單元。其中,輸入單元用于將乘數(shù)和被乘數(shù)分別輸出至部分積產(chǎn)生單元;部分積產(chǎn)生單元用于對(duì)接收自輸入單元的乘數(shù)和被乘數(shù)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元;部分積壓縮單元用于對(duì)部分積產(chǎn)生單元輸入的部分積進(jìn)行進(jìn)位保留加法器累加壓縮,得到一排和信號(hào)以及一排進(jìn)位信號(hào),輸出給最終積合成單元;最終積合成單元,包括一低位超前進(jìn)位加法器和一高位超前進(jìn)位加法器,用于對(duì)接收自部分積壓縮單元的一排和信號(hào)以及一排進(jìn)位信號(hào)進(jìn)行合并而產(chǎn)生積,并輸出給輸出單元;輸出單元用于將接收自最終積合成單元的積采用異步操作或同步操作方式進(jìn)行輸出。該輸入單元包括一乘數(shù)寄存器、一乘數(shù)選擇器、一被乘數(shù)寄存器和一被乘數(shù)選擇器。其中,乘數(shù)和被乘數(shù)的每一位進(jìn)入各自寄存器,然后寄存器的輸出信號(hào)與寄存器的輸入信號(hào)作為選擇器的兩個(gè)輸入信號(hào),在外部配置電路產(chǎn)生的選擇信號(hào)的作用下選擇輸出哪一個(gè)信號(hào)至部分積產(chǎn)生單元,且乘數(shù)的每一位經(jīng)過(guò)寄存器與選擇器后的輸出信號(hào)按三位一組,作為部分積產(chǎn)生單元中波茨編碼器的輸入信號(hào)。該部分積產(chǎn)生單元包括一波茨編碼器和一部分積產(chǎn)生器,波茨編碼器對(duì)接收自輸入單元的三位一組的輸入信號(hào)進(jìn)行編碼,產(chǎn)生三個(gè)控制信號(hào)comp、shift、zero,并將產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero輸出給部分積產(chǎn)生器;部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元。該部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積包括當(dāng)shift、zero均為"1",comp為"0"或"1"中的任一個(gè)時(shí),部分積產(chǎn)生器的輸出為0;當(dāng)comp、shift、zero均為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位a,;當(dāng)comp、zero均為"0",同時(shí)shift為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的低位信號(hào)a卜,,即左移一位;當(dāng)comp、shift均為"1",同時(shí)zero為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai的低位信號(hào)a,'的取反,即左移一位并取反;當(dāng)shift、zero均為"0",同時(shí)comp為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的取反aj。該部分積壓縮單元是一進(jìn)位保留加法器陣列,對(duì)于18x18的可重構(gòu)的乘法器,是采用8級(jí)的進(jìn)位保留加法器來(lái)累加9排的部分積,其中第一排和第二排部分積作為第一級(jí)進(jìn)位保留加法器的輸入,這一級(jí)產(chǎn)生的和信號(hào)以及進(jìn)位信號(hào)與第三排部分積作為第二級(jí)進(jìn)位保留加法器的輸入,然后以此類(lèi)推;經(jīng)過(guò)8級(jí)進(jìn)位保留加法器累加后,輸出兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào),輸出給最終積合成單元。在8級(jí)的進(jìn)位保留加法器陣列的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器和選擇器,來(lái)選擇是采用帶流水線(xiàn)的操作還是不帶流水線(xiàn)的操作。該最終積合成單元中的低位超前進(jìn)位加法器和高位超前進(jìn)位加法器,是低18位超前進(jìn)位加法器和高18位超前進(jìn)位加法器,該低18位超前進(jìn)位加法器和高18位超前進(jìn)位加法器將部分積壓縮單元輸入的兩排信號(hào)分成低18位與高18位兩組,每組由4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并,其中4位超前進(jìn)位加法器之間、4位超前進(jìn)位加法器與2位超前進(jìn)位加法器之間以及低位超前進(jìn)位加法器和高位超前進(jìn)位加法器之間都采用行波進(jìn)位方式,最后產(chǎn)生36位的積,輸出給輸出單元。該輸出單元包括一高位輸出寄存器、一高位選擇器、一低位輸出寄存器和一低位選擇器,最終積合成單元輸入的積依次進(jìn)入高位寄存器和高位選擇器,或者低位寄存器和低位選擇器,來(lái)選擇是采用異步操作還是同步操作,最后從輸出單元中高位選擇器或低位選擇器輸出的36位信號(hào)就是最后的結(jié)果。該可重構(gòu)的乘法器通過(guò)外部配置電路對(duì)輸入單元、輸出單元以及部分積壓縮單元中選擇器的選擇位進(jìn)行配置,該乘法器共可配置成以下五種工作模式模式1:異步操作模式,乘法器的輸入、輸出以及中間結(jié)果都不帶寄存器,乘法器完全由組合電路組成;模式2:輸入同步模式,在乘法器的兩個(gè)輸入即被乘數(shù)和乘數(shù)之后帶寄存器,對(duì)輸入進(jìn)行同步;模式3:輸出同步模式,在乘法器的最后結(jié)果即積后帶寄存器,對(duì)輸出進(jìn)行同步;ii模式4:中間結(jié)果同步模式,對(duì)于18x18的乘法器,在8級(jí)的CSAarray的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器對(duì)中間結(jié)果進(jìn)行同步;模式5:流水線(xiàn)工作模式,對(duì)于18x18的乘法器,在乘法器的輸入、輸出以及8級(jí)CSAarray的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間均加入寄存器,實(shí)現(xiàn)一級(jí)的流水線(xiàn)操作,以提高乘法器的數(shù)據(jù)吞吐量與性能。該乘法器的外部配置電路是基于SRAM的存儲(chǔ)單元,且該可重構(gòu)的乘法器是可擴(kuò)展的,可擴(kuò)展為任意位數(shù)的乘法器,在整個(gè)FPGA芯片中可以根據(jù)應(yīng)用的需要增加或者減少乘法器的數(shù)目,也就是說(shuō)乘法器的數(shù)目是參數(shù)化的。下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方法作具體的詳細(xì)的描述。本發(fā)明可以有許許多多實(shí)現(xiàn)的途徑,本實(shí)施方法中所舉例的實(shí)例只是其中之一。該實(shí)例的提供是為了使本公開(kāi)是徹底的和完整的,并且向熟悉本領(lǐng)域的人員全面地傳達(dá)本發(fā)明的思想。但本發(fā)明并不僅局限于本具體實(shí)施方式。乘法操作可以分為三步來(lái)完成第一步,產(chǎn)生部分積;第二步,累加部分積;第三步,最終相加。如圖l所示的本發(fā)明提供的乘法器的結(jié)構(gòu)示意圖,其中第一步,產(chǎn)生部分積是由圖中的部分積產(chǎn)生單元l來(lái)完成的,部分積產(chǎn)生單元l又包括兩個(gè)模塊,即波茨編碼器和部分積產(chǎn)生器,其中波茨編碼器的功能是對(duì)乘數(shù)b進(jìn)行波茨編碼,部分積產(chǎn)生器的功能是控制被乘數(shù)a產(chǎn)生部分積。第二步,累加部分積是由圖中的部分積壓縮單元2即進(jìn)位保留加法器陣列來(lái)完成的,其功能是將部分積壓縮成兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào),第三步,最終相加是由圖中的最終積合成單元3來(lái)完成的,最終積合成單元3又分為兩部分,即低位超前進(jìn)位加法器和高位超前進(jìn)位加法器,他們的功能是將部分積壓縮單元2輸出的兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào)合并成最后的積。由于我們的乘法器是可重構(gòu)的,這部分是由圖中的輸入單元4、輸出單元5以及部分積壓縮單元2中的部分模塊來(lái)完成的,它們都是由寄存器模塊、選擇器模塊以及外部配置電路組成的,這部分的功能是通過(guò)外部配置電路配置選擇器的選擇位來(lái)決定乘法器是采用異步的操作還是同步的操作,以及是帶流水線(xiàn)的操作還是不帶流水線(xiàn)的操作。當(dāng)外部配置電路使輸入單元4中的選擇器模塊的選擇位為"1"時(shí),該乘法器采用輸入同步操作;當(dāng)外部配置電路使輸出單元5中的選擇器模塊的選擇位為"1"時(shí),該乘法器采用輸出同步操作;當(dāng)外部配置電路使部分積壓縮單元2中的選擇器模塊的選擇位為"1"時(shí),該乘法器采用中間結(jié)果同步操作;當(dāng)外部配置電路同時(shí)使輸入單元4中的選擇器模塊的選擇位、輸出單元5中的選擇器模塊的選擇位以及部分積壓縮單元2中的選擇器模塊的選擇位為"0"時(shí),該乘法器采用異步操作;當(dāng)外部配置電路同時(shí)使輸入單元4中的選擇器模塊的選擇位、輸出單元5中的選擇器模塊的選擇位以及部分積壓縮單元2中的選擇器模塊的選擇位為"1"時(shí),該乘法器采用流水線(xiàn)操作,其他情況為不帶流水線(xiàn)的操作。下面再按照信號(hào)流的方向?qū)@些單元以及模塊的功能來(lái)進(jìn)行詳細(xì)說(shuō)明第一步如圖1所示,乘法器的兩個(gè)輸入即被乘數(shù)a與乘數(shù)b的每一位都經(jīng)過(guò)一個(gè)寄存器,然后寄存器的輸出信號(hào)與寄存器的輸入信號(hào)作為選擇器的兩個(gè)輸入,用外部配置電路產(chǎn)生的選擇信號(hào)來(lái)選擇是輸出哪一個(gè)。其中乘數(shù)b的每一位經(jīng)過(guò)寄存器與選擇器后的輸出信號(hào)按三位一組分別作為波茨編碼器的輸入信號(hào)。其中波茨編碼器的工作原理如下根據(jù)波茨編碼,乘數(shù)b依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)按三位一組進(jìn)行劃分,相互重疊一位。波茨編碼器將每一組的三位按表l進(jìn)行編碼,并產(chǎn)生三個(gè)控制信號(hào)comp、shift、zero。其中表l(表l是波茨編碼的真值表)第四列中的編碼值的意義如下+0X與-0x表示部分積全為0;+^表示部分積為被乘數(shù)的一個(gè)副本;+2乂表示部分積是被乘數(shù)乘以2;-2乂表示部分積是被乘數(shù)乘以-2;-IX表示部分積是被乘數(shù)乘以-1。波茨編碼器產(chǎn)生的3個(gè)輸出信號(hào)進(jìn)入部分積產(chǎn)生器。<table>tableseeoriginaldocumentpage14</column></row><table>表1部分積產(chǎn)生器的工作原理如下用波茨編碼器產(chǎn)生的三個(gè)輸出信號(hào)comp、shift、zero作為控制信號(hào)來(lái)控制被乘數(shù)a依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作,并產(chǎn)生一個(gè)部分積,即當(dāng)shift、zero均為"l",comp為"0"或"1"中的任一個(gè)時(shí),部分積產(chǎn)生器的輸出為0;當(dāng)comp、shift、zero均為"0"時(shí),部分積產(chǎn)生器的瑜岀為被乘數(shù)a的對(duì)應(yīng)位ai;當(dāng)comp、zero均為"0",同時(shí)shift為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位3i的低位信號(hào)a,..,,即左移一位;當(dāng)comp、shift均為"1",同時(shí)zero為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai的低位信號(hào)ai.,的取反:,即左移一位并取反;當(dāng)shift、zero均為"0",同時(shí)comp為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai的取反^。因此針對(duì)被乘數(shù)的每一位都有一個(gè)部分積產(chǎn)生器,同一排的部分積產(chǎn)生器的3個(gè)控制信號(hào)都是相同的,都來(lái)自于對(duì)應(yīng)的波茨編碼器。對(duì)于18xl8的乘法器,共需要9個(gè)波茨編碼器,每個(gè)波茨編碼器控制一排共18個(gè)部分積產(chǎn)生器來(lái)產(chǎn)生一排部分積,其中每個(gè)部分積產(chǎn)生器的輸入信號(hào)從低到高依次為被乘數(shù)的每一位a0al8經(jīng)過(guò)寄存器和選擇器的輸出信號(hào).因此,對(duì)于18xi8的乘法器,一共有9排部分積產(chǎn)生器共產(chǎn)生9排部分積,其中每排部分積產(chǎn)生器的輸入都是相同的,即被乘數(shù)的每一位a0al8經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)。這樣經(jīng)過(guò)部分積產(chǎn)生單元1就產(chǎn)生了9排部分積。第二步9排部分積產(chǎn)生之后,必須將他們相加。如圖1所示,這部分是由其中的部分積壓縮單元2即進(jìn)位保留加法器陣列來(lái)完成的。對(duì)于18xl8的乘法器,將需要8級(jí)的進(jìn)位保留加法器來(lái)累加9排的部分積。其中第一排和第二排部分積作為第一級(jí)進(jìn)位保留加法器的輸入,這一級(jí)產(chǎn)生的和信號(hào)與進(jìn)位信號(hào)與第三排部分積作為第二級(jí)進(jìn)位保留加法器的輸入,然后以此類(lèi)推。同時(shí)我們?cè)?級(jí)的進(jìn)位保留加法器陣列的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間也加入了一排寄存器和選擇器來(lái)選擇是采用帶流水線(xiàn)的操作還是不帶流水線(xiàn)的操作。經(jīng)過(guò)8級(jí)進(jìn)位保留加法器累加后最后輸出兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào)進(jìn)入最終積合成單元。第三步9排部分積經(jīng)過(guò)8級(jí)進(jìn)位保留加法器累加后輸出的兩排即一排和信號(hào)與一排進(jìn)位信號(hào)進(jìn)入最終積合成單元3即超前進(jìn)位加法器。由于最終積合成單元的操作性能對(duì)整個(gè)乘法器的性能至關(guān)重要,因此我們采用了超前進(jìn)位加法器CLA(CarryLook-aheadAdder)來(lái)合并最后的結(jié)果。如圖l所示,這一部分是由圖中的最終積合成單元3即低位超前進(jìn)位加法器和高位超前進(jìn)位加法器來(lái)完成的。由于4位的超前進(jìn)位加法器能夠達(dá)到性能和面積的最好折衷,而我們最后的部分積是36位,同時(shí)我們將最終積合成單元分為低18位與高18位。因此,我們將最后需要合并的向量分成低18位與高18位兩組,其中每組由4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并,最后產(chǎn)生36位的積。也就是說(shuō),部分積壓縮單元2輸出的兩排信號(hào),分為低18位與高18位兩組,每組用4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并,其中4位超前進(jìn)位加法器之間、4位超前進(jìn)位加法器與2位超前進(jìn)位加法器之間以及低位超前進(jìn)位加法器和高位超前進(jìn)位加法器之間都采用行波進(jìn)位方式。這樣經(jīng)過(guò)最終積合成單元3超前進(jìn)位加法器的合并,最后就產(chǎn)生了36位的積p。同時(shí),最后產(chǎn)生的積p進(jìn)入輸出單元5,即依次進(jìn)入寄存器和選擇器來(lái)選擇是采用異步操作還是同步操作。最后從輸出單元5中選擇器模塊輸出的36位信號(hào)就是最后的結(jié)果。我們的乘法器是可以配置的。通過(guò)外部配置電路對(duì)輸入單元4、輸出單元5以及部分積壓縮單元2中的選擇器的配置,即配置選擇器的選擇位,該乘法器一共可配置成五種工作模式。這五種工作方式如圖2所示。對(duì)乘法器進(jìn)行配置的電路是基于SRAM的6管單元,其電路圖如圖3所示。在15整個(gè)FPGA芯片中可以根據(jù)應(yīng)用的需要增加或者減少乘法器的數(shù)目,也就是說(shuō)乘法器的數(shù)目是參數(shù)化的。以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1、一種可重構(gòu)的乘法器,其特征在于,包括輸入單元,用于將乘數(shù)和被乘數(shù)分別輸出至部分積產(chǎn)生單元;部分積產(chǎn)生單元,用于對(duì)接收自輸入單元的乘數(shù)和被乘數(shù)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元;部分積壓縮單元,用于對(duì)部分積產(chǎn)生單元輸入的部分積進(jìn)行進(jìn)位保留加法器累加壓縮,得到一排和信號(hào)以及一排進(jìn)位信號(hào),輸出給最終積合成單元;最終積合成單元,包括一低位超前進(jìn)位加法器和一高位超前進(jìn)位加法器,用于對(duì)接收自部分積壓縮單元的一排和信號(hào)以及一排進(jìn)位信號(hào)進(jìn)行合并而產(chǎn)生積,并輸出給輸出單元;輸出單元,用于將接收自最終積合成單元的積采用異步操作或同步操作方式進(jìn)行輸出。2、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,所述輸入單元包括一乘數(shù)寄存器、一乘數(shù)選擇器、一被乘數(shù)寄存器和一被乘數(shù)選擇器,其中,乘數(shù)和被乘數(shù)的每一位進(jìn)入各自寄存器,然后寄存器的輸出信號(hào)與寄存器的輸入信號(hào)作為選擇器的兩個(gè)輸入信號(hào),在外部配置電路產(chǎn)生的選擇信號(hào)的作用下選擇輸出哪一個(gè)信號(hào)至部分積產(chǎn)生單元,且乘數(shù)的每一位經(jīng)過(guò)寄存器與選擇器后的輸出信號(hào)按三位一組,作為部分積產(chǎn)生單元中波茨編碼器的輸入信號(hào)。3、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,所述部分積產(chǎn)生單元包括一波茨編碼器和一部分積產(chǎn)生器,波茨編碼器對(duì)接收自輸入單元的三位一組的輸入信號(hào)進(jìn)行編碼,產(chǎn)生三個(gè)控制信號(hào)comp、shift、zero,并將產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero輸出給部分積產(chǎn)生器;部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元。4、根據(jù)權(quán)利要求3所述的可重構(gòu)的乘法器,其特征在于,所述部分積產(chǎn)生器利用波茨編碼器產(chǎn)生的三個(gè)控制信號(hào)comp、shift、zero控制被乘數(shù)依次經(jīng)過(guò)寄存器和選擇器的輸出信號(hào)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積包括當(dāng)shift、zero均為"1",c畫(huà)p為"0"或"1"中的任一個(gè)時(shí),部分積產(chǎn)生器的輸出為0;當(dāng)comp、shift、zero均為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai;當(dāng)comp、zero均為"0",同時(shí)shift為"l"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的低位信號(hào)ai.,,即左移一位;當(dāng)comp、shift均為"1",同時(shí)zero為"0"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位aj的低位信號(hào)a卜,的取反^,即左移一位并取反;當(dāng)shift、zero均為"0",同時(shí)comp為"1"時(shí),部分積產(chǎn)生器的輸出為被乘數(shù)a的對(duì)應(yīng)位ai的取反^。5、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,所述部分積壓縮單元是一進(jìn)位保留加法器陣列,對(duì)于18x18的可重構(gòu)的乘法器,是采用8級(jí)的進(jìn)位保留加法器來(lái)累加9排的部分積,其中第一排和第二排部分積作為第一級(jí)進(jìn)位保留加法器的輸入,這一級(jí)產(chǎn)生的和信號(hào)以及進(jìn)位信號(hào)與第三排部分積作為第二級(jí)進(jìn)位保留加法器的輸入,然后以此類(lèi)推;經(jīng)過(guò)8級(jí)進(jìn)位保留加法器累加后,輸出兩排信號(hào)即一排和信號(hào)與一排進(jìn)位信號(hào),輸出給最終積合成單元。6、根據(jù)權(quán)利要求5所述的可重構(gòu)的乘法器,其特征在于,所述在8級(jí)的進(jìn)位保留加法器陣列的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器和選擇器,來(lái)選擇是采用帶流水線(xiàn)的操作還是不帶流水線(xiàn)的操作。7、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,所述最終積合成單元中的低位超前進(jìn)位加法器和高位超前進(jìn)位加法器,是低18位超前進(jìn)位加法器和高18位超前進(jìn)位加法器,該低18位超前進(jìn)位加法器和高18位超前進(jìn)位加法器將部分積壓縮單元輸入的兩排信號(hào)分成低18位與高18位兩組,每組由4個(gè)4位超前進(jìn)位加法器和1個(gè)2位超前進(jìn)位加法器來(lái)合并,其中4位超前進(jìn)位加法器之間、4位超前進(jìn)位加法器與2位超前進(jìn)位加法器之間以及低位超前進(jìn)位加法器和高位超前進(jìn)位加法器之間都采用行波進(jìn)位方式,最后產(chǎn)生36位的積,輸出給輸出單元。8、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,所述輸出單元包括一高位輸出寄存器、一高位選擇器、一低位輸出寄存器和一低位選擇器,最終積合成單元輸入的積依次進(jìn)入高位寄存器和高位選擇器,或者低位寄存器和低位選擇器,來(lái)選擇是采用異步操作還是同步操作,最后從輸出單元中高位選擇器或低位選擇器輸出的36位信號(hào)就是最后的結(jié)果。9、根據(jù)權(quán)利要求1所述的可重構(gòu)的乘法器,其特征在于,該可重構(gòu)的乘法器通過(guò)外部配置電路對(duì)輸入單元、輸出單元以及部分積壓縮單元中選擇器的選擇位進(jìn)行配置,該乘法器共可配置成以下五種工作模式模式1:異步操作模式,乘法器的輸入、輸出以及中間結(jié)果都不帶寄存器,乘法器完全由組合電路組成;模式2:輸入同步模式,在乘法器的兩個(gè)輸入即被乘數(shù)和乘數(shù)之后帶寄存器,對(duì)輸入進(jìn)行同步;模式3:輸出同步模式,在乘法器的最后結(jié)果即積后帶寄存器,對(duì)輸出進(jìn)行同步;模式4:中間結(jié)果同步模式,對(duì)于18xl8的乘法器,在8級(jí)的CSAarmy的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間加入一排寄存器對(duì)中間結(jié)果進(jìn)行同步;模式5:流水線(xiàn)工作模式,對(duì)于18x18的乘法器,在乘法器的輸入、輸出以及8級(jí)CSAarmy的中間即第4級(jí)和第5級(jí)進(jìn)位保留加法器之間均加入寄存器,實(shí)現(xiàn)一級(jí)的流水線(xiàn)操作,以提高乘法器的數(shù)據(jù)吞吐量與性能。10、根據(jù)權(quán)利要求9所述的可重構(gòu)的乘法器,其特征在于,所述外部配置電路是基于SRAM的6管單元,且該可重構(gòu)的乘法器是可擴(kuò)展的,可擴(kuò)展為任意位數(shù)的乘法器,在整個(gè)FPGA芯片中可根據(jù)應(yīng)用的需要增加或者減少乘法器的數(shù)目,乘法器的數(shù)目是參數(shù)化的。全文摘要本發(fā)明公開(kāi)了一種可重構(gòu)的乘法器,包括輸入單元,用于將乘數(shù)和被乘數(shù)分別輸出至部分積產(chǎn)生單元;部分積產(chǎn)生單元,用于對(duì)接收自輸入單元的乘數(shù)和被乘數(shù)的每一位進(jìn)行操作產(chǎn)生一個(gè)部分積,并輸出給部分積壓縮單元;部分積壓縮單元,用于對(duì)部分積產(chǎn)生單元輸入的部分積進(jìn)行進(jìn)位保留加法器累加壓縮,得到一排和信號(hào)以及一排進(jìn)位信號(hào),輸出給最終積合成單元;最終積合成單元,包括一低位超前進(jìn)位加法器和一高位超前進(jìn)位加法器,用于對(duì)接收自部分積壓縮單元的一排和信號(hào)以及一排進(jìn)位信號(hào)進(jìn)行合并而產(chǎn)生積,并輸出給輸出單元;輸出單元,用于將接收自最終積合成單元的積采用異步操作或同步操作方式進(jìn)行輸出。本發(fā)明能夠大大提高FPGA處理數(shù)據(jù)運(yùn)算的速度。文檔編號(hào)G06F7/53GK101625634SQ20081011639公開(kāi)日2010年1月13日申請(qǐng)日期2008年7月9日優(yōu)先權(quán)日2008年7月9日發(fā)明者余洪敏,劉忠立,陳陵都申請(qǐng)人:中國(guó)科學(xué)院半導(dǎo)體研究所
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
潜江市| 弥勒县| 靖安县| 巴青县| 云和县| 克什克腾旗| 雅江县| 昌江| 徐汇区| 台北县| 探索| 大悟县| 横峰县| 侯马市| 宿松县| 五峰| 马关县| 赤水市| 惠州市| 吉林省| 邵武市| 北宁市| 罗定市| 洞口县| 沂源县| 英德市| 嘉祥县| 浙江省| 金川县| 青川县| 甘孜| 盐山县| 上高县| 盈江县| 丰顺县| 伊吾县| 新丰县| 隆德县| 沅江市| 穆棱市| 洪洞县|