Commit Graph

79 Commits

Author SHA1 Message Date
gatecat d5b1068b29 ice40: Static config tweaks
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-20 10:48:59 +02:00
gatecat 8b7dbbedd1 static: Lower start penalty
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-11 13:17:44 +02:00
gatecat 36595c5486 static: Disable dark nodes for now
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-11 12:28:44 +02:00
gatecat 68fb8c0d4c static: Fix spacer insertion
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-11 12:28:44 +02:00
gatecat 9cb5fc6428 static: Use centroid as position
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-06 12:32:24 +02:00
gatecat 516f6874a6 static: Compute a 'dense' placement grid to avoid excess dark nodes
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-06 11:55:36 +02:00
gatecat c4cbc3ff88 static: Log legalisation displacement per group
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-06 08:29:47 +02:00
gatecat 6fffc4d2c7 static: Fix offset when aligning macros
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-06 07:59:27 +02:00
gatecat 946faea376 static: Fallback termination criteria for tricky cases
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-05 15:44:20 +02:00
gatecat 272b1097d0 static: Fix handling of heterogeneous macros
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-05 15:29:38 +02:00
gatecat 211cb5703c static: Consistent HPWL reporting with other placers
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-04 18:12:09 +02:00
gatecat ca6a25e41e static: Fix exponent overflow on big designs
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-04 18:12:09 +02:00
gatecat 92c392f5f5 heap: Fix updating of chain cells
Signed-off-by: gatecat <gatecat@ds0.me>
2026-05-04 13:11:05 +02:00
myrtle ce08c3053c
Remove unused --slack_redist_iter option (#1704)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-20 16:19:00 +02:00
mrcmry 33e1c9033b
Improve file open error messages (#1700)
Define open_(o|i)fstream_and_log_error in log.h to:
- quote 'filename'
- add error cause to easier troubleshoot
- use existing consistent string style
- easily allows OS specific message

Introduce it when file are opened and add it where error message
was missing.
2026-04-19 16:41:47 +02:00
Lunaphied 8db8311103
remove scopedlock (#1698)
* common/kernel: removed ScopedLock type in favor of C++11 lock_guard

* fix unlock_early() usages
2026-04-15 09:30:42 +02:00
myrtle c6b876fc85
control set awareness in the HeAP legaliser (#1678)
* xilinx: Index control sets

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: data structure for control sets

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: fail faster on control set mismatch

Signed-off-by: gatecat <gatecat@ds0.me>

* xilinx: Reduce control set search radius

Signed-off-by: gatecat <gatecat@ds0.me>

* Fix compiler warning

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Allow disabling control set awareness for comparison/debug

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Add some notes about control sets

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Fix typo and regression

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Add a schedule for ctrlset search radius

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Tidy up

Signed-off-by: gatecat <gatecat@ds0.me>

---------

Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-02 13:36:50 +02:00
gatecat 93fe10ceb1 heap: fix calculation of legalisation runtime
Signed-off-by: gatecat <gatecat@ds0.me>
2026-03-19 14:59:46 +01:00
myrtle aeffe819de
heap: Refactor strict legaliser into multiple functions (#1671)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-03-18 19:19:45 +01:00
gatecat fcaafbaa08 static: Fix NaN on a big xilinx design
Signed-off-by: gatecat <gatecat@ds0.me>
2026-03-04 09:46:08 +01:00
myrtle 575689b7e4
himbaechel: Enable use of electrostatic placer (#1657)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-03-03 12:19:41 +01:00
gatecat 0d3a578539 run clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-25 11:18:14 +01:00
myrtle 501b36e646
gowin placement performance improvements, phase 3 (#1646)
* gowin: Improve placer performance

Signed-off-by: gatecat <gatecat@ds0.me>

* Add blocker cells for LUTRAM

Signed-off-by: gatecat <gatecat@ds0.me>

* gowin: Faster validity checks

Signed-off-by: gatecat <gatecat@ds0.me>

* heap: Improve macro handling, in verbose report per cell type

Signed-off-by: gatecat <gatecat@ds0.me>

---------

Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-24 20:56:54 +01:00
Miodrag Milanović 36045543c7
gatemate: support multiple clock distribution strategies (#1574)
* gatemate: support multiple clock distribution strategies

* error out on non supported cases

* Implement full use strategy

* Address review comments
2025-10-15 15:33:21 +02:00
Miodrag Milanović e7f9060efb
placer_heap: fix clamping to region (#1569) 2025-10-06 09:08:24 +02:00
Miodrag Milanović 8ac7ed161a
gatemate: code cleanup and netlist fix (#1554) 2025-09-10 14:04:42 +02:00
myrtle 9715a1d565
heap: Allow chains to ripup other chains (opt-in only) (#1552)
Signed-off-by: gatecat <gatecat@ds0.me>
2025-09-05 09:02:19 +02:00
myrtle 27635785c8
heap: Allow customising legalisation ordering (#1507)
Signed-off-by: gatecat <gatecat@ds0.me>
2025-07-01 15:32:28 +02:00
Miodrag Milanović 7a3a43e150
placer1: add sanity check for try_swap_chain (#1472) 2025-04-13 19:11:11 +02:00
Catherine 155adc3f5d CMake: rationalize and refactor build system.
The two main changes, done together in this commit, are:
* Eliminating most instances of `aux_source_directory()`, replacing
  them with explicit file listings; and
* Moving these file listings into respective subdirectories by
  representing respective nextpnr components as interface libraries.

In addition, the GUI CMake script tree was simplified since it had
a lot of unused/redundant code.

The `aux_source_directory()` command is not recommended for use by
CMake itself because it misses dependency changes when adding/removing
files, and consequently causes build failures requiring a clean rebuild.

This commit does not touch anything related to architectures/families,
which are very complex and redundant all on their own.
2025-01-16 11:36:44 +01:00
Meinhard Kissich d27993f019
Placer: Fix static legalise radius (#1382) 2024-10-08 15:20:33 +02:00
myrtle 75d2ce6a92
heap: Fix ripup criterea (#1378)
Signed-off-by: gatecat <gatecat@ds0.me>
2024-10-02 22:36:57 +02:00
gatecat 9b51c6e337 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-09-30 14:51:33 +02:00
Adrien Prost-Boucle cd51a0c2fc Placer : Emit non-fatal error messages before ending the program 2024-09-24 12:06:56 +02:00
Adrien Prost-Boucle a08229d6b6 Placer : Clearer messages in warnings and errors 2024-09-24 12:06:56 +02:00
gatecat a29a17f8f2 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-06-18 13:54:12 +02:00
gatecat c89037db49 static: Speedup with parallel wirelength gradient computation
Signed-off-by: gatecat <gatecat@ds0.me>
2024-06-18 13:53:42 +02:00
gatecat 945cf48c6c static: Various convergence improvements for ECP5
Signed-off-by: gatecat <gatecat@ds0.me>
2024-06-18 11:05:59 +02:00
gatecat 61cc5259d9 prefine: Add shared lock around bel availability checks
Signed-off-by: gatecat <gatecat@ds0.me>
2024-06-12 16:11:18 +02:00
gatecat 423f1b7159 static: Make bin stamping more consistent
Signed-off-by: gatecat <gatecat@ds0.me>
2024-05-08 09:53:28 +02:00
gatecat 3f2451f8d7 static: Guard density CSV dumps behind a flag
Signed-off-by: gatecat <gatecat@ds0.me>
2024-05-03 09:50:40 +02:00
gatecat 89e3b7d23d static: Fix float overflow issue
Co-authored-by: Lofty <dan.ravensloft@gmail.com>
Signed-off-by: gatecat <gatecat@ds0.me>
2024-05-03 09:39:24 +02:00
gatecat 7a00e76cb1 static: Exclude dark nodes from steplength
Signed-off-by: gatecat <gatecat@ds0.me>
2024-05-03 09:36:09 +02:00
Andrew Bell b4da57598e One more warning. 2024-03-22 09:50:11 +00:00
Andrew Bell 693058abb7 Eliminate gcc13 warnings. 2024-03-22 09:50:11 +00:00
gatecat aa26ba7ea1 static: Improve singleton handling
Signed-off-by: gatecat <gatecat@ds0.me>
2024-02-20 10:25:35 +01:00
gatecat 255633c9f3 static: First pass at timing-driven placement
Signed-off-by: gatecat <gatecat@ds0.me>
2024-02-12 09:09:13 +01:00
gatecat e7192cd375 static: Fix ifdefs
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-26 17:57:22 +01:00
gatecat 9dcd0eff16 static: Add a basic threadpool
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-25 08:24:41 +01:00
gatecat 2afb1f632e clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-12 10:09:28 +01:00