diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-07-24 12:39:33 +0200 |
---|---|---|
committer | Clifford Wolf <clifford@clifford.at> | 2018-07-24 12:39:33 +0200 |
commit | 1538d26073911e6969bca8cbcff3da09891a846b (patch) | |
tree | 063b681cb6584da8bf832fb6b3124b892d76209d | |
parent | c06bca07134b8b52733b025d19fd26910cd9a4e3 (diff) | |
download | nextpnr-1538d26073911e6969bca8cbcff3da09891a846b.tar.gz nextpnr-1538d26073911e6969bca8cbcff3da09891a846b.tar.bz2 nextpnr-1538d26073911e6969bca8cbcff3da09891a846b.zip |
Add CellInfo data for placement constraints
Signed-off-by: Clifford Wolf <clifford@clifford.at>
-rw-r--r-- | common/nextpnr.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/common/nextpnr.h b/common/nextpnr.h index 3ba4f3b3..ca0854e5 100644 --- a/common/nextpnr.h +++ b/common/nextpnr.h @@ -273,6 +273,16 @@ struct CellInfo : ArchCellInfo // cell_port -> bel_pin std::unordered_map<IdString, IdString> pins; + + // placement constraints + CellInfo *constr_parent; + stdL::vector<CellInfo*> constr_children; + const int UNCONSTR = INT_MIN; + int constr_x = UNCONSTR; // this.x - parent.x + int constr_y = UNCONSTR; // this.y - parent.y + int constr_z = UNCONSTR; // this.z - parent.z + bool constr_abs_z = false; // parent.z := 0 + // parent.[xyz] := 0 when (constr_parent == nullptr) }; struct DeterministicRNG |