diff --git a/migen/corelogic/record.py b/migen/corelogic/record.py index eadeb0a22..4bb1a20a5 100644 --- a/migen/corelogic/record.py +++ b/migen/corelogic/record.py @@ -1,17 +1,21 @@ from migen.fhdl.structure import * class Record: - def __init__(self, layout, name=None): - self.name = name or "anonymous" + def __init__(self, layout, name=""): + self.name = name self.field_order = [] + if self.name: + prefix = self.name + "_" + else: + prefix = "" for f in layout: if isinstance(f, tuple): if isinstance(f[1], BV): - setattr(self, f[0], Signal(f[1], self.name + "_" + f[0])) + setattr(self, f[0], Signal(f[1], prefix + f[0])) elif isinstance(f[1], Signal) or isinstance(f[1], Record): setattr(self, f[0], f[1]) elif isinstance(f[1], list): - setattr(self, f[0], Record(f[1], self.name + "_" + f[0])) + setattr(self, f[0], Record(f[1], prefix + f[0])) else: raise TypeError if len(f) == 3: @@ -19,7 +23,7 @@ class Record: else: self.field_order.append((f[0], 1)) else: - setattr(self, f, Signal(BV(1), self.name + "_" + f)) + setattr(self, f, Signal(BV(1), prefix + f)) self.field_order.append((f, 1)) def layout(self):