1 |
2 |
oana.bonca |
`timescale 1ns / 1ps
|
2 |
|
|
//////////////////////////////////////////////////////////////////////////////////
|
3 |
|
|
// Company: UPT
|
4 |
|
|
// Engineer: Oana Boncalo & Alexandru Amaricai
|
5 |
|
|
//
|
6 |
|
|
// Create Date: 10:23:39 11/26/2012
|
7 |
|
|
// Design Name:
|
8 |
|
|
// Module Name: clkGenPLL
|
9 |
|
|
// Project Name:
|
10 |
|
|
// Target Devices:
|
11 |
|
|
// Tool versions:
|
12 |
|
|
// Description:
|
13 |
|
|
//
|
14 |
|
|
// Dependencies:
|
15 |
|
|
//
|
16 |
|
|
// Revision:
|
17 |
|
|
// Revision 0.01 - File Created
|
18 |
|
|
// Additional Comments:
|
19 |
|
|
//
|
20 |
|
|
//////////////////////////////////////////////////////////////////////////////////
|
21 |
|
|
//parameter CLK_PERIOD_EXT = 10000; // External (FPGA board) clk period (in ps)
|
22 |
|
|
//localparam real CLK_PERIOD_EXT_NS = CLK_PERIOD_EXT / 1000.0;
|
23 |
|
|
module clkGenPLL(
|
24 |
|
|
input sysClk,
|
25 |
|
|
input sysRst, //Asynchronous PLL reset
|
26 |
|
|
output clk0_125, //125 Mhz
|
27 |
|
|
output clk0Phase90, //125 MHz clk200 with 90 degree phase
|
28 |
|
|
output clk0Div2, //62.5 MHz
|
29 |
|
|
output clk200, //200 MHz clk
|
30 |
|
|
output clkTFT10,
|
31 |
|
|
output clkTFT10_180,
|
32 |
|
|
output locked
|
33 |
|
|
);
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
// PLL_BASE : In order to incorporate this function into the design,
|
37 |
|
|
// Verilog : the following instance declaration needs to be placed
|
38 |
|
|
// instance : in the body of the design code. The instance name
|
39 |
|
|
// declaration : (PLL_BASE_inst) and/or the port declarations within the
|
40 |
|
|
// code : parenthesis may be changed to properly reference and
|
41 |
|
|
// : connect this function to the design. Unused inputs
|
42 |
|
|
// : and outputs may be removed or commented out.
|
43 |
|
|
|
44 |
|
|
// <-----Cut code below this line---->
|
45 |
|
|
|
46 |
|
|
// PLL_BASE: Phase-Lock Loop Clock Circuit
|
47 |
|
|
// Virtex-5
|
48 |
|
|
// Xilinx HDL Language Template, version 13.1
|
49 |
|
|
wire CLKFBOUT;
|
50 |
|
|
|
51 |
|
|
PLL_BASE #(
|
52 |
|
|
.BANDWIDTH("OPTIMIZED"), // "HIGH", "LOW" or "OPTIMIZED"
|
53 |
|
|
.CLKFBOUT_MULT(10), // Multiplication factor for all output clocks
|
54 |
|
|
.CLKFBOUT_PHASE(0.0), // Phase shift (degrees) of all output clocks
|
55 |
|
|
.CLKIN_PERIOD(10.0), // Clock period (ns) of input clock on CLKIN
|
56 |
|
|
.CLKOUT0_DIVIDE(8), // Division factor for CLKOUT0 (1 to 128)
|
57 |
|
|
.CLKOUT0_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT0 (0.01 to 0.99)
|
58 |
|
|
.CLKOUT0_PHASE(0.0), // Phase shift (degrees) for CLKOUT0 (0.0 to 360.0)
|
59 |
|
|
.CLKOUT1_DIVIDE(8), // Division factor for CLKOUT1 (1 to 128)
|
60 |
|
|
.CLKOUT1_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT1 (0.01 to 0.99)
|
61 |
|
|
.CLKOUT1_PHASE(90.0), // Phase shift (degrees) for CLKOUT1 (0.0 to 360.0)
|
62 |
|
|
.CLKOUT2_DIVIDE(16), // Division factor for CLKOUT2 (1 to 128)
|
63 |
|
|
.CLKOUT2_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT2 (0.01 to 0.99)
|
64 |
|
|
.CLKOUT2_PHASE(0.0), // Phase shift (degrees) for CLKOUT2 (0.0 to 360.0)
|
65 |
|
|
.CLKOUT3_DIVIDE(5), // Division factor for CLKOUT3 (1 to 128)
|
66 |
|
|
.CLKOUT3_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT3 (0.01 to 0.99)
|
67 |
|
|
.CLKOUT3_PHASE(0.0), // Phase shift (degrees) for CLKOUT3 (0.0 to 360.0)
|
68 |
|
|
.CLKOUT4_DIVIDE(100), // Division factor for CLKOUT4 (1 to 128)
|
69 |
|
|
.CLKOUT4_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT4 (0.01 to 0.99)
|
70 |
|
|
.CLKOUT4_PHASE(180.0), // Phase shift (degrees) for CLKOUT4 (0.0 to 360.0)
|
71 |
|
|
.CLKOUT5_DIVIDE(100), // Division factor for CLKOUT5 (1 to 128)
|
72 |
|
|
.CLKOUT5_DUTY_CYCLE(0.5), // Duty cycle for CLKOUT5 (0.01 to 0.99)
|
73 |
|
|
.CLKOUT5_PHASE(0.0), // Phase shift (degrees) for CLKOUT5 (0.0 to 360.0)
|
74 |
|
|
.COMPENSATION("SYSTEM_SYNCHRONOUS"), // "SYSTEM_SYNCHRONOUS",
|
75 |
|
|
// "SOURCE_SYNCHRONOUS", "INTERNAL", "EXTERNAL",
|
76 |
|
|
// "DCM2PLL", "PLL2DCM"
|
77 |
|
|
.DIVCLK_DIVIDE(1), // Division factor for all clocks (1 to 52)
|
78 |
|
|
.REF_JITTER(0.100) // Input reference jitter (0.000 to 0.999 UI%)
|
79 |
|
|
) PLL_BASE_inst (
|
80 |
|
|
.CLKFBOUT(CLKFBOUT), // General output feedback signal
|
81 |
|
|
.CLKOUT0(clk0_125), // One of six general clock output signals
|
82 |
|
|
.CLKOUT1(clk0Phase90), // One of six general clock output signals
|
83 |
|
|
.CLKOUT2(clk0Div2), // One of six general clock output signals
|
84 |
|
|
.CLKOUT3(clk200), // One of six general clock output signals
|
85 |
|
|
.CLKOUT4(clkTFT10_180), // One of six general clock output signals
|
86 |
|
|
.CLKOUT5(clkTFT10), // One of six general clock output signals
|
87 |
|
|
.LOCKED(locked), // Active high PLL lock signal
|
88 |
|
|
.CLKFBIN(CLKFBOUT), // Clock feedback input
|
89 |
|
|
.CLKIN(sysClk), // Clock input
|
90 |
|
|
.RST(sysRst) // Asynchronous PLL reset
|
91 |
|
|
);
|
92 |
|
|
|
93 |
|
|
// End of PLL_BASE_inst instantiation
|
94 |
|
|
|
95 |
|
|
|
96 |
|
|
endmodule
|