aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEddie Hung <eddie@fpgeh.com>2019-08-23 14:32:17 -0700
committerEddie Hung <eddie@fpgeh.com>2019-08-23 14:32:17 -0700
commit1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef (patch)
tree2e9a2d955a7e13dea4531af29a4662d5f2f9ab4a
parent8ecfd55d5a02854abf2f59f4bc19ce94479b82fb (diff)
downloadyosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.tar.gz
yosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.tar.bz2
yosys-1d88887cfdbeedff7dce9024d8fb4ceb014cb2ef.zip
Add a unique argument to pmgen's nusers()
-rw-r--r--passes/pmgen/pmgen.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/passes/pmgen/pmgen.py b/passes/pmgen/pmgen.py
index 573722d68..2f2545c22 100644
--- a/passes/pmgen/pmgen.py
+++ b/passes/pmgen/pmgen.py
@@ -458,12 +458,16 @@ with open(outfile, "w") as f:
print(" }", file=f)
print("", file=f)
- print(" int nusers(const SigSpec &sig) {", file=f)
+ print(" int nusers(const SigSpec &sig, bool unique=true) {", file=f)
+ print(" int i = 0;", file=f)
print(" pool<Cell*> users;", file=f)
print(" for (auto bit : sigmap(sig))", file=f)
- print(" for (auto user : sigusers[bit])", file=f)
- print(" users.insert(user);", file=f)
- print(" return GetSize(users);", file=f)
+ print(" if (unique)", file=f);
+ print(" i += GetSize(sigusers[bit]);", file=f);
+ print(" else", file=f);
+ print(" for (auto user : sigusers[bit])", file=f)
+ print(" users.insert(user);", file=f)
+ print(" return unique ? GetSize(users) : i;", file=f)
print(" }", file=f)
print("", file=f)