From a06d2aeb4da0c51fb50d8283367836e6dbf91b4d Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Wed, 20 Jun 2018 11:09:49 +0200 Subject: Add PlaceStrength Signed-off-by: Clifford Wolf --- common/nextpnr.h | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'common/nextpnr.h') diff --git a/common/nextpnr.h b/common/nextpnr.h index 6e4b87bd..c59b401e 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -162,7 +162,7 @@ template <> struct hash std::size_t operator()(const NEXTPNR_NAMESPACE_PREFIX IdString &obj) const noexcept { - return obj.index; + return std::hash()(obj.index); } }; } // namespace std @@ -194,10 +194,21 @@ NEXTPNR_NAMESPACE_BEGIN struct CellInfo; +enum PlaceStrength +{ + STRENGTH_NONE = 0, + STRENGTH_WEAK = 1, + STRENGTH_STRONG = 2, + STRENGTH_FIXED = 3, + STRENGTH_LOCKED = 4, + STRENGTH_USER = 5 +}; + struct PortRef { CellInfo *cell = nullptr; IdString port; + delay_t budget; }; struct NetInfo @@ -209,6 +220,8 @@ struct NetInfo // wire -> uphill_pip std::unordered_map wires; + + std::unordered_map pips; }; enum PortType @@ -232,6 +245,8 @@ struct CellInfo std::unordered_map attrs, params; BelId bel; + PlaceStrength belStrength = STRENGTH_NONE; + // cell_port -> bel_pin std::unordered_map pins; }; -- cgit v1.2.3