8无符号乘法器
宁夏新华学院-学历证明样本
8位无符号乘法器设计实验
一、乘法原理:
乘法通过逐项移位相加原理来实
现,从乘数的最低位开始,若为1,则被乘数左
移后与上一次的和相加;若为0,左移后以全零相加,直
至乘数的最高位。
二、原理框图:
Product register(2n)
clc
str
Multiplicand Multiplier
0
MUX
c
n1
n bit adder
三、实验所需程序代码:
module
mult8(out,a,b,clk);
output[15:0] out;
input[7:0] a,b;
input clk;
wire[15:0]
out;
reg[14:0] temp0=15'b000;
reg[14:0]
temp1=15'b000;
reg[14:0] temp2=15'b000;
reg[14:0] temp3=15'b000;
reg[14:0]
temp4=15'b000;
reg[14:0] temp5=15'b000;
reg[14:0] temp6=15'b000;
reg[14:0]
temp7=15'b000;
function[7:0] mult8x1; 该函数实现8×1
乘法
input[7:0] operand;
input sel;
begin
mult8x1= (sel) ? (operand) :
8'b00000000;
end
endfunction
always @(posedge clk) 调用函数实现操作数b 各位与操作数a 的相乘
begin
temp7<=mult8x1(a,b[0]);
temp6<=((mult8x1(a,b[1]))<<1);
temp5<=((mult8x1(a,b[2]))<<2);
temp4<=((mult8x1(a,b[3]))<<3);
temp3<=((mult8x1(a,b[4]))<<4);
temp2<=((mult8x1(a,b[5]))<<5);
temp1<=((mult8x1(a,b[6]))<<6);
temp0<=((mult8x1(a,b[7]))<<7);
end
assign out=
temp0+temp1+temp2+temp3+temp4+temp5+temp6+temp7;
加法器
endmodule
四、功能仿真结果:
功能仿真选取a和b两个数都为
最大值255(11111111),则结果
out=255*255=65025(00001)功能
仿真结果如图所示见下页:(注:采
用上升沿触发)
8位无符号乘法器设计实验
一、乘法原理:
乘法通过逐项移位相加
原理来实现,从乘数的最低位开始,若为1,则被乘数左
移后与上一次的和相加;若为0,左移后以全零
相加,直至乘数的最高位。
二、原理框图:
Product register(2n)
clc
str
Multiplicand
Multiplier
0
MUX
c
n1
n
bit adder
三、实验所需程序代码:
module
mult8(out,a,b,clk);
output[15:0] out;
input[7:0] a,b;
input clk;
wire[15:0]
out;
reg[14:0] temp0=15'b000;
reg[14:0]
temp1=15'b000;
reg[14:0] temp2=15'b000;
reg[14:0] temp3=15'b000;
reg[14:0]
temp4=15'b000;
reg[14:0] temp5=15'b000;
reg[14:0] temp6=15'b000;
reg[14:0]
temp7=15'b000;
function[7:0] mult8x1; 该函数实现8×1
乘法
input[7:0] operand;
input sel;
begin
mult8x1= (sel) ? (operand) :
8'b00000000;
end
endfunction
always @(posedge clk) 调用函数实现操作数b 各位与操作数a 的相乘
begin
temp7<=mult8x1(a,b[0]);
temp6<=((mult8x1(a,b[1]))<<1);
temp5<=((mult8x1(a,b[2]))<<2);
temp4<=((mult8x1(a,b[3]))<<3);
temp3<=((mult8x1(a,b[4]))<<4);
temp2<=((mult8x1(a,b[5]))<<5);
temp1<=((mult8x1(a,b[6]))<<6);
temp0<=((mult8x1(a,b[7]))<<7);
end
assign out=
temp0+temp1+temp2+temp3+temp4+temp5+temp6+temp7;
加法器
endmodule
四、功能仿真结果:
功能仿真选取a和b两个数都为
最大值255(11111111),则结果
out=255*255=65025(00001)功能
仿真结果如图所示见下页:(注:采
用上升沿触发)