Week 2 – UART Comms

The second week of internship was not very productive. I still faced difficulties with the UART communication. In order to understand the flow of data better I tried to write the UART code in assembly language. I came to realize that there was more to coding than just writing lines. Understanding what happens is essential. Hopefully I’ll be able to solve the UART challenge and move on to SPI next week.

Weekly Log #1 – Intro

It was the first week of internship and I reported in for work on Monday 7th Jan. The first item on the agenda was an introduction to the work place, the expectations and the responsibilities of the job. Furthermore the work timings and other details were given out. My responsibilities had three parts to be completed in three months. Each of which are discussed below: SD-card: reading and writing to and from an SD card. Ethernet: transmitting and receiving from Read more

New Carpets

Our new carpets were installed yesterday. It took them all of half a day to rip up the old ones and install the new ones. The entire office is now brightly coloured and I hope that means that we’ll be able to work more productively come 2013! PS: There’s but one more thing to do – new furniture!

New Coat of Paint

Although we’ve only been squatting at our current offices for the last few years, we did not renovate the office when we first moved in as the previous tenant had left an office which was mostly what we wanted anyway. However, with the wear and tear of the last couple of years, it is now time to do a little refurbishment. The month of December is great for such things as nobody is around in the office. So, we’ve ordered Read more

FPGA Dev Boards

In preparation for the development of our new products in 2013, we have ordered a couple of FPGA based development boards to aid in our work. Both of these turned out to be Digilent boards – Atlys and Zedboard. The Atlys will serve as our general purpose development board as it has the necessary I/O devices that we will be integrating into our new product. The Zedboard is going to serve as an experimental platform for future products. Both of Read more

http://www.sxc.hu/photo/96250
http://www.sxc.hu/photo/206155

NFS v GlusterFS Homes

After spending several months running user home directories under GlusterFS, we have encountered some minor problems of files that get modified or unmodified in a seemingly random fashion. This might be due to us using Gluster in an unsupported way. Therefore, we decided to switch to a tried and true method – storing home user directories under NFS. In the intervening months, we had upgraded our entire office network to a gigabit network and purchased a new dedicated file-server. Therefore, Read more

Optimising C for T3RAS

After lots of testing i found certain variances that can help in speeding up code. These are a few simple practices. Know your target. If the T3RAS core you’re compiling for contains hardware features like multiplier and barrel shifting, include it when compiling your code using -mattr=barrel,mul . Both instructions take an extra cycle to execute however in most situations using them is more efficient than expanding it to a bunch of simple instructions. Dont use too many variables especially Read more

http://www.sxc.hu/photo/1160562
http://www.sxc.hu/photo/1160562

T3RAS LLVM Backend Features

The T3RAS backend in llvm is based on the microblaze 6.3 architecture set but without hardware support for floating points and without hardware division. The T3RAS backend contains 3 variants (T3RAS1T, T3RAS2T, T3RAS4T) which is described below. To list all variants and features of T3RAS, simply run: llvm-as < /dev/null | llc -march=T3RAS -mattr=help which would show: T3RAS1T – Select the T3RAS1T processor. T3RAS2T – Select the T3RAS2T processor. T3RAS4T – Select the T3RAS4T processor. Available features for this target: Read more

LLVM Backend Port Progress

While i was successful in making sure the backend appeared with the right name and features that were needed, there were still many shortcomings that needed to be addressed. After a while of copying, modifying and adapting code, I was finally able to change the names and variants. Instead of differentiating the variants from the pipeline, i removed the 3 staged pipeline and made copies of the 5 staged pipeline for different threaded variants. I found that one way i Read more

http://www.sxc.hu/photo/1160562