mirror of
https://github.com/olofk/serv.git
synced 2026-01-13 15:17:25 +00:00
45 lines
975 B
Verilog
45 lines
975 B
Verilog
`default_nettype none
|
|
module servus_clock_gen
|
|
(input wire i_clk,
|
|
output wire o_clk,
|
|
output reg o_rst);
|
|
|
|
wire clkfb;
|
|
wire locked;
|
|
reg locked_r;
|
|
|
|
MMCME4_ADV
|
|
#(.DIVCLK_DIVIDE (5),
|
|
.CLKFBOUT_MULT_F (48.000),
|
|
.CLKOUT0_DIVIDE_F (75.0),
|
|
.CLKIN1_PERIOD (8.0), //125MHz
|
|
.STARTUP_WAIT ("FALSE"))
|
|
mmcm
|
|
(.CLKFBOUT (clkfb),
|
|
.CLKFBOUTB (),
|
|
.CLKOUT0 (o_clk),
|
|
.CLKOUT0B (),
|
|
.CLKOUT1 (),
|
|
.CLKOUT1B (),
|
|
.CLKOUT2 (),
|
|
.CLKOUT2B (),
|
|
.CLKOUT3 (),
|
|
.CLKOUT3B (),
|
|
.CLKOUT4 (),
|
|
.CLKOUT5 (),
|
|
.CLKOUT6 (),
|
|
.CLKIN1 (i_clk),
|
|
.CLKIN2 (1'b0),
|
|
.CLKINSEL (1'b1),
|
|
.LOCKED (locked),
|
|
.PWRDWN (1'b0),
|
|
.RST (1'b0),
|
|
.CLKFBIN (clkfb));
|
|
|
|
always @(posedge o_clk) begin
|
|
locked_r <= locked;
|
|
o_rst <= !locked_r;
|
|
end
|
|
|
|
endmodule
|