1
0
mirror of https://github.com/YosysHQ/nextpnr.git synced 2026-02-17 05:07:37 +00:00
Commit Graph

184 Commits

Author SHA1 Message Date
Miodrag Milanovic
57be32e6ba BUFG support 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
58bdd1fad7 Fix script 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
5472c71d10 Added MX2 and MX4 support 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
673cde5732 Add clock inversion pip 2025-03-24 15:10:28 +00:00
Lofty
795c284d48 Constrain routes to have correct inversion state 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
2c13107456 Add CPE input inverters 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
ba23199ed1 Fix CC_L2T5 pack 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
88f05a889d Start work on BUFG support 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
ce22d927b6 Use pin connection aliases 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
5f5a27477b Update due to API changes 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
fa30fe22e1 Use device wrapper class 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
9a917602d4 Cleanup 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
f3cf710625 Prevent pass trough issues 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
2c87767b1e Fix DFF pack 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
ec687be0f7 Handle MUX flags 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
bf6e7601d3 pack DFF fixes 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
53b1f73058 Naive pack CC_DFF 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
9a8e88e7db Naive lut tree CPE pack 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
36d6bc2503 Keep just used connections for now 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
12878929e0 Cleanup 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
9e47ce646f Add LVDS support 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
c92be9258a More parameter checks 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
110fe6f519 Cleanup 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
a05bbd75aa Fixed typo 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
0ff7c8ced0 Add IN1->RAM_O2 propagation 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
8f9afe64aa GPIO initial work 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
c8d046bb1b Fix script 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
8e591a97e0 Start adding infrastructure for reading bitstream 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
eb6cce2446 Add support for reading from config 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
0e77fac613 Restructure code 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
a56ef9b8f5 Propagate errors 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
1586cfc7ce Use CCF to set IO location 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
e95b87fbf1 Add CCF parsing 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
e2c1e5a354 Initial work on forming bitstream 2025-03-24 15:10:28 +00:00
Miodrag Milanovic
d11d0f4575 Initial code for GateMate 2025-03-24 15:10:28 +00:00
Lofty
661f76d51a Add arch API function for pip inversion (#1457) 2025-02-27 12:21:15 +01:00
YRabbit
81ccada239 Gowin. Add I3C io buffer. (#1445)
* Gowin. Add I3C io buffer.

A buffer is added that can operate as a normal IOBUF in PUSH-PULL mode
or switch to open-drain IOBUF mode.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>

* Gowin. Turn a variable into a set of flags

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>

---------

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-01-29 14:02:21 +01:00
YRabbit
a76c5b5a0f Gowin. Typo fix.
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-01-29 08:47:41 +01:00
YRabbit
b95a3ca567 Gowin. Implement MIPI IO.
Adds output (MIPI_OBUF and MIPI_OBUF_A) and input (MIPI_IBUF) primitives
to allow the use of “real” MIPI (not emulation) ports capable of
operating in both HS and LP modes.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-01-29 08:47:41 +01:00
Catherine
cf9c74575b CMake: exclude *-bba and *-chipdb targets from make all.
Due to the way CMake-generated Makefiles evaluate dependencies, this
calls the `.bba` generation custom command twice, which then fails as
they both use the same `.bba.new` file as an output and one of them
moves it first.

This broke builds using `make -j` but not builds using
`make -j nextpnr-himbaechel-example`.
2025-01-29 06:58:27 +01:00
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
dbba1328bf Allow splitting nextpnr-himbaechel per microarchitecture.
This is added primarily for YoWASP.
2025-01-21 17:13:03 +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
dcfb7d8c33 CMake: align Himbaechel targets with non-Himbaechel ones.
Primarily, this commit makes both of them use the `BBAsm` functions
to build and compile `.bba` files.

In addition, Himbaechel targets are now aligned with the rest in
how they are configured: instead of having all uarches enabled with
all of the devices disabled (the opposite of the rest of nextpnr),
uarches must be enabled explicitly but they come with all devices
enabled (except for Xilinx, which does not have a list of devices).
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
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
Catherine
ab7a372491 himbaechel: allow subsetting uarches. (#1416)
E.g. selecting only Gowin instead of the default shrinks the resulting
binary by ~30%.
2025-01-12 08:13:08 +01:00
YRabbit
92694d7db7 Gowin. BUGFIX. Do not create missing wires. (#1418)
Erroneously created wires for specific IOs on the underside of some
chips.

Fixes https://github.com/YosysHQ/nextpnr/issues/1417

Also cosmetic edits.

Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
2025-01-12 08:12:06 +01:00