From: Sebastien Bourdeauducq Date: Mon, 21 Oct 2013 20:05:28 +0000 (+0200) Subject: genlib/record: support passing params in same object X-Git-Tag: 24jan2021_ls180~2099^2~460 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=018afe57ef52b8040934319cac848437a2ba0163;p=litex.git genlib/record: support passing params in same object --- diff --git a/migen/genlib/record.py b/migen/genlib/record.py index 10e3a43c..521dcb2c 100644 --- a/migen/genlib/record.py +++ b/migen/genlib/record.py @@ -56,11 +56,21 @@ def layout_partial(layout, *elements): insert_ref.append(layout_get(copy_ref, last)) return r +class LayoutP: + def __init__(self, layout, **layout_dict): + self.layout = layout + self.layout_dict = layout_dict + class Record: def __init__(self, layout, name=None, **layout_dict): self.name = get_obj_var_name(name, "") - self.layout = layout - self.layout_dict = layout_dict + if isinstance(layout, LayoutP): + self.layout = layout.layout + self.layout_dict = layout.layout_dict + assert(not layout_dict) + else: + self.layout = layout + self.layout_dict = layout_dict if self.name: prefix = self.name + "_"