blob: 1144b090040c5240c622fc0d98fa063d5f435907 [file] [log] [blame] [edit]
module top (
input wire clk,
input wire sw,
output wire led
);
wire O_LOCKED;
wire RST;
wire clk0;
wire clk1;
wire clk_out;
wire clk_fb_i;
wire clk_fb_o;
reg [25:0] cnt;
assign RST = 1'b0;
BUFG bufg0 (
.I(clk_fb_i),
.O(clk_fb_o)
);
wire clk_ibuf;
IBUF ibuf0 (
.I(clk),
.O(clk_ibuf)
);
wire clk_bufg;
BUFG bufg1 (
.I(clk_ibuf),
.O(clk_bufg)
);
PLLE2_ADV #(
.BANDWIDTH ("HIGH"),
.COMPENSATION ("ZHOLD"),
.CLKIN1_PERIOD (10.0), // 100MHz
.CLKFBOUT_MULT (16),
.CLKOUT0_DIVIDE (8),
.CLKOUT1_DIVIDE (32),
.STARTUP_WAIT ("FALSE"),
.DIVCLK_DIVIDE (1)
)
pll (
.CLKIN1 (clk_bufg),
.CLKINSEL (1),
.RST (RST),
.PWRDWN (0),
.LOCKED (O_LOCKED),
.CLKFBIN (clk_fb_i),
.CLKFBOUT (clk_fb_o),
.CLKOUT0 (clk0),
.CLKOUT1 (clk1)
);
BUFGMUX bufgmux (
.I0(clk0),
.I1(clk1),
.S(sw[0]),
.O(clk_out)
);
always @(posedge clk_out) begin
cnt <= cnt + 1'b1;
end
assign led[0] = cnt[25];
endmodule