diff options
Diffstat (limited to 'rtl/src/clock_divider.v')
-rw-r--r-- | rtl/src/clock_divider.v | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/rtl/src/clock_divider.v b/rtl/src/clock_divider.v new file mode 100644 index 0000000..a63e943 --- /dev/null +++ b/rtl/src/clock_divider.v @@ -0,0 +1,29 @@ +module clock_divider #( + parameter N = 2 +)( + input clk, + input rstn, + + output reg clk_div +); + +reg [31:0] counter = 0; + +always @(posedge clk or negedge rstn) begin + if (!rstn) begin + counter <= 0; + clk_div <= 0; + end else begin + if (counter == (N-1)/2) begin + clk_div <= ~clk_div; + counter <= counter + 1; + end else if (counter >= (N-1)) begin + clk_div <= ~clk_div; + counter <= 0; + end else begin + counter <= counter + 1; + end + end +end + +endmodule |