From: Sebastien Bourdeauducq Date: Thu, 19 Jan 2012 18:24:43 +0000 (+0100) Subject: Fix disjoint namespace test X-Git-Tag: 24jan2021_ls180~2099^2~1068 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fc473e31eb9154c6b7fb2dcc447a4d23fe2efc14;p=litex.git Fix disjoint namespace test --- diff --git a/migen/fhdl/namer.py b/migen/fhdl/namer.py index 3771e423..5f658bba 100644 --- a/migen/fhdl/namer.py +++ b/migen/fhdl/namer.py @@ -73,16 +73,18 @@ def _bin(sn, sig_iters): bins[step_name].append((signal, it)) return terminals, bins +def _sets_disjoint(l): + for s1, s2 in combinations(l, 2): + if not s1.isdisjoint(s2): + return False + return True + def _r_build_pnd(sn, sig_iters): terminals, bins = _bin(sn, sig_iters) bins_named = [(k, _r_build_pnd(sn, v)) for k, v in bins.items()] name_sets = [set(sub_pnd.values()) for prefix, sub_pnd in bins_named] - if name_sets: - intersection = set.intersection(*name_sets) - else: - intersection = set() r = {} - if intersection: + if not _sets_disjoint(name_sets): for prefix, sub_pnd in bins_named: for s, n in sub_pnd.items(): r[s] = prefix + "_" + n