Vlsi Record 6
Vlsi Record 6
Expt. No: 9
Date: 27/03/2024 IMPLEMENTATION OF BOOTH MULTIPLIER
AIM:
To design and simulate Booth Multiplier using Verilog code and Basys3 board.
REQUIREMENTS:
HARDWARE: BASYS3
SOURCE CODE:
1
2021105011/VLSI RECORD
FLOWCHART:
BOOTH ALGORITHM:
BOTH POSITIVE
[7 X 4]
A3 A2 A1 A0 Q3 Q2 Q1 Q0 Q-1 OPERTATION
0 0 0 0 0 1 0 0 0 Initial
0 0 0 0 0 0 1 0 0 Right Shift
0 0 0 0 0 0 0 1 0 Right Shift
1 0 0 1 0 0 0 1 0 A A-B
1 1 0 0 1 0 0 0 1 Right Shift
0 0 1 1 1 0 0 0 1 A A+B
0 0 0 1 1 1 0 0 0 Right Shift
ANS = 7 X 4 =28; 0111 X 0100 = 00011100 and -1 x 2 = -2; 1111 x 0010 = 11111110
0 0 0 0 0 0 1 0 0 Initial
0 0 0 0 0 0 0 1 0 Right Shift
0 0 0 1 0 0 0 1 0 A A-B
0 0 0 0 1 0 0 0 1 Right Shift
1 1 1 1 1 0 0 0 1 A A+B
1 1 1 1 1 1 0 0 0 Right Shift
1 1 1 1 1 1 1 0 0 Right Shift
2
2021105011/VLSI RECORD
Z = Z >> 1;
Z[7] = Z[6];
E1 = X[i];
end if (Y == 4'd8)
begin
Z = - Z;
end
end
endmodule
TESTBENCH:
module boothmult_TB();
// Inputs
reg [3:0] X;
reg [3:0] Y;
// Outputs
wire [7:0] Z;
// Instantiate the Unit Under Test (UUT)
booth_multi uut (
.X(X),
.Y(Y),
.Z(Z) );
initial begin
// Initialize Inputs
X = 0;
Y = 0;
// Wait 100 ns for global reset to finish
#100;
X=7;
Y=4;
#100;
X=-1;
Y=2;
#100;
$finish;
// Add stimulus here
end
endmodule
3
2021105011/VLSI RECORD
OUTPUTS:
(i) Simulation Result:
4
2021105011/VLSI RECORD
RESULT:
Thus, the implementation of booth multiplier using Vivado and Basys3 has been done
and verified.