aboutsummaryrefslogtreecommitdiffstats
path: root/common/placer_heap.cc
Commit message (Collapse)AuthorAgeFilesLines
* HeAP: Add timeout to IO placementDavid Shah2020-06-251-0/+4
| | | | Signed-off-by: David Shah <dave@ds0.me>
* Port nextpnr-{ice40,ecp5} to WASI.whitequark2020-05-231-5/+12
| | | | | | | | | | | | | | | | | | | | | This involves very few changes, all typical to WASM ports: * WASM doesn't currently support threads or atomics so those are disabled. * WASM doesn't currently support exceptions so the exception machinery is stubbed out. * WASM doesn't (and can't) have mmap(), so an emulation library is used. That library currently doesn't support MAP_SHARED flags, so MAP_PRIVATE is used instead. There is also an update to bring ECP5 bbasm CMake rules to parity with iCE40 ones, since although it is possible to embed chipdb into nextpnr on WASM, a 200 MB WASM file has very few practical uses. The README is not updated and there is no included toolchain file because at the moment it's not possible to build nextpnr with upstream boost and wasi-libc. Boost requires a patch (merged, will be available in boost 1.74.0), wasi-libc requires a few unmerged patches.
* HeAP: backport out-of-range fixDavid Shah2020-02-121-2/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add X and Y scaling factors for asymmetric archesDavid Shah2020-02-121-16/+26
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make beta configurableDavid Shah2020-02-121-8/+9
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Improve handling of heterogeneous slice archesDavid Shah2020-02-121-94/+200
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make solver tolerance arch-configurableDavid Shah2020-02-121-3/+4
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: increase timeoutDavid Shah2019-12-301-1/+1
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: fix region constraint handlingDavid Shah2019-12-011-1/+1
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: more realistic timeout thresholdDavid Shah2019-11-261-1/+1
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: improve error handling when stuckDavid Shah2019-11-261-0/+11
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: support for bel region constraintsDavid Shah2019-11-261-6/+83
| | | | Signed-off-by: David Shah <dave@ds0.me>
* Major Property improvements for common and iCE40David Shah2019-08-051-1/+1
| | | | Signed-off-by: David Shah <dave@ds0.me>
* Switching from std to boost fix crashMiodrag Milanovic2019-07-051-3/+3
|
* Speedup critical pathMiodrag Milanovic2019-06-281-1/+2
|
* moved some context variables to settingsMiodrag Milanovic2019-06-151-1/+1
|
* No need for settings classMiodrag Milanovic2019-06-151-5/+5
|
* HeAP: Don't call Eigen if system is emptyDavid Shah2019-04-011-1/+2
| | | | | | Fixes #259 Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make log output more consistentDavid Shah2019-03-251-5/+8
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Per-iteration output all on one lineDavid Shah2019-03-241-7/+5
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add PlacerHeapCfgDavid Shah2019-03-221-7/+21
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make HeAP placer optionalDavid Shah2019-03-221-0/+16
| | | | | | | | | | | | | A CMake option 'BUILD_HEAP' (default on) configures building of the HeAP placer and the associated Eigen3 dependency. Default for the iCE40 is SA placer, with --heap-placer to use HeAP Default for the ECP5 is HeAP placer, as SA placer can take 1hr+ for large ECP5 designs and HeAP tends to give better QoR. --sa-placer can be used to use SA instead, and auto-fallback to SA if HeAP not built. Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Switching from TAUCS to EigenDavid Shah2019-03-221-21/+28
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* HeAP: Fix occupancy countDavid Shah2019-03-221-2/+3
| | | | Signed-off-by: David Shah <davey1576@gmail.com>
* HeAP: Legaliser fixesDavid Shah2019-03-221-2/+2
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Avoid getting stuck in legaliser ripupDavid Shah2019-03-221-3/+26
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Chain supportDavid Shah2019-03-221-7/+92
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: tidying upDavid Shah2019-03-221-109/+78
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make strict legalisation wirelength driven where neededDavid Shah2019-03-221-6/+62
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Use for ECP5 as well as iCE40David Shah2019-03-221-9/+20
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Implement 'all+rotate' HeAP strategyDavid Shah2019-03-221-27/+53
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Weight arcs by criticality for timing-driven placementDavid Shah2019-03-221-6/+18
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add multithreadingDavid Shah2019-03-221-27/+24
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: fine tuningDavid Shah2019-03-221-28/+100
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add performance countersDavid Shah2019-03-221-3/+27
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add SA-based iterative refinement after APDavid Shah2019-03-221-22/+40
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Spreading working acceptablyDavid Shah2019-03-221-64/+51
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Make cut-based spreading recursiveDavid Shah2019-03-221-17/+56
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Cut peturbation, binning and intra-bin linear spreadingDavid Shah2019-03-221-19/+132
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Cut finder for spreadingDavid Shah2019-03-221-18/+130
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Region finder for spreading and strict legaliserDavid Shah2019-03-221-36/+454
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Fix how initial placement handles chainsDavid Shah2019-03-221-9/+67
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Successful solver converganceDavid Shah2019-03-221-21/+95
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Add TAUCS wrapper and integrationDavid Shah2019-03-221-1/+46
| | | | Signed-off-by: David Shah <dave@ds0.me>
* HeAP: Initial infrastructureDavid Shah2019-03-221-0/+366
Signed-off-by: David Shah <dave@ds0.me>