http://en.wikipedia.org/wiki/File:Great_Sphinx_of_Giza_-_20080716a.jpg

Sphinx documentation

Here I am, finishing my 12th week at Aeste, doing documentation for my project. There is not much to tell this week because the only thing that I’ve been doing this is just documentation. For the documentation, my supervisor asked me to use Sphinx. Sphinx was initially developed for documenting python project, but then has evolved to support other programming languages as well. If you still can’t imagine what does it do, just imagine it as a wiki page. Every Read more

Raspberry Pi’s gpio-remoteproc driver finished

This week I managed to finished my raspberry pi’s remoteproc driver. At first I thought my custom gpio bus was flawless, but after linking it with the remoteproc driver, and some harsh testings, it turned out to be buggy. Data sent by the remote processor (another Raspberry pi running a simple processor read write emulation program) are well copied but when I verify the host’s memory, the data are scattered as in they are not being copied continuously. After some Read more

SPI down, Uart on the way.

This week I’ve finished the second version of SPI. I basically adjusted the formatting of the code  to be more professional, easier to read and interpret and better commented. My guide is the code for AEMB, it’s formatting, nomenclature and comments. I’ve come across a bug in SPI. Apparantely the slave didn’t capture the last bit at modes where CPHA was 1. I’ve managed to solve this problem and verify both SPI devices in the 4 modes by simulation. As Read more

ECDSA Driver (cont.)

I continued writing the ECDSA driver this week and managed to complete it, including testing it on the simulator. My understanding of the concept of the functionalities of the ECDSA driver was obscure earlier and my colleague who worked on this has already left AESTE when I started implementing this driver. As a result, I had to send him emails in order to clearly understand how to write this driver. I am really grateful that he’s nice enough to answer Read more

Implementing details into pipeline class + code checking

The following 2 weeks will be used mainly to implement details into my current pipeline class so that it could work more closely to the real pipeline process. While keep implementing, continuous code checking and debugging is necessary. Continue from last week work where I need to figure out how to implement so that carry bit is also being taken into account when arithmetic instruction without carry bit and keeping the carry bit is executed. My last week concept on implementing Read more

Pipeline implementation (Final Stage)

Here come the final week of my internship. After I have done my code checking and debugging for Load and Store instruction implemented earlier, I started to work on my main task of the week that is to implement IMM instruction in pipelining. This task actually wasn’t heavy but was a little tricky on its implementation. I was quite confused while trying to figure out the exact data flow of my codes with the IMM instruction implemented. Luckily my supervisor is Read more

PCB Design and the FreeRouting Autorouter

Work on designing the PCB layout continues in earnest. We encounter a few software issues relating to the hardware of the task, which prompt some worried thoughts. As always, here’s a look back at the previous week. Click here to skip to the conclusion. Pin Assignments During design it became apparent that some routing could be done in a more efficient manner if the pins on the Spartan-6 were repositioned. Fortunately, this is possible since the pins on the Spartan-6 Read more

SOC with SHA1 and GPIO

This week we have managed to get an SOC that connects AEMB to SHA1 accelerator and a GPIO. Having only one device at each bus of the AEMB doesn’t require much effort in terms of SOC. The software that we used for testing contained our driver for SHA1. Our demo program runs SHA1 to produce the hash of “abc” and then we display it on LEDs connected to the GPIO. The above video shows the expected first word of the Read more

Issues with Multi-Block Writing

It turns out that issue of connection timeout, random protocol data is caused by the fact I did not call the write function after TCP and Ethernet layer processes. The write function is then called in the Ethernet layer (ETH97J60.c). The function that is modified is MACGetArray(). After this modification, there is no more connection timeout problem and random protocol data. Some corrections and modifications are made to handle the situation when the data retrieved is larger than the remaining Read more

ECDSA Driver

This week was really a busy week and it passed so fast that I didn’t even realize that today is Friday again! I have spent a lot of my time fixing the bugs in the SHA1 driver when it was tested on the Simulator. Later, I started to test the GPIO driver that I have done during Week 2. It was a fairly simple driver which does simple reading and writing. Only few modifications were required for the gpio driver Read more