soc/cores/clocks/S7PLL: add speedgrade support, default to -1 (slowest)
This commit is contained in:
parent
5415b521be
commit
ef40524924
|
@ -11,7 +11,6 @@ from migen.genlib.resetsync import AsyncResetSynchronizer
|
||||||
|
|
||||||
|
|
||||||
# TODO:
|
# TODO:
|
||||||
# - add S7PLL support for all family/speedgrades (currently Artix7 -3 speedgrade)
|
|
||||||
# - add S7MMCM support (should be very similar to S7PLL)
|
# - add S7MMCM support (should be very similar to S7PLL)
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,11 +21,17 @@ def period_ns(freq):
|
||||||
class S7PLL(Module):
|
class S7PLL(Module):
|
||||||
nclkouts_max = 6
|
nclkouts_max = 6
|
||||||
clkin_freq_range = (10e6, 800e6)
|
clkin_freq_range = (10e6, 800e6)
|
||||||
vco_freq_range = (600e6, 1600e6)
|
|
||||||
clkfbout_mult_frange = (2, 64+1)
|
clkfbout_mult_frange = (2, 64+1)
|
||||||
clkout_divide_range = (1, 128+1)
|
clkout_divide_range = (1, 128+1)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, speedgrade=-1):
|
||||||
|
if speedgrade == -3:
|
||||||
|
self.vco_freq_range = (600e6, 1600e6)
|
||||||
|
elif speedgrade == -2:
|
||||||
|
self.vco_freq_range = (600e6, 1440e6)
|
||||||
|
else:
|
||||||
|
self.vco_freq_range = (600e6, 1200e6)
|
||||||
|
|
||||||
self.reset = Signal()
|
self.reset = Signal()
|
||||||
self.locked = Signal()
|
self.locked = Signal()
|
||||||
self.clkin_freq = None
|
self.clkin_freq = None
|
||||||
|
|
Loading…
Reference in New Issue