Skip to content

Latest commit

 

History

History
39 lines (34 loc) · 1.99 KB

migen.md

File metadata and controls

39 lines (34 loc) · 1.99 KB
title description authors links categories tags active licenses talk
migen
A Python toolbox for building complex digital hardware
M-Labs Limited
gh web
m-labs/migen
Languages
Frameworks
HDL
FHDL
Python
RTL
from
2011
BSD-2-Clause
165

"Despite being faster than schematics entry, hardware design with Verilog and VHDL remains tedious and inefficient for several reasons. The event-driven model introduces issues and manual coding that are unnecessary for synchronous circuits [...]. To address those issues, we have developed the Migen FHDL, a library that replaces the event-driven paradigm with the notions of combinatorial and synchronous statements, has arithmetic rules that make integers always behave like mathematical integers, and most importantly allows the design's logic to be constructed by a Python program."

"nMigen is based on Migen [...]. Although Migen works very well in production, its design could be improved in many fundamental ways, and nMigen reimplements Migen concepts from scratch to do so. nMigen also provides an extensive compatibility layer that makes it possible to build and simulate most Migen designs unmodified, as well as integrate modules written for Migen and nMigen."

nMigen is "A refreshed Python toolbox for building complex digital hardware", which first commit dates at late 2018.

{{< note >}} There is a dispute between M-Labs and whitequark about the ownership of the brand nMigen. Most of the codebase of nMigen was written by whitequark and the upstream is nmigen/nmigen. However, there is a fork in m-labs/nmigen and M-Labs claims the brand as being based on Migen (see nmigen.org). {{< /note >}}

{{< note >}} [LiteX]({{< ref "/items/litex" >}} "LiteX") is based on Migen. However, multiple modifications were done and LiteX is currently an independent ecosystem. {{< /note >}}