interchange: phys: do not output nets which have no users

Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
This commit is contained in:
Alessandro Comodi 2021-07-01 11:56:55 +02:00
parent 2124da44d8
commit dd7cfccbae

View File

@ -535,11 +535,22 @@ void FpgaInterchange::write_physical_netlist(const Context * ctx, const std::str
phys_cell.setPhysType(PhysicalNetlist::PhysNetlist::PhysCellType::PORT); 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(); auto net_iter = nets.begin();
for(auto & net_pair : ctx->nets) { for(auto & net_pair : ctx->nets) {
auto &net = *net_pair.second; auto &net = *net_pair.second;
if (net.users.empty())
continue;
const CellInfo *driver_cell = net.driver.cell; const CellInfo *driver_cell = net.driver.cell;
auto net_out = *net_iter++; auto net_out = *net_iter++;