F4PGA Application
Project Title: Generalization of wrapper scripts for installed F4PGA toolchain and making them OS agnostic
The universality of using F4PGA to target any FPGA device is crucial to the widespread adoption of the toolchain. I’ve used F4PGA (and formerly Symbiflow) as part of a embedded systems research course at Georgia Tech. One of the main objectives of the research project was to explore and implement open-source tools as opposed to vendor locked in options for FPGA development. A critical aspect of the project was to ensure all team members were able to run the toolchain on their computers which was difficult given the variety of OSes in use. Having used Symbiflow on Xilinx series 7 devices and discovering the relative ease of using the toolchain, I’m eager to help expand its applicability to other FPGA devices that can utilized on all major OSes (Mac, Linux, Windows).
The main objective of this project is to port the toolchain Xilinx series 7 bash wrapper scripts to python, which will (1) be agnostic to any FPGA device and (2) will also run on any operating system.
I will research the existing toolchain structure and develop a unified way to describe the toolchain commands which can translate to any FPGA device architecture. I will also research common Python configuration file formats such as YAML, INI, JSON and others to find a suitable option.
Week Starting
June 13 – Familiarity with F4PGA toolset, arch definitions, FPGA development
June 20 - Familiarity with F4PGA toolset, arch definitions, FPGA development
June 27 – Understand existing bash toolchain wrappers
July 4 - Understand existing bash toolchain wrappers
July 11 – Understand OS environment dependencies to run python toolchain wrappers
July 18 – Research python config file options
July 25 – Progress check-in and feedback
Aug 1 – Code python tool chain wrapper
Aug 8 - Code python tool chain wrapper
Aug 15 - Code python tool chain wrapper
Aug 22 – Feedback and changes
Aug 29 – Final feedback changes
September 5 – Final Submission
I’m currently completing my Master of Science in Computer Science at Georgia Tech (expected graduation: Dec 2022), specializing in machine learning. After taking an embedded systems research course, I’ve become keenly interested in FPGA development as well as open-source tooling options. I think this is an exciting emerging field that I would like to further my skills in. I’ve been coding in python for about five years and have experience in many of the major machine learning libraries. I work well in remote teams and I’m proficient in using Git, Docker and DevOps tools (AWS, Azure).