clock/lattice_ecp5/ECP5PLL: ensure feedback path selected before exiting search
This commit is contained in:
parent
f017b06926
commit
6733a3e3e6
|
@ -97,6 +97,9 @@ class ECP5PLL(Module):
|
|||
break
|
||||
if not valid:
|
||||
all_valid = False
|
||||
if self.nclkouts == self.nclkouts_max and not config["clkfb"]:
|
||||
# If there is no output suitable for feedback and no spare, not valid
|
||||
all_valid = False
|
||||
else:
|
||||
all_valid = False
|
||||
if all_valid:
|
||||
|
|
|
@ -121,6 +121,15 @@ class TestClock(unittest.TestCase):
|
|||
pll.expose_dpa()
|
||||
pll.compute_config()
|
||||
|
||||
# Test corner cases that have historically had trouble:
|
||||
pll = ECP5PLL()
|
||||
pll.register_clkin(Signal(), 100e6)
|
||||
pll.create_clkout(ClockDomain("clkout1"), 350e6)
|
||||
pll.create_clkout(ClockDomain("clkout2"), 350e6)
|
||||
pll.create_clkout(ClockDomain("clkout3"), 175e6)
|
||||
pll.create_clkout(ClockDomain("clkout4"), 175e6)
|
||||
pll.compute_config()
|
||||
|
||||
# Lattice / NX
|
||||
def test_nxpll(self):
|
||||
pll = NXPLL()
|
||||
|
|
Loading…
Reference in New Issue