当前位置:首页 > FPGA课程设计实验报告(DOC)
合肥工业大学大学
实验报告
课程名称: FPGA设计
实验名称: 移位乘法器设计 & 8位Booth乘法器设计 姓 名: 陶辉 学 号: 20114712 班 级: 电子科学与技术11-1班 指导教师: 倪伟
合肥工业大学电子科学与应用物理学院制
移位乘法器
一、 实验原理
移位和相加乘法原理,乘法通过逐项移位相加原理来实现,从被乘数的最低位开始,若为1,则乘数右移后与上一次的和相加;若为0,左移后以全零相加,直至被乘数的最高位。
二、 实验步骤
算法主程序
module MUL(A,B,data );
input [7:0] A; input [7:0] B; output [15:0] data;
移位乘法器工作流程图
2
wire [15:0] data; reg [7:0] D; reg [7:0] A1; reg [7:0] B1; reg C;
always @(A or B) begin A1 = A; B1 = B; D = 0; C = 0; repeat(8) begin
if(A1[0]==1) {C,D} = D + B1; else
{C,D} = D + 0;
{C,D,A1} = {C,D,A1} >> 1; end end
assign data = {D,A1};
endmodule
移位乘法器测试文件 module test; reg [7:0] A; reg [7:0] B; // Outputs wire [15:0] data;
// Instantiate the Unit Under Test (UUT)
MUL uut (
3
);
.A(A), .B(B), .data(data)
initial begin end
// Initialize Inputs A = 0; B = 0;
// Wait 100 ns for global reset to finish #20;
A = 8'b0000_0010; B = 8'b0000_1101;
// Add stimulus here
endmodule
三、 实验结果及分析
2进制输入输出结果
4
共分享92篇相关文档