aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fpga_interchange/fpga_interchange.cpp13
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++;