pmgen to also iterate over all module ports
authorEddie Hung <eddie@fpgeh.com>
Thu, 22 Aug 2019 18:15:16 +0000 (11:15 -0700)
committerEddie Hung <eddie@fpgeh.com>
Thu, 22 Aug 2019 18:15:16 +0000 (11:15 -0700)
passes/pmgen/pmgen.py

index 18c3bf5a5b679554cb708590250fdba74cec335f..8944ac2bf8c7ca020a432cd1e5ac84dbe806da39 100644 (file)
@@ -390,8 +390,6 @@ with open(outfile, "w") as f:
     print("  void add_siguser(const SigSpec &sig, Cell *cell) {", file=f)
     print("    for (auto bit : sigmap(sig)) {", file=f)
     print("      if (bit.wire == nullptr) continue;", file=f)
-    print("      if (sigusers.count(bit) == 0 && bit.wire->port_id)", file=f)
-    print("        sigusers[bit].insert(nullptr);", file=f)
     print("      sigusers[bit].insert(cell);", file=f)
     print("    }", file=f)
     print("  }", file=f)
@@ -450,6 +448,10 @@ with open(outfile, "w") as f:
     print("      for (auto &conn : cell->connections())", file=f)
     print("        add_siguser(conn.second, cell);", file=f)
     print("    }", file=f)
+    print("    for (auto port : module->ports)", file=f)
+    print("      add_siguser(module->wire(port), nullptr);", file=f)
+    print("    ", file=f)
+
     print("    for (auto cell : cells) {", file=f)
 
     for index in range(len(blocks)):