1 / 7
文档名称:

Booth算法笔记 verilog(布斯算法).doc

格式:doc   大小:14KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Booth算法笔记 verilog(布斯算法).doc

上传人:黛玉文档 2022/2/10 文件大小:14 KB

下载得到文件列表

Booth算法笔记 verilog(布斯算法).doc

相关文档

文档介绍

文档介绍:Booth算法笔记_verilog(布斯算法)
参考程序下载:Booth_mul4_v
Booth算法(布斯算法),:
  0 无操作
  +1 加x
  -1 减x 流程图(额,补充百科里缺少的算法流程图) 给出懂哥的verilog描述的booth算法硬件实现.
确实写得丑陋啊….
并且遇到过的问题就是变量不能在多个always里赋值,并且加深了多次赋值可能导致的冲突理解
module mul_4(
clk,
res_n,
mul1,
mul2,
result);
parameter width=4'd4;
input clk,res_n;
input [width-1:0]mul2,mul1;//乘数
output [2*width-1:0]result;//运算结果最多是两倍乘数位数
wire [2*width-1:0]result;
reg [width-1:0] R0,R1,R2;//result={R0,R1},multiplier=R2
reg P;
reg ns; assign result={R0,R1};
always@(posedge clk or negedge res_n)
begin
if(!res_n)
begin
R0<=0;
R1<=mul1;
R2<=mul2;
P<=1'b0;
ns<=0;
end
else
begin
if(!ns)
begin
case({R1[0],P})
2'b01:
begin
R0<=(R0+R2);ns<=1;
end
2'b10:
begin
R0<=(R0-R2);ns<=1;
end
default:
{R0,R1,P}<={R0[width-1],R0,R1};
endcase