aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange/arch.h
diff options
context:
space:
mode:
Diffstat (limited to 'fpga_interchange/arch.h')
-rw-r--r--fpga_interchange/arch.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/fpga_interchange/arch.h b/fpga_interchange/arch.h
index 84c0b7c8..6a3d7ad1 100644
--- a/fpga_interchange/arch.h
+++ b/fpga_interchange/arch.h
@@ -515,6 +515,20 @@ struct Arch : ArchAPI<ArchRanges>
void assign_net_to_wire(WireId wire, NetInfo *net, const char *src, bool require_empty);
+ void assign_pip_pseudo_wires(PipId pip, NetInfo *net)
+ {
+ NPNR_ASSERT(net != nullptr);
+ WireId wire;
+ wire.tile = pip.tile;
+ const PipInfoPOD &pip_data = pip_info(chip_info, pip);
+ for (int32_t wire_index : pip_data.pseudo_cell_wires) {
+ wire.index = wire_index;
+ assign_net_to_wire(wire, net, "pseudo", /*require_empty=*/true);
+ }
+ }
+
+ void remove_pip_pseudo_wires(PipId pip, NetInfo *net);
+
void unassign_wire(WireId wire);
void bindPip(PipId pip, NetInfo *net, PlaceStrength strength) final;