Commit Graph

1368 Commits

Author SHA1 Message Date
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
Catherine ec1b3fde8f
Merge pull request #1711 from YosysHQ/cat/wasm-exception-cleanup
Remove Wasm exception handling workarounds
2026-05-01 13:34:28 +01:00
Catherine 1407b33558 Ensure only non-truncating values are returned from `main()`.
POSIX allows any `int` value to be returned but specifies that only
the low 8 bits are available in some contexts:
  https://pubs.opengroup.org/onlinepubs/9699919799/functions/_exit.html

For reasons that aren't entirely clear, WASI requires the value to be
in range [0;126), and this is enforced with an assertion at runtime
level in Wasmtime. This should probably be fixed in Wasmtime but until
it is done there doesn't seem to be any harm in returning `125` instead
of `-1`. This also removes any discrepancy due to truncation.
2026-05-01 11:22:38 +00:00
Catherine 6cf255cc2b Remove Wasm exception handling workarounds. 2026-05-01 11:08:43 +00:00
gatecat 98c18d7f14 router2: Fix ripup of constant nets
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-21 14:00:12 +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
gatecat d5e6bfc74e clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-20 15:45:20 +02:00
gatecat 68978f076f router2: Also write congestion-per-net in heatmap mode
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-20 10:04:41 +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 41032f9d77
cleanup: Remove dead files (#1688)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-04-03 09:41:32 +02:00
Lunaphied d6b4d3ed3d
common: fix missing header in array2d.h (#1686)
This trips up my LSP and is technically wrong.
2026-04-02 21:37:20 +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
mrcmry 4f5db1f7b9
gui: fix segfault when providing --sdc (#1682) 2026-04-01 11:09:00 +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
myrtle 2b4deb4313
timing: Fix critical path report with async resets (#1648)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-25 14:21:25 +01:00
gatecat 0d3a578539 run clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-25 11:18:14 +01:00
Miodrag Milanović b8a6559a3f
gatemate: add CP lines as clock and general routing [sc-184] (#1638)
* gatemate: add alternate clock routes

* use additional pins

* Fix clock router and timings

* Fix DDR nets

* Test passtrough concept

* remove not used variable

* wip

* handle pip masks

* Cleanup

* create CPE_CPLINES cells and set properties on them

* Fix pip masking

* rough code to break cplines into subnets

* add ports to cell

* mux bridges need cell bel pins too

* fix multiplier output register packing

* remove empty if

* Fix ODDR

* Add options to disable some pips

* Use resources info

* mask field to resource field

* produce valid netlist with propagation netlist at least

* adapt reassign_cplines for internal resource pips

* Handle block and resources

* fix formatting

* It is required to set all mandatory properties now

* arch API for resources

* current progress

* Add option to skip bridges

* perform per-wire resource congestion costing

* Added no-cpe-cp option

* resource bugfix

* comment out spammy debug message

* Fix routing conflicts issues

* allow only some pass trough for clock router

* handle inversion bits for pass signals

* verify inversion before/after assigning bridges

* we care only if there is net

* Revert "we care only if there is net"

This reverts commit 3da2769e31.

* Revert "verify inversion before/after assigning bridges"

This reverts commit 8613ee17c8.

* chipdb version bump

* clangformat

* cleanup

* cleanup

* Initial conversion to GroupId

* Keep group info in pip extra

* Cleanup headers

* Initialize resource efficiently

* Addressing review comments

* improve resource docs

* Make CP lines not use as clocks as default

---------

Co-authored-by: Lofty <dan.ravensloft@gmail.com>
2026-02-25 08:22:16 +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
myrtle 2400a90e04
router2: Try harder on constants to prevent infinite loop (#1647)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-24 14:28:25 +01:00
myrtle 49ba0b277f
Support use of router2 for gowin (#1636)
Signed-off-by: gatecat <gatecat@ds0.me>
2026-02-17 09:26:25 +01:00
Miodrag Milanović a530283600
Cleanup Context API (#1593)
* Cleanup Context API

* Remove exit to prvent crash
2025-10-23 14:44:14 +02:00
myrtle c7cfb0aa4b
Remove use of boost system and filesystem (#1591)
Signed-off-by: gatecat <gatecat@ds0.me>
2025-10-22 15:01:21 +02: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
Miodrag Milanovic 8ab9301dc4 clangformat 2025-08-27 10:37:39 +02:00
Lofty 0a7cbe1cd7
router2: iteratively reserve arc driver wires, too (#1539) 2025-08-26 16:17:11 +02:00
Miodrag Milanovic d796cc720b clangformat 2025-08-22 11:08:39 +02:00
Lofty 0ad43e6ec7
gatemate: remove placement density restriction (#1527) 2025-08-08 17:02:56 +02:00
Miodrag Milanovic 0ebd7afab9 clangformat 2025-07-07 10:15:50 +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
gatecat ff695f26d5 sdc: Fix EOF handling during string parse
Fixes #1490

Signed-off-by: gatecat <gatecat@ds0.me>
2025-06-25 11:58:11 +02:00
Frans Skarman 0c86a218fd
Add sources to detailed timing report (#1502) 2025-06-25 11:39:25 +02:00
gatecat 226a2dfdb4 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2025-05-20 13:19:52 +02:00
William D. Jones b127fa9c11 bba: fix `#embed` on Windows. 2025-05-14 05:38:30 +01:00
Miodrag Milanović 7a3a43e150
placer1: add sanity check for try_swap_chain (#1472) 2025-04-13 19:11:11 +02:00
Lofty 661f76d51a
Add arch API function for pip inversion (#1457) 2025-02-27 12:21:15 +01:00
Catherine 77187613e3
kernel: look up ports when applying clock constraints. (#1448)
prjunnamed does not emit a net alias for toplevel ports. This works
fine for constraining IOs but breaks clock constraints. This commit
expands clock constraint application code to look up net aliases first,
ports second.
2025-01-31 08:30:39 +00:00
Catherine cd7f7c12f1 CMake: refactor architecture-specific build system parts.
Two user-visible changes were made:
* `-DUSE_RUST` is replaced with `-DBUILD_RUST`, by analogy with
  `-DBUILD_PYTHON`
* `-DCOVERAGE` was removed as it doesn't work with either modern GCC
  or Clang
2025-01-21 17:13:03 +00:00