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

Pizza Lunch

My interns decided to order pizza for lunch at the office, yesterday. They managed to convince a pizza place from Bangsar to deliver to Cheras. Kudos!

Code checking + Memory Access and WriteBack function

This week although wasn’t that productive but I still manage to start working a little on the following new stages that are the 4th stage-Memory Access and the final stage-WriteBack. The first 2 day of the week I continue on code checking before further implement the following stages. Carry bit were checked for any arithmetic and shifting instructions that involved carry flag -MSR[29]. In Memory Access stage, I need to use appropriate getMem() and setMem() to read and write memory Read more

GPIO custom bus completed

During my 10th week at Aeste, I continued my unfinished business from the 9th week: bit banging the gpio to implement a custom 8 bits wide bus. I spent most of my time this week debugging the gpio driver for the custom bus. My code was ready at the beginning of the week, but it was buggy, and didn’t quite work. One of the most crucial problem is to set the right timing as when to set or read the Read more

Week 1101

My last week surprisingly didn’t involve any more hardware and I had opportunity to play again with some good old C. The task for this week was to write the missing software part for the ECDSA, that is the whole algorithm for signature generation and verification (keeping in mind that scalar point multiplication and SHA-1 portion is already taken care of in hardware). The only difficulty was that numbers are well above the int range so I had to write Read more