Foreword by Andreas Olofsson:
I have been following Adam Taylor’s MicroZed chronicles for a while and have been very impressed by the quality and quantity of his writing. Hopefully this will be the first of many great posts about the Parallella by Adam!
Article by Adam Taylor:
You may be familiar with my blog over on Xilinx Xcell Daily about how to use the Zynq which you can find here. The very kind people at Adapteva asked if I would be interested in writing a similar series based upon the use of the Parallella board which also uses the Zynq.
Having received the Parallella board and being completely new to this I thought that my first installment would look at getting the board up and running quickly.
However, before I do that I think I should explain a little about the board, what it is, its interfaces and how we can use it.
The centre of the Parallella board is the Epiphany multicore accelerator which contains a number of superscalar floating point RISK CPU’s connected via network on chip enabling inter processor communication. According to the Epiphany Architecture Reference each core is capable of executing two floating point instruction and a memory load per clock instruction.
This device comes in two flavours one which contains 16 cores and another which contains 64 cores regardless of the core fitted, the Epiphany Accelerator is connected to a host device which is a Zynq (either 7010 or 7020). It is the Zynq which performs most of the interfacing to the outside world as shown in the diagram below.
The Epiphany device is connected to the Zynq using one or more of the four eLinks (north, east, south and west) available on the device. These are designed to allow the Epiphany device to be connected to other devices or to a FPGA or other Host system. The Zynq hardware design which comes with the Parallella board has an AXI to eLink module within the programmable logic and which enables us to access the epiphany device.
We can then access the cores in the epiphany device via the Zynq memory map as we would any other interface provided we are using a valid definition for the programmable logic half of the Zynq.
Having looked at the Hardware environment it is only correct that we look a little at the software environment which runs on the Zynq and enables us to address the epiphany chip. This requires there things
- Ubuntu Linux distribution for the Parallella
- Linux Kernel for the Parallella
- Correct Zynq boot file
To get us started these are available from if you do not already have a pre-programmed SD card, there are also instructions for how to create the SD card for the three major OS.
For my getting started I require Parallella 16, z0720 flavour for the FPGA design which is the first step in getting the Parallella up and running.
Having created the SD card the next step is to add the heat sink onto the top of the Zynq and the Epiphany chip this is a very important stage as the board can run pretty hot, I also made sure that I had a fan also providing an airflow.
With the thermal aspects taken care of the next step was to ensure I had to hand the following
- Parallella board
- uHDMI to HDMI cable – Connected to a suitable monitor
- uUSB to USB cable – Connected to the powered hub below
- Powered USB Hub – To connect the keyboard and mouse
- Ethernet Cable – Connected to your network
- USB key board – Connected to the powered hub above
- USB mouse – Connected to the powered hub above
These can then be connected into the Parallella board and power applied you will see on the monitor a boot sequence as Linux starts, eventually you will be presented with a login sreen for whih the user name and password is both linaro.
Once you have logged in you will see a traditional desktop with the ability to browse the internet if connected to your network.
It is worthwhile here exploring around the system, when you are ready to lose down the system please select the power off icon in the bottom right of the screen.
When I tried the above on my Parallella board I was able to display the following webpage with ease.
With our system up and running next time we will look at how we can run a traditional hello world application on the epiphany device