aboutsummaryrefslogtreecommitdiffstats
path: root/common/placer_heap.h
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2020-02-13 11:39:31 +0000
committerGitHub <noreply@github.com>2020-02-13 11:39:31 +0000
commite0b4f0ee63072f0e5aa86b4fa9ca1f488ae57790 (patch)
tree6fe3cd378c7315ad66d85711c3c42b814d1f64cc /common/placer_heap.h
parentbb8af6ff8bb836b1baf851095c48aadd6b451aa3 (diff)
parent2c7d2f9e0c850590f306139a4eaa9135b0f2a254 (diff)
downloadnextpnr-e0b4f0ee63072f0e5aa86b4fa9ca1f488ae57790.tar.gz
nextpnr-e0b4f0ee63072f0e5aa86b4fa9ca1f488ae57790.tar.bz2
nextpnr-e0b4f0ee63072f0e5aa86b4fa9ca1f488ae57790.zip
Merge pull request #393 from YosysHQ/dave/xilinx-place-backport
Backporting some placer changes from nextpnr-xilinx
Diffstat (limited to 'common/placer_heap.h')
-rw-r--r--common/placer_heap.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/common/placer_heap.h b/common/placer_heap.h
index a018aef8..46c00503 100644
--- a/common/placer_heap.h
+++ b/common/placer_heap.h
@@ -35,12 +35,21 @@ struct PlacerHeapCfg
{
PlacerHeapCfg(Context *ctx);
- float alpha;
+ float alpha, beta;
float criticalityExponent;
float timingWeight;
bool timing_driven;
+ float solverTolerance;
+ bool placeAllAtOnce;
+ int hpwl_scale_x, hpwl_scale_y;
+ int spread_scale_x, spread_scale_y;
+
+ // These cell types will be randomly locked to prevent singular matrices
std::unordered_set<IdString> ioBufTypes;
+ // These cell types are part of the same unit (e.g. slices split into
+ // components) so will always be spread together
+ std::vector<std::unordered_set<IdString>> cellGroups;
};
extern bool placer_heap(Context *ctx, PlacerHeapCfg cfg);