Week 01: Introduction->Tutorials (Git, Git Flow, C)

That’s RIGHT! I am the daring kid who asked for a medical leave on my first day of work! As an advice to all other interns or future-interns, never do what I have done! Despite of all the terrible things happening on my first day, I did carry on my internship and unbelievably, I have survived the first week. Basically, the first week was more about learning and understanding tools that will greatly assist me in implementing my tasks during Read more

11- Initializing Block RAMs using DATA2MEM

I’m still working on how to initialize Block RAMs using DATA2MEM software. I have managed to produce a bit file with initialized RAMs. What’s left is to write a linker script to suit our addressing space, write a C file to blink the LEDs using GPIOs and finally get this working on the board. In this post I will give a step by step guide regarding using DATA2MEM starting from the initial system design to the production of a BIT Read more

Week 1000

“Welcome to Galois Field F(2m) where elements are made up and carry doesn’t matter” If this sounds familiar you should probably turn off TV sometimes (or youtube).   Nothing much was happening this week, I mostly spent it struggling with understanding and at later stage designing the ECDSA module. Man, that was quite a lot of algebra… and fun. Because it’s not so popular topic (you know it when wikipedia starts to be insufficient) I had to dig through a Read more

W04- (cont) Basic Pocessor Class

This week wasn’t very productive on the first few days as I can say. Has been working on source code that is to build a basic processor class in Java. Although the name of it is so called a BASIC processor class but unfortunately it isn’t 100% fall on the “basic” category for me. The fact that implementing the knowledge of microprocessor into source code format getting me confuse from time to time and I couldn’t clear out bugs that appeared. Read more

Week 5: Wrong path taken

My task for this week is to determine the interface of the remoteproc framework. As shameful as I could be, I still couldn’t figure out the interface and what is needed to make the framework runs. After some discussions with my supervisor, I was told that my work method was all wrong. I’ve been reading too much the Linux source codes and obviously this is going to take forever because Linux is very complicated and it is impossible for a Read more

10- SOC

My new task is to design the SOC for the current product that we are working on. However, before getting to the actual design there is few tasks that need to be done first. Last week the task was to connect the AEMB2 processor to two block RAMS, one for data the other for instructions. In addition, a gpio is to be connected as well. Connecting the instruction RAM was pretty forward. The GPIO and the data RAM both connect Read more

Week 03 – TCP/IP Stack, MMC Cards, TCP/IP MDD Demo & SD Card Not Detected by Computer

The PICDEM.NET 2 has a stand-alone Ethernet controller, ENC28J60 but the project is not going to use that stand-alone Ethernet controller. The project will use the Ethernet driver for the PIC18F97J60, which is the ETH97J60. It is interesting to note that the PICDEM.NET 2 has two Integrated Connector Modules (ICMs), one for the PIC18F97J60 and one for the ENC28J60. For this project I will be only using the first one. The source code for the TCP/IP Stack Demo Application is Read more

Week2: PIC18 Schematic, SPI Bus and ICSP Header

After some more thought and discussion with my supervisor, it was decided that we should program the Spartan-6 FPGA using the Slave Serial method. This would be slightly easier to implement and is closer to the original design brief, which is to have a master PIC18 and slave Spartan-6 during configuration. However, given the considerable overlap between Slave Serial and SPI configuration pins, there is still some room for changes at a later date if necessary. This week, my task Read more

Cross Compiler

Seems that the instructions to build the GCC cross-compiler that were previously on our wiki were lost when we turned it off. So, just to keep things documented, here are the instructions that successfully compile binutils, newlib and gcc for our platform. Setup some environment variables and un-tar the archives. $ export TARGET=microblaze $ export PREFIX=$HOME/mb $ export PATH=$PREFIX/bin:$PATH $ mkdir $HOME/buildbin/ $HOME/buildgcc/ $ tar -C $HOME -zxf binutils.tar.gz $ tar -C $HOME -zxf newlib.tar.gz $ tar -C $HOME -zxf Read more

9- HDMI half done!

The above picture WAS NOT made by photoshop! Yesterday night my HDMI design displayed not only a red screen but a green and color patterned screen as well! In this post I will describe the structure of my HDMI transmitter, the outcome of my testing and finally the features that it’s lacking. Here is the list of modules that bring this device to life: 1- Encoder: This module is the heart of the HDMI. It receives video data, Audio/Auxiliary data Read more