From: Sebastien Bourdeauducq Date: Sun, 18 Dec 2011 20:26:51 +0000 (+0100) Subject: fhdl: automatic signal name from assignment X-Git-Tag: 24jan2021_ls180~2099^2~1126 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=41e2430e2b3759b70fd406947ec9365c3ffcefc0;p=litex.git fhdl: automatic signal name from assignment --- diff --git a/migen/fhdl/structure.py b/migen/fhdl/structure.py index 92f767a8..9148e46e 100644 --- a/migen/fhdl/structure.py +++ b/migen/fhdl/structure.py @@ -1,4 +1,6 @@ import math +import inspect +import re def bits_for(n): if isinstance(n, Constant): @@ -123,11 +125,27 @@ def _cst(x): else: return x +def _make_signal_name(): + frame = inspect.currentframe().f_back.f_back + line = inspect.getframeinfo(frame).code_context[0] + m = re.match('[\t ]*([0-9A-Za-z_]+) =', line) + if m is None: return None + name = m.group(1) + modules = frame.f_globals["__name__"] + if modules != "__main__": + modules = modules.split('.') + name = modules[len(modules)-1] + "_" + name + return name + class Signal(Value): - def __init__(self, bv=BV(), name="anonymous", variable=False, reset=0): + def __init__(self, bv=BV(), name=None, variable=False, reset=0): self.bv = bv self.variable = variable self.name = name + if self.name is None: + self.name = _make_signal_name() + if self.name is None: + self.name = "anonymous" self.reset = Constant(reset, bv) def __hash__(self):