Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.77 KB | None | 0 0
  1. module ratedivider(enable,d, q, Clock, par_load, clear_b, SW);
  2. input enable;
  3. input par_load;
  4. input Clock;
  5. input clear_b;
  6. input [1:0] SW;
  7.  
  8. output reg [27:0] q;
  9. output reg [27:0] d;
  10.  
  11. always @(*)
  12. begin
  13. case ({SW[1], SW[0]})
  14. 2'b00: d = 28'b0000000000000000000000000000;
  15. 2'b01: d = 28'b0010111110101111000001111111; //50m - 1
  16. 2'b10: d = 28'b0101111101011110000011111111; //100m - 1
  17. 2'b11: d = 28'b1011111010111100000111111111; //200m - 1
  18. endcase
  19. end
  20.  
  21. always @(posedge Clock)
  22. begin
  23. if (clear_b == 1'b0)
  24. q <= 28'b0000000000000000000000000000;
  25. else if (par_load == 1'b1)
  26. q <= d;
  27. else if (enable == 1'b1)
  28. begin
  29. if (q == 28'b0000000000000000000000000000)
  30. q <= d;
  31. else
  32. q <= q - 1'b1;
  33. end
  34. end
  35. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement