Capstone Project, Tufts Universtiy, 2023 Sponsor: Professor Steven Bell of the EECS department at Tufts University
Developed by: Ellis Brown, Alina Shah, Ankur Dahal Fall 2022-Spring 2023.
This project builds a platform-agnostic web ide for ICE40 FPGAs. Users will be able to build projects, compile their code to bitstreams, , and flash their bitstreams to their FPGA all from the comfort of their web browser and a GUI application. This project is built using Flask for the backend, and vanilla html and javascript for the frontend. To begin, please see Student User Documentation for more information on how to use this website.
This is intended to be used in combination with ES4 and other related courses at Tufts University which use VHDL and ice40 FPGAs. This is written with assumptions about the enviornment in which it runs. See Maintainer Documentation for more information.
- Student User Documentation
- Maintainer Documentation
- Attempting to flash directly from website (story)
-
This project was built to circumvent using Lattice Radiant, which only is supported on Windows and Linux computers at this time. Lattice Radiant is a featureful design suite for building and analyzing VHDL projects. This WebIDE excells at it's quick setup and ease of use.
-
If your project grows larger than what can easily be handled in this website enviornment, the code is fully exportable to a new enviornment using Download Folder button on the website. A machine created
Makefile
can be run using themake
command from the command line to build the project, and will build the full project as needed. However, you will need to install the needed build tools (ghdl, yosys). The code for generating this Makefile can be found in app.py -
The backend uses a stateless request handling architecture, to help easily scale this project to appropriately handle load.
-
It would be ideal to be able to flash code directly to the FPGA from the website. Lots of endeavors were attempted to solve this problem, but we ended unsuccessfully. If one were able to solve this problem, it would be greatly appreciated.
-
A fully atonomously hosted version of this project would be ideal. Currently, the project is hosted on the Tufts EECS servers, and is not intended to be used outside of that environment. A easy to setup and use version of this website for an individual user, or with user sessions would be great for the open source community.
Contributions are welcome, but this repository is infrequently checked. If you would like to contribute, please open an issue or pull request. See Future Enhancements for ideas on what to contribute.
Note: This project mentions and depends on a Flasher GUI, which can be on github at github.com/Ellis-Brown/iceprog.