日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Booth乘法器设计

發布時間:2024/3/7 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Booth乘法器设计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 乘法器原理
在計算兩個補碼相乘時,可以通過Booth算法來實現定點補碼一位乘的功能。布斯(Booth)算法采用相加和相減的操作計算補碼數據的乘積,Booth算法對乘數從低位開始判斷,根據后兩個數據位的情況決定進行加法、減法還是僅僅進行移位操作。討論當相乘的兩個數中有一個或二個為負數的情況,在討論補碼乘法運算時,對被乘數或部分積的處理上與原碼乘法有某些類似,差別僅表現在被乘數和部分積的符號位要和數值一起參加運算。
Booth乘法規則如下:
假設X、Y都是用補碼形式表示的機器數,[X]補和[Y]補=Ys.Y1Y2…Yn,都是任意符號表示的數。比較法求新的部分積,取決于兩個比較位的數位,即Yi+1Yi的狀態。
首先設置附加位Yn+1=0,部分積初值[Z0]補=0。
當n≠0時,判斷YnYn+1,
若YnYn+1=00或11,即相鄰位相同時,上次部分積右移一位,直接得部分積。
若YnYn+1=01,上次部分積加[X]補,然后右移一位得新部分積。
若YnYn+1=10,上次部分積加[-X]補,然后右移一位得新部分積。
當n=0時,判YnYn+1(對應于Y0Y1),運算規則同(1)只是不移位。即在運算的最
后一步,乘積不再右移。
2. 設計思想
程序首先進行判0操作,如果乘數中有一個或兩個為0,則直接輸出結果0,否則進入程序主體。程序主體分成三個判斷模塊進行,當乘數最低位與次低位值相等時,先將乘數右移一位,再將原部分累加和右移一位至乘數最高位,同時部分積累加和的最高位根據次高位正負補0或1;如果乘數最低位與次低位分別為1,0時,將原部分累加和加上被乘數X補后,再右移一位至乘數最高位,同時部分積累加和的最高位根據次高位正負補0或1;如果乘數最低位與次低位分別為0,1時,將原部分累加和減去被乘數X補后,再右移一位至乘數最高位,同時部分積累加和的最高位根據次高位正負補0或1。每次比較一次乘數的最末兩位,進行相應運算后,共循環4次。循環結束后,再進行一次判斷,如果乘數最低位與次低位分別為1、0,將原部分累加和加上被乘數X補。如果乘數最低位與次低位分別為0、1,將原部分累加和減去被乘數X補。此時,最終累加和就是乘積的高位結果,取乘數的高四位作為低位結果,拼接即為最終乘法結果。
3. 程序設計
module Multiplication(Mx,My,Mout);//補碼一位乘法模塊input [5:0]Mx,My;//定義六位數輸入,其中前兩位為符號位 output reg [9:0]Mout;//定義九位數輸出,其中前兩位為符號位 reg [5:0] a;//a寄存器存放部分積累加和 reg [5:0] b,c;//b寄存器存放補碼表示的被乘數,c寄存器存放補碼表示的乘數 reg [3:0] n;//n作為臨時變量,用來存放循環次數 reg p,q;//p用于負數移位補1操作,q用于存放添加的附加位Cn+1,初始化為0always @ (Mx,My) beginif((Mx==0)||(My==0))Mout=0;elsebegina=6'b000000;n=4'b1111;p=1'b1;q=1'b0;b=Mx;c=My;c={c[4:0],q};while(n)beginn=n>>1;if(((c[0]==0)&&(c[1]==0))||((c[0]==1)&&(c[1]==1)))//如果Cn+1和Cn同為0或1,則只進行移位beginc=c/2;//除2表示右移一位c[5]=a[0];//高位由部分累加和的低位補充a=a/2;if(a[4]==1)a={p,a[4:0]};//累加和的最高位保持不變(此時補1)elsea=a;//不進行任何操作,默認高位補0endelse if((c[0]==1)&&(c[1]==0))//如果Cn=0,Cn+1=1,則先加上被乘數的補碼,再移位begina=a+b;c=c/2;c[5]=a[0];a=a/2;if(a[4]==1)a={p,a[4:0]};elsea=a;endelse if((c[0]==0)&&(c[1]==1))//如果Cn=1,Cn+1=0,則先減去被乘數的補碼,再移位begina=a-b;c=c/2;c[5]=a[0];a=a/2;if(a[4]==1)a={p,a[4:0]};elsea=a;endend//四次循環后,進行最后一步,此步不移位,用來處理符號位if((c[0]==1)&&(c[1]==0))begina=a+b;endelse if((c[0]==0)&&(c[1]==1))begina=a-b;endMout={a,c[5:2]};end end endmodule 4. 設計驗證
例:已知X=0.1010,Y=-0.1101,求X*Y:
1. 兩數用補碼表示 X補=00.1010 Y補=11.0011 -X補=11.0110
2. 設置輸入為001010和110011

3. 仿真得結果為1101111110,即 X*Y補=1101111110,即為-0.0111111



總結

以上是生活随笔為你收集整理的Booth乘法器设计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲成人精品网 | 久久久久久久艹 | 黄色av一区二区 | 手机看片日韩欧美 | 日本精品视频在线观看 | 吞精囗交69激情欧美 | 国产伊人精品 | 在线视频a | 国产精品视频在线播放 | 91禁在线动漫 | 国产日韩大片 | 精品中文字幕一区二区 | 免费看国产曰批40分钟 | 亚洲欧美www | 亚洲图片欧美激情 | 色婷婷久久综合 | 午夜男人天堂 | 日韩成年人视频 | 欧美日韩国产一区在线 | 精品91久久久久久 | 日本精品一区二区 | 久久中文字幕人妻熟av女蜜柚m | 天天干天天操天天舔 | 精品日韩一区二区三区 | 秋霞影院午夜丰满少妇在线视频 | 北条麻妃一区二区三区四区五区 | 91国偷自产一区二区三区老熟女 | 欧美放荡性医生videos | 浪潮av网站 | 国产精品99久久免费黑人人妻 | 看特级黄色片 | 射影院 | www.4hu95.com四虎| 亚洲射射| 日本一区二区三区久久 | 日本免费小视频 | 懂色av成人一区二区三区 | 欧美性生交大片免费看app麻豆 | 亚洲成熟少妇视频在线观看 | 久福利 | 国语对白91| www三级免费 | 伊人久久色 | av一二三 | 国产精品20p | 日大逼 | www.桃色| 中国av片| 成人黄色短片 | 亚洲涩情 | 日韩精品一区二区三区四区五区 | 国产精品伦理一区二区 | 干日本少妇首页 | 国产精品自拍偷拍视频 | 国产精品18久久久久久vr下载 | 污污软件在线观看 | 国产免费脚交足视频在线观看 | a亚洲天堂 | 无码人妻精品一区二区50 | 日韩欧美国产中文字幕 | 久久蜜臀 | 日韩乱淫| 葵司有码中文字幕二三区 | 日韩福利视频网 | 久久国产黄色片 | 国产成人激情 | 原来神马电影免费高清完整版动漫 | 色骚网| 影院一区 | 亚洲不卡一区二区三区 | 欧美性tv | 亚洲视频在线观看网址 | 一区二区三区视频免费 | 欧美成人秋霞久久aa片 | 蜜桃视频一区 | 亚洲a一区 | 午夜精品久久久久久久久 | 大黑人交xxx极品hd | 67194午夜| 手机看片日韩 | 婷婷九九 | 久久中文字 | 最新福利在线 | 亚洲欧美黄 | 九九热8 | 在线观看午夜 | 在线a毛片| 亚洲色婷婷一区二区三区 | 综合激情网站 | 亚洲中文字幕无码爆乳av | 男男肉耽高h彩漫 | 中文字幕一区二区三区人妻四季 | 成人黄色片在线观看 | 国产尤物av| av免费福利 | 九九九在线 | 欧美美女啪啪 | 99热精品国产 | 亚洲欧美中文日韩在线v日本 |