學習FPGA時,對于乘法的運算,尤其是對于有符號的乘法運算,也許最熟悉不過的就是 BOOTH算法了。
這里講解一下BOOTH算法的計算過程,方便大家對BOOTH的理解。
上圖是BOOTH算法的數學表達。由于FPGA擅長進行并行移位計算,所以BOOTH算法倒也好實現。
上圖是對乘數的加碼過程,具體可以見下面的例子。
7 x (-3),其中R1表示被乘數 7, R2 表示乘數 -3,那么二者對應的補碼,為 R1 0111,R2 1101,
P代碼最終結果容量,應該為 2x 4 + 1 = 9位,其中一位作為輔助位。計算過程如下:
上述的計算過程需要注意,在進行右移時,需要將P = {R0,R2},當作整體看待,若P[8]最高位為0,則
移位之后的結果R0的最高位就補0,若是1就補1,由上圖的第7步到第8步的變換,{R0,R2} =
{1001,,0001},那么P的最高位是1,則以后之后,R0的高位需要補1,所以得到移位之后的結果{R0,R2} =
{1100,1000},并且輔助位由于乘數的低位是1,所以輔助位為1,輔助位和乘數的移調的位的邏輯值有關,比
如乘數是0010,則四次操作的輔助為 0, 1, 0, 0。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
FPGA
+關注
關注
1660文章
22412瀏覽量
636300 -
算法
+關注
關注
23文章
4784瀏覽量
98049
發布評論請先 登錄
相關推薦
熱點推薦
基于直方圖算法進行FPGA架構設計
引言 直方圖統計在圖像增強和目標檢測領域有重要應用,比如直方圖均衡,梯度直方圖。直方圖的不同種類和統計方法請見之前的文章。本章就是用FPGA來進行直方圖的計算,并且利用FPGA的特性對計算過程
Booth編碼的原理及選擇
Booth提出該算法的初衷是基于當時計算機中的移位運算比加法運算要快這個硬件環境,其目的是通過移位運算代替部分加法運算來提高乘法運算速度。然而,Booth
發表于 10-22 07:53
db和dbm的換算計算過程是什么樣的
請教各位RF的大師呀。我想了解DB與DBM的換算過程計算為什么20db=50DBm呀我計算得得出是43DBm20db=10lg(20*1000mw)=10*1.3+10*3=43dbm哪里不對嗎請大師指點呀
發表于 06-17 18:05
基于直方圖算法的FPGA設計架構
直方圖統計在圖像增強和目標檢測領域有重要應用,比如直方圖均衡,梯度直方圖。直方圖的不同種類和統計方法請見之前的文章。本章就是用FPGA來進行直方圖的計算,并且利用FPGA的特性對計算過程
發表于 04-20 10:47
?1562次閱讀
卷積神經網絡計算過程和步驟
卷積神經網絡(Convolutional Neural Network, CNN)是一種深度學習模型,廣泛應用于圖像識別、視頻分析、自然語言處理等領域。本文將詳細介紹卷積神經網絡的計算過程和步驟
FPGA的BOOTH算法計算過程
評論