<p>Started late 2011 and still experimental, Migen (<b>Mi</b>lkymist <b>gen</b>erator) is a Python-based tool that aims at automating further the VLSI design process.</p>
<p>Migen makes it possible to apply modern software concepts such as object-oriented programming and metaprogramming to design hardware. This results in more elegant and easily maintained designs and reduces the incidence of human errors.</p>
<p>Built on these principles, it provides or will provide tools to:
<ul>
<li>build synchronous designs more productively by automating tasks like resetting registers and abstracting away the event-driven paradigm of HDLs.</li>
<li>integrate system-on-chips, for example by automatically interconnecting on-chip buses such as Wishbone.</li>
<li>design hardware accelerators in the dataflow paradigm, with semi-automatic integration in a SoC.</li>
<li>and more...</li>
</ul>
</p>
<p>Migen will become the foundation for the <ahref="mng.html">next-generation Milkymist SoC</a>, and is also used in the <ahref="http://www.rhinoplatform.org">Rhino</a> software-defined radio platform.</p>
<p>You can find the Migen source <ahref="http://github.com/milkymist/migen">here</a>, released under a <ahref="https://github.com/milkymist/migen/blob/master/LICENSE">permissive license</a>.</p>