GSoC’21 with FOSSi Foundation
I’m Adithya Sunil and I’m an undergraduate student at International Institute of Information Technology, Hyderabad majoring in Electronics and Communication Engineering. I am really excited to share that I have been selected for the Google Summer of Code ’21 program. My project proposal to the Free and Open Source Silicon Foundation on ‘Porting BasejumpSTL to FuseSoC’ has been accepted and I will be working on it this summer.
How did I get here?
I discovered my interest in open source hardware projects while working on a course project related to processor architecture. Upon looking around a bit on GitHub I found out that it indeed a very interesting domain with a lot going on and I started exploring various projects. I got to know about GSoC from colleagues at college and it really seemed like a good opportunity for those entering the realm of open source. When I saw FOSSi foundation on the list of organization and the project descriptions it seemed like the perfect choice for me.
It didn't take much time for me to zone in on a single project and start working on the proposal. The mentors, Dan Petrisko and Prof. Michael B. Taylor, were very responsive right from the application phase and were happy to guide me through the process and provide feedback on my draft proposal.
Now speaking a bit more about my project.
About the project
BaseJump STL is to the hardware world as C++ STL is to the software world. It is a comprehensive hardware library for SystemVerilog that seeks to contain all the commonly used hardware primitives. FuseSoC is a package manager and set of build tools for reusable hardware building blocks facilitating the sharing of designs between projects and reusing open IP cores.
The objective of my project is to port BaseJump STL to FuseSoC so that new projects can directly reuse these hand-optimized IP cores rather than starting from scratch. BaseJump STL has the hardware primitives defined in the form of SystemVerilog modules. FuseSoC makes use of core files that reference the provider, file sets and default targets allowing for the reuse of IP cores in the process of creating, building and simulating SoC solutions. FuseSoC allows for easier tracking and downloading of dependencies as well as versioning using VLNV tags making it much more convenient to work with large cores as well as keep track of changes to these cores. This project will involve porting all the modules as well as the testing infrastructure in BaseJump STL to work with FuseSoC.
The community bonding period of the program has come to an end and the coding phase has begun. I’m excited to be working on this project and I look forward to a very productive summer.