diff options
Diffstat (limited to 'fpga_interchange/fpga_interchange.cpp')
-rw-r--r-- | fpga_interchange/fpga_interchange.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/fpga_interchange/fpga_interchange.cpp b/fpga_interchange/fpga_interchange.cpp index 8d54335d..89f1f958 100644 --- a/fpga_interchange/fpga_interchange.cpp +++ b/fpga_interchange/fpga_interchange.cpp @@ -535,11 +535,22 @@ void FpgaInterchange::write_physical_netlist(const Context * ctx, const std::str phys_cell.setPhysType(PhysicalNetlist::PhysNetlist::PhysCellType::PORT); } - auto nets = phys_netlist.initPhysNets(ctx->nets.size()); + int nets_to_remove = 0; + for(auto & net_pair : ctx->nets) { + auto &net = *net_pair.second; + + if (net.users.empty()) + nets_to_remove++; + } + + auto nets = phys_netlist.initPhysNets(ctx->nets.size() - nets_to_remove); auto net_iter = nets.begin(); for(auto & net_pair : ctx->nets) { auto &net = *net_pair.second; + if (net.users.empty()) + continue; + const CellInfo *driver_cell = net.driver.cell; auto net_out = *net_iter++; |