Under certain conditions (e.g., building on Fedora 42
using gcc-15.0.1), compilation fails with the following
error:
"error: ‘uint8_t’ does not name a type"
Explicitly include <cstdint> to prevent that situation.
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
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.
Currently the lookahead is disabled by default because of the time to
compute and RAM usage. However it does appear to work reasonably well
in testing. Further effort is required to lower RAM usage after initial
computation, and explore trade-off for cheaper time to compute.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
This lowers the CPU cost of using the flat wire map in router2, and should
use less memory as well.
Signed-off-by: Keith Rothman <537074+litghost@users.noreply.github.com>
Create an empty temporary file for stdin; so reads fail rather than
locking up (otherwise doing help() would be enough to completely lock up
the GUI).
Signed-off-by: gatecat <gatecat@ds0.me>
See YosysHQ/yosys#1671 for rationale. Also, added some validation
to our parser, so that out-of-range values are reported and the user
knows they should update yosys.