Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. module mult(
  3.     input [15:0]A, B,
  4.     output reg [15:0] C
  5.     );
  6.    
  7.     reg[31:0] result;
  8.     reg [15:0] lo, hi;
  9.    
  10.     always @(*) begin
  11.        result = A * B;
  12.        if (result == 32'b0)
  13.         begin
  14.             C = (-1) * A + (-1) * B + 1;
  15.         end
  16.        else
  17.         begin
  18.             hi = result >> 16;
  19.             lo = result;
  20.             if (lo > hi)
  21.                 begin
  22.                     C = lo - hi;
  23.                 end
  24.             else
  25.                 begin
  26.                     C = lo - hi + 1;
  27.                 end
  28.         end
  29.     end
  30. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement