with Python. Nevertheless, the second has not
brought much added value (in terms of performance)
to the hardware co-design.
Verilog, VHDL, and System Verilog being
synthesis languages, allow the implementing of the
source code in an electronic system. VHDL
guaranteed the behavioural description of the circuits
and the verification of the simulated model safely. If
we are looking for speed in design, we need to call
Verilog. System Verilog tries to combine both
performances and provide the best synthesis tool.
These HDLs develop and adapt to high technology,
making it very complicated to compare and choose
between them. Hence the existence of the conversion
from one to the other.
Since Sexpir is not yet implemented, we limit our
study to Migen and PyMTL tools. The platform’s
toolbox is based on Python, but each uses it
differently from the other. In Migen, we have libraries
that provide the software description resources.
In addition, they organize the design flow and
provide the infrastructure necessary for the synthesis
of SoCs. PyMTL consists of dividing the tools into
modules. It ensures independence between the stages
of the co-design and the mastery of each abstraction
level.
The performances of the simulators used in the
present ecosystems are demonstrated and tested.
Effectively, LiteXSim, MigenSim, and PyMTL
simulators are characterized by the speed in the
compilation. They are easy to handle by the designer
via the functionalities of Python (the simple functions
to launch the simulation).
No one cannot deny that the synthesis and
implementation of a model in an electronic circuit is
an indisputable criterion that assesses the cohesion
and pragmatics of the framework. As a result, we
favour LiteX, which has marked a significant
progression on this path. Also, the prospects for
future work promise improvements and updates that
will make this platform more global (including the
different structures) and suitable for the most
complex systems.
7 CONCLUSION
In this review, we have compared three Python-based
open sources. Several aspects have been discussed:
the high-level language, toolbox, simulation
performance, experiments, and synthesis. RubyRTL,
PyMTL, and other platforms which are not covered in
this paper (PyRTL (John Clow and Sherwood, 2017),
SysPy (Evangelos Logaras and Manolakos, 2014),
Open ESP (Paolo Mantovani and P.Carloni, 2020))
compete with LiteX, which is ahead of them, given its
use and handling in the co-design of SoCs.
We highlighted the generality, maturity, and
ability of the LiteX platform. It designs complex
components for applications that are the future of
intelligent systems. LiteX makes us confident in
future work for its ability to design synthesizable
SoCs based on custom FPGAs that can hold very
complex algorithms (Embedded computing, cloud
solutions, Computational Intelligence….).
REFERENCES
Black, D.C, D. J. B. B. and Keist, A. (2009). SystemC:
From the ground up. In (Vol.71). Springer Science
Business Media.
Cheng Tan, Yanghui Ou, S. J. P. P. C. T. S. A. and Batten,
C. (2019). Pyocn: A unified framework for modelling,
testing, and evaluating on-chip networks. 37th
International Conference on Computer Design (ICCD).
Derek Lockhart, G. Z. and Batten, C. (2014). PyMTL: A
unified framework for vertically integrated computer
architecture research. 47th Annual IEEE/ACM
International Symposium on Microarchitecture.
Digital, E. (18/02/2021). Various projects powered by
LiteX. http://www.enjoy-digital.fr.
Evangelos Logaras, O. G. H. and Manolakos, E. S.
(February 2014). Python to accelerate embedded soc
design: A case study for systems biology. ACM
Transactions on Embedded Computing Systems, Vol.
13, No. 4, Article 84.
Florent Kermarrec, Sebastian Bourdeauducq, J.-C. L. L.
and Badier, H. (05/05/2020). Litex: an open-source soc
builder and library based on Migen Python DSL. arXiv:
2005.02506v1 [cs.AR].
J.Decaluwe (2004). Myhdl: A Python-based hardware
description language. In P.5. Linux Journal.
JIANG Shunning, PAN Peitian, O. Y. and al (2020).
Pymtl3: A Python framework for open-source hardware
modelling, generation, simulation, and verification.
IEEE Micro, 2020, vol. 40, no 4, p. 58-66.
John Clow, Georgios Tzimpragos, D. D. S. G. J. M. and
Sherwood, T. (2017). A pythonic approach for rapid
hardware prototyping and instrumentation. 27th
International Conference on Field Programmable Logic
and Applications (FPL).
K.O.Setetemela, K.Keta, M., and S.Winberg (2019).
Python-based FPGA implementation of AES using
migen for the internet of things security. 2019 IEEE
10th International Conference on Mechanical and
Intelligent Manufacturing Technologies (ICMIMT
2019).
Le Lann, Jean-Christophe, B. H. K. and Florent (2020).
Towards a hardware DSL ecosystem: Rubyrtl and
friends. OSDA 2020 Open Source Hardware Design,
colocated with DATE 20.