aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/kernel/arch_api.h4
-rw-r--r--common/kernel/base_arch.h6
-rw-r--r--common/kernel/nextpnr_base_types.h6
-rw-r--r--common/route/router2.cc30
-rw-r--r--docs/archapi.md4
-rw-r--r--ecp5/arch.cc4
-rw-r--r--ecp5/arch.h2
-rw-r--r--fpga_interchange/arch.cc2
-rw-r--r--fpga_interchange/arch.h4
-rw-r--r--fpga_interchange/arch_pack_clusters.cc4
-rw-r--r--fpga_interchange/cost_map.cc4
-rw-r--r--fpga_interchange/cost_map.h2
-rw-r--r--generic/arch.cc4
-rw-r--r--generic/arch.h2
-rw-r--r--generic/viaduct_api.cc4
-rw-r--r--generic/viaduct_api.h2
-rw-r--r--gowin/arch.cc4
-rw-r--r--gowin/arch.h2
-rw-r--r--ice40/arch.cc4
-rw-r--r--ice40/arch.h2
-rw-r--r--machxo2/arch.cc4
-rw-r--r--machxo2/arch.h2
-rw-r--r--mistral/arch.cc4
-rw-r--r--mistral/arch.h2
-rw-r--r--nexus/arch.cc4
-rw-r--r--nexus/arch.h2
26 files changed, 57 insertions, 57 deletions
diff --git a/common/kernel/arch_api.h b/common/kernel/arch_api.h
index 49be489b..94a88338 100644
--- a/common/kernel/arch_api.h
+++ b/common/kernel/arch_api.h
@@ -118,7 +118,7 @@ template <typename R> struct ArchAPI : BaseCtx
virtual uint32_t getDelayChecksum(delay_t v) const = 0;
virtual bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const = 0;
virtual delay_t estimateDelay(WireId src, WireId dst) const = 0;
- virtual ArcBounds getRouteBoundingBox(WireId src, WireId dst) const = 0;
+ virtual BoundingBox getRouteBoundingBox(WireId src, WireId dst) const = 0;
// Decal methods
virtual typename R::DecalGfxRangeT getDecalGraphics(DecalId decal) const = 0;
virtual DecalXY getBelDecal(BelId bel) const = 0;
@@ -141,7 +141,7 @@ template <typename R> struct ArchAPI : BaseCtx
virtual typename R::BucketBelRangeT getBelsInBucket(BelBucketId bucket) const = 0;
// Cluster methods
virtual CellInfo *getClusterRootCell(ClusterId cluster) const = 0;
- virtual ArcBounds getClusterBounds(ClusterId cluster) const = 0;
+ virtual BoundingBox getClusterBounds(ClusterId cluster) const = 0;
virtual Loc getClusterOffset(const CellInfo *cell) const = 0;
virtual bool isClusterStrict(const CellInfo *cell) const = 0;
virtual bool getClusterPlacement(ClusterId cluster, BelId root_bel,
diff --git a/common/kernel/base_arch.h b/common/kernel/base_arch.h
index 55fcf280..53e28652 100644
--- a/common/kernel/base_arch.h
+++ b/common/kernel/base_arch.h
@@ -377,10 +377,10 @@ template <typename R> struct BaseArch : ArchAPI<R>
// Cluster methods
virtual CellInfo *getClusterRootCell(ClusterId cluster) const override { return get_cluster_root(this, cluster); }
- virtual ArcBounds getClusterBounds(ClusterId cluster) const override
+ virtual BoundingBox getClusterBounds(ClusterId cluster) const override
{
- return if_using_basecluster<ArcBounds>(get_cluster_root(this, cluster), [](const BaseClusterInfo *cluster) {
- ArcBounds bounds(0, 0, 0, 0);
+ return if_using_basecluster<BoundingBox>(get_cluster_root(this, cluster), [](const BaseClusterInfo *cluster) {
+ BoundingBox bounds(0, 0, 0, 0);
for (auto child : cluster->constr_children) {
if_using_basecluster<void>(child, [&](const BaseClusterInfo *child) {
bounds.x0 = std::min(bounds.x0, child->constr_x);
diff --git a/common/kernel/nextpnr_base_types.h b/common/kernel/nextpnr_base_types.h
index 944bf0b8..80a0e24e 100644
--- a/common/kernel/nextpnr_base_types.h
+++ b/common/kernel/nextpnr_base_types.h
@@ -95,12 +95,12 @@ struct Loc
unsigned int hash() const { return mkhash(x, mkhash(y, z)); }
};
-struct ArcBounds
+struct BoundingBox
{
int x0 = -1, y0 = -1, x1 = -1, y1 = -1;
- ArcBounds() {}
- ArcBounds(int x0, int y0, int x1, int y1) : x0(x0), y0(y0), x1(x1), y1(y1){};
+ BoundingBox() {}
+ BoundingBox(int x0, int y0, int x1, int y1) : x0(x0), y0(y0), x1(x1), y1(y1){};
int distance(Loc loc) const
{
diff --git a/common/route/router2.cc b/common/route/router2.cc
index ed1a6fe0..cdd98b6e 100644
--- a/common/route/router2.cc
+++ b/common/route/router2.cc
@@ -51,7 +51,7 @@ struct Router2
struct PerArcData
{
WireId sink_wire;
- ArcBounds bb;
+ BoundingBox bb;
bool routed = false;
};
@@ -62,7 +62,7 @@ struct Router2
WireId src_wire;
dict<WireId, std::pair<PipId, int>> wires;
std::vector<std::vector<PerArcData>> arcs;
- ArcBounds bb;
+ BoundingBox bb;
// Coordinates of the center of the net, used for the weight-to-average
int cx, cy, hpwl;
int total_route_us = 0;
@@ -206,7 +206,7 @@ struct Router2
}
}
- ArcBounds wire_loc = ctx->getRouteBoundingBox(wire, wire);
+ BoundingBox wire_loc = ctx->getRouteBoundingBox(wire, wire);
pwd.x = (wire_loc.x0 + wire_loc.x1) / 2;
pwd.y = (wire_loc.y0 + wire_loc.y1) / 2;
@@ -249,7 +249,7 @@ struct Router2
};
};
- bool hit_test_pip(ArcBounds &bb, Loc l) { return l.x >= bb.x0 && l.x <= bb.x1 && l.y >= bb.y0 && l.y <= bb.y1; }
+ bool hit_test_pip(BoundingBox &bb, Loc l) { return l.x >= bb.x0 && l.x <= bb.x1 && l.y >= bb.y0 && l.y <= bb.y1; }
double curr_cong_weight, hist_cong_weight, estimate_weight;
@@ -269,7 +269,7 @@ struct Router2
std::vector<int> dirty_wires;
// Thread bounding box
- ArcBounds bb;
+ BoundingBox bb;
DeterministicRNG rng;
@@ -1217,7 +1217,7 @@ struct Router2
if (route_queue.size() < 200) {
ThreadContext st;
st.rng.rngseed(ctx->rng64());
- st.bb = ArcBounds(0, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
+ st.bb = BoundingBox(0, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
for (size_t j = 0; j < route_queue.size(); j++) {
route_net(st, nets_by_udata[route_queue[j]], false);
}
@@ -1234,19 +1234,19 @@ struct Router2
int le_y = mid_y;
int rs_y = mid_y;
// Set up thread bounding boxes
- tcs.at(0).bb = ArcBounds(0, 0, mid_x, mid_y);
- tcs.at(1).bb = ArcBounds(mid_x + 1, 0, std::numeric_limits<int>::max(), le_y);
- tcs.at(2).bb = ArcBounds(0, mid_y + 1, mid_x, std::numeric_limits<int>::max());
+ tcs.at(0).bb = BoundingBox(0, 0, mid_x, mid_y);
+ tcs.at(1).bb = BoundingBox(mid_x + 1, 0, std::numeric_limits<int>::max(), le_y);
+ tcs.at(2).bb = BoundingBox(0, mid_y + 1, mid_x, std::numeric_limits<int>::max());
tcs.at(3).bb =
- ArcBounds(mid_x + 1, mid_y + 1, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
+ BoundingBox(mid_x + 1, mid_y + 1, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
- tcs.at(4).bb = ArcBounds(0, 0, std::numeric_limits<int>::max(), mid_y);
- tcs.at(5).bb = ArcBounds(0, mid_y + 1, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
+ tcs.at(4).bb = BoundingBox(0, 0, std::numeric_limits<int>::max(), mid_y);
+ tcs.at(5).bb = BoundingBox(0, mid_y + 1, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
- tcs.at(6).bb = ArcBounds(0, 0, mid_x, std::numeric_limits<int>::max());
- tcs.at(7).bb = ArcBounds(mid_x + 1, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
+ tcs.at(6).bb = BoundingBox(0, 0, mid_x, std::numeric_limits<int>::max());
+ tcs.at(7).bb = BoundingBox(mid_x + 1, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
- tcs.at(8).bb = ArcBounds(0, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
+ tcs.at(8).bb = BoundingBox(0, 0, std::numeric_limits<int>::max(), std::numeric_limits<int>::max());
for (auto n : route_queue) {
auto &nd = nets.at(n);
diff --git a/docs/archapi.md b/docs/archapi.md
index efd833d2..39b2a6a9 100644
--- a/docs/archapi.md
+++ b/docs/archapi.md
@@ -333,7 +333,7 @@ Get a list of all wires on the device.
Get a list of all bel pins attached to a given wire.
-### ArcBounds getRouteBoundingBox(WireId src, WireId dst) const
+### BoundingBox getRouteBoundingBox(WireId src, WireId dst) const
Get the bounding box required to route an arc, assuming an uncongested
chip. There may be significant performance impacts if routing regularly
@@ -732,7 +732,7 @@ Cluster Methods
Gets the root cell of a cluster, which is used as a datum point when placing the cluster.
-### ArcBounds getClusterBounds(ClusterId cluster) const
+### BoundingBox getClusterBounds(ClusterId cluster) const
Gets an approximate bounding box of the cluster. This is intended for area allocation in the placer and is permitted to occasionally give incorrect estimates, for example due to irregularities in the fabric depending on cluster placement. `getClusterPlacement` should always be used to get exact locations.
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index f031c904..eb874704 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -504,9 +504,9 @@ delay_t Arch::estimateDelay(WireId src, WireId dst) const
(6 + std::max(dx - 5, 0) + std::max(dy - 5, 0) + 2 * (std::min(dx, 5) + std::min(dy, 5)));
}
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
bb.x0 = src.location.x;
bb.y0 = src.location.y;
diff --git a/ecp5/arch.h b/ecp5/arch.h
index 86504520..a40719c1 100644
--- a/ecp5/arch.h
+++ b/ecp5/arch.h
@@ -968,7 +968,7 @@ struct Arch : BaseArch<ArchRanges>
// -------------------------------------------------
delay_t estimateDelay(WireId src, WireId dst) const override;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
delay_t predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdString dst_pin) const override;
delay_t getDelayEpsilon() const override { return 20; }
delay_t getRipupDelayPenalty() const override;
diff --git a/fpga_interchange/arch.cc b/fpga_interchange/arch.cc
index 4fc5d48d..d20fe253 100644
--- a/fpga_interchange/arch.cc
+++ b/fpga_interchange/arch.cc
@@ -730,7 +730,7 @@ std::vector<std::pair<IdString, std::string>> Arch::getBelAttrs(BelId bel) const
// -----------------------------------------------------------------------
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
int dst_tile = dst.tile == -1 ? chip_info->nodes[dst.index].tile_wires[0].tile : dst.tile;
int src_tile = src.tile == -1 ? chip_info->nodes[src.index].tile_wires[0].tile : src.tile;
diff --git a/fpga_interchange/arch.h b/fpga_interchange/arch.h
index 04f583d4..7e373a56 100644
--- a/fpga_interchange/arch.h
+++ b/fpga_interchange/arch.h
@@ -701,7 +701,7 @@ struct Arch : ArchAPI<ArchRanges>
// -------------------------------------------------
delay_t estimateDelay(WireId src, WireId dst) const final;
delay_t predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdString dst_pin) const final;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const final;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const final;
delay_t getDelayEpsilon() const final { return 20; }
delay_t getRipupDelayPenalty() const final { return 120; }
float getDelayNS(delay_t v) const final { return v * 0.001; }
@@ -896,7 +896,7 @@ struct Arch : ArchAPI<ArchRanges>
}
CellInfo *getClusterRootCell(ClusterId cluster) const override;
- ArcBounds getClusterBounds(ClusterId cluster) const override;
+ BoundingBox getClusterBounds(ClusterId cluster) const override;
Loc getClusterOffset(const CellInfo *cell) const override;
bool isClusterStrict(const CellInfo *cell) const override;
bool normal_cluster_placement(const Context *, const Cluster &, const ClusterPOD &, CellInfo *, BelId,
diff --git a/fpga_interchange/arch_pack_clusters.cc b/fpga_interchange/arch_pack_clusters.cc
index 97a3e1a5..0dc75192 100644
--- a/fpga_interchange/arch_pack_clusters.cc
+++ b/fpga_interchange/arch_pack_clusters.cc
@@ -419,10 +419,10 @@ bool Arch::getClusterPlacement(ClusterId cluster, BelId root_bel,
}
}
-ArcBounds Arch::getClusterBounds(ClusterId cluster) const
+BoundingBox Arch::getClusterBounds(ClusterId cluster) const
{
// TODO: Implement this
- ArcBounds bounds(0, 0, 0, 0);
+ BoundingBox bounds(0, 0, 0, 0);
return bounds;
}
diff --git a/fpga_interchange/cost_map.cc b/fpga_interchange/cost_map.cc
index c20ba11b..d960c7cf 100644
--- a/fpga_interchange/cost_map.cc
+++ b/fpga_interchange/cost_map.cc
@@ -184,7 +184,7 @@ static void assign_min_entry(delay_t *dst, const delay_t &src)
}
std::pair<delay_t, int> CostMap::get_nearby_cost_entry(const boost::multi_array<delay_t, 2> &matrix, int cx, int cy,
- const ArcBounds &bounds)
+ const BoundingBox &bounds)
{
#ifdef DEBUG_FILL
log_info("Filling %d, %d within (%d, %d, %d, %d)\n", cx, cy, bounds.x0, bounds.y0, bounds.x1, bounds.y1);
@@ -249,7 +249,7 @@ void CostMap::fill_holes(const Context *ctx, const TypeWirePair &type_pair, boos
// find missing cost entries and fill them in by copying a nearby cost entry
std::vector<std::tuple<unsigned, unsigned, delay_t>> missing;
bool couldnt_fill = false;
- auto shifted_bounds = ArcBounds(0, 0, matrix.shape()[0] - 1, matrix.shape()[1] - 1);
+ auto shifted_bounds = BoundingBox(0, 0, matrix.shape()[0] - 1, matrix.shape()[1] - 1);
int max_fill = 0;
for (unsigned ix = 0; ix < matrix.shape()[0]; ix++) {
for (unsigned iy = 0; iy < matrix.shape()[1]; iy++) {
diff --git a/fpga_interchange/cost_map.h b/fpga_interchange/cost_map.h
index 88fb97e4..dfde29f9 100644
--- a/fpga_interchange/cost_map.h
+++ b/fpga_interchange/cost_map.h
@@ -58,7 +58,7 @@ class CostMap
delay_t delay_penality);
std::pair<delay_t, int> get_nearby_cost_entry(const boost::multi_array<delay_t, 2> &matrix, int cx, int cy,
- const ArcBounds &bounds);
+ const BoundingBox &bounds);
delay_t get_penalty(const boost::multi_array<delay_t, 2> &matrix) const;
};
diff --git a/generic/arch.cc b/generic/arch.cc
index a1d98200..c60c7674 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -548,11 +548,11 @@ delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdStr
bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const { return false; }
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
if (uarch)
return uarch->getRouteBoundingBox(src, dst);
- ArcBounds bb;
+ BoundingBox bb;
int src_x = wire_info(src).x;
int src_y = wire_info(src).y;
diff --git a/generic/arch.h b/generic/arch.h
index 6b34c289..a27dc78e 100644
--- a/generic/arch.h
+++ b/generic/arch.h
@@ -325,7 +325,7 @@ struct Arch : BaseArch<ArchRanges>
uint32_t getDelayChecksum(delay_t v) const override { return 0; }
bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const override;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
bool pack() override;
bool place() override;
diff --git a/generic/viaduct_api.cc b/generic/viaduct_api.cc
index 8a7b6313..626150c2 100644
--- a/generic/viaduct_api.cc
+++ b/generic/viaduct_api.cc
@@ -61,9 +61,9 @@ delay_t ViaductAPI::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel,
int dy = abs(sink_loc.y - driver_loc.y);
return (dx + dy) * ctx->args.delayScale + ctx->args.delayOffset;
}
-ArcBounds ViaductAPI::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox ViaductAPI::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
int src_x = ctx->wire_info(src).x;
int src_y = ctx->wire_info(src).y;
int dst_x = ctx->wire_info(dst).x;
diff --git a/generic/viaduct_api.h b/generic/viaduct_api.h
index 6f8adb3e..6887f56c 100644
--- a/generic/viaduct_api.h
+++ b/generic/viaduct_api.h
@@ -82,7 +82,7 @@ struct ViaductAPI
// --- Route lookahead ---
virtual delay_t estimateDelay(WireId src, WireId dst) const;
virtual delay_t predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdString dst_pin) const;
- virtual ArcBounds getRouteBoundingBox(WireId src, WireId dst) const;
+ virtual BoundingBox getRouteBoundingBox(WireId src, WireId dst) const;
// --- Flow hooks ---
virtual void pack(){}; // replaces the pack function
diff --git a/gowin/arch.cc b/gowin/arch.cc
index 756580e0..05b09363 100644
--- a/gowin/arch.cc
+++ b/gowin/arch.cc
@@ -1890,9 +1890,9 @@ delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdStr
bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const { return false; }
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
int src_x = wires.at(src).x;
int src_y = wires.at(src).y;
diff --git a/gowin/arch.h b/gowin/arch.h
index 0591e41a..231fae6e 100644
--- a/gowin/arch.h
+++ b/gowin/arch.h
@@ -446,7 +446,7 @@ struct Arch : BaseArch<ArchRanges>
uint32_t getDelayChecksum(delay_t v) const override { return 0; }
bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const override;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
bool pack() override;
bool place() override;
diff --git a/ice40/arch.cc b/ice40/arch.cc
index c9c99d3a..6a80a6ff 100644
--- a/ice40/arch.cc
+++ b/ice40/arch.cc
@@ -1265,9 +1265,9 @@ void Arch::assignCellInfo(CellInfo *cell)
}
}
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
int src_x = chip_info->wire_data[src.index].x;
int src_y = chip_info->wire_data[src.index].y;
diff --git a/ice40/arch.h b/ice40/arch.h
index 498a8b71..9d10cddf 100644
--- a/ice40/arch.h
+++ b/ice40/arch.h
@@ -802,7 +802,7 @@ struct Arch : BaseArch<ArchRanges>
uint32_t getDelayChecksum(delay_t v) const override { return v; }
bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const override;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
// -------------------------------------------------
diff --git a/machxo2/arch.cc b/machxo2/arch.cc
index b1a4a62a..93eb4e60 100644
--- a/machxo2/arch.cc
+++ b/machxo2/arch.cc
@@ -400,9 +400,9 @@ delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdStr
(0.01 + 0.01);
}
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
bb.x0 = std::min(src.location.x, dst.location.x);
bb.y0 = std::min(src.location.y, dst.location.y);
bb.x1 = std::max(src.location.x, dst.location.x);
diff --git a/machxo2/arch.h b/machxo2/arch.h
index 347f4ede..ddcb9264 100644
--- a/machxo2/arch.h
+++ b/machxo2/arch.h
@@ -635,7 +635,7 @@ struct Arch : BaseArch<ArchRanges>
uint32_t getDelayChecksum(delay_t v) const override { return v; }
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
// Flow
bool pack() override;
diff --git a/mistral/arch.cc b/mistral/arch.cc
index 4023f5c3..ce4f93fb 100644
--- a/mistral/arch.cc
+++ b/mistral/arch.cc
@@ -435,9 +435,9 @@ void Arch::assignArchInfo()
}
}
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bounds;
+ BoundingBox bounds;
int src_x = CycloneV::rn2x(src.node);
int src_y = CycloneV::rn2y(src.node);
int dst_x = CycloneV::rn2x(dst.node);
diff --git a/mistral/arch.h b/mistral/arch.h
index 5ceda53c..54a39771 100644
--- a/mistral/arch.h
+++ b/mistral/arch.h
@@ -425,7 +425,7 @@ struct Arch : BaseArch<ArchRanges>
delay_t getDelayFromNS(float ns) const override { return delay_t(ns * 1000.0f); };
uint32_t getDelayChecksum(delay_t v) const override { return v; };
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
TimingPortClass getPortTimingClass(const CellInfo *cell, IdString port,
int &clockInfoCount) const override; // delay.cc
diff --git a/nexus/arch.cc b/nexus/arch.cc
index 5b1e8c16..187e5312 100644
--- a/nexus/arch.cc
+++ b/nexus/arch.cc
@@ -702,9 +702,9 @@ delay_t Arch::predictDelay(BelId src_bel, IdString src_pin, BelId dst_bel, IdStr
bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const { return false; }
-ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
+BoundingBox Arch::getRouteBoundingBox(WireId src, WireId dst) const
{
- ArcBounds bb;
+ BoundingBox bb;
int src_x = src.tile % chip_info->width, src_y = src.tile / chip_info->width;
int dst_x = dst.tile % chip_info->width, dst_y = dst.tile / chip_info->width;
diff --git a/nexus/arch.h b/nexus/arch.h
index 41c54cd8..5ac16f28 100644
--- a/nexus/arch.h
+++ b/nexus/arch.h
@@ -1300,7 +1300,7 @@ struct Arch : BaseArch<ArchRanges>
delay_t getDelayFromNS(float ns) const override { return delay_t(ns * 1000); }
uint32_t getDelayChecksum(delay_t v) const override { return v; }
bool getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const override;
- ArcBounds getRouteBoundingBox(WireId src, WireId dst) const override;
+ BoundingBox getRouteBoundingBox(WireId src, WireId dst) const override;
// for better DSP bounding boxes
void pre_routing();