amaranth/README.md

59 lines
3.4 KiB
Markdown
Raw Normal View History

2021-12-10 03:42:15 -07:00
# Amaranth HDL (previously nMigen)
2021-12-09 22:39:50 -07:00
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][amaranth-boards], a [System on Chip toolkit][amaranth-soc], 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.
2021-12-09 22:39:50 -07:00
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 designers 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.
2021-12-09 22:39:50 -07:00
[amaranth-boards]: https://github.com/amaranth-lang/amaranth-boards
[amaranth-soc]: https://github.com/amaranth-lang/amaranth-soc
2023-01-31 11:41:06 -07:00
The development of Amaranth has been supported by [LambdaConcept][], [ChipEleven][], and [Chipflow][].
2021-12-09 22:39:50 -07:00
[yosys]: https://yosyshq.net/yosys/
2019-01-15 00:58:38 -07:00
[lambdaconcept]: http://lambdaconcept.com/
2021-01-22 20:26:42 -07:00
[chipeleven]: https://chipeleven.com/
2023-01-31 11:41:06 -07:00
[chipflow]: https://chipflow.io/
2019-06-23 20:00:31 -06:00
2021-12-09 22:39:50 -07:00
## Introduction
See the [Introduction](https://amaranth-lang.org/docs/amaranth/latest/intro.html) section of the documentation.
2021-12-09 22:39:50 -07:00
## Installation
See the [Installation](https://amaranth-lang.org/docs/amaranth/latest/install.html) section of the documentation.
2024-02-13 05:03:18 -07:00
## Usage
See the [Language guide](https://amaranth-lang.org/docs/amaranth/latest/guide.html) section of the documentation.
## Platform support
2019-10-09 18:50:01 -06:00
2021-12-09 22:39:50 -07:00
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:
2019-10-09 18:50:01 -06:00
* Lattice iCE40 (toolchains: **Yosys+nextpnr**, LSE-iCECube2, Synplify-iCECube2);
* Lattice MachXO2 (toolchains: Diamond);
* Lattice MachXO3L (toolchains: Diamond);
2019-10-09 18:50:01 -06:00
* Lattice ECP5 (toolchains: **Yosys+nextpnr**, Diamond);
2024-02-13 05:03:18 -07:00
* Lattice Nexus (toolchains: **Yosys+nextpnr**, Diamond);
* 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);
2024-02-13 05:03:18 -07:00
* AMD Spartan 6 (toolchains: ISE);
* AMD 7-series (toolchains: Vivado, ISE);
* AMD UltraScale, UltraScale+ (toolchains: Vivado);
* Intel (toolchains: Quartus);
* Quicklogic EOS S3 (toolchains: **Yosys+VPR**).
2019-10-09 18:50:01 -06:00
FOSS toolchains are listed in **bold**.
2021-12-09 22:39:50 -07:00
## Community
2020-02-08 04:00:08 -07:00
2023-07-19 12:46:42 -06:00
Amaranth has a dedicated IRC channel, [#amaranth-lang at libera.chat](https://web.libera.chat/#amaranth-lang), which is _bridged_[^1] to Matrix at [#amaranth-lang:matrix.org](https://matrix.to/#/#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.
2020-02-08 04:00:08 -07:00
2021-12-09 22:39:50 -07:00
## License
2024-02-13 05:03:18 -07:00
Amaranth is released under the [two-clause BSD license](LICENSE.txt). You are permitted to use Amaranth for open-source and proprietary designs provided that the copyright notice in the license file is reproduced.