Skip to main content

Amaranth hardware definition language

Project description

Amaranth HDL (previously nMigen)

The Amaranth project provides an open-source toolchain for developing hardware based on synchronous digital logic using the Python programming language, as well as evaluation board definitions, a System on Chip toolkit, and more. It aims to be easy to learn and use, reduce or eliminate common coding mistakes, and simplify the design of complex hardware with reusable components.

The Amaranth toolchain consists of the Amaranth hardware definition language, the standard library, the simulator, and the build system, covering all steps of a typical FPGA development workflow. At the same time, it does not restrict the designer’s choice of tools: existing industry-standard (System)Verilog or VHDL code can be integrated into an Amaranth-based design flow, or, conversely, Amaranth code can be integrated into an existing Verilog-based design flow.

The development of Amaranth has been supported by LambdaConcept, ChipEleven, and Chipflow.

Introduction

See the Introduction section of the documentation.

Installation

See the Installation section of the documentation.

Usage

See the Language guide section of the documentation.

Platform support

Amaranth can be used to target any FPGA or ASIC process that accepts behavioral Verilog-2001 as input. It also offers extended support for many FPGA families, providing toolchain integration, abstractions for device-specific primitives, and more. Specifically:

  • Lattice iCE40 (toolchains: Yosys+nextpnr, LSE-iCECube2, Synplify-iCECube2);
  • Lattice MachXO2, MachXO3L (toolchains: Yosys+nextpnr, Diamond);
  • Lattice ECP5 (toolchains: Yosys+nextpnr, Diamond);
  • Lattice Nexus (toolchains: Yosys+nextpnr, Radiant);
  • AMD Virtex, Virtex E, Spartan 2, Spartan 2E (toolchains: ISE);
  • AMD Virtex II, Virtex II Pro (toolchains: ISE);
  • AMD Spartan 3, Spartan 3E, Spartan 3A, Spartan 3AN, Spartan 3A DSP (toolchains: ISE);
  • AMD Virtex 4, Virtex 5, Virtex 6 (toolchains: ISE);
  • AMD Spartan 6 (toolchains: ISE);
  • AMD 7-series (toolchains: Vivado, ISE);
  • AMD UltraScale, UltraScale+ (toolchains: Vivado);
  • Altera (toolchains: Quartus);
  • Quicklogic EOS S3 (toolchains: Yosys+VPR).

FOSS toolchains are listed in bold.

Community

Amaranth has a dedicated IRC channel, #amaranth-lang at libera.chat, which is bridged[^1] to Matrix at #amaranth-lang:matrix.org. Feel free to join to ask questions about using Amaranth or discuss ongoing development of Amaranth and its related projects.

[^1]: The same messages appear on IRC and on Matrix, and one can participate in the discussion equally using either communication system.

License

Amaranth is released under the two-clause BSD license. You are permitted to use Amaranth for open-source and proprietary designs provided that the copyright notice in the license file is reproduced.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

amaranth-0.5.8.tar.gz (227.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

amaranth-0.5.8-py3-none-any.whl (254.3 kB view details)

Uploaded Python 3

File details

Details for the file amaranth-0.5.8.tar.gz.

File metadata

  • Download URL: amaranth-0.5.8.tar.gz
  • Upload date:
  • Size: 227.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for amaranth-0.5.8.tar.gz
Algorithm Hash digest
SHA256 a9d6221fdb002614e82ac3603d245827829f279e8eb5fc543c948ea3609328ea
MD5 043c4a7a580e4bca3b6d78298d403875
BLAKE2b-256 fee03cf8194ef5e4bb317c80956df0e7b0bbc5c251af04bb8b16e4593eb0a811

See more details on using hashes here.

Provenance

The following attestation bundles were made for amaranth-0.5.8.tar.gz:

Publisher: main.yaml on amaranth-lang/amaranth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file amaranth-0.5.8-py3-none-any.whl.

File metadata

  • Download URL: amaranth-0.5.8-py3-none-any.whl
  • Upload date:
  • Size: 254.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for amaranth-0.5.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6c32bd3422c700d246904032c1252f0a84225d2bdf9e26de4bc7df2ec83a8b39
MD5 be7fcc8dbb2137c4c7e944c44fda3782
BLAKE2b-256 744b61caac0c0ba1934ed839ddfa35592e3cbc2a6762e829209df5e8adab4fda

See more details on using hashes here.

Provenance

The following attestation bundles were made for amaranth-0.5.8-py3-none-any.whl:

Publisher: main.yaml on amaranth-lang/amaranth

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page