migen.fhdl.structure: have Cat() flat_iteration-ize its arguments
This commit is contained in:
parent
1bf133755e
commit
c71eb5778f
|
@ -4,6 +4,7 @@ import builtins
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
from migen.fhdl import tracer
|
from migen.fhdl import tracer
|
||||||
|
from migen.util.misc import flat_iteration
|
||||||
|
|
||||||
class HUID:
|
class HUID:
|
||||||
__next_uid = 0
|
__next_uid = 0
|
||||||
|
@ -87,7 +88,7 @@ class Value(HUID):
|
||||||
elif isinstance(key, slice):
|
elif isinstance(key, slice):
|
||||||
start, stop, step = key.indices(flen(self))
|
start, stop, step = key.indices(flen(self))
|
||||||
if step != 1:
|
if step != 1:
|
||||||
return Cat(*(self[i] for i in range(start, stop, step)))
|
return Cat(self[i] for i in range(start, stop, step))
|
||||||
return _Slice(self, start, stop)
|
return _Slice(self, start, stop)
|
||||||
else:
|
else:
|
||||||
raise KeyError
|
raise KeyError
|
||||||
|
@ -155,11 +156,11 @@ class Cat(Value):
|
||||||
meeting these properties. The bit length of the return value is the sum of
|
meeting these properties. The bit length of the return value is the sum of
|
||||||
the bit lengths of the arguments::
|
the bit lengths of the arguments::
|
||||||
|
|
||||||
flen(Cat(*args)) == sum(flen(arg) for arg in args)
|
flen(Cat(args)) == sum(flen(arg) for arg in args)
|
||||||
|
|
||||||
Parameters
|
Parameters
|
||||||
----------
|
----------
|
||||||
*args : Value, inout
|
*args : Values or iterables of Values, inout
|
||||||
`Value` s to be concatenated.
|
`Value` s to be concatenated.
|
||||||
|
|
||||||
Returns
|
Returns
|
||||||
|
@ -169,7 +170,7 @@ class Cat(Value):
|
||||||
"""
|
"""
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
Value.__init__(self)
|
Value.__init__(self)
|
||||||
self.l = args
|
self.l = list(flat_iteration(args))
|
||||||
|
|
||||||
class Replicate(Value):
|
class Replicate(Value):
|
||||||
"""Replicate a value
|
"""Replicate a value
|
||||||
|
|
Loading…
Reference in New Issue