x393  1.0
FPGAcodeforElphelNC393camera
mmcm_adv.v
Go to the documentation of this file.
1 
39 `timescale 1ns/1ps
40 
41 module mmcm_adv#(
42  parameter CLKIN1_PERIOD = 0.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
43  parameter CLKIN2_PERIOD = 0.000, // input period in ns, 0..100.000 - MANDATORY, resolution down to 1 ps
44  parameter BANDWIDTH = "OPTIMIZED", //"OPTIMIZED", "HIGH","LOW"
45  parameter CLKFBOUT_MULT_F = 5.000, // 2.0 to 64.0 . Together with CLKOUT#_DIVIDE and DIVCLK_DIVIDE
46  parameter CLKFBOUT_PHASE = 0.000, // CLOCK FEEDBACK phase in degrees (3 significant digits, -360.000...+360.000)
47  parameter CLKOUT0_PHASE = 0.000, // CLOCK0 phase in degrees (3 significant digits, -360.000...+360.000)
48  parameter CLKOUT1_PHASE = 0.000, // Initial/static fine phase shift, 1/(56*Fvco) actual step
49  parameter CLKOUT2_PHASE = 0.000,
50  parameter CLKOUT3_PHASE = 0.000,
51  parameter CLKOUT4_PHASE = 0.000,
52  parameter CLKOUT5_PHASE = 0.000,
53  parameter CLKOUT6_PHASE = 0.000,
54  parameter CLKOUT0_DUTY_CYCLE= 0.5, // CLOCK 0 output duty factor, 3 significant digits
55  parameter CLKOUT1_DUTY_CYCLE= 0.5,
56  parameter CLKOUT2_DUTY_CYCLE= 0.5,
57  parameter CLKOUT3_DUTY_CYCLE= 0.5,
58  parameter CLKOUT4_DUTY_CYCLE= 0.5,
59  parameter CLKOUT5_DUTY_CYCLE= 0.5,
60  parameter CLKOUT6_DUTY_CYCLE= 0.5,
61  parameter CLKOUT4_CASCADE= "FALSE", // cascades the output6 divider to the input for output 4
62  parameter CLKFBOUT_USE_FINE_PS = "FALSE", // Enable variable fine pase shift. Enable 1/(56*Fvco) phase inceremnts, round-robin
63  parameter CLKOUT0_USE_FINE_PS = "FALSE", // Same fine phase shift for all outputs where this attribute is "TRUE"
64  parameter CLKOUT1_USE_FINE_PS = "FALSE", // Not compatible with fractional divide
65  parameter CLKOUT2_USE_FINE_PS = "FALSE",
66  parameter CLKOUT3_USE_FINE_PS = "FALSE",
67  parameter CLKOUT4_USE_FINE_PS = "FALSE",
68  parameter CLKOUT5_USE_FINE_PS = "FALSE",
69  parameter CLKOUT6_USE_FINE_PS = "FALSE",
70  parameter CLKOUT0_DIVIDE_F = 1.000, // CLK0 outout divide, floating 1.000..128.000
71  parameter CLKOUT1_DIVIDE = 1, // CLK1 outout divide, integer 1..128 (determins a phase step as a fraction of pi/4)
72  parameter CLKOUT2_DIVIDE = 1,
73  parameter CLKOUT3_DIVIDE = 1,
74  parameter CLKOUT4_DIVIDE = 1,
75  parameter CLKOUT5_DIVIDE = 1,
76  parameter CLKOUT6_DIVIDE = 1,
77  parameter COMPENSATION= "ZHOLD", // "ZHOLD",BUF_IN","EXTERNAL","INTERNAL
78  // ZHOLD - provide negative hold time on I/O registers
79  // INTERNAL - using internal compensation no deley is compensated
80  // EXTERNAL - external to the FPGA network is being compensated
81  // BUF_IN - no compensation when clock input is driveen by BUFG/BUFH/BUFR or GT
82  parameter DIVCLK_DIVIDE = 1, // Integer 1..106. Divides all outputs with respect to CLKIN
83  parameter REF_JITTER1 = 0.010, // Expected jitter on CLKIN1 (0.000..0.999)
84  parameter REF_JITTER2 = 0.010,
85  parameter SS_EN = "FALSE", // Enables Spread Spectrum mode
86  parameter SS_MODE = "CENTER_HIGH",//"CENTER_HIGH","CENTER_LOW","DOWN_HIGH","DOWN_LOW"
87  parameter SS_MOD_PERIOD = 10000, // integer 4000-40000 - SS modulation period in ns
88  parameter STARTUP_WAIT = "FALSE" // Delays "DONE" signal until MMCM is locked
89 
90 )
91 (
92  input clkin1, // General clock input
93  input clkin2, // Secondary clock input
94  input clkfbin, // Feedback clock input
95  input clkinsel, // Clock select input : 1 - clkin1, 0 - clkin2
96  input rst, // asynchronous reset input
97  input pwrdwn, // power down input
98  input psclk, // phase shift clock input
99  input psen, // phase shift enable input
100  input psincdec, // phase shift direction input (1 - increment, 0 - decrement)
101  output psdone, // phase shift done (12 clocks after psen
102  output clkout0, // output 0, HPC BUFR/BUFIO capable
103  output clkout1, // output 1, HPC BUFR/BUFIO capable
104  output clkout2, // output 2, HPC BUFR/BUFIO capable
105  output clkout3, // output 3, HPC BUFR/BUFIO capable
106  output clkout4, // output 4, HPC BUFR/BUFIO not capable
107  output clkout5, // output 5, HPC BUFR/BUFIO not capable
108  output clkout6, // output 6, HPC BUFR/BUFIO not capable
109  output clkout0b, // output 0, inverted
110  output clkout1b, // output 1, inverted
111  output clkout2b, // output 2, inverted
112  output clkout3b, // output 3, inverted
113  output clkfbout, // dedicate feedback output
114  output clkfboutb,// inverted feedback output
115  output locked // PLL locked output
116 );
118  .BANDWIDTH (BANDWIDTH),
155  .IS_CLKINSEL_INVERTED (1'b0),
156  .IS_PSEN_INVERTED (1'b0),
157  .IS_PSINCDEC_INVERTED (1'b0),
158  .IS_PWRDWN_INVERTED (1'b0),
159  .IS_RST_INVERTED (1'b0),
162  .SS_EN (SS_EN),
163  .SS_MODE (SS_MODE),
166  ) MMCME2_ADV_i (
167  .CLKFBOUT (clkfbout), // output
168  .CLKFBOUTB (clkfboutb), // output
169  .CLKFBSTOPPED (), // output
170  .CLKINSTOPPED (), // output
171  .CLKOUT0 (clkout0), // output
172  .CLKOUT0B (clkout0b), // output
173  .CLKOUT1 (clkout1), // output
174  .CLKOUT1B (clkout1b), // output
175  .CLKOUT2 (clkout2), // output
176  .CLKOUT2B (clkout2b), // output
177  .CLKOUT3 (clkout3), // output
178  .CLKOUT3B (clkout3b), // output
179  .CLKOUT4 (clkout4), // output
180  .CLKOUT5 (clkout5), // output
181  .CLKOUT6 (clkout6), // output
182  .DO (), // Dynamic reconfiguration output[15:0]
183  .DRDY (), // Dynamic reconfiguration output
184  .LOCKED (locked), // output
185  .PSDONE (psdone), // output
186  .CLKFBIN (clkfbin), // input
187  .CLKIN1 (clkin1), // input
188  .CLKIN2 (clkin2), // input
189  .CLKINSEL (clkinsel), // input
190  .DADDR (7'b0), // Dynamic reconfiguration address (input[6:0])
191  .DCLK (1'b0), // Dynamic reconfiguration clock input
192  .DEN (1'b0), // Dynamic reconfiguration enable input
193  .DI (16'b0), // Dynamic reconfiguration data (input[15:0])
194  .DWE (1'b0), // Dynamic reconfiguration Write Enable input
195  .PSCLK (psclk), // input
196  .PSEN (psen), // input
197  .PSINCDEC (psincdec), // input
198  .PWRDWN (pwrdwn), // input
199  .RST (rst) // input
200  );
201 
202 
203 endmodule
204 
205 
11318CLKOUT0_PHASE0.000
Definition: mmcm_adv.v:47
11317CLKFBOUT_PHASE0.000
Definition: mmcm_adv.v:46
11320CLKOUT2_PHASE0.000
Definition: mmcm_adv.v:49
11370clkout4
Definition: mmcm_adv.v:106
11322CLKOUT4_PHASE0.000
Definition: mmcm_adv.v:51
11324CLKOUT6_PHASE0.000
Definition: mmcm_adv.v:53
11351REF_JITTER20.010
Definition: mmcm_adv.v:84
MMCME2_ADV_i MMCME2_ADV
Definition: mmcm_adv.v:117
11373clkout0b
Definition: mmcm_adv.v:109
11334CLKOUT0_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:63
11335CLKOUT1_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:64
11364psincdec
Definition: mmcm_adv.v:100
11358clkfbin
Definition: mmcm_adv.v:94
11379locked
Definition: mmcm_adv.v:115
11356clkin1
Definition: mmcm_adv.v:92
11330CLKOUT5_DUTY_CYCLE0.5
Definition: mmcm_adv.v:59
11316CLKFBOUT_MULT_F5.000
Definition: mmcm_adv.v:45
11357clkin2
Definition: mmcm_adv.v:93
11340CLKOUT6_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:69
11350REF_JITTER10.010
Definition: mmcm_adv.v:83
11362psclk
Definition: mmcm_adv.v:98
11346CLKOUT5_DIVIDE1
Definition: mmcm_adv.v:75
11323CLKOUT5_PHASE0.000
Definition: mmcm_adv.v:52
11332CLKOUT4_CASCADE"FALSE"
Definition: mmcm_adv.v:61
11321CLKOUT3_PHASE0.000
Definition: mmcm_adv.v:50
11338CLKOUT4_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:67
11348COMPENSATION"ZHOLD"
Definition: mmcm_adv.v:77
11359clkinsel
Definition: mmcm_adv.v:95
11378clkfboutb
Definition: mmcm_adv.v:114
11336CLKOUT2_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:65
11375clkout2b
Definition: mmcm_adv.v:111
11367clkout1
Definition: mmcm_adv.v:103
11360rst
Definition: mmcm_adv.v:96
11326CLKOUT1_DUTY_CYCLE0.5
Definition: mmcm_adv.v:55
11369clkout3
Definition: mmcm_adv.v:105
11325CLKOUT0_DUTY_CYCLE0.5
Definition: mmcm_adv.v:54
11319CLKOUT1_PHASE0.000
Definition: mmcm_adv.v:48
11333CLKFBOUT_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:62
11377clkfbout
Definition: mmcm_adv.v:113
11372clkout6
Definition: mmcm_adv.v:108
11368clkout2
Definition: mmcm_adv.v:104
11331CLKOUT6_DUTY_CYCLE0.5
Definition: mmcm_adv.v:60
11314CLKIN2_PERIOD0.000
Definition: mmcm_adv.v:43
11328CLKOUT3_DUTY_CYCLE0.5
Definition: mmcm_adv.v:57
11361pwrdwn
Definition: mmcm_adv.v:97
11371clkout5
Definition: mmcm_adv.v:107
11355STARTUP_WAIT"FALSE"
Definition: mmcm_adv.v:88
11353SS_MODE"CENTER_HIGH"
Definition: mmcm_adv.v:86
11337CLKOUT3_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:66
11354SS_MOD_PERIOD10000
Definition: mmcm_adv.v:87
11344CLKOUT3_DIVIDE1
Definition: mmcm_adv.v:73
11366clkout0
Definition: mmcm_adv.v:102
11352SS_EN"FALSE"
Definition: mmcm_adv.v:85
11313CLKIN1_PERIOD0.000
Definition: mmcm_adv.v:42
11341CLKOUT0_DIVIDE_F1.000
Definition: mmcm_adv.v:70
11374clkout1b
Definition: mmcm_adv.v:110
11343CLKOUT2_DIVIDE1
Definition: mmcm_adv.v:72
11349DIVCLK_DIVIDE1
Definition: mmcm_adv.v:82
11363psen
Definition: mmcm_adv.v:99
11339CLKOUT5_USE_FINE_PS"FALSE"
Definition: mmcm_adv.v:68
11315BANDWIDTH"OPTIMIZED"
Definition: mmcm_adv.v:44
11365psdone
Definition: mmcm_adv.v:101
11347CLKOUT6_DIVIDE1
Definition: mmcm_adv.v:76
11345CLKOUT4_DIVIDE1
Definition: mmcm_adv.v:74
11376clkout3b
Definition: mmcm_adv.v:112
11342CLKOUT1_DIVIDE1
Definition: mmcm_adv.v:71
11327CLKOUT2_DUTY_CYCLE0.5
Definition: mmcm_adv.v:56
11329CLKOUT4_DUTY_CYCLE0.5
Definition: mmcm_adv.v:58