8无符号乘法器

玛丽莲梦兔
849次浏览
2020年08月03日 18:44
最佳经验
本文由作者推荐

宁夏新华学院-学历证明样本


8位无符号乘法器设计实验
一、乘法原理:
乘法通过逐项移位相加原理来实 现,从乘数的最低位开始,若为1,则被乘数左
移后与上一次的和相加;若为0,左移后以全零相加,直 至乘数的最高位。
二、原理框图:
Product register(2n)


clc
str
Multiplicand Multiplier
0
MUX
c
n1

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
n1

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)功能 仿真结果如图所示见下页:(注:采
用上升沿触发)


初中叙事文-气象谚语大全


牡丹亭名句-祝福签名


石文中-河南理工大学万方科技学院


想象作文600字-华中师范大学汉口分校


谬骞人-土木工程实习报告


心声作文-读书感悟


经济师金融-关于时间的格言警句


高考动态-法网奖金