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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

32x32Booth乘法器

發布時間:2024/3/7 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 32x32Booth乘法器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

32x32Booth乘法器

本設計是一個簡單的基于Booth算法的32位有符號數乘法器,Booth算法的原理是先判斷P[1:0],然后操作P空間,最后P空間移位,根據P空間的最高位來給移位后的P選擇補1 or 補0。
booth乘法器是一種位操作乘法器,與傳統乘法器不同的是直接操作位。booth有一個重要的加碼運算。

p[0]p[-1]加碼結果
00無操作,右移一位
01+被乘數,右移一位
10-被乘數,右移一位
11無操作,右移一位
module booth(input [31:0]A,input [31:0]B,input clk,input rst,input sig,output [63:0]Booth,output done,output [5:0]X); reg [5:0]i; reg [64:0]p; reg [31:0]a; reg [31:0]s; reg [5:0]x; reg isdone;always@(posedge clk or negedge rst)if(!rst)begini<=6'b0;p<=65'b0;a<=32'b0;s<=32'b0;x<=0;isdone<=0;endelse if(sig)begincase(i)0:begina<=A;s<=~A+1'b1;p<={32'b0,B,1'b0};i<=i+1;isdone<=0;end1:beginif(x==32)beginx<=0;i<=i+2;endelse if(p[1:0]==2'b01)beginp<={p[64:33]+a,p[32:0]};i<=i+1;endelse if(p[1:0]==2'b01)beginp<={p[64:33]+s,p[32:0]};i<=i+1;endelsebeginp<=p;i<=i+1;end2:beginp<={p[64],p[64:1]};x<=x+1;i<=i-1;3:begin isdone<=1;i<=i+1;end4:begin isdone<=0;i<=0;endendcaseend assign done=isdone; assign Booth=p[64:1]; assign X=x; endmodule

總結

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

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