Installation
Before installing, make sure to upgrade your pip
to the latest version:
Latest Version
You can install the latest version of Manta directly from source with:
Editable Development Install
If you're working on the source, you might want an editable installation with some extra dependencies used for development:
Manta's hardware-in-the-loop tests rely on Amaranth's build system for programming FPGAs, which in turn rely on the open-source xc3sprog
and iceprog
tools for programming Xilinx and ice40 devices, respecitvely. If you'd like to run these tests locally, you may need to install these tools and have them available on your PATH
. If you're on Linux, you may also need to add a new udev rule to give non-superuser accounts access to any connected FTDI devices. This can be done by making a new file at /etc/udev/rules.d/99-ftdi-devices.rules
, which contains:
Be sure to reload your udev rules after saving the file.
Adding Manta to Path (Recommended)
It's recommended to place Manta on your system path by adding export PATH="~/.local/bin:$PATH"
to your .bashrc
or .zshrc
. This isn't strictly necessary, but it means that Manta (and any other executable Python modules) can be run as just manta
on the command line, instead of python3 -m manta
. If you're on Windows, this location will likely be different.
Later Manta will be availabe on the PyPI lists, and you'll be able to just pip install mantaray
, but that's not configured quite yet.
Dependencies
Manta requires the following dependencies:
- Amaranth HDL, which comes with it's own built-in copy of Yosys.
- LiteEth, for sending and receiving UDP packets on the FPGA.
- pySerial, for communicating with the FPGA over UART.
- pyYAML, for parsing configuration files written in YAML.
- pyVCD, for writing waveforms captured by the Logic Analyzer Core to standard Value Change Dump (VCD) files.
As well as these dependencies for development, which are installed with the [dev]
argument:
- Pytest, for unit testing.
- Black, for formatting the Python source.
- mkdocs-material, for generating the documentation site.
- amaranth_boards, for building designs for hardware-in-the-loop testing done by the CI.