Commit c71eb577 authored by Robert Jordens's avatar Robert Jordens Committed by Sebastien Bourdeauducq
Browse files

migen.fhdl.structure: have Cat() flat_iteration-ize its arguments

parent 1bf13375
......@@ -4,6 +4,7 @@ import builtins
from collections import defaultdict
from migen.fhdl import tracer
from migen.util.misc import flat_iteration
class HUID:
__next_uid = 0
......@@ -87,7 +88,7 @@ class Value(HUID):
elif isinstance(key, slice):
start, stop, step = key.indices(flen(self))
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)
else:
raise KeyError
......@@ -155,11 +156,11 @@ class Cat(Value):
meeting these properties. The bit length of the return value is the sum of
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
----------
*args : Value, inout
*args : Values or iterables of Values, inout
`Value` s to be concatenated.
Returns
......@@ -169,7 +170,7 @@ class Cat(Value):
"""
def __init__(self, *args):
Value.__init__(self)
self.l = args
self.l = list(flat_iteration(args))
class Replicate(Value):
"""Replicate a value
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment