x393
1.0
FPGAcodeforElphelNC393camera
dual_clock_source.v
Go to the documentation of this file.
1
39
`timescale 1ns/1ps
40
41
module
dual_clock_source
#(
42
parameter
CLKIN_PERIOD
=
20
,
//ns >1.25, 600<Fvco<1200
43
// Fvco=Fclkin*CLKFBOUT_MULT_F/DIVCLK_DIVIDE, Fout=Fvco/CLKOUT#_DIVIDE
44
45
parameter
DIVCLK_DIVIDE
=
1
,
// Integer 1..106. Divides all outputs with respect to CLKIN
46
parameter
CLKFBOUT_MULT
=
20
,
// integer 2 to 64 . Together with CLKOUT#_DIVIDE and DIVCLK_DIVIDE
47
parameter
CLKOUT_DIV_CLK1X
=
10
,
//
48
parameter
CLKOUT_DIV_CLK2X
=
5
,
//
49
parameter
PHASE_CLK2X
=
0.000
,
// degrees, relative to clk1x (3 significant digits, -360.000...+360.000)
50
parameter
BUF_CLK1X
=
"BUFG"
,
// "BUFG", "BUFH", "BUFR", "NONE"
51
parameter
BUF_CLK2X
=
"BUFG"
// "BUFG", "BUFH", "BUFR", "NONE"
52
)(
53
input
rst
,
54
input
clk_in
,
55
input
pwrdwn
,
56
output
clk1x
,
57
output
clk2x
,
58
output
locked
59
);
60
wire
clkfb
,
clk1x_pre
,
clk2x_pre
;
61
generate
62
if
(
BUF_CLK1X
==
"BUFG"
)
BUFG
clk1x_i
(.
O
(
clk1x
), .
I
(
clk1x_pre
));
63
else
if
(
BUF_CLK1X
==
"BUFH"
)
BUFH
clk1x_i
(.
O
(
clk1x
), .
I
(
clk1x_pre
));
64
else
if
(
BUF_CLK1X
==
"BUFR"
)
BUFR
clk1x_i
(.
O
(
clk1x
), .
I
(
clk1x_pre
), .
CE
(
1'b1
), .
CLR
(
rst
));
65
else
if
(
BUF_CLK1X
==
"BUFMR"
)
BUFMR
clk1x_i
(.
O
(
clk1x
), .
I
(
clk1x_pre
));
66
else
if
(
BUF_CLK1X
==
"BUFIO"
)
BUFIO
clk1x_i
(.
O
(
clk1x
), .
I
(
clk1x_pre
));
67
else
assign
clk1x
=
clk1x_pre
;
68
endgenerate
69
70
generate
71
if
(
BUF_CLK2X
==
"BUFG"
)
BUFG
clk2x_i
(.
O
(
clk2x
), .
I
(
clk2x_pre
));
72
else
if
(
BUF_CLK2X
==
"BUFH"
)
BUFH
clk2x_i
(.
O
(
clk2x
), .
I
(
clk2x_pre
));
73
else
if
(
BUF_CLK2X
==
"BUFR"
)
BUFR
clk2x_i
(.
O
(
clk2x
), .
I
(
clk2x_pre
), .
CE
(
1'b1
), .
CLR
(
rst
));
74
else
if
(
BUF_CLK2X
==
"BUFMR"
)
BUFMR
clk2x_i
(.
O
(
clk2x
), .
I
(
clk2x_pre
));
75
else
if
(
BUF_CLK2X
==
"BUFIO"
)
BUFIO
clk2x_i
(.
O
(
clk2x
), .
I
(
clk2x_pre
));
76
else
assign
clk2x
=
clk2x_pre
;
77
endgenerate
78
79
pll_base
#(
80
.
CLKIN_PERIOD
(
CLKIN_PERIOD
),
// 20
81
.
BANDWIDTH
(
"OPTIMIZED"
),
82
.
DIVCLK_DIVIDE
(
DIVCLK_DIVIDE
),
83
.
CLKFBOUT_MULT
(
CLKFBOUT_MULT
),
// 2..64, // Fvco=Fclkin*CLKFBOUT_MULT_F/DIVCLK_DIVIDE, Fout=Fvco/CLKOUT#_DIVIDE
84
.
CLKOUT1_PHASE
(
PHASE_CLK2X
),
85
.
CLKOUT0_DIVIDE
(
CLKOUT_DIV_CLK1X
),
86
.
CLKOUT1_DIVIDE
(
CLKOUT_DIV_CLK2X
),
87
.
REF_JITTER1
(
0.010
),
88
.
STARTUP_WAIT
(
"FALSE"
)
89
)
pll_base_i
(
90
.
clkin
(
clk_in
),
// input
91
.
clkfbin
(
clkfb
),
// input
92
// .rst(rst), // input
93
.
rst
(
rst
),
// input
94
.
pwrdwn
(
pwrdwn
),
// input
95
.
clkout0
(
clk1x_pre
),
// output
96
.
clkout1
(
clk2x_pre
),
// output
97
.
clkout2
(),
// output
98
.
clkout3
(),
// output
99
.
clkout4
(),
// output
100
.
clkout5
(),
// output
101
.
clkfbout
(
clkfb
),
// output
102
.
locked
(
locked
)
// output
103
);
104
105
106
107
endmodule
108
dual_clock_source.10345rst
10345rst
Definition:
dual_clock_source.v:53
pll_base.11577clkout1
11577clkout1
Definition:
pll_base.v:74
dual_clock_source
Definition:
dual_clock_source.v:41
dual_clock_source.10348clk1x
10348clk1x
Definition:
dual_clock_source.v:56
pll_base.11572clkin
11572clkin
Definition:
pll_base.v:69
pll_base.11575pwrdwn
11575pwrdwn
Definition:
pll_base.v:72
dual_clock_source.10352clk1x_pre
10352clk1x_prewire
Definition:
dual_clock_source.v:60
dual_clock_source.10353clk2x_pre
10353clk2x_prewire
Definition:
dual_clock_source.v:60
dual_clock_source.BUFG
clk2x_i BUFG[generate]
Definition:
dual_clock_source.v:71
pll_base.11579clkout3
11579clkout3
Definition:
pll_base.v:76
pll_base.11573clkfbin
11573clkfbin
Definition:
pll_base.v:70
pll_base.11580clkout4
11580clkout4
Definition:
pll_base.v:77
dual_clock_source.10347pwrdwn
10347pwrdwn
Definition:
dual_clock_source.v:55
dual_clock_source.10346clk_in
10346clk_in
Definition:
dual_clock_source.v:54
dual_clock_source.10351clkfb
10351clkfbwire
Definition:
dual_clock_source.v:60
pll_base.11576clkout0
11576clkout0
Definition:
pll_base.v:73
dual_clock_source.10344BUF_CLK2X
10344BUF_CLK2X"BUFG"
Definition:
dual_clock_source.v:51
pll_base.11582clkfbout
11582clkfbout
Definition:
pll_base.v:79
dual_clock_source.10339CLKFBOUT_MULT
10339CLKFBOUT_MULT20
Definition:
dual_clock_source.v:46
dual_clock_source.pll_base
pll_base_i pll_base
Definition:
dual_clock_source.v:79
dual_clock_source.10337CLKIN_PERIOD
10337CLKIN_PERIOD20
Definition:
dual_clock_source.v:42
pll_base.11581clkout5
11581clkout5
Definition:
pll_base.v:78
pll_base.11574rst
11574rst
Definition:
pll_base.v:71
dual_clock_source.10343BUF_CLK1X
10343BUF_CLK1X"BUFG"
Definition:
dual_clock_source.v:50
dual_clock_source.10341CLKOUT_DIV_CLK2X
10341CLKOUT_DIV_CLK2X5
Definition:
dual_clock_source.v:48
dual_clock_source.BUFMR
clk2x_i BUFMR[generate]
Definition:
dual_clock_source.v:74
dual_clock_source.10340CLKOUT_DIV_CLK1X
10340CLKOUT_DIV_CLK1X10
Definition:
dual_clock_source.v:47
dual_clock_source.BUFIO
clk2x_i BUFIO[generate]
Definition:
dual_clock_source.v:75
pll_base.11583locked
11583locked
Definition:
pll_base.v:80
dual_clock_source.10350locked
10350locked
Definition:
dual_clock_source.v:58
dual_clock_source.10338DIVCLK_DIVIDE
10338DIVCLK_DIVIDE1
Definition:
dual_clock_source.v:45
dual_clock_source.BUFH
clk2x_i BUFH[generate]
Definition:
dual_clock_source.v:72
pll_base.11578clkout2
11578clkout2
Definition:
pll_base.v:75
dual_clock_source.10349clk2x
10349clk2x
Definition:
dual_clock_source.v:57
dual_clock_source.10342PHASE_CLK2X
10342PHASE_CLK2X0.000
Definition:
dual_clock_source.v:49
dual_clock_source.BUFR
clk2x_i BUFR[generate]
Definition:
dual_clock_source.v:73
util_modules
dual_clock_source.v
Generated by
1.8.12