Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Always include last step in names

  • Loading branch information...
commit 00d3eb7989c9d4d8ada2f3ae60ef442b285b261e 1 parent 4eac60d
@sbourdeauducq sbourdeauducq authored
Showing with 16 additions and 14 deletions.
  1. +16 −14 migen/fhdl/namer.py
View
30 migen/fhdl/namer.py
@@ -63,12 +63,11 @@ def _bin(sn, sig_iters):
terminals = []
bins = {}
for signal, it in sig_iters:
- try:
- step = it.__next__()
- except StopIteration:
- terminals.append(signal)
+ step, last = next(it)
+ step_name = sn.name(step)
+ if last:
+ terminals.append((step_name, signal))
else:
- step_name = sn.name(step)
if step_name not in bins:
bins[step_name] = []
bins[step_name].append((signal, it))
@@ -86,19 +85,24 @@ def _r_build_pnd(sn, sig_iters):
if intersection:
for prefix, sub_pnd in bins_named:
for s, n in sub_pnd.items():
- if n:
- r[s] = prefix + "_" + n
- else:
- r[s] = prefix
+ r[s] = prefix + "_" + n
else:
for prefix, sub_pnd in bins_named:
r.update(sub_pnd)
- for t in terminals:
- r[t] = ""
+ for n, s in terminals:
+ r[s] = n
return r
+def last_flagged(seq):
+ seq = iter(seq)
+ a = next(seq)
+ for b in seq:
+ yield a, False
+ a = b
+ yield a, True
+
def build_pnd(signals):
- sig_iters = [(signal, iter(signal.backtrace))
+ sig_iters = [(signal, last_flagged(signal.backtrace))
for signal in signals]
return _r_build_pnd(_StepNamer(), sig_iters)
@@ -113,8 +117,6 @@ def get_name(self, sig):
sig_name = sig.name_override
else:
sig_name = self.pnd[sig]
- if not sig_name:
- sig_name = "anonymous"
try:
n = self.sigs[sig]
except KeyError:
Please sign in to comment.
Something went wrong with that request. Please try again.