build.dsl: accept Pins(invert=True).
The PinsN() form is still preferred, but Pins(invert=) form is useful for code generic over pin polarity.
This commit is contained in:
parent
9458de2079
commit
751ae33fe1
|
@ -6,7 +6,7 @@ __all__ = ["Pins", "PinsN", "DiffPairs", "DiffPairsN",
|
|||
|
||||
|
||||
class Pins:
|
||||
def __init__(self, names, *, dir="io", conn=None, assert_width=None):
|
||||
def __init__(self, names, *, dir="io", invert=False, conn=None, assert_width=None):
|
||||
if not isinstance(names, str):
|
||||
raise TypeError("Names must be a whitespace-separated string, not {!r}"
|
||||
.format(names))
|
||||
|
@ -29,7 +29,7 @@ class Pins:
|
|||
|
||||
self.names = names
|
||||
self.dir = dir
|
||||
self.invert = False
|
||||
self.invert = bool(invert)
|
||||
|
||||
def __len__(self):
|
||||
return len(self.names)
|
||||
|
|
|
@ -18,6 +18,10 @@ class PinsTestCase(FHDLTestCase):
|
|||
self.assertEqual(repr(p), "(pins-n io A0)")
|
||||
self.assertEqual(p.invert, True)
|
||||
|
||||
def test_invert_arg(self):
|
||||
p = Pins("A0", invert=True)
|
||||
self.assertEqual(p.invert, True)
|
||||
|
||||
def test_conn(self):
|
||||
p = Pins("0 1 2", conn=("pmod", 0))
|
||||
self.assertEqual(list(p), ["pmod_0:0", "pmod_0:1", "pmod_0:2"])
|
||||
|
|
Loading…
Reference in a new issue