@@ -25,6 +25,12 @@ def __init__(self, platform, rtio_internal_clk):
25
25
self .clock_domains .cd_rtio = ClockDomain ()
26
26
self .clock_domains .cd_rtiox4 = ClockDomain (reset_less = True )
27
27
28
+ # 10 MHz when using 125MHz input
29
+ self .clock_domains .cd_ext_clkout = ClockDomain (reset_less = True )
30
+ ext_clkout = platform .request ("user_sma_gpio_p" )
31
+ self .sync .ext_clkout += ext_clkout .eq (~ ext_clkout )
32
+
33
+
28
34
rtio_external_clk = Signal ()
29
35
user_sma_clock = platform .request ("user_sma_clock" )
30
36
platform .add_period_constraint (user_sma_clock .p , 8.0 )
@@ -35,6 +41,7 @@ def __init__(self, platform, rtio_internal_clk):
35
41
pll_locked = Signal ()
36
42
rtio_clk = Signal ()
37
43
rtiox4_clk = Signal ()
44
+ ext_clkout_clk = Signal ()
38
45
self .specials += [
39
46
Instance ("PLLE2_ADV" ,
40
47
p_STARTUP_WAIT = "FALSE" , o_LOCKED = pll_locked ,
@@ -45,25 +52,26 @@ def __init__(self, platform, rtio_internal_clk):
45
52
# Warning: CLKINSEL=0 means CLKIN2 is selected
46
53
i_CLKINSEL = ~ self ._clock_sel .storage ,
47
54
55
+ # VCO @ 1GHz when using 125MHz input
48
56
p_CLKFBOUT_MULT = 8 , p_DIVCLK_DIVIDE = 1 ,
49
57
i_CLKFBIN = self .cd_rtio .clk ,
50
58
i_RST = self ._pll_reset .storage ,
51
59
52
60
o_CLKFBOUT = rtio_clk ,
53
61
54
62
p_CLKOUT0_DIVIDE = 2 , p_CLKOUT0_PHASE = 0.0 ,
55
- o_CLKOUT0 = rtiox4_clk ),
63
+ o_CLKOUT0 = rtiox4_clk ,
64
+
65
+ p_CLKOUT1_DIVIDE = 50 , p_CLKOUT1_PHASE = 0.0 ,
66
+ o_CLKOUT1 = ext_clkout_clk ),
56
67
Instance ("BUFG" , i_I = rtio_clk , o_O = self .cd_rtio .clk ),
57
68
Instance ("BUFG" , i_I = rtiox4_clk , o_O = self .cd_rtiox4 .clk ),
69
+ Instance ("BUFG" , i_I = ext_clkout_clk , o_O = self .cd_ext_clkout .clk ),
58
70
59
71
AsyncResetSynchronizer (self .cd_rtio , ~ pll_locked ),
60
72
MultiReg (pll_locked , self ._pll_locked .status )
61
73
]
62
74
63
- # 62.5MHz when using internal RTIO clock
64
- ext_clkout = platform .request ("user_sma_gpio_p" )
65
- self .sync .rtio += ext_clkout .eq (~ ext_clkout )
66
-
67
75
68
76
class _NIST_QCx (MiniSoC , AMPSoC ):
69
77
csr_map = {
0 commit comments