build.res: accept a list of clocks in ConstraintManager constructor.

This commit is contained in:
whitequark 2019-06-01 15:41:41 +00:00
parent f17375a60b
commit 8c1b5a26b3
2 changed files with 15 additions and 2 deletions

View file

@ -15,7 +15,7 @@ class ConstraintError(Exception):
class ConstraintManager:
def __init__(self, resources):
def __init__(self, resources, clocks):
self.resources = OrderedDict()
self.requested = OrderedDict()
self.clocks = OrderedDict()
@ -25,6 +25,10 @@ class ConstraintManager:
self._diffpairs = []
self.add_resources(resources)
for name_number, frequency in clocks:
if not isinstance(name_number, tuple):
name_number = (name_number, 0)
self.add_clock(*name_number, frequency)
def add_resources(self, resources):
for r in resources:

View file

@ -17,15 +17,24 @@ class ConstraintManagerTestCase(FHDLTestCase):
Subsignal("sda", Pins("N11"))
)
]
self.cm = ConstraintManager(self.resources)
self.cm = ConstraintManager(self.resources, [])
def test_basic(self):
self.clocks = [
("clk100", 100),
(("clk50", 0), 50),
]
self.cm = ConstraintManager(self.resources, self.clocks)
self.assertEqual(self.cm.resources, {
("clk100", 0): self.resources[0],
("clk50", 0): self.resources[1],
("user_led", 0): self.resources[2],
("i2c", 0): self.resources[3]
})
self.assertEqual(self.cm.clocks, {
("clk100", 0): 100,
("clk50", 0): 50,
})
def test_add_resources(self):
new_resources = [