ClkGen.v 421 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. module ClkGen (
  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. always @(posedge Clk_i) begin
  10. if (Rst_i) begin
  11. cnt <= 0;
  12. end
  13. else begin
  14. if (cnt == ClkDiv_i+1) begin
  15. cnt <= 0;
  16. end
  17. else begin
  18. cnt <= cnt + 1;
  19. end
  20. end
  21. end
  22. assign Clk_o = (cnt < ClkDiv_i/2+1) ? 1 : 0;
  23. endmodule