LiteX: an open-source SoC builder and library based on Migen Python DSL

LiteX is a GitHub-hosted SoC builder / IP library and utilities that can be used to create SoCs and full FPGA designs. Besides being open-source and BSD licensed, its originality lies in the fact that its IP components are entirely described using Migen Python internal DSL, which simplifies its design in depth. LiteX already supports various softcores CPUs and essential peripherals, with no dependencies on proprietary IP blocks or generators. This paper provides an overview of LiteX: two real SoC designs on FPGA are presented. They both leverage the LiteX approach in terms of design entry, libraries and integration capabilities. The first one is based on RISC-V core, while the second is based on a LM32 core. In the second use case, we further demonstrate the use of a fully open-source toolchain coupled with LiteX.

[1]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[2]  Mary Sheeran,et al.  Lava: hardware design in Haskell , 1998, ICFP '98.

[3]  Jan Kuper,et al.  C?aSH: Structural Descriptions of Synchronous Hardware Using Haskell , 2010, 2010 13th Euromicro Conference on Digital System Design: Architectures, Methods and Tools.

[4]  Stan Y. Liao,et al.  An efficient implementation of reactivity for modeling hardware in the scenic design environment , 1997, DAC.

[5]  Delon Levi,et al.  JBits: Java based interface for reconfigurable computing , 1999 .

[6]  John Wawrzynek,et al.  Chisel: Constructing hardware in a Scala embedded language , 2012, DAC Design Automation Conference 2012.

[7]  Stephen A. Edwards,et al.  Hardware synthesis from a recursive functional language , 2015, 2015 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[8]  Martin Odersky,et al.  Unifying functional and object-oriented programming with Scala , 2014, Commun. ACM.

[9]  Jan Decaluwe MyHDL: a python-based hardware description language , 2004 .

[10]  Brian Bailey,et al.  Taxonomies for the Development and Verification of Digital Systems , 2010 .

[11]  Franco Fummi,et al.  On the Mutation Analysis of SystemC TLM-2.0 Standard , 2009, 2009 10th International Workshop on Microprocessor Test and Verification.

[12]  Melissa C. Smith,et al.  Enhancing Hardware Design Flows with MyHDL , 2015, FPGA.