aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5
diff options
context:
space:
mode:
authorEddie Hung <eddieh@ece.ubc.ca>2018-11-13 12:12:11 -0800
committerEddie Hung <eddieh@ece.ubc.ca>2018-11-13 12:12:11 -0800
commit2d39cde17be718d76e6f5c06c8f06c70d44c7918 (patch)
tree8b0e0f98125b2ec7fdb55c9644c524753a7a1cd5 /ecp5
parentba7a7a3733c493fc950d5bedbc49b4c78b451b3d (diff)
parent3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff (diff)
downloadnextpnr-2d39cde17be718d76e6f5c06c8f06c70d44c7918.tar.gz
nextpnr-2d39cde17be718d76e6f5c06c8f06c70d44c7918.tar.bz2
nextpnr-2d39cde17be718d76e6f5c06c8f06c70d44c7918.zip
Merge remote-tracking branch 'origin/master' into timingapi
Diffstat (limited to 'ecp5')
-rw-r--r--ecp5/arch.cc4
-rw-r--r--ecp5/arch.h4
-rw-r--r--ecp5/archdefs.h4
-rw-r--r--ecp5/main.cc2
4 files changed, 11 insertions, 3 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index e035c0f4..fe6a9545 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -400,7 +400,7 @@ BelId Arch::getBelByLocation(Loc loc) const
delay_t Arch::estimateDelay(WireId src, WireId dst) const
{
- return 100 * (abs(src.location.x - dst.location.x) + abs(src.location.y - dst.location.y));
+ return 170 * (abs(src.location.x - dst.location.x) + abs(src.location.y - dst.location.y));
}
delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const
@@ -409,7 +409,7 @@ delay_t Arch::predictDelay(const NetInfo *net_info, const PortRef &sink) const
auto driver_loc = getBelLocation(driver.cell->bel);
auto sink_loc = getBelLocation(sink.cell->bel);
- return 100 * (abs(driver_loc.x - sink_loc.x) + abs(driver_loc.y - sink_loc.y));
+ return 170 * (abs(driver_loc.x - sink_loc.x) + abs(driver_loc.y - sink_loc.y));
}
bool Arch::getBudgetOverride(const NetInfo *net_info, const PortRef &sink, delay_t &budget) const { return false; }
diff --git a/ecp5/arch.h b/ecp5/arch.h
index 07b1e65d..aa3c5348 100644
--- a/ecp5/arch.h
+++ b/ecp5/arch.h
@@ -619,6 +619,8 @@ struct Arch : BaseCtx
return wire_to_net.at(wire);
}
+ WireId getConflictingWireWire(WireId wire) const { return wire; }
+
NetInfo *getConflictingWireNet(WireId wire) const
{
NPNR_ASSERT(wire != WireId());
@@ -724,6 +726,8 @@ struct Arch : BaseCtx
return pip_to_net.at(pip);
}
+ WireId getConflictingPipWire(PipId pip) const { return WireId(); }
+
NetInfo *getConflictingPipNet(PipId pip) const
{
NPNR_ASSERT(pip != PipId());
diff --git a/ecp5/archdefs.h b/ecp5/archdefs.h
index b85852c2..01cbad46 100644
--- a/ecp5/archdefs.h
+++ b/ecp5/archdefs.h
@@ -75,6 +75,7 @@ struct Location
bool operator==(const Location &other) const { return x == other.x && y == other.y; }
bool operator!=(const Location &other) const { return x != other.x || y != other.y; }
+ bool operator<(const Location &other) const { return y == other.y ? x < other.x : y < other.y; }
};
inline Location operator+(const Location &a, const Location &b) { return Location(a.x + b.x, a.y + b.y); }
@@ -86,6 +87,7 @@ struct BelId
bool operator==(const BelId &other) const { return index == other.index && location == other.location; }
bool operator!=(const BelId &other) const { return index != other.index || location != other.location; }
+ bool operator<(const BelId &other) const { return location == other.location ? index < other.index : location < other.location; }
};
struct WireId
@@ -95,6 +97,7 @@ struct WireId
bool operator==(const WireId &other) const { return index == other.index && location == other.location; }
bool operator!=(const WireId &other) const { return index != other.index || location != other.location; }
+ bool operator<(const WireId &other) const { return location == other.location ? index < other.index : location < other.location; }
};
struct PipId
@@ -104,6 +107,7 @@ struct PipId
bool operator==(const PipId &other) const { return index == other.index && location == other.location; }
bool operator!=(const PipId &other) const { return index != other.index || location != other.location; }
+ bool operator<(const PipId &other) const { return location == other.location ? index < other.index : location < other.location; }
};
struct GroupId
diff --git a/ecp5/main.cc b/ecp5/main.cc
index c444f96f..cc004df3 100644
--- a/ecp5/main.cc
+++ b/ecp5/main.cc
@@ -40,7 +40,7 @@ class ECP5CommandHandler : public CommandHandler
void customBitstream(Context *ctx) override;
protected:
- po::options_description getArchOptions();
+ po::options_description getArchOptions() override;
};
ECP5CommandHandler::ECP5CommandHandler(int argc, char **argv) : CommandHandler(argc, argv) {}