Implementation of Binary Multiplier through FPGA

Posted on at


Module Multiplier


module multiplier(p,a,b);
input [3:0] a;
input [3:0] b;
output [7:0] p;
wire e,f,g,h,i,k,m,n,o,q,v,w;
assign {e,f,g,h,i,k,m,n,o,q,v,w}=0;
wire r,s,t;
wire c10,c11,c12,c13,c20,c21,c22,c23,c31,c32,c33,c34;
wire s11,s12,s13,s21,s22,s23;
adder a_1(p[0], ,m , n,a[0],b[0]);
adder a_2(r, ,o, q ,a[1],b[0]);
adder a_3(s, , w , v ,a[2],b[0]);
adder a_4(t, , h,i,a[3],b[0]);
adder a_5(p[1],c10, k ,r, a[0],b[1]);
adder a_6(s11,c11,c10,s,a[1],b[1]);
adder a_7(s12,c12,c11,t,a[2],b[1]);
adder a_8(s13,c13,e ,c12,a[3],b[1]);
adder a_9(p[2],c20, f,s11,a[0],b[2]);
adder a_10(s21,c21,c20,s12,a[1],b[2]);
adder a_11(s22,c22,c21,s13,a[2],b[2]);
adder a_12(s23,c23,c22,c13,a[3],b[2]);
adder a_13(p[3],c31,g,s21,a[0],b[3]);
adder a_14(p[4],c32,c31,s22,a[1],b[3]);
adder a_15(p[5],c33,c32,s23,a[2],b[3]);
adder a_16(p[6],c34,c33,c23,a[3],b[3]);
assign p[7]=c34;


endmodule

 Module Adder

module adder(SOUT,COUT,CIN,SIN,A,B);
output SOUT,COUT;
input CIN,SIN,A,B;
wire D;
and a1(D,A,B);
assign {COUT,SOUT}=CIN+SIN+D;
endmodule

 

Module Stimulus


module Stimulus;
reg [3:0] A,B;
wire [7:0] Product;
reg Clk, Clr, Count;
//Module Instantiation
multiplier m0(Product, A, B);
//Values checking part
initial
begin
A=4'd0; B=4'd0;
#10 A=4'd0; B=4'd1;
#10 A=4'd0; B=4'd2;
#10 A=4'd0; B=4'd3;
#10 A=4'd0; B=4'd4;
#10 A=4'd0; B=4'd5;
#10 A=4'd0; B=4'd6;
#10 A=4'd0; B=4'd7;
#10 A=4'd0; B=4'd8;
#10 A=4'd0; B=4'd9;
#10 A=4'd0; B=4'd10;
#10 A=4'd0; B=4'd11;
#10 A=4'd0; B=4'd12;
#10 A=4'd0; B=4'd13;
#10 A=4'd0; B=4'd14;
#10 A=4'd0; B=4'd15;
//Multiples of 1
#10 A=4'd1; B=4'd0;
#10 A=4'd1; B=4'd1;
#10 A=4'd1; B=4'd2;
#10 A=4'd1; B=4'd3;
#10 A=4'd1; B=4'd4;
#10 A=4'd1; B=4'd5;
#10 A=4'd1; B=4'd6;
#10 A=4'd1; B=4'd7;
#10 A=4'd1; B=4'd8;
#10 A=4'd1; B=4'd9;
#10 A=4'd1; B=4'd10;
#10 A=4'd1; B=4'd11;
#10 A=4'd1; B=4'd12;
#10 A=4'd1; B=4'd13;
#10 A=4'd1; B=4'd14;
#10 A=4'd1; B=4'd15;
//Multiples of 2
#10 A=4'd2; B=4'd0;
#10 A=4'd2; B=4'd1;
#10 A=4'd2; B=4'd2;
#10 A=4'd2; B=4'd3;
#10 A=4'd2; B=4'd4;
#10 A=4'd2; B=4'd5;
#10 A=4'd2; B=4'd6;
#10 A=4'd2; B=4'd7;
#10 A=4'd2; B=4'd8;
#10 A=4'd2; B=4'd9;
#10 A=4'd2; B=4'd10;
#10 A=4'd2; B=4'd11;
#10 A=4'd2; B=4'd12;
#10 A=4'd2; B=4'd13;
#10 A=4'd2; B=4'd14;
#10 A=4'd2; B=4'd15;
//Multiples of 3
#10 A=4'd3; B=4'd0;
#10 A=4'd3; B=4'd1;
#10 A=4'd3; B=4'd2;
#10 A=4'd3; B=4'd3;
#10 A=4'd3; B=4'd4;
#10 A=4'd3; B=4'd5;
#10 A=4'd3; B=4'd6;
#10 A=4'd3; B=4'd7;
#10 A=4'd3; B=4'd8;
#10 A=4'd3; B=4'd9;
#10 A=4'd3; B=4'd10;
#10 A=4'd3; B=4'd11;
#10 A=4'd3; B=4'd12;
#10 A=4'd3; B=4'd13;
#10 A=4'd3; B=4'd14;
#10 A=4'd3; B=4'd15;
#10 A=4'd4; B=4'd0;
#10 A=4'd4; B=4'd1;
#10 A=4'd4; B=4'd2;
#10 A=4'd4; B=4'd3;
#10 A=4'd4; B=4'd4;
#10 A=4'd4; B=4'd5;
#10 A=4'd4; B=4'd6;
#10 A=4'd4; B=4'd7;
#10 A=4'd4; B=4'd8;
#10 A=4'd4; B=4'd9;
#10 A=4'd4; B=4'd10;
#10 A=4'd4; B=4'd11;
#10 A=4'd4; B=4'd12;
#10 A=4'd4; B=4'd13;
#10 A=4'd4; B=4'd14;
#10 A=4'd4; B=4'd15;
//Multiples of 4
#10 A=4'd5; B=4'd0;
#10 A=4'd5; B=4'd1;
#10 A=4'd5; B=4'd2;
#10 A=4'd5; B=4'd3;
#10 A=4'd5; B=4'd4;
#10 A=4'd5; B=4'd5;
#10 A=4'd5; B=4'd6;
#10 A=4'd5; B=4'd7;
#10 A=4'd5; B=4'd8;
#10 A=4'd5; B=4'd9;
#10 A=4'd5; B=4'd10;
#10 A=4'd5; B=4'd11;
#10 A=4'd5; B=4'd12;
#10 A=4'd5; B=4'd13;
#10 A=4'd5; B=4'd14;
#10 A=4'd5; B=4'd15;
//Multiples of 5
#10 A=4'd6; B=4'd0;
#10 A=4'd6; B=4'd1;
#10 A=4'd6; B=4'd2;
#10 A=4'd6; B=4'd3;
#10 A=4'd6; B=4'd4;
#10 A=4'd6; B=4'd5;
#10 A=4'd6; B=4'd6;
#10 A=4'd6; B=4'd7;
#10 A=4'd6; B=4'd8;
#10 A=4'd6; B=4'd9;
#10 A=4'd6; B=4'd10;
#10 A=4'd6; B=4'd11;
#10 A=4'd6; B=4'd12;
#10 A=4'd6; B=4'd13;
#10 A=4'd6; B=4'd14;
#10 A=4'd6; B=4'd15;
//Multiples of 6
#10 A=4'd7; B=4'd0;
#10 A=4'd7; B=4'd1;
#10 A=4'd7; B=4'd2;
#10 A=4'd7; B=4'd3;
#10 A=4'd7; B=4'd4;
#10 A=4'd7; B=4'd5;
#10 A=4'd7; B=4'd6;
#10 A=4'd7; B=4'd7;
#10 A=4'd7; B=4'd8;
#10 A=4'd7; B=4'd9;
#10 A=4'd7; B=4'd10;
#10 A=4'd7; B=4'd11;
#10 A=4'd7; B=4'd12;
#10 A=4'd7; B=4'd13;
#10 A=4'd7; B=4'd14;
#10 A=4'd7; B=4'd15;
//Multiples of 8
#10 A=4'd8; B=4'd0;
#10 A=4'd8; B=4'd1;
#10 A=4'd8; B=4'd2;
#10 A=4'd8; B=4'd3;
#10 A=4'd8; B=4'd4;
#10 A=4'd8; B=4'd5;
#10 A=4'd8; B=4'd6;
#10 A=4'd8; B=4'd7;
#10 A=4'd8; B=4'd8;
#10 A=4'd8; B=4'd9;
#10 A=4'd8; B=4'd10;
#10 A=4'd8; B=4'd11;
#10 A=4'd8; B=4'd12;
#10 A=4'd8; B=4'd13;
#10 A=4'd8; B=4'd14;
#10 A=4'd8; B=4'd15;
//Multiples of 9
#10 A=4'd9; B=4'd0;
#10 A=4'd9; B=4'd1;
#10 A=4'd9; B=4'd2;
#10 A=4'd9; B=4'd3;
#10 A=4'd9; B=4'd4;
#10 A=4'd9; B=4'd5;
#10 A=4'd9; B=4'd6;
#10 A=4'd9; B=4'd7;
#10 A=4'd9; B=4'd8;
#10 A=4'd9; B=4'd9;
#10 A=4'd9; B=4'd10;
#10 A=4'd9; B=4'd11;
#10 A=4'd9; B=4'd12;
#10 A=4'd9; B=4'd13;
#10 A=4'd9; B=4'd14;
#10 A=4'd9; B=4'd15;
//Multiples of 10
#10 A=4'd10; B=4'd0;
#10 A=4'd10; B=4'd1;
#10 A=4'd10; B=4'd2;
#10 A=4'd10; B=4'd3;
#10 A=4'd10; B=4'd4;
#10 A=4'd10; B=4'd5;
#10 A=4'd10; B=4'd6;
#10 A=4'd10; B=4'd7;
#10 A=4'd10; B=4'd8;
#10 A=4'd10; B=4'd9;
#10 A=4'd10; B=4'd10;
#10 A=4'd10; B=4'd11;
#10 A=4'd10; B=4'd12;
#10 A=4'd10; B=4'd13;
#10 A=4'd10; B=4'd14;
#10 A=4'd10; B=4'd15;
//Multiples of 11
#10 A=4'd11; B=4'd0;
#10 A=4'd11; B=4'd1;
#10 A=4'd11; B=4'd2;
#10 A=4'd11; B=4'd3;
#10 A=4'd11; B=4'd4;
#10 A=4'd11; B=4'd5;
#10 A=4'd11; B=4'd6;
#10 A=4'd11; B=4'd7;
#10 A=4'd11; B=4'd8;
#10 A=4'd11; B=4'd9;
#10 A=4'd11; B=4'd10;
#10 A=4'd11; B=4'd11;
#10 A=4'd11; B=4'd12;
#10 A=4'd11; B=4'd13;
#10 A=4'd11; B=4'd14;
#10 A=4'd11; B=4'd15;
//Multiples of 12
#10 A=4'd12; B=4'd0;
#10 A=4'd12; B=4'd1;
#10 A=4'd12; B=4'd2;
#10 A=4'd12; B=4'd3;
#10 A=4'd12; B=4'd4;
#10 A=4'd12; B=4'd5;
#10 A=4'd12; B=4'd6;
#10 A=4'd12; B=4'd7;
#10 A=4'd12; B=4'd8;
#10 A=4'd12; B=4'd9;
#10 A=4'd12; B=4'd10;
#10 A=4'd12; B=4'd11;
#10 A=4'd12; B=4'd12;
#10 A=4'd12; B=4'd13;
#10 A=4'd12; B=4'd14;
#10 A=4'd12; B=4'd15;
//Multiples of 13
#10 A=4'd13; B=4'd0;
#10 A=4'd13; B=4'd1;
#10 A=4'd13; B=4'd2;
#10 A=4'd13; B=4'd3;
#10 A=4'd13; B=4'd4;
#10 A=4'd13; B=4'd5;
#10 A=4'd13; B=4'd6;
#10 A=4'd13; B=4'd7;
#10 A=4'd13; B=4'd8;
#10 A=4'd13; B=4'd9;
#10 A=4'd13; B=4'd10;
#10 A=4'd13; B=4'd11;
#10 A=4'd13; B=4'd12;
#10 A=4'd13; B=4'd13;
#10 A=4'd13; B=4'd14;
#10 A=4'd13; B=4'd15;
//Multiples of 14
#10 A=4'd14; B=4'd0;
#10 A=4'd14; B=4'd1;
#10 A=4'd14; B=4'd2;
#10 A=4'd14; B=4'd3;
#10 A=4'd14; B=4'd4;
#10 A=4'd14; B=4'd5;
#10 A=4'd14; B=4'd6;
#10 A=4'd14; B=4'd7;
#10 A=4'd14; B=4'd8;
#10 A=4'd14; B=4'd9;
#10 A=4'd14; B=4'd10;
#10 A=4'd14; B=4'd11;
#10 A=4'd14; B=4'd12;
#10 A=4'd14; B=4'd13;
#10 A=4'd14; B=4'd14;
#10 A=4'd14; B=4'd15;
//Multiples of 15
#10 A=4'd15; B=4'd0;
#10 A=4'd15; B=4'd1;
#10 A=4'd15; B=4'd2;
#10 A=4'd15; B=4'd3;
#10 A=4'd15; B=4'd4;
#10 A=4'd15; B=4'd5;
#10 A=4'd15; B=4'd6;
#10 A=4'd15; B=4'd7;
#10 A=4'd15; B=4'd8;
#10 A=4'd15; B=4'd9;
#10 A=4'd15; B=4'd10;
#10 A=4'd15; B=4'd11;
#10 A=4'd15; B=4'd12;
#10 A=4'd15; B=4'd13;
#10 A=4'd15; B=4'd14;
#10 A=4'd15; B=4'd15;
#10 $stop;
#10 $finish;
end
endmodule

output



About the author

Saif-Filmannex

I am doing Bs Electronics Engineering from International Islamic University

Subscribe 0
160