Skip to content

Set up to develop your own cores

campbellsan edited this page Dec 10, 2013 · 5 revisions

Xilinx ISE is an integrated development environment for creating new cores for the Guzunty. Here's how to install ISE WebPack, the free version of the product which is fully functional and not time limited. Let's answer a frequently answered question first; Sorry, but no, it is not possible to run these tools on your Raspberry Pi. This page describes how to perform the installation on an Intel 86 architecture Linux based host. A Windows install is going to be broadly the same. Mac users can install VirtualBox and Ubuntu which gives a nice integration with the Mavericks Spaces feature so that you can swipe into a full screen Linux environment hosting your ISE installation. Read on...

1. Download ISE

To begin, go to the ISE website and download the latest version of Xilinx ISE WebPack for your platform (select Linux Full Installer). ISE is rather picky about which versions of Linux it will run with. It has a long list of dependencies, many of which are at specific revision levels. It is therefore best to choose a Linux distribution that is in Xilinx’s supported list, basically Red Hat Enterprise 5 and 6 or SuSE Enterprise Desktop 11. It should be noted that all of these are subscription based distributions. My experience has been that the free versions of these distributions (i.e. Fedora and OpenSuSE) do not support ISE off the shelf.

If you prefer a free distribution, try Ubuntu LTS Desktop 13. This is the one I use because I also need to run KiCAD which is no longer easy to get running under SLED 11. As far as I know, ISE is fully functional in the Ubuntu 13 environment. However, please note that Xilinx will not support you if you choose Ubuntu.

Note that you must register with Xilinx to get the download, they will send you occasional marketing emails, but this is not intrusively frequent. The install file is rather large, in the order of 6GB, so expect a lengthy download period and ensure you work within your ISP download limits.

2. Install

Now unpack the downloaded archive:

tar -xvf Xilinx_ISE_DS_Lin_14.3_O.76xd.1.0.tar (your downloaded filename may vary)

This will create a directory for the Xilinx installer, change into this new folder:

cd Xilinx_ISE_DS_Lin_14.3_O.76xd.1.0

The default installation location is “/opt/Xilinx/14.3” (or whatever the latest version might be). It is common for the installation process to fail at this point with a “Permission Denied” error because most users do not have write access to /opt in most Linux distributions. This can be fixed before installation:

sudo chmod a+w /opt

Sudo will ask for your root password. If you do not know it, you must speak to your system administrator about granting write access to /opt or perhaps installing ISE on your behalf.

Next, execute the xsetup install script:

./xsetup

After showing a splash screen, the installer window opens. Click “Next” to review the first page of the license agreement, click “I accept...” followed by “Next” to see the second license agreement page, click “I accept...” followed by “Next”.

In the list of products now presented, select ISE WebPack, click “Next”. On the next page a list of alternative applications and features is presented. Ensure the following are checked:

  • “Acquire or Manage a License Key”
  • “Enable WebTalk to send software...”
  • “Ensure Linux System Generator Symlinks”

You do not need any of the cable support packages because we are going to use your host Raspberry Pi to load your built cores into the Guzunty board. Click “Next”, check “Import tool preferences from previous version” (if this is your first install it doesn’t hurt to have this enabled). Click “Next” and “Install”.

After putting all the binary files into the target location, the installer will proceed to obtain a license for you. Select “Get Free ISE WebPack License,” followed by “Next” and click “Connect Now”. Normally, a browser should open redirecting you to login to register your ISE WebPack. However, this frequently does not work for me. If it does not, you may follow the following link:

http://www.xilinx.com/getlicense/

Login using the username and password you set when registering to download at the beginning. Follow the online instructions for generating a license. The end result is a text file with a .lic extension containing some long alphanumeric strings. This file is placed in your home folder under:

.Xilinx/Xilinx.lic

You can have the installer take care of installing it there for you by clicking on the button, “Copy License File”.

3. Running for the first time

Before you can run ISE, you need to run a script that sets up some paths to needed libraries. This needs to be done every time you start ISE in a new terminal session. I do not recommend adding this to your profile or bashrc scripts because it interferes with the normal running of other programs you might need to run. The script is found at:

/opt/Xilinx/14.3/ISE_DS/settings64.sh

The exact path may vary depending on the version of ISE you downloaded and installed, but you get the idea. Note that if you installed a 32 bit Linux distribution, you will want to substitute settings32.sh in the command line above.

Once this script is run, ISE may be started with the command:

ise

This will open the ISE integrated development window. Before you congratulate yourself on a successful install, I recommend that you create and build a test project using one of the Guzunty example cores. I am preparing a tutorial page to show you how to do this and will link it here when it is ready, in the meantime see if you can figure out how to do it for yourself (it’s what I had to do :-) after all). Take the process all the way through the simulation step and confirm that ISim gives you its logic analyser like output.

In my experience, ISim is the part of ISE that is the most sensitive to the host environment configuration. I strongly recommend that you do not undertake any serious core development without a functioning ISim tool. This tool is the debugger for your cores. Without it, you cannot have any confidence that your design will work when loaded into your Guzunty. In other words, if it doesn’t work in the simulator, forget trying it in the hardware. Put another way, if ISim won’t run, consider setting other Linux host installations until it does.

Finally, please note that this is a not for profit site giving you extremely inexpensive hardware (and software tool how-to’s) to get you started with programmable logic devices. I’m so sorry, but I can’t answer detailed ISE or Linux installation questions. My goal is to spend my time developing example cores and HDL tutorial materials to work with the Guzunty board. Similarly, I’m simply not the right person to ask about VHDL or Verilog programming problems. I happen to think programmable logic is really neat, but that doesn’t make me a HDL guru.

Having said all that, there are lots of excellent resources out there with communities that will provide you with guidance. Have a look at this page to get you started.

I most certainly will help if you have a design that behaves correctly in ISim but does not appear to function correctly when loaded into Guzunty. To get help in this case, please raise a GitHub issue attaching your ISim output and a description of how the observed behaviour differs from what you expected.

And don’t forget, Google|Bing|Yahoo! is your friend ;-)