ClkDivider.v 425 B

1234567891011121314151617181920212223242526272829
  1. module ClkDivider (
  2. input Clk_i,
  3. input [3:0] ClkDiv_i,
  4. input Rst_i,
  5. output Clk_o
  6. );
  7. reg [16:0] cnt;
  8. reg clk;
  9. wire clk_o;
  10. always @(posedge Clk_i) begin
  11. if (Rst_i) begin
  12. cnt <= 0;
  13. end
  14. else begin
  15. if (cnt >= ClkDiv_i-1) begin
  16. cnt <= 0;
  17. end
  18. else begin
  19. cnt <= cnt + 1;
  20. end
  21. end
  22. end
  23. assign Clk_o = (cnt < ClkDiv_i/2) ? 1 : 0;
  24. endmodule