PyCon APAC 2025

[Talk] Python Based High Level Synthesis for programming Field Programable Gate Arrays using Migen and MyHDL
2025-03-02 , F-AVR

A Field Programmable Gate Array, or FPGA, is a type of integrated circuit (IC) that enables the development of custom logic for rapid prototyping and final system design. FPGAs are used for their inherent flexibility that allows it to be programmed and re-programmed via software download to adapt to the evolving needs of the larger system in which it is designed into. FPGAs are ideally suited for today’s fastest growing applications, like edge computing, artificial intelligence (AI), system security, 5G, factory automation, and robotics. Programming these devices however is using Hardware description languages like Verilog or VHDL which usually limits it adoption to high level programmers like python. This talk introduces some of the budding Python based High level synthesis frameworks that attemps to translate python into HDL with the hope of introducing Pythonista's into the world of Programmable Logic Devices. Open source projects such as Migen(https://m-labs.hk/gateware/migen/) and MyHDL (https://www.myhdl.org/) will be introduced and a demonstration of actual programming of a an FPGA will be showcased.


Migen and MyHDL are widely used to generate Verilog or VHDL HDL to program Filed programmable arrays. These frameworks enables hardware designers to take advantage of the richness of the Python language - object oriented programming, function parameters, generators, operator overloading, libraries. Through these frameworks, python programmers will be introduced to foray into the world of Field programmable devices which powers mostly our digital systems today.


Audience Level:

Intermediate

Category:

Hardware/IoT

See also: Migen

Diogenes is an Electronics Engineer and a professor in the University of Science and Technology of Southern Philiipines. He develops embedded systems and educational kits on microcontrollers and Programmable Chips (FPGAs) leveraging the use of python as much as possible. He is passionate in creating devices that are cost effective and has practical applications in real life not just a showcase of technological design and principles. He has been developing python modules and libraries as well as discovering frameworks intended for embedded systems using micropython-the python for k for microcontrollers and embedded systems. He has been a project leader of some funded research projects in the Philippines ands is an avid member of the local Python Organization in Cagayan de Oro-The Pytsada. He has been a speaker in previous Local Pycon and Pycon APAC conferences in the last five years wherein most of his session are on the hardware development side of Python. His fascination with low level programming and hardware description language lead to the his quest for developing high level tools in order to democratize the use of PLDs and Register Transfer Level Designs in Engineering Education.