Advertisement
physicsnerd

verilog code update

Aug 5th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module trapverilog(
  2.     input CLK,
  3.      input signed [7:0] SIGNAL,
  4.      input signed [7:0] x,
  5.      input signed [7:0] SUM, // OUT pins are mapped to SUM pins on board
  6.     output reg OUTP,
  7.      output reg OUT1,
  8.      output reg OUT2,
  9.      output reg OUT3,
  10.      output reg OUT4,
  11.      output reg OUT5,
  12.      output reg OUT6,
  13.      output reg OUT7
  14.     );
  15.  
  16. reg[7:0] yregone;
  17. reg[7:0] yregtwo;
  18. reg[7:0] innerSumOutput;
  19. reg[7:0] innerSignal;
  20. reg[7:0] innerSum;
  21.  
  22. always @(posedge CLK)
  23. begin
  24.     yregtwo <= yregone;
  25.     yregone <= innerSignal;
  26.    
  27.     if (yregone != 0)
  28.     begin
  29.         innerSum <= ((yregone + yregtwo)*x); //treats x as plain h, change if treated as h/2
  30.         innerSumOutput <= (innerSum <<< 1) + innerSum; // <<< is signed one bit shift which = /2
  31.         if (innerSumOutput[0] == 1)
  32.         begin
  33.             OUTP <= 1;
  34.         end
  35.        
  36.         OUT1 <= innerSumOutput[1];
  37.         OUT2 <= innerSumOutput[2];
  38.         OUT3 <= innerSumOutput[3];
  39.         OUT4 <= innerSumOutput[4];
  40.         OUT5 <= innerSumOutput[5];
  41.         OUT6 <= innerSumOutput[6];
  42.         OUT7 <= innerSumOutput[7];
  43.     end
  44. end
  45.  
  46. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement