aboutsummaryrefslogtreecommitdiffstats
path: root/fpga_interchange
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-07-01 13:19:10 +0100
committergatecat <gatecat@ds0.me>2021-07-01 13:19:10 +0100
commitf17643bc082307211af39919008e83d7b1b9a83d (patch)
treeafbadb03a41b9bbc41a935c8974a5124026eadcd /fpga_interchange
parent86bc708299be1bdaf964c42ebb28dc51d91b75c5 (diff)
downloadnextpnr-f17643bc082307211af39919008e83d7b1b9a83d.tar.gz
nextpnr-f17643bc082307211af39919008e83d7b1b9a83d.tar.bz2
nextpnr-f17643bc082307211af39919008e83d7b1b9a83d.zip
interchange: Handle case where routing source is a node
Signed-off-by: gatecat <gatecat@ds0.me>
Diffstat (limited to 'fpga_interchange')
-rw-r--r--fpga_interchange/fpga_interchange.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/fpga_interchange/fpga_interchange.cpp b/fpga_interchange/fpga_interchange.cpp
index 89f1f958..92d409f9 100644
--- a/fpga_interchange/fpga_interchange.cpp
+++ b/fpga_interchange/fpga_interchange.cpp
@@ -313,6 +313,11 @@ static void emit_net(
// FIXME: Consider making sure that wire_data.bel_pins[0] is always the
// source BEL pin in the BBA generator.
static BelPin find_source(const Context *ctx, WireId source_wire) {
+ if (source_wire.tile == -1) {
+ // Nodal wire, probably a constant, cannot have an associated bel pin
+ return BelPin();
+ }
+
const TileTypeInfoPOD & tile_type = loc_info(ctx->chip_info, source_wire);
const TileWireInfoPOD & wire_data = tile_type.wire_data[source_wire.index];