software: rename `[toolchain]` feature to `[builtin-toolchain]`.
* Because `[toolchain]` is ambiguous and it could indicate "Glasgow
toolchain" rather than "YoWASP toolchain".
* For consistency with `GLASGOW_TOOLCHAIN=builtin`.
* For consistency with Amaranth that is using `[builtin-yosys]`.
by
whitequark
1 year 5 months
target: locate and examine the FPGA build tools.
This commit adds a mechanism to Glasgow similar to the existing
`AMARANTH_USE_YOSYS` mechanism that selects a Yosys binary to run.
It introduces the concept of a toolchain (a collection of tools
that come from a single source; currently, either the system binaries
or the co-installed YoWASP packages). The toolchain is used
as a whole, i.e. system and YoWASP packages cannot be mixed since
this has a high probability of being a mistake. Any missing
components required for operation are reported.
To select the toolchain, a new `GLASGOW_TOOLCHAIN` environment
variable is introduced. It can be set to `builtin`, `system`, or
a comma separated list where earlier entry has priority.
The default is `builtin,system` to make YoWASP packages take priority
since when installed with pipx or pdm, these packages are guaranteed
to provide a consistent experience.
Experienced users can globally set `GLASGOW_TOOLCHAIN` to be `system`
or `system,builtin`, which will improve bitstream build performance.
The digest of the tool versions is included in the bitstream ID,
meaning the applets will be rebuilt if the toolchain is upgraded.
The `target.toolchain` code includes support for `nextpnr-ecp5` and
`ecppack` that are not currently used. We're likely to use them in
the future so it doesn't hurt to have them here.
This commit also updates the installation instructions, which are
now almost entirely aligned for all OSes, and do not require anything
besides git, Python, and pipx.
The dependencies are updated to point to the versions of YoWASP tools
with bugfixes around terminal interaction (^C and ABC output spew).
Fixes #302.
by
whitequark
1 year 5 months
cli: don't print a backtrace when interrupted.
by
whitequark
1 year 5 months
software: add PDM support.
PDM's functionality is essentially equivalent to that of pipx for
the Glasgow use case, but it can still be handy for development.
by
whitequark
1 year 5 months
README: acknowledge @mwkmwkmwk.
by
whitequark
1 year 5 months
pyproject: setuptools~=67.0 → setuptools>=67.0
The latter is overly strict and breaks installation with PDM (which
is more principled than our other PEP517 build backends).
by
whitequark
1 year 5 months
meetings: add minutes from 2023-07-15
by
attie
1 year 6 months