Making Xilinx webpack run on Linux

Note: The information here also applies to PSpice and other windows EDA and compiler environments

Getting it installed

Contrary to many reports, it is actually possible to make Xilinx Webpack run on Linux. Xilinx Webpack is a free (as in beer) tool to fit FPGAs or CPLDs, and can be obtained from the Xilinx website. It is very desirable to have this running on Linux of course, and this actually allowed me to get rid of my windows installation. The key is to use Wine.

A lot of newer win32 programs require Windows 2000 to run, and so does Xilinx Webpack. This is not because Windows 2000 offers a lot of APIs that the software needs, rather the MS Visual C++ runtime libraries are bundled with Windows 2000, and by requiring Windows 2000 these does not have to be installed by the individual packages (it comes in several versions, so it can be relatively hard to handle). Microsoft offers an update package for developers to include with their software to get it to run on Windows 98. The key to having the webpack installed is to get this package installed. It can be obtained from Microsoft here. Please download it and save it for use later

The easy way - using a precompiled wine

The advantage of using a precompiled wine, is that it removes a lot of steps from the setup process. Therefore the webpack installation is a lot simpler this way:

  1. Download and install the appropriate .rpm or .deb from Wine HQ
  2. Install the VC6 support package described above by copying the package to ~/.wine/drive_c, change to that directory and run
    wine VC6RedistSetup_enu.exe
  3. Copy the webpack installer to ~/.wine/drive_c and run it with wine the same way as the VC6 support package installer
Now you are ready to run the xilinx package from within ~/.wine/drive_c/Xilinx/bin/nt by typing
wine ise.exe

Please also read about the quirks.

Description for source installations

I have been using Wine as early as 20040213, but newer versions are recommended. Wine can be downloaded from here. Follow the installation instructions on the site, it is relatively straight-forward to install.

Now it is time to install the VC6 support package described above. Since this is an update for Windows 98, you need to have wine in win98 mode. This is done by finding the line containing the windows version and change it to:

"Windows" = "win98"

Then you run

wine -- VC6RedistSetup_enu.exe
which will update wine with the necessary runtimes. After this you must put wine in Windows 2000 mode by changing the same line to:
"Windows" = "win2k"

After this the Xilinx webpack setup can run (windows compatibility version only seems to matter during setup). During the install it will ask if the environment should be updated. Answer no to this question and instead insert the follwing in your .bashrc:

XILINX=c:/Xilinx
and add the following directories to the path in your .wine/config:
c:\\Xilinx;c:\\Xilinx\\java\\nt\\jre\\bin;
Make sure that DllOverrides sections look like this (there might be more dlls on the list, but the ones below must be set as shown:
"oleaut32"     = "builtin, native"
"ole32"        = "builtin, native"
"comdlg32"     = "builtin, native"
"shell32"      = "builtin, native"
"shfolder"     = "builtin, native"
"shlwapi"      = "builtin, native"
"shdocvw"      = "builtin, native"
"advapi32"     = "builtin, native"
"msvcrt"       = "native, builtin"
"mciavi.drv"   = "native, builtin"
"mcianim.drv"  = "native, builtin"
"msi"          = "native, builtin"
"mfc42"        = "native, builtin"
"msvcp60"      = "native, builtin"
That should do it - you can run the ISE by typing the following command:
wine -- $XILINX/bin/nt/ise.exe
The various command line tools in the webpack can run in a similar fashion.

Quirks and loose ends

This adventure ends close enough to happiness for my taste, but there are some loose ends.
You are visitor no. since 12/08/2004