Commit Graph

797 Commits

Author SHA1 Message Date
David Shah fa77a5ae4a clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-06-24 11:43:01 +01:00
David Shah e5c21afc7c timing: Add missing std::min
Signed-off-by: David Shah <dave@ds0.me>
2019-06-23 15:01:58 +01:00
Miodrag Milanovic 92da4a91de Preserve ports 2019-06-21 09:43:47 +02:00
Miodrag Milanovic ff257a0929 default placement only if not set 2019-06-15 15:35:23 +02:00
Miodrag Milanovic 226885a58f use save seed 2019-06-15 15:31:18 +02:00
Miodrag Milanovic 8d5724f4fd moved some context variables to settings 2019-06-15 15:23:51 +02:00
Miodrag Milanovic 95280060b8 No need for settings class 2019-06-15 13:09:49 +02:00
Miodrag Milanovic 66ea9f39f7 enable lading of jsons and setting up context 2019-06-14 15:18:35 +02:00
Miodrag Milanovic 0d8c80ad5d gui for json write and proper statuses 2019-06-14 11:14:18 +02:00
Miodrag Milanovic 03dff10cbd Load properties from json and propagate to context create 2019-06-13 20:42:11 +02:00
Miodrag Milanovic 4de147d9e4 Save settings that we saved in project 2019-06-13 18:39:16 +02:00
Miodrag Milanovic c760b03261 Cleanup 2019-06-13 18:18:16 +02:00
Miodrag Milanovic 1cd4a4d17a Remove concept of project and code connected 2019-06-13 17:42:41 +02:00
Miodrag Milanovic 856760599e Use properties for settings and save in json 2019-06-12 18:34:34 +02:00
Miodrag Milanovic d9b0bac248 Save top level attrs and store current step 2019-06-07 16:11:11 +02:00
Miodrag Milanovic ef1a5fa606 Save/restore net strength 2019-06-07 14:31:13 +02:00
Miodrag Milanovic 5b62f33dd5 Restore routing from json 2019-06-07 14:23:57 +02:00
Miodrag Milanovic 78e6631f76 Cleanup 2019-06-07 13:49:19 +02:00
Miodrag Milanovic a8871ea8aa Cleanup and fixes, flow works now 2019-06-07 13:19:11 +02:00
Miodrag Milanovic 1093d7e122 WIP saving/loading attributes 2019-06-07 11:48:15 +02:00
whitequark f3339961fe Fix missing \n in log statement. 2019-06-04 13:15:23 +00:00
Miodrag Milanovic 44d6f16b66 Support ecp5 read write additional cell info 2019-06-03 21:01:05 +02:00
Miodrag Milanovic 82ed1803c7 use NEXTPNR_BEL, since BEL is initial placement 2019-06-02 18:38:20 +02:00
Miodrag Milanovic 7c65da417b Read constraints and placing from file 2019-06-02 17:33:37 +02:00
Miodrag Milanovic d0273f7faa option to disable packing 2019-06-02 10:01:20 +02:00
Miodrag Milanovic 5c47b6034e added no-place and no-route options 2019-06-02 09:13:19 +02:00
Miodrag Milanovic bab6c9a09f Proper save message 2019-06-02 08:50:48 +02:00
Miodrag Milanovic d5d8213871 Added support for attributes/properties types 2019-06-01 15:52:32 +02:00
Miodrag Milanovic 5013724c0a Solve issue with nets/cells not visible on load 2019-06-01 10:27:01 +02:00
Miodrag Milanovic 545068dec4 Initial work on jsonwrite 2019-05-31 11:09:13 +02:00
Miodrag Milanovic 2ea1ccf2e6 Added explanation, fixes issue #278 2019-05-27 19:10:50 +02:00
Miodrag Milanovic 9b8d3b7546 option to disable anti aliasing in gui 2019-05-25 08:42:17 +02:00
David Shah 12f375a239 ecp5: Fix USRMCLK primitive
Signed-off-by: David Shah <dave@ds0.me>
2019-05-10 18:51:45 +01:00
David Shah 5344bc3b65
Merge pull request #261 from YosysHQ/pygeneric
Python API for generic architecture
2019-04-19 17:40:55 +01:00
David Shah 9fa13b5adc pybindings: make errors in Python scripts stop nextpnr execution
Signed-off-by: David Shah <dave@ds0.me>
2019-04-17 11:12:58 +01:00
David Shah 90ceb829f3 pybindings: Fix use of import in user scripts
Signed-off-by: David Shah <dave@ds0.me>
2019-04-17 10:57:19 +01:00
Alyssa Milburn c1cc356bb0 timing_opt: Add locks to optimise()
Signed-off-by: Alyssa Milburn <amilburn@zall.org>
2019-04-16 16:03:12 +02:00
David Shah cfcd657e32 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:39 +01:00
David Shah ad9bc627e6 placer1: Check correctness of incremental updates with --debug
Signed-off-by: David Shah <dave@ds0.me>
2019-04-08 18:08:26 +01:00
David Shah 65b2a76159 placer1: Improve incremental bounding box updates
Signed-off-by: David Shah <dave@ds0.me>
2019-04-07 15:55:07 +01:00
David Shah f0cd51e6bc generic: Cell timing support
Signed-off-by: David Shah <dave@ds0.me>
2019-04-04 16:34:06 +01:00
David Shah 6fffe24177 generic: GUI Python bindings
Signed-off-by: David Shah <dave@ds0.me>
2019-04-03 16:08:33 +01:00
Janos Farkas 587b022b0a common: avoid std::ofstream copy
Using a copy constructor to set the logfile is the only thing that
stops compilation with the libstdc++ shipping with gcc 4.8 (maybe 4.7)
2019-04-02 16:39:21 +00:00
David Shah 32327b761a generic: Simple working example
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah 50fd8aa01f generic: Place a single SLICE
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah 30f0c582e4 python: Named argument support
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah f5bfd557b6 python: Infrastructure for generic arch Python API
Signed-off-by: David Shah <dave@ds0.me>
2019-04-02 15:30:01 +01:00
David Shah db152b332b HeAP: Don't call Eigen if system is empty
Fixes #259

Signed-off-by: David Shah <dave@ds0.me>
2019-04-01 12:18:02 +01:00
whitequark 818165031c
Fix broken header guard 2019-03-25 19:32:58 +00:00
David Shah 25e3350675 HeAP: Make log output more consistent
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 15:39:15 +00:00
David Shah 49e827a9b4 HeAP: Add missing newline
Signed-off-by: David Shah <dave@ds0.me>
2019-03-25 12:41:25 +00:00
David Shah efc6872341 placer1: Restore old weighting in budget-based mode
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 13:59:27 +00:00
David Shah 00b09fbb43 HeAP: Per-iteration output all on one line
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:18:38 +00:00
David Shah 02ae21d8fc Add --placer option and refactor placer selection
Signed-off-by: David Shah <dave@ds0.me>
2019-03-24 11:10:20 +00:00
David Shah 52e05f4a07 placer1: Fix regression moving chained cells pre-legalise
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-23 23:15:05 +01:00
David Shah 23f2fff1c8 clangformat
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:39:05 +00:00
David Shah 801675a2c6 placer1: Only get criticalities when in timing-driven mode
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah f8a38c59f8 common: Add early return path to getNetinfoRouteDelay for fully unrouted nets
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah bd12c0a486 HeAP: Add PlacerHeapCfg
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 7142db28a8 HeAP: Make HeAP placer optional
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>
2019-03-22 10:31:54 +00:00
David Shah 1c824709e2 HeAP: Switching from TAUCS to Eigen
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 589b267a93 HeAP: Fix regression
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 8e4e03d980 HeAP: Fix occupancy count
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 6cf001d355 HeAP: Legaliser fixes
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 352f15e96b HeAP: Avoid getting stuck in legaliser ripup
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 70a6379bf6 HeAP: Chain support
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 2e2f44c82e HeAP: tidying up
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah fb02fc69c6 HeAP: Make strict legalisation wirelength driven where needed
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 8295f997ae HeAP: Use for ECP5 as well as iCE40
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah ba1e05f16b HeAP: Implement 'all+rotate' HeAP strategy
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 3dedc62593 HeAP: Weight arcs by criticality for timing-driven placement
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 05e9ae183d HeAP: Add multithreading
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah eb638c47b3 HeAP: fine tuning
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 2a0c117662 HeAP: Add performance counters
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah f3d9b45387 HeAP: Add SA-based iterative refinement after AP
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 0570cb7ae9 HeAP: Spreading working acceptably
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 030b02588b HeAP: Make cut-based spreading recursive
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah b483008cdf HeAP: Cut peturbation, binning and intra-bin linear spreading
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 8a791e8309 HeAP: Cut finder for spreading
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 4d2906378f HeAP: Region finder for spreading and strict legaliser
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah d1808c2594 HeAP: Fix how initial placement handles chains
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah d5cfd38179 HeAP: Successful solver convergance
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah ea56dc9d08 HeAP: Add TAUCS wrapper and integration
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah e36460b83e HeAP: Initial infrastructure
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 4cf8549f5c placer1: Legalise after reaching a diameter, not temperature
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 9cd5980d35 placer1: Add (currently-unused) option for fanout threshold for timing cost calc
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah bd0a33022b placer1: Implement non-timing-driven mode
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 0118ac00c4 placer1: Improve handling of regions
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah a8289b699f pycontainers: Implement __contains__
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 493d6c3fb9 Add Python helper functions for floorplanning
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah ae33ff397f placer1: Consider regions during placement
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah ade72de02f placer1: Optimise for performance
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 0cb351df52 placer1: New temperature heuristic
Signed-off-by: David Shah <dave@ds0.me>
2019-03-22 10:31:54 +00:00
David Shah 222abb5be2 placer1: Encourage chain swaps
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah c926b273de placer1: Tweaks
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 23306c163f placer1: Allow chain position swaps after legalisation
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 3650c8a0e7 placer1: Tweaking temperature
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:54 +00:00
David Shah 0d80181c5e placer1: Make budget-based placement an option
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:28 +00:00
David Shah a218c27305 placer1: Tuning
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:28 +00:00
David Shah 3938ea41fc placer1: Fix cost delta calculation
Signed-off-by: David Shah <davey1576@gmail.com>
2019-03-22 10:31:28 +00:00