FPGA Development in The Cloud Using The IDE8 Developer Framework
MetadataShow full item record
Cloud computing has become a large industry over the last decade. Furthermore, companies like Amazon Web Services (AWS) has begun to integrate FPGAs into their cloud infrastructure, allowing customers to build software applications that utilize FPGAs to accelerate computations. However, with regards to FPGA development, they only offer the Xilinx tool Vivado, and the development experience is very similar to traditional local development. Furthermore, because the FPGA boards are physically integrated with the AWS servers, they are unsuited to use for a normal FPGA design process for embedded systems. IDE8 is a cloud solution that aims to provide a web-based development environment for electronics. Offering FPGA development on this platform can be a way of making FPGA development more accessible and efficient. In this thesis, it has been developed a prototype of an FPGA tool chain by utilizing Docker containers and open source FPGA tools, that can be deployed on the IDE8 platform. The tool chain utilizes the open source tools from Project IceStorm, which is a set of tools for performing synthesis, place-and-route, and bitfile generation on the Lattice iCE40 FPGA. The tool chain was built in three different ways, by being split up into 1, 2 and 3 containers. By splitting up the tool chain into multiple containers, the disk space required to store the Docker images could be reduced. This is because when the solution is scaled over multiple virtual machines (VM), splitting up the tool chain allows one to copy over only parts of the tool chain to the new VM. Furthermore, by utilizing multi-stage builds, the image size of the Arachne-pnr and IceStorm containers were reduced by 73\% and 51\% respectively. It was tested if the three solutions behaved differently given the same memory and CPU constraints, but no significant difference was detected. It was concluded that the best solution was the 3-container solution, as it provides much more flexibility with regards to adding and changing components in the tool chain later on and provided the most scaling benefits with regards to image size. Furthermore, the AWS FPGA developer AMI (Amazon Machine Image) was tested in this thesis and compared to IDE8. It is clear that IDE8's web-based development environment is very different from the development environment provided by AWS. The web-based environment is a lot simpler to start using, as it does not require any infrastructure management. This also makes IDE8 much easier to use than AWS's IaaS solution, especially for small projects and for students. The FPGA tool chain developed in this thesis was also integrated into the IDE8 environment. Tests were performed, showing that it functioned as intended. For simplicity, the 1-container architecture was used for this.