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…

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…