學(xué)習(xí)FPGA時(shí),對(duì)于乘法的運(yùn)算,尤其是對(duì)于有符號(hào)的乘法運(yùn)算,也許最熟悉不過的就是 BOOTH算法了。
這里講解一下BOOTH算法的計(jì)算過程,方便大家對(duì)BOOTH的理解。
上圖是BOOTH算法的數(shù)學(xué)表達(dá)。由于FPGA擅長(zhǎng)進(jìn)行并行移位計(jì)算,所以BOOTH算法倒也好實(shí)現(xiàn)。
上圖是對(duì)乘數(shù)的加碼過程,具體可以見下面的例子。
7 x (-3),其中R1表示被乘數(shù) 7, R2 表示乘數(shù) -3,那么二者對(duì)應(yīng)的補(bǔ)碼,為 R1 0111,R2 1101,
P代碼最終結(jié)果容量,應(yīng)該為 2x 4 + 1 = 9位,其中一位作為輔助位。計(jì)算過程如下:
上述的計(jì)算過程需要注意,在進(jìn)行右移時(shí),需要將P = {R0,R2},當(dāng)作整體看待,若P[8]最高位為0,則
移位之后的結(jié)果R0的最高位就補(bǔ)0,若是1就補(bǔ)1,由上圖的第7步到第8步的變換,{R0,R2} =
{1001,,0001},那么P的最高位是1,則以后之后,R0的高位需要補(bǔ)1,所以得到移位之后的結(jié)果{R0,R2} =
{1100,1000},并且輔助位由于乘數(shù)的低位是1,所以輔助位為1,輔助位和乘數(shù)的移調(diào)的位的邏輯值有關(guān),比
如乘數(shù)是0010,則四次操作的輔助為 0, 1, 0, 0。
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618618 -
算法
+關(guān)注
關(guān)注
23文章
4710瀏覽量
95405
發(fā)布評(píng)論請(qǐng)先 登錄
基于直方圖算法進(jìn)行FPGA架構(gòu)設(shè)計(jì)
布斯算法(Booth Algorithm)乘法器的Verilog實(shí)現(xiàn)

如何求全差分運(yùn)放THS4509單端輸入阻抗及增益?求大神的具體計(jì)算過程。
ESD管的選型方法和計(jì)算過程是怎樣的?哪個(gè)壇友能把計(jì)算步驟寫出來?
高速TIA 應(yīng)用中關(guān)注的指標(biāo)是什么?它的計(jì)算過程是怎樣的?
db和dbm的換算計(jì)算過程是什么樣的
什么是算法
剛學(xué)電路分析,求題目 答案詳細(xì)計(jì)算過程,求各位大神知道
遺傳算法的運(yùn)算過程

遺傳算法的手工模擬計(jì)算示例

25W_5V5A隔離反激式變壓器設(shè)計(jì)完整計(jì)算過程講解
基于直方圖算法的FPGA設(shè)計(jì)架構(gòu)

評(píng)論