1
0
mirror of https://github.com/YosysHQ/nextpnr.git synced 2026-05-12 01:55:03 +00:00

1373 Commits

Author SHA1 Message Date
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
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