System on Chip

Compared to my work the title might be a little too fancy but hopefully our switches will evolve from simple switches to a smart interconnect between the processor and all other system components. Do you remember the second version of the accelerator switch I talked about in my previous blog Read more…

I2C core

I2C is the last IO device going into our system, for now. I2C is more complicated than both UART and SPI. It’s complication is due to it’s ability to have many masters and slaves on the same bus. Moreover, having only one bidirectional line(SDA)  for data transfer adds to it’s 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 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 Read more…

15- A new AEMB.

I’ve managed to completely remove the Icache from AEMB. Simulation and FPGA implementation were both a success. However, after the edits AEMB now runs slower because it has to fetch each and every one of it’s instructions through at least two Wishbone cycles. It’s worth mentioning that Before removing the Read more…

14 – Removing Icache from AEMB

My new task is to remove the Icache module from AEMB. Basically Icache holds all instructions before execution by the core. Icache acquires the instructions from whatever is holding them externally and keeps them for processing. Icache controls the Instructions WB interface through the ich_hit signal. When the processor needs Read more…

13- AEMB cooperates !

The above blinking LEDs are not regular blinking LEDs. These LEDs are connected to the output of a GPIO. That GPIO is controlled by the AEMB2 microprocessor and the AEMB2 microprocessor is fetching it’s instructions from a 16K block RAM that has been loaded with data using the DATA2MEM software. Read more…