amaranth VS myhdl

Compare amaranth vs myhdl and see what are their differences.

amaranth

A modern hardware definition language and toolchain based on Python (by amaranth-lang)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
amaranth myhdl
7 15
1,434 1,003
4.0% 1.5%
9.6 5.1
8 days ago 2 months ago
Python Python
BSD 2-clause "Simplified" License GNU Lesser General Public License v3.0 only
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

amaranth

Posts with mentions or reviews of amaranth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-01.
  • Why are there only 3 languages for FPGA development?
    5 projects | /r/FPGA | 1 Dec 2022
    He probably meant Amaranth.
  • VRoom A high end RISC-V implementation
    4 projects | news.ycombinator.com | 21 Mar 2022
    As an aside, the latest and active development of nMigen has been rebranded a few months ago to Amaranth and can be found here: https://github.com/amaranth-lang/amaranth . In case people googled nMigen and came to the repository that hasn't been updated in two years.
  • NMigen – A Python toolbox for building complex digital hardware (FPGAs)
    3 projects | news.ycombinator.com | 22 Oct 2021
  • Facts every web dev should know before they burn out and turn to painting
    8 projects | news.ycombinator.com | 21 Oct 2021
    Hmm. A followup question: are there any cheats/hacks that would make it possible (if painful) to for example explore the world of USB3, PCIe, or Linux on low-end-ish ARM (eg https://www.thirtythreeforty.net/posts/2019/12/my-business-c..., based on the 533MHz https://linux-sunxi.org/F1C100s), without needing to buy equipment in the mid-4-figure/low-5-figure range, if I were able to substitute a statistically larger-than-average amount of free time (and discipline)?

    For example, I learned about https://github.com/GlasgowEmbedded/glasgow recently, a bit of a niche kitchen sink that uses https://github.com/nmigen/nmigen/ to lower a domain-specific subset of Python 3 (https://nmigen.info/nmigen/latest/lang.html) into Verilog which then runs on the Glasgow board's iCE40HX8K. The project basically makes it easier to use cheap FPGAs for rapid iteration. (The README makes a point that the synthesis is sufficiently fast that caching isn't needed.)

    In certain extremely specific situations where circumstances align perfectly (caveat emptor), devices like this can sometimes present a temporary escape to the inevitable process of acquiring one's first second-hand high-end oscilloscope (fingers-crossed the expensive bits still have a few years left in them). To some extent they may also commoditize the exploration of very high-speed interfaces, which are rapidly becoming a commonplace principal of computers (eg, having 10Gbps everywhere when USB3.1 hits market saturation will be interesting) faster than test and analysis kit can keep up (eg to do proper hardware security analysis work). The Glasgow is perhaps not quite an answer to that entire statement, but maybe represents beginning steps in that sort of direction.

    So, to reiterate - it's probably an unhelpfully broad question, and I'm still learning about the field so haven't quite got the preciseness I want yet, but I'm curious what gadgetry, techniques, etc would perhaps allow someone to "hack it" and dive into this stuff on a shoestring budget? :)

  • Awesome Lattice FPGA Boards
    5 projects | news.ycombinator.com | 2 Sep 2021
    Worth knowing that are two "nmigen"s nowadays - the one originated in M-Labs and one under a project also called nmigen:

    https://github.com/nmigen/nmigen

    It's a fork, made for reasons, but more actively developed. whitequark (long time author/contributor) works on this fork, and no longer the M-Labs version.

  • Chisel/Firrtl Hardware Compiler Framework
    8 projects | news.ycombinator.com | 5 Jul 2021
  • Unifying the CUDA Python Ecosystem
    13 projects | news.ycombinator.com | 16 Apr 2021
    Sounds like nmigen might be a good open source successor to the project that you describe: https://github.com/nmigen/nmigen

myhdl

Posts with mentions or reviews of myhdl. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-03-07.
  • Launch HN: SiLogy (YC W24) – Chip design and verification in the cloud
    6 projects | news.ycombinator.com | 7 Mar 2024
    Thank you for tackling this critical problem for logic designiners. I think the tools available are much too old for fast paced workflows.

    From my experience attempting to get a similar workflow down for my company:

    I tried to use verilator a while back but ultimately I couldn't because it didn't have same constraints in the verilog language features that I was going to use in production. It doesn't even matter who was missing a feature, verilator or the proprietary tool, it was just about getting them to be same that caused the cognitive dissonance that I didn't want to deal with.

    I ultimately decided to move away from verilator and use the clunky proprietary tools since it was what would be used in production. Getting "verilator compatibility" seemed like a "nice to have".

    Second, the a winning local-first framework of verilator wasn't really established. You show in your example running a test from the yaml file using what looks like a bash script. Even as an experienced programmer who knows bash and sh well, I still find it very hard to write complex thoughts in it. The last high level attempt I found to bridge this gap is likely https://www.myhdl.org/ I don't know them personally, but it seemed like they had some very good thoughts on what makes writing good hardware level tests good. I think it would be worth reaching out to them if you haven't already.

    The one thing that even more critical was a way to run our tests locally. The 10-20 seconds it takes to start a docker image (best case) in the cloud is really frustrating when you are "so close to finding a bug" and you "just want to see if this one line change is going to fix it". Once we got our whole pipeline going, it would take 1-6 minutes to "start a run" since it often had to rebuild previous steps that cache large parts of the design.

    So I think you will want to see how you can help bring people's "local's first" workflows slowly into the cloud. Some tools (or just tutorials) that help you take a failing test, and run it locally and on the cloud will be really good especially as you get people to transition!

  • Why are there only 3 languages for FPGA development?
    5 projects | /r/FPGA | 1 Dec 2022
    Also PyMTL, PyRTL, and MyHDL.
  • Choice of Python HDL library
    10 projects | /r/FPGA | 25 Jul 2022
    MyHDL
  • Show HN: PyCircTools – Build digital circuits using Python
    3 projects | news.ycombinator.com | 13 Jul 2022
  • Tools for designing hardware in Python
    6 projects | /r/Python | 26 Mar 2022
    Any hardware designers here who use Python for designing hardware? There are a bunch of libraries that all seem promising MyHDL, PyRTL, PyVerilog, PyLog, PyMTL3, ... All seem to work roughly the same. Write code in Python and transpile it to VHDL/Verilog. Which of these are popular and well-maintained? MyHDL looks good but it's last release was 0.10 in 2018 and for hardware design you don't want to rely on 0.x software. Anything like Chisel for Python.
  • Design Hardware with Python
    1 project | news.ycombinator.com | 17 Mar 2022
  • FPGA engineers specialize in DSP. What is your job? How much do you get paid? What is your work day like?
    1 project | /r/ECE | 28 Jan 2022
    It is : https://www.myhdl.org/
  • Compiling Code into Silicon
    10 projects | news.ycombinator.com | 7 Dec 2021
    Personally I have fond memories of MyHDL [0], which may be seen as another "code-to-silicon" converter (or at least as the first step of a code-to-silicon workflow). I used it only briefly, and on a school project that had surprisingly little to do with actual hardware design [1], but it really felt "Pythonic" in the best possible way.

    [0]: https://www.myhdl.org/

    [1]: https://github.com/lou1306/gssi/tree/master/2pc

  • MyHDL open-source package for using Python as a hardware description
    1 project | news.ycombinator.com | 28 Nov 2021
  • GitHub - myhdl/myhdl: MyHDL is a free, open-source package for using Python as a hardware description and verification language.
    1 project | /r/Python | 28 Nov 2021

What are some alternatives?

When comparing amaranth and myhdl you can also consider the following projects:

SpinalHDL - Scala based HDL

chisel - Chisel: A Modern Hardware Design Language

cocotb - cocotb, a coroutine based cosimulation library for writing VHDL and Verilog testbenches in Python

nmigen - A refreshed Python toolbox for building complex digital hardware. See https://gitlab.com/nmigen/nmigen

pymtl3 - Pymtl 3 (Mamba), an open-source Python-based hardware generation, simulation, and verification framework

chiselverify - A dynamic verification library for Chisel.

PyRTL - A collection of classes providing simple hardware specification, simulation, tracing, and testing suitable for teaching and research. Simplicity, usability, clarity, and extendability rather than performance or optimization is the overarching goal.

pygears - HW Design: A Functional Approach

Pyverilog - Python-based Hardware Design Processing Toolkit for Verilog HDL

clash-ghc - Haskell to VHDL/Verilog/SystemVerilog compiler