8位硬件乘法器设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生实验报告
系别电子信息学院课程名称《EDA综合实验》
班级14无线技术实验名称8位硬件乘法器设计
姓名王汉生实验时间2016年10 月31 日
学号2014010301032 指导教师王红航
成绩批改时间2016年月日
报告内容
一、实验目的和任务
1.学习应用移位相加原理设计8位乘法器。
2.了解移位相加原理构成乘法器与用组合逻辑电路直接设计的同样功能的电路优势。
二、实验原理介绍
图1 8位乘法器逻辑原理图
图2 8位移位相加乘法器运算逻辑波形图
三、设计代码(或原理图)、仿真波形及分析
1.基于时序电路的移位相加乘法器-16位移位寄存器module sreg(clk,clr,d,q);
input clk,clr;
input [8:0] d;
output[15:0] q;
reg[15:0] reg16;
always@(posedge clk or posedge clr)
begin
if(clr) reg16<=16'b0;
else
begin reg16[6:0]<=reg16[7:1]; //移位相加_16位移位寄存器 reg16[15:7]<=d;
end
end
assign q=reg16;
endmodule
2.基于时序电路的移位相加乘法器-8位移位寄存器module shift8(clk,load,A,qb);
input clk,load;
input [7:0] A;
output qb;
reg[7:0] reg8;
always@(posedge clk or posedge load)
begin
if(load) reg8<=A;
else reg8[6:0]<=reg8[7:1]; //移位相加_8位二进制加法器
end
assign qb=reg8[0];
endmodule
3.基于时序电路的移位相加乘法器-1位乘法器module andarith(abin,B,dout);
input abin;
input [7:0] B;
output reg[7:0] dout;
reg[3:0] i;
always@(*)
begin
for(i=0;i<=7;i=i+4'b1)
dout[i]<=B[i]&abin;
end
endmodule
4.基于时序电路的移位相加乘法器-8位加法器module adder8(cin,A,B,S,cout);
input cin;
input[7:0] A,B;
output[7:0] S;
output cout;
assign {cout,S}=cin+A+B;
endmodule
5.移位相加乘法器-时序电路
VCC CLK
INPUT VCC
LD
INPUT VCC
A[7..0]
INPUT VCC
B[7..0]
INPUT q[15..0]
OUTPUT cin A[7..0]B[7..0]S[7..0]cout
adder8
inst
abin B[7..0]
dout[7..0]
andarith
inst1
clk load
A[7..0]qb
shif t8
inst2
clk
clr d[8..0]
q[15..0]
sreg
inst3
GND
d[8..0]
q[15..8]
d[7..0]
d[8]
P IN_19P IN_18P IN_17P IN_13P IN_12P IN_10P IN_9P IN_8P IN_29P IN_28P IN_27P IN_26P IN_23P IN_22P IN_21P IN_20
P IN_98P IN_97
P IN_72P IN_70P IN_69P IN_68P IN_67P IN_65P IN_42P IN_41P IN_39P IN_38P IN_37P IN_36P IN_33P IN_32P IN_31P IN_30
四、实验结论与心得
通过这次设计,进一步加深了对EDA 的了解。特别是当每一个子模块编写调试成功时,。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了。 器件的选择也很重要,只有选择合适的器件,才能正确的编译,从而能更好的做好本次试验!