Starting to Code

I have finally begun making changes to the K3rangka code, trying to isolate the implementations of running yosys, nextpnr, and other tools into separate classes. Previously, the implementation was within the resource file that handles the HTTP requests. The implementation handled different type of FPGAs through if statements, which was possible for the ice40 and ecp5 due to their similarities in the open-source design flow. However, the implementation would be very different for the Xilinx 7 series and the Cyclone Read more…

Almost There

My search for the tools in Vivado and Quartus has come to an end. After three days of unsuccessful attempts to track down the processes while running Vivado and find the tools for each part of the design flow, I have given up and decided to resort to tcl commands which is well documented and also suggested on the yosys wiki page. The Vivado processes had dependencies such as libraries to be preloaded or variables of paths to be specified, Read more…

Searching for the Right Tools

This week, I was focused on finding tools for FPGA boards besides the Ice40 (Lattice ECP5, Xilinx Series 7, and Intel Cyclone V). My starting point was my supervisor’s suggestion to look at project Trellis, X-Ray, and Mistral for each of the boards respectively. Out of the three projects, project Trellis seemed to have the most progress as it was able to support a full design flow from Yosys to nextpnr to bitstream generation using a tool named ‘ecppack’. However, Read more…

Getting Started

During my second week of internship, I encountered two unexpected surprises concerned with the project I was given. My project was the continuation of what another intern, Jun Wen, was working on. It was the development of a web application that would simplify the programming of different models of FPGAs. My first surprise was that I was going to work with FPGAs instead of microprocessors (which I was expecting). This meant that I had to study at least the very Read more…

Photo by Tim Gouw on Unsplash
Photo by Fabian Grohs on Unsplash

Final Week

This will be my last week of internship in Aeste. I finished up my work on code refactoring. As this will be the last blog entry from me, I would like to write on the learnings and reflections throughout this internship.  I have obtained various technical skills, namely  Git version control Web development programming language Javascript Web development framework VueJs With no previous experience in any of these skills, I am happy to say that I am able to develop Read more…

multipart/form-data

I mainly focused on generating a multipart message this week. I was using curl to send a multipart formpost previously. For example, curl -kv -F ‘lang=vlog’ -F ‘[email protected]’ http://127.0.0.4:8080/api/v19/workspace.elaborate was used to transfer data to a server. The request body was shown below. (Note: A boundary was a string of random numbers.) –MIME_boundary_2CA6E12165908974 Content-Disposition: form-data; name=”lang” vlog –MIME_boundary_2CA6E12165908974 Content-Disposition: form-data; name=”…”; filename=”source.v” Content-Type: text/plain (contents of the file) –MIME_boundary_2CA6E12165908974– Instead of using curl to transfer a multipart message, I had Read more…

Slight Obstacles

I spent almost the whole week on code refactoring. It is a process which takes up quite a lot of time as much thinking is needed to optimize the code for easier maintenance in the future. My progress on refactoring was satisfactory, except for a small part where I am slightly stuck. In VueJs, v-model is a feature for two way data binding. This means that a variable is binded to an event listener. A change in input will generate Read more…

Developing back-end

This week I mainly focused on the back-end. In this post I would also like to discuss about some Wt classes since Wt currently lacked community support. First and foremost, I would like to discuss about curl. Since the project did not involve any user interface, I had to use curl to transfer data to the server. Unfortunately, I made a mistake at the beginning because I did not implement MIME encoding into the curl command. For example, the curl Read more…

Photo by Headway on Unsplash

Start of Internship

I am Myeong Jin, a first year engineering student working as an intern in Aeste. As this is my first experience in internship or any sort of working environment, I am excited to learn as much as I can for the next 10 weeks and upgrade my abilities. The first two days of internship at Aeste was spent on understanding GIT. GIT is an open source version control system which is essential to manage several contributors making changes in code Read more…

Refactoring

This week, I started on refactorising the software code. The main purpose of refactoring is due to the current large chuck of repeating codes in different files. Thus, my responsibility is to refactor these codes into a single separate component file, which will then be included in all subsequent user files. If done well, the software will be more maintainable in the future, as most of the enhancements and changes can be done in the component file without changing the Read more…