Files
2025-yatcpu/lab2/verilog/z710/clock_control.v
TOKISAKIX\21168 d7c8c1b030 finished lab1
2023-12-12 22:14:02 +08:00

47 lines
1009 B
Verilog

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2023/11/29 15:52:55
// Design Name:
// Module Name: clock_control
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module clock_control(
input clk_in,
input enable_clk,
output clk_out
);
// if clock is divided
localparam clk_div = 2; // clock is diveded by half of divisor
reg [3:0] cnt = 4'd0;
reg out = 1'b0;
always @(posedge clk_in) begin
cnt <= cnt + 4'd1;
if (cnt >= (clk_div - 1)) begin
out <= ~out;
cnt <= 0;
end
end
assign clk_out = out & enable_clk;
// original clock
// assign clk_out = clk_in & enable_clk;
endmodule