soc/cores/clock/iCE40PLL: add SB_PLL40_PAD support.
This commit is contained in:
parent
38d7f8a6e6
commit
2a91deadcb
|
@ -416,7 +416,9 @@ class iCE40PLL(Module):
|
||||||
clko_freq_range = ( 16e6, 275e9)
|
clko_freq_range = ( 16e6, 275e9)
|
||||||
vco_freq_range = (533e6, 1066e6)
|
vco_freq_range = (533e6, 1066e6)
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self, primitive="SB_PLL40_CORE"):
|
||||||
|
assert primitive in ["SB_PLL40_CORE", "SB_PLL40_PAD"]
|
||||||
|
self.primitive = primitive
|
||||||
self.reset = Signal()
|
self.reset = Signal()
|
||||||
self.locked = Signal()
|
self.locked = Signal()
|
||||||
self.clkin_freq = None
|
self.clkin_freq = None
|
||||||
|
@ -486,15 +488,18 @@ class iCE40PLL(Module):
|
||||||
p_FEEDBACK_PATH = "SIMPLE",
|
p_FEEDBACK_PATH = "SIMPLE",
|
||||||
p_FILTER_RANGE = filter_range,
|
p_FILTER_RANGE = filter_range,
|
||||||
i_RESETB = ~self.reset,
|
i_RESETB = ~self.reset,
|
||||||
i_REFERENCECLK = self.clkin,
|
|
||||||
o_LOCK = self.locked,
|
o_LOCK = self.locked,
|
||||||
)
|
)
|
||||||
|
if self.primitive == "SB_PLL40_CORE":
|
||||||
|
self.params.update(i_REFERENCECLK=self.clkin)
|
||||||
|
if self.primitive == "SB_PLL40_PAD":
|
||||||
|
self.params.update(i_PACKAGEPIN=self.clkin)
|
||||||
for n, (clk, f, p, m) in sorted(self.clkouts.items()):
|
for n, (clk, f, p, m) in sorted(self.clkouts.items()):
|
||||||
self.params["p_DIVR"] = config["divr"]
|
self.params["p_DIVR"] = config["divr"]
|
||||||
self.params["p_DIVF"] = config["divf"]
|
self.params["p_DIVF"] = config["divf"]
|
||||||
self.params["p_DIVQ"] = config["divq"]
|
self.params["p_DIVQ"] = config["divq"]
|
||||||
self.params["o_PLLOUTGLOBAL"] = clk
|
self.params["o_PLLOUTGLOBAL"] = clk
|
||||||
self.specials += Instance("SB_PLL40_CORE", **self.params)
|
self.specials += Instance(self.primitive, **self.params)
|
||||||
|
|
||||||
# Lattice / ECP5 -----------------------------------------------------------------------------------
|
# Lattice / ECP5 -----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue