Note: The information here also applies to PSpice and other windows EDA and compiler environments
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 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:
wine VC6RedistSetup_enu.exe
wine ise.exe
Please also read about the quirks.
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.exewhich 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:/Xilinxand 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.exeThe 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.