aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/archdefs.h
diff options
context:
space:
mode:
authorEddie Hung <eddieh@ece.ubc.ca>2018-11-13 11:39:51 -0800
committerGitHub <noreply@github.com>2018-11-13 11:39:51 -0800
commit3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff (patch)
tree2772e8865a04c5da351643c90828c908a6f9f260 /ecp5/archdefs.h
parentd0ae4c77be109cae3d6cf3321691c70377c4d6d3 (diff)
parentcaca485cfff7f999a19e86e2f00187550b0c92f4 (diff)
downloadnextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.tar.gz
nextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.tar.bz2
nextpnr-3b2b15dc4a6cdf9cadab96b1db5483d4f7082dff.zip
Merge pull request #107 from YosysHQ/router_improve
Major rewrite of "router1"
Diffstat (limited to 'ecp5/archdefs.h')
-rw-r--r--ecp5/archdefs.h4
1 files changed, 4 insertions, 0 deletions
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