aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/nextpnr.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h
index e588f47b..28c144ac 100644
--- a/common/nextpnr.h
+++ b/common/nextpnr.h
@@ -216,6 +216,13 @@ struct BelPin
struct CellInfo;
+struct Region
+{
+ IdString name;
+ std::unordered_set<BelId> bels;
+ std::unordered_set<WireId> wires;
+};
+
enum PlaceStrength
{
STRENGTH_NONE = 0,
@@ -250,6 +257,8 @@ struct NetInfo : ArchNetInfo
// wire -> uphill_pip
std::unordered_map<WireId, PipMap> wires;
+
+ Region *region = nullptr;
};
enum PortType
@@ -289,6 +298,8 @@ struct CellInfo : ArchCellInfo
int constr_z = UNCONSTR; // this.z - parent.z
bool constr_abs_z = false; // parent.z := 0
// parent.[xyz] := 0 when (constr_parent == nullptr)
+
+ Region *region = nullptr;
};
enum TimingPortClass
@@ -391,6 +402,9 @@ struct BaseCtx
std::unordered_map<IdString, std::unique_ptr<NetInfo>> nets;
std::unordered_map<IdString, std::unique_ptr<CellInfo>> cells;
+ // Floorplanning regions
+ std::unordered_map<IdString, std::unique_ptr<Region>> region;
+
BaseCtx()
{
idstring_str_to_idx = new std::unordered_map<std::string, int>;