Advertisement
Guest User

Untitled

a guest
Mar 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. input CLOCK;
  2. input START;
  3. input [7:0] C;
  4. input [7:0] D;
  5. output [15:0] P;
  6.  
  7. reg [15:0] P;
  8. reg [7:0] M;
  9. reg [7:0] Q;
  10. reg [7:0] A;
  11. reg Qd;
  12. reg [16:0] SHIFT;
  13.  
  14. integer CNT;
  15.  
  16. always @(posedge START or posedge CLOCK) begin
  17. if (START) begin
  18. P <= 0;
  19. M <= C;
  20. Q <= D;
  21. A <= 0;
  22. Qd <= 0;
  23. SHIFT <= 0;
  24.  
  25. CNT <= 8;
  26. end
  27. else begin
  28. if (CNT != 0) begin
  29. case ({Q[0], Qd})
  30. 2'b01: begin
  31. A <= A + M;
  32. SHIFT <= {A[7], A, Q};
  33. end
  34.  
  35. 2'b10: begin
  36. A <= A + ~M + 1;
  37. SHIFT <= {A[7], A, Q};
  38. end
  39.  
  40. 2'b00, 2'b11: begin
  41. SHIFT <= {A[7], A, Q};
  42. end
  43. endcase
  44. CNT <= CNT - 1;
  45. end
  46. else P <= SHIFT;
  47. end
  48. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement