Advertisement
toweber

mac_reduced.v

Aug 29th, 2022
1,188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module mac(in1, in2, clk, reset, acc);  
  2.    input signed [3:0] in1;
  3.    input signed [3:0] in2;  
  4.    input       clk;
  5.    output reg signed [4:0] acc;
  6.    input        reset;
  7.  
  8.    reg signed [7:0]   out_mult;
  9.    reg signed [9:0]   acc_pre_reduced;
  10.  
  11.    always @(posedge clk or posedge reset)
  12.      begin
  13.         out_mult <= in1*in2;
  14.         if (reset)
  15.           acc_pre_reduced <= 0;
  16.         else
  17.           acc_pre_reduced = out_mult+acc_pre_reduced;
  18.           if (acc_pre_reduced > 2**3)        acc = 2**3-1;
  19.           else if (acc_pre_reduced < -2**3)  acc = -2**3;
  20.           else acc = acc_pre_reduced;        
  21.  
  22.      end
  23.  
  24. endmodule
  25.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement