Skip to content

F4PGA Application

Saadiq Mohiuddin edited this page Apr 17, 2022 · 6 revisions

Project Title: Generalization of wrapper scripts for installed F4PGA toolchain and making them OS agnostic

Proposed Duration: 175 Hours

Name: Saadiq Mohiuddin

Summary

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).

Deliverables

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.

Project Details

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.

Project Schedule

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

Resume

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).