新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 20×18位符號(hào)定點(diǎn)乘法器的FPGA實(shí)現(xiàn)

20×18位符號(hào)定點(diǎn)乘法器的FPGA實(shí)現(xiàn)

作者: 時(shí)間:2009-06-16 來(lái)源:網(wǎng)絡(luò) 收藏

1.1 Booth編碼與部分積的設(shè)計(jì)
在此采用的是基4-Booth編碼方式。在補(bǔ)碼表示的二進(jìn)制數(shù)據(jù)中,擴(kuò)展其最高位,并無(wú)影響。乘數(shù)A位寬為N,若N為奇數(shù)將A作擴(kuò)展為A',使其位寬為偶數(shù)。設(shè)定:經(jīng)過(guò)處理以后,乘數(shù)A'寬度為H,H為偶數(shù)且不得小于N。則乘數(shù)A'可表示為:


其值如表1所示:

可以看到:基4布思編碼一次考慮了3位:本位、相鄰高位、相鄰低位;處理了2位,確定運(yùn)算量0,1B,2B,形成(H/2)項(xiàng)編碼項(xiàng)、乘積項(xiàng)。對(duì)于2B的實(shí)現(xiàn),只需要將B左移1位。因此,不管從那方面來(lái)說(shuō),基4算法方便又快捷。而基2算法1次只考慮2位、處理1位,形成N項(xiàng)編碼項(xiàng)、乘積項(xiàng),只是方便而已。SMIC提供的O.18 vm標(biāo)準(zhǔn)單元庫(kù)中,布思編碼邏輯表達(dá)式為:


以M2指示相鄰高位,以M1指示本位,以M0指示相鄰低位。S為0時(shí)正,為1時(shí)負(fù);A為0時(shí)操作數(shù)為0,為1時(shí)操作數(shù)為B;X2為O時(shí)操作數(shù)為0,為1時(shí)操作數(shù)為28。對(duì)于0,B,2B都比較好實(shí)現(xiàn),2B=(B1);對(duì)于(-2B)實(shí)現(xiàn)如下:一2B=2×(-B)=[~(B1)]+1在硬件實(shí)現(xiàn)中,相鄰部分積之間的權(quán)相差4,也就是部分積之間錯(cuò)開(kāi)兩位,把加1拿出來(lái);對(duì)于所有As為1時(shí),把所有的加1拿出來(lái)單獨(dú)做部分積,這樣可以省去多個(gè)加法器,節(jié)省器件。對(duì)與一個(gè)18 b的乘數(shù),可以產(chǎn)生9個(gè)部分積,改進(jìn)此Booth編碼,再加上一個(gè)補(bǔ)1的數(shù),一共產(chǎn)生10個(gè)加數(shù)。
1.2 4-2壓縮邏輯實(shí)現(xiàn)
4-2壓縮原理圖如圖2所示。它有5個(gè)輸入端:A,B,C,D,ICI;三個(gè)輸出端:S,CO,ICO。將5-3編碼器并成1行,即為5-3計(jì)數(shù)行;若將相鄰低位之ICO接入本位之ICI,則成為4-2壓縮器。這樣可以減少2個(gè)操作數(shù)。5-3計(jì)數(shù)器代數(shù)運(yùn)算式如下:
S+CO×2+ICO×2=A+B+C+D+ICI
即:I0,I1,I2,I3,Ci,D權(quán)值為1;C,C0權(quán)值為2。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉