Parallella Chronicles Part One: Introduction

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.

1

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.

2

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.

3

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.

4

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

6 Comments

  • Bob Jones says:

    I too have a 16-core Zynq 7010. For me it was not trivial to get the thing up and running.

    My TTL-serial interface doesn’t work (is now defective, I likely fried it), and I could not get the hdmi to work either. But everything else seems to work OK. (I even hooked up a webcam to it, but it was slow over the network.)

    Eventually, I did get it to boot (relatively reliably) and I got X working via vnc. There were many pitfalls, even for a grey-haired, seasoned computer enthusiast like me (computers since 1980, using gnu since 1989, and Windows-free and using only gnu/linux since 1998).

    To illustrate, when it was time to buy the microSD card, there was no indication (after searching the web, and this website) of the maximum size it would allow. So, I took a chance and bought a 64GB microSD card and it has been working flawlessly. (Will it be able to use a bigger one? I don’t know. I should have asked.)

    My point is that it is not trivial as indicated in this article, and reading what others have written, it was not trivial for them either.

    I think a step-by-step procedure is in order, perhaps I will write it. But without fully functioning board, I can’t do some possibly necessary and useful things like trouble-shooting using the TTL serial interface. What also seems to be missing is a collection of howtos describing what to do if something doesn’t work right (as advertised). (As an adventure, I would enjoy starting with a blank sd card and recreating everything – documenting along the way.)

    I like the idea of this device because of its relative openness (except the Epiphany isn’t really “open”). It is not really a supercomputer by today’s standards, but it is a good toy to play with (similar to the rasberry pi). My feeling is that the effort to make it do something useful doesn’t seem worthwhile – unless one takes advantage of the low power, or the Epiphany which is idle most of the time, or the fact that it is open hardware, etc. Perhaps it would make a good teaching tool (kind of like the way Pascal was a teaching language, and C was the real language).

    On a different scale, perhaps one can hook up thousands of them to make a real supercomputer, but then we are dealing with hundreds of thousands of dollars … and there are better ways to build an effective supercomputer with that kind of money.

  • Srini says:

    Why the facebooks and googles are not behind Adapteva or its technology?

    From what I understand Parallella is a great super computer for niche applications. How are these applications different from regular applications running in the data centers of big companies?

  • Alan Campbell says:

    At the risk of asking a silly question… does the Xilinx development software (Vivado? ISE?) run on the Zynq? I know they have Linux versions (32 and 64 bit), I’m just wondering if I still need a PC / laptop – whether I can do ALL the development & testing on the one platform.
    The same query goes for the Epiphany. Does it need a master PC / mac / linux box, or can you do all development on the one board?

    • Mrinal Chakravarthy says:

      I second this request, I personally only have experience in a couple FPGA boards, the latest being using Vivado with the Zedboard (Zynq 7020) but would like to know if there’s a similar programming tool for the Epiphany (which I have not been able to find yet)

Leave a Reply