build.dsl: make Pins and DiffPairs iterable.

Returns pin names.
This commit is contained in:
whitequark 2019-05-25 22:37:32 +00:00
parent 48145cee02
commit 3a9fe31133
2 changed files with 14 additions and 0 deletions

View file

@ -13,6 +13,12 @@ class Pins:
.format(dir))
self.dir = dir
def __len__(self):
return len(self.names)
def __iter__(self):
return iter(self.names)
def __repr__(self):
return "(pins {} {})".format(self.dir, " ".join(self.names))
@ -29,6 +35,12 @@ class DiffPairs:
self.dir = dir
def __len__(self):
return len(self.p.names)
def __iter__(self):
return zip(self.p.names, self.n.names)
def __repr__(self):
return "(diffpairs {} (p {}) (n {}))".format(
self.dir, " ".join(self.p.names), " ".join(self.n.names))

View file

@ -8,6 +8,7 @@ class PinsTestCase(FHDLTestCase):
self.assertEqual(repr(p), "(pins io A0 A1 A2)")
self.assertEqual(len(p.names), 3)
self.assertEqual(p.dir, "io")
self.assertEqual(list(p), ["A0", "A1", "A2"])
def test_wrong_names(self):
with self.assertRaises(TypeError,
@ -27,6 +28,7 @@ class DiffPairsTestCase(FHDLTestCase):
self.assertEqual(dp.p.names, ["A0", "A1"])
self.assertEqual(dp.n.names, ["B0", "B1"])
self.assertEqual(dp.dir, "io")
self.assertEqual(list(dp), [("A0", "B0"), ("A1", "B1")])
def test_dir(self):
dp = DiffPairs("A0", "B0", dir="o")