Advertisement
Guest User

Untitled

a guest
Mar 26th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.61 KB | None | 0 0
  1. module Timer(clk, oclk);
  2. parameter scale=100;
  3. input clk;
  4. output oclk;
  5.  
  6. reg [15:0] cnt1;
  7. reg [11:0] cnt2;
  8. reg [3:0] dcnt;
  9. wire iclk1; //1kHz clock
  10. wire iclk2; //scaled clock
  11. reg rclk;
  12.  
  13. //1/50000 PreScaller
  14. assign iclk1=(cnt1==16'd4999) ? 1'b1 : 1'b0;
  15. always @(posedge clk) begin
  16. if(iclk1==1'b1)
  17. cnt1=0;
  18. else
  19. cnt1=cnt1+1;
  20. end
  21.  
  22. //1/100 PreScaler
  23. assign iclk2=(cnt2==(scale-1)) ? 1'b1 : 1'b0;
  24. always @(posedge clk) begin
  25. if(iclk1==1'b1) begin
  26. if(iclk2==1'b1)
  27. cnt2=0;
  28. else
  29. cnt2=cnt2+1;
  30. end
  31. end
  32.  
  33. //clock out FF
  34. always @(posedge clk)
  35. rclk=iclk2;
  36. assign oclk=rclk;
  37.  
  38. endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement