From 60883bea6b1ce168cd997d989c4e3d20901c5179 Mon Sep 17 00:00:00 2001
From: Lars-Peter Clausen <lars@metafoo.de>
Date: Tue, 19 Mar 2013 10:05:45 +0100
Subject: [PATCH] Implement __len__ for Splice, Cat and Replicate
---
migen/fhdl/structure.py | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/migen/fhdl/structure.py b/migen/fhdl/structure.py
index 350670f..32a13ff 100644
--- a/migen/fhdl/structure.py
+++ b/migen/fhdl/structure.py
@@ -126,17 +126,26 @@ class _Slice(Value):
self.start = start
self.stop = stop
+ def __len__(self):
+ return self.stop - self.start + 1
+
class Cat(Value):
def __init__(self, *args):
Value.__init__(self)
self.l = args
+ def __len__(self):
+ return sum([len(x) for x in self.l])
+
class Replicate(Value):
def __init__(self, v, n):
Value.__init__(self)
self.v = v
self.n = n
+ def __len__(self):
+ return len(self.v) * n
+
class Signal(Value):
def __init__(self, bits_sign=None, name=None, variable=False, reset=0, name_override=None, min=None, max=None):
Value.__init__(self)
--
1.7.2.5