From c71eb5778f9d7ad8e782a68389b87349e35fb7df Mon Sep 17 00:00:00 2001 From: Robert Jordens Date: Mon, 2 Dec 2013 17:23:56 -0700 Subject: [PATCH] migen.fhdl.structure: have Cat() flat_iteration-ize its arguments --- migen/fhdl/structure.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/migen/fhdl/structure.py b/migen/fhdl/structure.py index a94c198b6..aba747b30 100644 --- a/migen/fhdl/structure.py +++ b/migen/fhdl/structure.py @@ -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