| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- //////////////////////////////////////////////////////////////////////////////////
- // Company: TAIR
- // Engineer:
- //
- // Create Date: 10/30/2023 11:24:31 AM
- // Design Name:
- // Module Name: ClkDivider
- // Project Name: S5443_V3_FPGA3
- // Target Devices: BOARD: BY5443v3. FPGA: xc7s25csga225-2
- // Tool Versions:
- // Description: This modules is clock divider that divides clock frequency based on an input divider value.
- //
- // Dependencies:
- //
- // Revision:
- // Revision 1.0 - File Created
- // Additional Comments:
- //
- //////////////////////////////////////////////////////////////////////////////////
- module ClkDivider (
- input Clk_i,
- input [3:0] ClkDiv_i,
- input Rst_i,
- output Clk_o
- );
- //================================================================================
- // REG/WIRE
- //================================================================================
- reg [16:0] cnt;
- reg clk;
- wire clk_o;
- //================================================================================
- // ASSIGNMENTS
- //================================================================================
- assign Clk_o = (cnt < ClkDiv_i / 2) ? 1 : 0;
- //================================================================================
- // LOCALPARAMS
- //================================================================================
- //================================================================================
- // CODING
- //================================================================================
- 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
- endmodule
|