Skip to content

v1.1.0

Latest
Compare
Choose a tag to compare
@fischermoseley fischermoseley released this 04 Dec 16:48

Manta v1.1.0. This release contains a number of improvements, including:

Improvements for Users:

  • A new Amaranth-native API, allowing Manta to be used natively in Amaranth projects, as well as in traditional Verilog-based workflows. This required (re)writing a bunch of docs, adding generated API docs with mkdocstrings, porting the Verilog examples, and writing some new tests. Hopefully these efforts make for a stable and intuitive experience for folks trying the API!
  • Manta configuration files (manta.yaml) can now be dumped from the Amaranth-native API, allowing pure-Amaranth designs to export a config that can be used in external applications (such as the Web Terminal that's currently in development).
  • Timescales in VCD files exported by the Logic Analyzer now (approximately) match the actual, real-world time between samples (#24). Thanks @carabsc!
  • While communicating over UART, the host will now inject newlines every so often to stall the UART bus, allowing time for the FPGA to catch up in cases where the FPGA clock is slightly slower than the host's clock. This prevents packets from being dropped, resolving #18.
  • The Logic Analyzer will now default to an immediate trigger rather than a single-shot one if no extra configuration is provided. This resolves some non-intuitive behavior, as providing the minimum configuration to the Logic Analyzer would result in a single-shot/no-triggers configuration, which is invalid.
  • Python 3.8 has been deprecated as it is now EOL.
  • A handful of typos have been fixed.

Improvements for Developers:

  • Codecov has been added, with a dashboard available here.
  • mike has been added, which allows the documentation site to show documentation from past releases in addition to builds from main.
  • Ruff has replaced Black for formatting. Ruff's linter has also been enabled.
  • pre-commit has been added, and is run in CI.

Lastly, this release is the first to be published on PyPi! Unfortunately, the package name manta was already taken, so instead it will be available with pip install manta-fpga.

Migrating from previous versions:

  • Previously, cores were accessible by directly accessing a manta instance (for example, an IOCore named foo would be accessible in Python as manta.foo). With the addition of the Amaranth-native API, this has been renamed to manta.cores.foo to prevent name collisions. Please update any instances of manta.core_name with manta.cores.core_name.