| 1234567891011121314151617181920212223242526272829303132333435363738 |
- module ClkGen (
- input Clk_i,
- input [3:0] ClkDiv_i,
- input Rst_i,
- output Clk_o
- );
- reg [16:0] cnt;
- reg clk;
- always @(posedge Clk_i) begin
- if (Rst_i) begin
- cnt <= 0;
- end
- else begin
- if (cnt == ClkDiv_i+1) begin
- cnt <= 0;
- end
- else begin
- cnt <= cnt + 1;
- end
- end
- end
- assign Clk_o = (cnt < ClkDiv_i/2+1) ? 1 : 0;
- endmodule
|