Xilinx SDK in standard Eclipse software

Summary
The Eclipse IDE is a multi-language software development environment comprising a workspace equipped with lots of whistles and bells for code writing and an extensible plug-in system to develop and debug applications in and with various programming languages. Most programming language plugins offer widgets and wizards to easily hook to language compilers, assemblers, debuggers and etcetera.

Using a single Eclipse setup one can develop and debug applications in multiple languages without the need of switching development environment. This makes Eclipse a popular and widely used software development environment.

Therefore Xilinx has equipped it's Embedded Development Kit (EDK) tools for Microblaze and Zynq with a Software Development Kit (SDK) based on Eclipse.

This means that one already developing software or hardware using the regular Eclipse software distribution needs to switch to the Xilinx specific version of Eclipse, with all risks running two different versions of the same tool, to develop an application for Microblaze or Zynq.

This paper provides a guide and options to include the Xilinx SDK tool setup into a regular version of Eclipse so that the power of Eclipse (develop different applications possibly in different software languages without switching or leaving the development environment) is regained.

Introduction
Start with a warning: What is described in this paper, methods to implement the Xilinx SDK tools into a regular Eclipse installation, works perfectly but it is not a Xilinx tools supported design flow. Thus when having tool troubles try the designs using the Xilinx SDK toolkit first before contacting Xilinx support. When reporting issues about or with the tools use the Xilinx SDK tools flow. In order to use this paper the most recent version of the Xilinx ISE – EDK/SDK tools and the most recent version of Eclipse must be installed. At the moment of writing these are ISE/Vivado 14.4/2012.4 and Eclipse 4.2.x (Juno).

Eclipse
Eclipse includes Equinox p2, a platform for installing, managing, and updating Eclipse-based applications and extensions. New software installs, updates and or upgrades are normally managed trough the “p2” user interface. One of the additional things “p2” offers is a manual install of plugins in the dropins or custom folder.

Before "p2”, installing new plugins was done by many Eclipse users by simply dumping them in the eclipse/plugins/ directory and restarting with the -clean command line argument. There are many drawbacks to this "wild west" approach that will not be discussed here, but suffice it to say that this approach to installation is not at all recommended.

“p2” will help installing, updating and deleting plug-ins. It will also detect plug-ins added to the plugins folder, but alterations to plug-ins installed by p2 in this directory is not supported. If you manually remove a plug-in installed by p2, or attempt to replace with a different version, p2 will not detect it and leave a broken Eclipse installation.

The short rule of thumb is: if something is added manually, remove it manually. If installed via p2, it should be uninstalled via p2. The shorter rule of thumb is: don't mess with the plugins folder. “p2” provides a new dropins folder that is much more powerful and allows separation of content managed by p2 from content managed by other means.

The dropins folder is where plug-ins can be dropped if the p2 user interface is not used. “p2” will also detect extra plug-ins dropped into the dropins directory, and install any discovered bundles into the system. The dropins folder supports a variety of layouts but only one will be discussed here.

If one wants to know the details about equinox-p2 and/or the dropins folder, please consult the Eclipse documentation. A good starting point can be the Eclipse wiki pages (Equinox-p2).

In this case there will only be one set of folders under “dropins”. Xilinx_SDK | | |     |       |      |

Eclipse installation
Assumed is that the Eclipse tools are not installed. The first thing to do is downloading the tools from Eclipse downloads. Eclipse comes in multiple formats, for java develoment, for C/C++ development and etcetera but download the basic version “Eclipse Classic” version. This is the Eclipse version with the absolute minimum of plugins installed from the start. To make the tools work for one or more languages specific plugins must be installed.

After downloading the “Eclipse Classic” version install it. Of course if Eclipse is already installed on your computer it doesn't need to be installed again, just check if the necessary plugins are installed. Go to one of the two described implementation methods.

Xilinx ISE - EDK/SDK
The Xilinx tools installed need to include the XilinX SDK tools. This means that one of following installations are needed: “ISE Design Suite Embedded Edition + Vivado Design Edition”, “ISE Design Suite System Edition + Vivado System Edition” or “Software Development Kit – Standalone Edition”.

Each of these versions contains the SDK toolkit. For the ISE installations it will be installed as sub-folder of the EDK tools and for the standalone version it can be found directly under the SDK root folder.

Implementation
First check if non of these plugins are installed: - C/C++ Develpment Tools (CDT)Remote System Explorere and Target Managment (RSE & TM) - LinuxTools, Gprof Integration. - Cobertura - Simple Logging facade for Java (SLF4J), LogBack - RXTX End-User Runtime This check can be done by:
 * Click the [Help] tab and then in the menu select [About Eclipse SDK]
 * In the pop-up box hit the [Installation Detail] button.
 * In a new pop-up box all details of the installed Eclipse software are listed under different selectable tabs.
 * The first tab [Installed Software] lists what needs to be known.

If none of the listed plugins is installed use “Method One”. If one or more of these plugins are installed use “Method Two”.

Method one
When you are not developing C\C++ applications, this might be the easiest way to get the Xilinx SDK tools running for you. By copying both folders entirely all necessary tooling is installed to. Start Eclipse from the command line using: eclipse -clean and close it immediately after start-up. Start Eclipse normally from the desktop or launcher icon. The Xilinx SDK tools will appear now in the regular Eclipse installation.
 * Open a terminal (Linux) or command window (Microsoft).
 * Change to the dropins folder of the Classic Eclipse software installation.
 * Make a new folder called “Xilinx_SDK”, or other name.
 * Watch out, it's possible that administrator rights are necessary to do this.
 * Copy the “features” and “plugins” folders from the Xilinx SDK Eclipse installation into this newly created folder in the Classic Eclipse folder

Method two
If one of the listed plugins is installed or if one of the listed plugins can be used for development of other applications follow this guide. As written at the start of this document, it is assumed that "Eclipse-Classic" version is installed without any additional plugins than those installed by default.


 * Start Eclipse.
 * Select [Windows] tab and in the pull-down menu [Preferences].
 * A pop-up menu appears.
 * Select in the options list [Install/Update] and then in the sub-selection [Available Software Sites].
 * Click the [Add] button (From this point the action will need to be repeated for each new software/plugin that needs to be installed).

In the pop-up, add name and location from the listed items below:

If VHDL/Verilog/SystemVerilog design needs to be done, a possible extra plugin that can be installed is:

Now all software that needs to be installed and updated after installation is provided to the Eclipse tool. Next thing to do is effectively install the software. Be aware that the selected software is designed for the Eclipse Juno version. Whenever you install plugins/software for an earlier version or newer version of Eclipse be sure to select the proper version of the plugins/software. Start Eclipse from the command line using: eclipse -clean and close it again immediately after startup. Start Eclipse normally from the desktop or launcher icon. The Xilinx SDK tools will appear now in the regular Eclipse installation. Warning: Know that the whole setup must be maintained by the user. Meaning that when new Xilinx software is released the plugins copy process, only this process, must be carried out again.
 * Click [OK]
 * Click the [Help] tab and in the menu select [Install New Software].
 * In the new pop-up window select the little down arrow button at the right side of the “Work with” area (left of the [Add] button).
 * In the menu list that appears select “ - All Available Sites - “.
 * In the big window below “Name | Version” all software that can be installed will appear. Select the tools and sub-versions as listed in list 1 below.
 * All plugins that can be installed from the standard Eclipse repositories are installed.
 * Rest the installation of the Xilinx specific plugin.
 * Open a terminal (Linux) or command window (Windows) and change directory to the “dropins” directory of the Eclipse software.
 * For next actions administaror right might be needed.
 * Create a folder “Xilinx_SDK”, or other meaningful name, in this folder create two sub-folders “features” and “plugins”.
 * Copy the contents of the Xilinx-Eclipse “features” folder into this new “features” folder.
 * Copy the files and folders listed in the Xilinx Plugins chapter into the new created “plugins” folder.
 * Done.

This plugin is automatically installed after copying the Xilinx plugins into the Classic_Eclipse tool.

This is an optional plugin that can be installed from with Eclipse.This plugin provides an IDE tool for VHDl, verilog or system-verilog development. When planning to do Xilinx FPGA development it's worth installing the TCL selection of this toolkit. Eclipse additions that make writing code life easier.

Xilinx plugins
The files and folders that must be copied when installing the Xilinx-SDK tools in a standard Eclipse version are: This is the full list:
 * All files and folders starting with “com.xilinx.sdk.........”
 * All files and folders starting with “gnu.io.rxtx...............”
 * All files and folders starting with “net.sourceforge.cobertura......”
 * All files and folders starting with “org.slf4j.........”