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
b5f7b6cc
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
36769e73
cli: don't print a backtrace when interrupted.
by whitequark 1 year 5 months
576f610e
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
5eb4c72e
README: acknowledge @mwkmwkmwk.
by whitequark 1 year 5 months
b16ee97b
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
0d595593
meetings: add minutes from 2023-07-15
by attie 1 year 6 months
edc57fa0
Don't use pkg_resources
by Marcelina Kościelnicka 1 year 6 months
18dc6741
applet.sensor.scd30: remove unused imports
by Marcelina Kościelnicka 1 year 6 months
9a668a21
software: move from `TSTriple` to `Pin`, simplify `Pads` This removes the last dependency on `amaranth.compat`, finishing the migration.
by Marcelina Kościelnicka 1 year 6 months
ac7472aa
Report a bug