PlanAhead and Ubuntu

Xilinx still produce Spartan 3E, 3A and 6 FPGAs. They will be probably sold for the next then years. They are cheap and good. Despite this if you want to use them in a new design you may end up with a lot of trouble. The problem is on the software side!

Traditionally to program Xilnx’s FPGA you use ISE, but for “low level” configuration you use external softwares (that are launched from ISE) like PlanAhead and FPGA Editor. I just discovered that Xilinx expanded the use of PlanAhead to be a complete development environment. So you can choose to start a project both on ISE or PlanAhead. If you want to access feature that are present in PlanAhead, in my opinion, it is easier to start a project with it.

Well, where is the problem? The problem is that ISE and PlanAhead are a collection of softwares that use different technologies (java, motif,..) and Xilinx doesn’t support this tools anymore! Installing them in current OS (and worse in future versions of OS) is a long and frustrating procedure.

Xilinx developed new softwares that are maintained and works very well (Vivado and Vivado HLS). The only problem is that they are developed for series 7 FPGAs, and Xilinx won’t add support for older families! So, you’re kind of forced to switch to new FPGA family. Which is good, which has a lower power requirement, which has lower cost per CLB,… All beautiful, but the entry level FPGA in the cheapest series 7 version (Artix) is much bigger (and more expensive) than entry level spartan family!

In order to play with serie 7 FPGA and in particular Zynq (FPGA + two arm cores) there are cheap entry level development boards:

Zynq open up a lot of interesting combination between the arm cores and the Programmable Logic. On the arm cores as well you can set up many different combinations. You can have two cores has bare metal low level programming, Linux on both cores, Xenomai (Linux + realtime), one core with Linux and the other with FreeRTOS,… and of course you can still have MicroBlaze, PicoBlaze or the softcore of your choice on the PL side!

I managed to have a working environment for both ISE and PlanAhead. I haven’t tracked all the procedure, and my machine already has a lot of software and libraries installed. I’m not even sure if all the steps are really necessary, but here are some hint for a working environment in Ubuntu 15.10.

Most tricks come from this two links:

Here is a small extract of the procedure that I was missing. (from an older Ubuntu version if not present...)


If you still have problems with fonts like:

Wind/U Error (193): X-Resource: DefaultGUIFontSpec (-adobe-courier-medium-r-normal--12-*-*-*-p-*-*-*) does not fully specify a font set for this locale


xrdb -remove

Some sites suggest do replace libjvm with the one present in the system. I had no problem with the one present in Xilinx installation. Instead if you try with openjdk 7 and 8 it will lead to program instability, so don’t do that if you don’t have any problem with it..

/home/share/Xilinx/14.7/ISE_DS/PlanAhead/tps/lnx64/jre/lib/amd64/server$ mv{,-orig}
ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/
sudo apt-get install portmap
export XKEYSYMDB=/usr/share/X11/XKeysymDB

The file XKeysymDB is missing in Ubuntu 15.10, you can download it from this link.

Chipscope CDC

ppezzino@atlantide:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Jun  4  2015 /bin/sh -> dash
ppezzino@atlantide:~$ sudo dpkg-reconfigure dash
[sudo] password for ppezzino: 
Removing 'diversion of /bin/sh to /bin/sh.distrib by dash'
Adding 'diversion of /bin/sh to /bin/sh.distrib by bash'
Removing 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by dash'
Adding 'diversion of /usr/share/man/man1/sh.1.gz to /usr/share/man/man1/sh.distrib.1.gz by bash'
ppezzino@atlantide:~$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 Apr 23 14:54 /bin/sh -> bash

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.