From f0669809c78317cfbf202575d3f315f5b0f495c8 Mon Sep 17 00:00:00 2001 From: Eddie Hung Date: Fri, 5 Jan 2024 08:58:01 -0800 Subject: [PATCH] [PhysNetlistReader] Warn and omit if PIP not found Signed-off-by: Eddie Hung --- .../rapidwright/interchange/PIPCache.java | 4 ++++ .../interchange/PhysNetlistReader.java | 20 +++++++++++++------ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/com/xilinx/rapidwright/interchange/PIPCache.java b/src/com/xilinx/rapidwright/interchange/PIPCache.java index 68b7d74ea..00cb2533b 100644 --- a/src/com/xilinx/rapidwright/interchange/PIPCache.java +++ b/src/com/xilinx/rapidwright/interchange/PIPCache.java @@ -101,6 +101,10 @@ public PIP getPIP(Tile tile, int wire0StringIdx, int wire1StringIdx) { return tile.getPIP(wire0Idx, wire1Idx); }); + + if (pip == null) { + return null; + } PIP newPIP = new PIP(pip); newPIP.setTile(tile); return newPIP; diff --git a/src/com/xilinx/rapidwright/interchange/PhysNetlistReader.java b/src/com/xilinx/rapidwright/interchange/PhysNetlistReader.java index 620eee830..397fe1f0a 100644 --- a/src/com/xilinx/rapidwright/interchange/PhysNetlistReader.java +++ b/src/com/xilinx/rapidwright/interchange/PhysNetlistReader.java @@ -569,14 +569,22 @@ private void readRouteBranch(Set stubWires, } PIP pip = getPIP(tile, pReader.getWire0(), pReader.getWire1()); - pip.setIsPIPFixed(pReader.getIsFixed()); - pip.setIsReversed(!pReader.getForward()); + if (pip == null) { + String wire0 = strings.get(pReader.getWire0()); + String wire1 = strings.get(pReader.getWire1()); + System.err.println("WARNING: PIP for tile " + strings.get(pReader.getTile()) + + " from wire " + wire0 + " to wire " + wire1 + " not found; " + + " omitting from net " + net.getName()); + } else { + pip.setIsPIPFixed(pReader.getIsFixed()); + pip.setIsReversed(!pReader.getForward()); - if (stubWires.remove(pip.getEndWire())) { - pip.setIsStub(true); - } + if (stubWires.remove(pip.getEndWire())) { + pip.setIsStub(true); + } - net.addPIP(pip); + net.addPIP(pip); + } break; } case BEL_PIN:{