Build your hardware, easily!
Go to file
Sebastien Bourdeauducq dd0f3311cd structure: remove Fragment.call_sim 2013-03-15 19:15:48 +01:00
doc fhdl: inline synthesis directive support 2013-02-22 19:10:02 +01:00
examples Local clock domain example 2013-03-15 18:18:32 +01:00
migen structure: remove Fragment.call_sim 2013-03-15 19:15:48 +01:00
vpi vpi: make it work by default on Arch 2013-03-12 16:51:58 +01:00
.gitignore doc: switch to sphinx 2012-03-09 17:08:38 +01:00
LICENSE Add LICENSE file 2012-05-21 19:56:23 +02:00
README README: update 2013-03-11 20:29:47 +01:00
setup.py setup.py: cosmetic 2012-09-09 19:56:04 +02:00

README

Migen (Milkymist Generator)
  a Python toolbox for building complex digital hardware

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, which represent the lion's share of today's logic designs. Counter-
intuitive arithmetic rules result in steeper learning curves and provide a
fertile ground for subtle bugs in designs. Finally, support for procedural
generation of logic (metaprogramming) through "generate" statements is very
limited and restricts the ways code can be made generic, reused and organized.

To address those issues, we have developed the Migen FHDL 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. This last point enables hardware designers
to take advantage of the richness of the Python language - object oriented
programming, function parameters, generators, operator overloading, libraries,
etc. - to build well organized, reusable and elegant designs.

Other Migen libraries are built on FHDL and provide various tools such as a
system-on-chip interconnect infrastructure, a dataflow programming system, a
more traditional high-level synthesizer that compiles Python routines into
state machines with datapaths, and a simulator that allows test benches to be
written in Python.

Migen is the foundation of the next-generation Milkymist SoC.

See the doc/ folder for a more complete description.

Code repository:
https://github.com/milkymist/migen
New Milkymist SoC based on Migen:
https://github.com/milkymist/milkymist-ng

Migen is designed for Python 3.

Send questions, comments and patches to devel [AT] lists.milkymist.org
There is a lot of room for improvement in many areas, contributions welcome.
We are also on IRC: #milkymist on the Freenode network.

See LICENSE file for copyright and license info.

  "Electricity! It's like magic!"