YoWASP nextpnr packages
The supported FPGA families are:
- Lattice iCE40 (via Project IceStorm);
- Lattice ECP5 (via Project Trellis);
- Lattice MachXO2 (via Project Trellis; experimental);
- Lattice Nexus (via Project Oxide; experimental);
- Gowin GW1N (via Project Apicula; experimental).
For technical reasons, the
ecpmulti tools from the MachXO2 toolchain shipped in the
yowasp-nextpnr-machxo2 PyPI package are installed under the names
yowasp-xo2multi respectively. These commands run bit-for-bit identical code as their
yowasp-ecp* prefixed brethren from the
yowasp-nextpnr-ecp5 PyPI package of the same version.
The version of this package is derived from the upstream nextpnr package version in the
X.Y[.Z] format, and is comprised of five or six parts in a
X: nextpnr major version
Y: nextpnr minor version
Z: nextpnr patch version; reserved as nextpnr currently does not do patch releases
N: zero for packages built from nextpnr releases,
Nfor packages built from unreleased nextpnr snapshots;
Nis the amount of commits since the latest release
postM: package build version; disambiguates different builds produced from the same nextpnr source tree
dev: present only for packages built from unreleased nextpnr snapshots; marks these packages as pre-releases
With this scheme, there is a direct correspondence between upstream versions and PEP 440 Python package versions. Packages built from unreleased snapshots are ignored by pip by default, but can be still installed explicitly. (These packages are uploaded daily to TestPyPI, but only occasionally to PyPI.)
A different versioning scheme was used earlier, where the package build version was denoted by a
.devM suffix. This scheme did not work well with PEP 440 version specifiers and was retired.
See the documentation for yowasp-runtime.