Boards with Gowin chips are supported in the Himbaechel architecture
with much greater correctness and a wider range of primitives.
In fact, at the moment the advice “use himbaechel-gowin” immediately
solves a
significant part of the issues opened by users.
Of course, you need to wait for amendments to oss-cad-suite, at least
https://github.com/YosysHQ/oss-cad-suite-build/pull/109
Signed-off-by: YRabbit <rabbit@yrabbit.cyou>
When -Wnarrowing is enabled, compilation of generated
chipdb*.bin.cc files produces a large number of messages:
"narrowing conversion of ... from ‘int’ to ‘const char’ [-Wnarrowing]"
Explicitly using uint8_t instead of char when referencing
embedded chipdb arrays resolves these issues.
Suggested-by: Catherine <whitequark@whitequark.org>
Signed-off-by: Gabriel Somlo <gsomlo@gmail.com>
prjunnamed does not emit a net alias for toplevel ports. This works
fine for constraining IOs but breaks clock constraints. This commit
expands clock constraint application code to look up net aliases first,
ports second.
prjunnamed normalizes ports that are not present in the primitive
to be all-x. On iCE40, this can cause a false placement conflict
between `SB_IO` cells where one's clock input is `x` and another's is
some other net.
* 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>
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>
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`.
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>