vt52-fpga  1.0.0 Initial
vt52-fpga is a serial terminal implemented on a FPGA
clock_generator.v
Go to the documentation of this file.
2  (input clk,
3  output clk_usb,
4  output reset_usb,
5  output clk_vga,
6  output reset_vga
7  );
8 
9  wire locked;
10  reg vga_clk_divider;
11 
12  wire pll_feedback_1;
13  wire clk_usb_unbuf;
14 
15  PLLE2_BASE #(
16  .CLKFBOUT_MULT(36),
17  .CLKOUT0_DIVIDE(25),
18  .CLKOUT0_DUTY_CYCLE(0.5),
19  .CLKOUT0_PHASE(0.0)
20  ) PLL_1 (
21  .CLKIN1(clk),
22  .CLKOUT0(clk_usb_unbuf),
23  .CLKFBOUT(pll_feedback_1),
24  .CLKFBIN(pll_feedback_1),
25  .PWRDWN(1'b0),
26  .LOCKED(locked),
27  .RST(1'b0)
28  );
29 
30  BUFG pixel_clk_buf (
31  .O(clk_usb),
32  .I(clk_usb_unbuf)
33  );
34 
35  // Generate reset signal
36  reg [5:0] reset_cnt = 0;
37  assign reset_usb = ~reset_cnt[5];
38 
39  always @(posedge clk_usb)
40  if (locked) reset_cnt <= reset_cnt + reset_usb;
41 
42  // divide usb clock by by two to get vga clock
43  always @(posedge clk_usb) begin
44  if (reset_usb) vga_clk_divider <= 0;
45  else vga_clk_divider <= ~vga_clk_divider;
46  end
47 
48  assign clk_vga = vga_clk_divider;
49  assign reset_vga = reset_usb;
50 endmodule
module clock_generator(input clk, output clk_usb, output reset_usb, output clk_vga, output reset_vga)
always(posedge clk)
Definition: uart_rx.v:86