Commit Graph

1338 Commits

Author SHA1 Message Date
Rowan Goemans 4488d42368 log: Remove bad usage of [[no_return]] 2024-09-24 08:57:21 +02:00
Rowan Goemans 8e12dfc693 timing: cleanup clock2clock reporting
timing: Add clock2clock delay as seperate
        timing line item.
2024-09-24 08:57:21 +02:00
Rowan Goemans 86106cb49a timing: integrate c2c delays and cleanup code 2024-09-24 08:57:21 +02:00
Rowan Goemans fc3b2de8da timing: Add clock skew to arrival and required time 2024-09-24 08:57:21 +02:00
Rowan Goemans 60ee682d58 timing: Make hold violations an error 2024-09-24 08:57:21 +02:00
Rowan Goemans 82ea65d984 timing: Report min delay violated in timing logger 2024-09-24 08:57:21 +02:00
Rowan Goemans 7aeed52c06 common: Add some convenience functions for development 2024-09-24 08:57:21 +02:00
Rowan Goemans c25da06d03 timing: Start identification of min_delay violations 2024-09-24 08:57:21 +02:00
Rowan Goemans 44665a9c4d timing: Allow critical path traversal for shortest paths 2024-09-24 08:57:21 +02:00
Rowan Goemans 2d542eb63a timing: Add hold time to bound of critical path report 2024-09-24 08:57:21 +02:00
Jonas Thörnblad 6ca64526bb Fix handling of RNG seed
* Fix truncation of output seed value from 64 bits to 32 bits (int
  instead of uint64) when written to json file.

* Fix input seed value conversion when --seed option is used.

* Remove input seed value scrambling (use of rngseed()) when --seed
  or --randomize-seed option is used since the output seed value will
  be the scrambled value and not the seed that was actually supplied
  or generated.
2024-09-18 16:29:32 +02:00
Rowan Goemans 8d0f52fbf9
timing: Move towards DelayPairs for timing reporting (#1359) 2024-09-11 07:23:46 +01:00
Rowan Goemans 0d5d32951c
SDC parsing support (#1348)
* kernel: Add SDC file parser

* kernel: Add sdc as valid option

* kernel/sdc: Add error on EOF when fetching strings

* kernel/sdc: WIP command parsing for set_false_path

* kernel/sdc: Fully parse set_false_path

* kernel/sdc: Handle review comments
2024-08-12 17:45:27 +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
gmanricks f99346ba61 fix for windows path 2024-05-06 11:22:56 +02:00
Miodrag Milanovic 0dc4bcb203 Format utlilisation for larger FPGA as well 2024-05-06 11:22:33 +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
Patrick Dähne f085950383 Fixed header files for boost 1.85.0 2024-04-30 12:13:11 +02:00
Jason Thorpe 7f9f75c0d3 Tweak the FreeBSD version of proc_self_dirname() to work on NetBSD and use it.
Resolves issue #1298.
2024-03-27 22:02:16 +00: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
Lofty d557e3e35f hashlib: constify const_iterators 2024-01-04 17:32:56 +01:00
Lofty d867019dcb upgrade to C++17 2024-01-04 17:32:56 +01:00
gatecat 5013392841 Add trivially copyable invariant for ID types
Signed-off-by: gatecat <gatecat@ds0.me>
2024-01-04 17:04:28 +01:00
dragonmux 7fd80c5a92 common/kernel: Fixed unused parameters and spurious `;` warnings in some of the headers 2024-01-04 10:39:45 +01:00
Lofty 1bbcc5f2c4 (broken) third round of review fixes 2024-01-03 13:42:18 +01:00
gatecat 4a4025192a run clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-12-26 09:54:34 +01:00
gatecat 535709a9a9 placer1: Fix various bitrot
Signed-off-by: gatecat <gatecat@ds0.me>
2023-12-13 11:37:30 +01:00
Lofty d1083fd348 static/ice40: bug fixes for ultraplus 2023-12-13 11:37:20 +01:00
gatecat 6d9322457e static: Reduce stddev of initial solution
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-26 16:51:47 +01:00
gatecat de3d5be8f0 python: Remove deprecated use of Py_SetProgramName
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-23 06:49:15 +01:00
gatecat 4c6003ac0b router2: Don't use estimates for constant nets
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-07 15:55:22 +01:00
gatecat 7b0e082000 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-07 09:02:35 +01:00
gatecat fe52840054 archapi: Add new API for global constant routing
Signed-off-by: gatecat <gatecat@ds0.me>
2023-11-07 09:00:03 +01:00
Lofty 214cc4315e static: density multiplier should be a vector 2023-11-07 08:18:35 +01:00
Lofty d6f54fd9df ice40: add static placer support 2023-10-29 08:46:33 +01:00
gatecat 74d7ebc71f clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-10-28 17:10:42 +02:00
Justin Rajewski 95f0a19391 Fixes for building on windows 2023-10-26 21:21:14 +02:00
Justin Rajewski 1238b69d74 Fixes for building on windows 2023-10-26 21:21:14 +02:00
gatecat 0eb9a9ad02 placer_static: Initial prototype
Signed-off-by: gatecat <gatecat@ds0.me>
2023-10-02 14:56:40 +02:00
rowanG077 e8602fb56d std::numeric_limits<delay_t>::lowest() -> ::min() 2023-09-28 16:27:15 +02:00
Wanda c07ca64ebe hashlib: Improve pool hash function. 2023-09-27 17:08:29 +02:00
rowanG077 3f2e550f51 tmg: Fix logging of slack histogram 2023-09-25 13:20:40 +02:00
rowanG077 38d2a4b844 tmg: Fix argument order in run method
Router 2 expects "update_route_delays" to be the first argument to `tmg.run`.
2023-09-25 13:20:40 +02:00
YRabbit f5996ff4a1 gowin: Himbaechel. Support DragonFlyBSD
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-09-16 07:38:57 +02:00
YRabbit 8a54e5ec1c gowin: Himbaechel. Support DragonFlyBSD
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-09-16 07:38:57 +02:00
YRabbit 165e89f49a gowin: Himbaechel. Support DragonFlyBSD
We add support right here so that later I don’t have to make patches to the ports.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2023-09-16 07:38:57 +02:00
gatecat 565927dfcc himbaechel: Add discovery of uarch and chipdb
Signed-off-by: gatecat <gatecat@ds0.me>
2023-09-15 08:23:43 +02:00
gatecat e08471dfaf router2: Improve robustness when critical nets conflict
Signed-off-by: gatecat <gatecat@ds0.me>
2023-08-24 09:20:44 +02:00
rowanG077 053dfc98f0 use std::numeric_limits instead of macros 2023-08-18 09:15:37 +02:00
rowanG077 1fdd683344 Do not use C++20 struct initilisation 2023-08-18 09:15:37 +02:00
rowanG077 240f89081f Add back error/warning for combinational loops 2023-08-18 09:15:37 +02:00
rowanG077 d2a489d5e9 Remove old timing analyser 2023-08-18 09:15:37 +02:00
rowanG077 b0820eeaaa Formatting and display async path in json report 2023-08-18 09:15:37 +02:00
rowanG077 cfd3a52a3c tmg: add timing_report 2023-08-18 09:15:37 +02:00
rowanG077 596873c302 tmg: Add net_timings, crit path and slack hist 2023-08-18 09:15:37 +02:00
rowanG077 8b51674a6b Add critical path report to modern timing engine 2023-08-18 09:15:37 +02:00
rowanG077 d9f009b570 Split timing into old and new code 2023-08-18 09:15:37 +02:00
gatecat 54b2045726 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-06-20 10:58:18 +02:00
rowanG077 914999673c Rip out budgets 2023-06-20 10:57:10 +02:00
Lofty cbd6496d35 router2: fix 8935c186 (again) 2023-06-19 13:47:23 +02:00
Lofty 787fac7649 router2: fix 8935c186 2023-06-14 03:40:48 +01:00
Lofty 71a6b99633 router2: revisit nodes with lower delay 2023-06-13 08:24:01 +01:00
Lofty 8935c1867f router2: revisit nodes with lower cost 2023-06-13 08:24:01 +01:00
Rowan Goemans 0f947ee693
Timing: Fix combinational paths through all ports (#1175)
Fixes https://github.com/YosysHQ/nextpnr/issues/1174
2023-06-12 10:25:01 +02:00
Rowan Goemans 5b958c4d80
Analyse async paths in TimingAnalyser (#1171) 2023-06-09 08:01:47 +02:00
Lofty 5936464967
router2: add alternate weight option (#1162) 2023-05-25 10:47:10 +02:00
Meinhard Kissich f03da6568b
Fix segfault when clocking a FF from a ring oscillator (#1160)
* fix segfault when clocking a FF from a ring osc

* Change std::set to pool

Co-authored-by: Lofty <dan.ravensloft@gmail.com>

---------

Co-authored-by: Meinhard Kissich <meinhard.kissich@tugraz.at>
Co-authored-by: Lofty <dan.ravensloft@gmail.com>
2023-05-22 09:39:05 +02:00
gatecat 1d3e5151ba clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-05-19 09:00:31 +02:00
gatecat ea925f39fb archapi: Add getArcDelayOverride
Signed-off-by: gatecat <gatecat@ds0.me>
2023-05-17 09:54:14 +01:00
Nathaniel Quillin ca2e328a5f rename c++20 keyword s/requires/requires_range.
See https://en.cppreference.com/w/cpp/language/requires for more details.
2023-05-16 12:43:40 +02:00
gatecat e4fcd3740d cmake: Make HeAP placer always-enabled
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-17 10:38:11 +01:00
gatecat 132a98a91d router1: Add error when dest port has no wire
Signed-off-by: gatecat <gatecat@ds0.me>
2023-03-06 14:15:48 +01:00
Catherine ebbaf8c08d common: disable parallel refinement only without threads.
Previously it was always disabled on WebAssembly builds.
2023-02-23 09:45:19 +01:00
Catherine 8f0731edc9 common: update deprecated use of `boost::filesystem::basename`. 2023-02-23 09:44:46 +01:00
Catherine 4b4f4a7da1 common: add missing includes for libc++. 2023-02-23 02:32:19 +00:00
Thomas W Rodgers 825d646196 Include <cstdint> in common/kernel/hashlib.h
The definitions for uint32_t, uint64_t report as undefined when
compiling under GCC13. They were previously found by transitive
includes, but this is not guaranteed to work, and GCC13 forced
the issue.
2023-02-18 10:26:01 -08:00
rowanG077 32e818204e common: Print out generated seed value 2023-02-16 12:02:00 +01:00
rowanG077 3608c3eb02 common: Implement Werror flag 2023-02-13 10:52:05 +01:00
gatecat 9b5e5f124c clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-25 10:29:32 +01:00
gatecat 7845b66512 Add missing <set> includes
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-20 09:04:41 +01:00
gatecat 6079326633 context: Add getNetinfoRouteDelayQuad
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-18 16:28:33 +01:00
gatecat f89b959b5f clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-01-02 09:33:11 +01:00
Miodrag Milanovic 64f7306b24 initialize netShareWeight 2022-12-22 20:16:13 +01:00
Miodrag Milanovic 4af8964069 propagate netShareWeight 2022-12-22 16:11:10 +01:00
Miodrag Milanovic bd628ce591 Remove deprecated functions 2022-12-22 15:26:39 +01:00
myrtle a80d63b268
Merge pull request #1066 from arjenroodselaar/place_timeout
Timeout when legal placement can't be found for cell
2022-12-21 07:10:09 +00:00
Arjen Roodselaar be1f700b0b Set divisor instead of absolute value 2022-12-20 13:10:37 -08:00
Arjen Roodselaar 923458a2c9 Allow setting cell placement timeout 2022-12-20 11:15:06 -08:00