Commit Graph

116 Commits

Author SHA1 Message Date
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
Catherine
43b2f38520 CMake: use imported target for pybind11.
This accounts for the use of either the system or the vendored pybind11.

Fixes #1428.
2025-01-21 15:05:57 +00: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
Catherine
5fe680390f
Various fixes for clang/libc++ build (#1415)
* Gowin: add header includes required on libstdc++.

* kernel: fix incorrect printf-style format.

* himbaechel: add missing `override` qualifiers.

* Gowin: remove unnecessary `std::move`.

These calls inhibit RVO, a stronger optimization than moving an object.
2025-01-12 08:11:33 +01:00
Tarik Graba
f01465f628
Add attributes to the hierarchical cells (#1405)
* Adds attributes to the hierarchical cells

* python: add binding for hierarchical cells attributes

* frontend/base: import hierarchical cells attributes
2024-12-17 11:30:39 +01:00
Miodrag Milanović
d810aac867
Add GroupId related calls to Himbaechel API (#1399)
* Add GroupId related calls to Himbaechel API

* Example uarch using new API features

* Update drawGroup to propagate only GroupId
2024-12-05 13:59:33 +01:00
Miodrag Milanović
0e69425794
Add expandBoundingBox method to API (#1395)
* Add expandBoundingBox method to API

* Update API documentation
2024-11-26 10:13:41 +01:00
Meinhard Kissich
cf42baa43b
Fix RNG seed initialization (#1383) 2024-10-09 18:25:02 +02:00
Pepijn de Vos
028be1462a
apicula: add support for magic sip pins (#1370)
* apicula: add support for magic sip pins

* fix nullptr check

* DDR fix by xiwang

* WIP support for setting the iostd

* add iostd
2024-10-09 15:16:36 +02:00
Rowan Goemans
0e5b1348e6
timing_log: Handle potentially missing net when reporting crit path (#1381) 2024-10-04 08:07:55 +02:00
Adrien Prost-Boucle
b3b2392893 clang-format on basectx.h 2024-10-01 15:24:40 +02:00
Adrien Prost-Boucle
cc04882b17 BaseCtx : Fix crash in getNetByAlias() 2024-10-01 15:24:40 +02:00
gatecat
9b51c6e337 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-09-30 14:51:33 +02:00
Adrien Prost-Boucle
2031a067a0 Himbaechel xilinx : More flexibility about types of DSP parameters 2024-09-24 12:06:56 +02:00
Rowan Goemans
bbdf7aacb0 timing_log: warn on min time violation when timing fail is allowed 2024-09-24 08:57:21 +02:00
Rowan Goemans
0af42f1218 common: Use NPNR_ASSERT_FALSE for unreachable case 2024-09-24 08:57:21 +02:00
Rowan Goemans
93e233dad9 timing: Fix hold slack not matching reported path delay 2024-09-24 08:57:21 +02:00
Rowan Goemans
098dcaedec timing: remove the articial clock delay inflation 2024-09-24 08:57:21 +02:00
Rowan Goemans
0fce4b8f4e timing: lower clock_delay_fact to 1 to check if CI passes 2024-09-24 08:57:21 +02:00
Rowan Goemans
25d64b2105 timing_log: Fix logging indendation to match master
timing: Disable clock_skew analysis by default
2024-09-24 08:57:21 +02:00
Rowan Goemans
8ee2c5612c timing: Add safe zero check function for delay_t 2024-09-24 08:57:21 +02:00
Rowan Goemans
a7f79fd681 timing: minor cleanup and stupid mistake fixups 2024-09-24 08:57:21 +02:00
Rowan Goemans
bca6f6394a timing: Fix slack calculations
timing: Fix max_delay_by_domain_pair function
timing: Fix hold time check
2024-09-24 08:57:21 +02:00
Rowan Goemans
eb0bf9ea9c report: Handle new segment types
timing_log: Use common segment type strings
2024-09-24 08:57:21 +02:00
Rowan Goemans
3b7fec8c4f report: Handle new segment types 2024-09-24 08:57:21 +02:00
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
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
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
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