1
0
mirror of https://github.com/olofk/serv.git synced 2026-01-11 23:42:50 +00:00
olofk.serv/servant/servant_cmod_a7_clock_gen.v
2023-05-17 10:13:02 +02:00

36 lines
759 B
Verilog

`default_nettype none
module servant_cmod_a7_clock_gen
(input wire i_clk,
input wire i_rst,
output wire o_clk,
output reg o_rst);
wire clkfb;
wire locked;
reg locked_r;
MMCME2_BASE
#(.CLKIN1_PERIOD (83.333), //12MHz
/* Set VCO frequency to 12*64=768 MHz
Allowed values are 2.0 to 64.0. Resulting VCO freq
needs to be 600-1200MHz */
.CLKFBOUT_MULT_F (64.000),
.CLKOUT0_DIVIDE_F (48.000)) // 768/48 = 16 MHz
pll
(.CLKIN1 (i_clk),
.RST (i_rst),
.CLKOUT0 (o_clk),
.LOCKED (locked),
.CLKFBOUT (clkfb),
.CLKFBIN (clkfb));
always @(posedge o_clk) begin
locked_r <= locked;
o_rst <= !locked_r;
end
endmodule
`default_nettype wire