Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- module BoothMulti(X, Y, Z
- );
- input signed [7:0] X, Y;
- output signed [31:0] Z;
- reg signed [31:0] Z;
- reg [1:0] temp;
- integer i;
- reg E1;
- reg [7:0] Y1;
- always @ (X, Y)
- begin
- Z = 31'd0;
- E1 = 1'd0;
- for (i = 0; i < 4; i = i + 1)
- begin
- temp = {X[i], E1};
- Y1 = – Y;
- case (temp)
- 2'd2 : Z [31 : 15] = Z [31 : 15] + Y1;
- 2'd1 : Z [31: 15] = Z [31 : 15] + Y;
- default : begin end
- endcase
- Z = Z >> 1;
- Z[31] = Z[30];
- E1 = X[i];
- end
- if (Y == 16'd32)
- begin
- Z = – Z;
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement