Commit Graph

214 Commits

Author SHA1 Message Date
Miodrag Milanović
e12093201a
CMake: Add include guards when IMPORT_BBA_FILES is used (#1438) 2025-01-23 10:54:37 +01:00
Catherine
90d746f79e CMake: add support for exporting and importing .bba files.
This is useful for certain cross-compilation workloads, and to cache
rarely changing build products.

To use this functionality, build e.g. as follows:

    cmake . -B build-export -DEXPORT_BBA_FILES=../bba-files -DARCH=all
    cmake --build build-export -t nextpnr-all-bba

    cmake . -B build-import -DIMPORT_BBA_FILES=../bba-files -DARCH=all
    cmake --build build-import
2025-01-23 07:49:12 +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
Catherine
bb2336ad73 Fix #embed support in bbasm and use it when available.
This removes the atomic rename for bbasm outputs because it embeds
the resulting paths into the `.cc` files in embed mode. In any case
the write should be fast enough to not be a big risk for interrupted
builds.

This was tested with Clang 19 only (gcc hasn't had a release that
supports `#embed` yet).
2025-01-21 17:13:03 +00:00
Catherine
f5776a6d64 CMake: eliminate family.cmake/CMakeLists.txt split.
While it served a purpose (granting the ability to build `.bba` files
separately from the rest of nextpnr), it made things excessively
convoluted, especially around paths.

This commit removes the ability to pre-generate chip databases. As far
as I know, I was the primary user of that feature. It can be added back
if there is demand for it.

In exchange the per-family `CMakeLists.txt` files are now much easier
to understand.
2025-01-21 17:13:03 +00:00
Catherine
a951faa16d CMake: extract bbasm compilation into a function.
This fully preserves existing functionality, although the `embed` mode
is untested and seems broken.
2025-01-21 17:13:03 +00:00
Catherine
d214308f5f CMake: reformat for consistency.
Normalize keywords to:

    if (...)
    elseif (...)
    else()
    endif()

    foreach (...)
    endforeach()

    other(...)

Normalize whitespace to 4 spaces.
2025-01-16 11:36:44 +01:00
Catherine
574f504787 Find all components of Python at the same time.
This is explicitly recommended by the FindPython module documentation
and is required to avoid failed builds on some systems. See:
https://cmake.org/cmake/help/latest/module/FindPython.html
2025-01-13 03:29:43 +00:00
gatecat
9b51c6e337 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2024-09-30 14:51:33 +02:00
Lofty
506d5f9422 machxo2: less pessimistic delay prediction 2023-11-09 06:48:50 +01:00
gatecat
74d7ebc71f clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-10-28 17:10:42 +02:00
Miodrag Milanovic
95e7598cc6 Fix timing lookup for DP8KC 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
e4cb7ea337 proper clock calc due after funcion change 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
f0325730a8 made higher estimate and use proper speed 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
c2e7d3d611 remove commented sections 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
1a92c83c3a properly assign latest fuzzed data 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
ed7064b210 select proper signal 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
72546a2186 made delay_t int type 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
657d2898cf import proper data where possible 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
c2b75b355f use timing data 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
40313eacf0 fix import 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
1edb449601 optimization/cleanup 2023-10-02 14:49:17 +02:00
Miodrag Milanovic
58cb8a830a Load timing data 2023-10-02 14:49:17 +02:00
gatecat
a9a9251e42 clangformat
Signed-off-by: gatecat <gatecat@ds0.me>
2023-08-31 10:30:19 +02:00
Miodrag Milanovic
b9592093b5 Update examples to synth_lattice 2023-08-30 16:27:17 +02:00
Miodrag Milanovic
688f1ba983 widelut support for xo2/xo3/xo3d 2023-08-29 10:04:58 +02:00
Miodrag Milanovic
053d89570f Use type name directly 2023-08-17 11:18:45 +02:00
Miodrag Milanovic
adacaf65f4 additional new constants 2023-08-17 11:18:45 +02:00
Miodrag Milanovic
83f65169a3 different oscilator for XO3D 2023-08-17 11:18:45 +02:00
rowanG077
914999673c Rip out budgets 2023-06-20 10:57:10 +02:00
gatecat
e3529d3356 machxo2: Global placement and clock routing from nexus
Signed-off-by: gatecat <gatecat@ds0.me>
2023-05-08 10:38:16 +02:00
Miodrag Milanovic
91771895b6 Removed not tested/used code 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
10595726c1 fix warning 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
8fd4735292 handle some SYSCONFIG 2023-05-04 14:23:08 +02:00
gatecat
655aee1f9d Fix invalid accesses during certain IO packing cases 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
582cd526ac display freq with two digits after decimal point 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
909917cb61 Add clock constraints for new primitives 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
90a6578c53 handle VLO and VHI 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
a2d08dc79e Made PDPW8KC to work 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
01c631870e pio and iologic missing constants 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
8c19e6f83a clangformat 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
7ac3d0d901 basic support for few small primitives 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
2a35f0292a add constants for new primitives 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
c6f1f124f2 removed commented and not used code 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
3281ca6717 Add missing muxes for BRAM 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
437b57a510 Added getBelGlobalBuf 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
8c38e7ba61 Working BRAM 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
3a7770dca2 Add missing bel pins 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
19176ab597 Made PLL to work 2023-05-04 14:23:08 +02:00
Miodrag Milanovic
1b3283fb7c Add constants for new bels 2023-05-04 14:23:08 +02:00