Re: multiplier
sorry, i have mistaken it.it is complex multiplier.i used the following code to implement this.
whether we can prescale like this or else we can import some other efficient method 2 implement this?
plz suggest.
module signed_complex(A_R, A_C, B_R, B_C, D_R, D_C);
// D = A * B
input [7:0] A_R, A_C;
input [7:0] B_R, B_C;
output [7:0] D_R, D_C;
wire [15:0]result1,result2,result3,result4;
mult mult1(A_R,B_R,result1);
mult mult2(A_C,B_C,result2);
mult mult3(A_R,B_C,result3);
mult mult4(A_C,B_R,result4);
wire [16:0] prescale_R, prescale_C;
//assign prescale_R = {result1[7], result1} - {result2[7], result2};
// assign prescale_C = {result3[7], result3} + {result4[7], result4};
assign prescale_R = result1 - result2;
assign prescale_C = result3 + result4;
assign D_R = {prescale_R[15],prescale_R[12:6]};
assign D_C = {prescale_C[15],prescale_C[12:6]};
endmodule
module mult(a, b, out);
output [15:0] out;
input [7:0] a;
input [7:0] b;
//wire [7:0] out;
wire [15:0] out;
assign out = a * b;
//assign out = {mult_out[15], mult_out[12:6]};
endmodule
thx.