FPGA are an option I see the best for our future in terms of computing. Right now programming a FPGA is still a pain, but it’ll be easier with time, and enables developers access to a power they do not usually get to touch. I decided to give FPGA programming a try and acquired the Xilinx VC707 test board. That board has a lot of ports, making it perfect for a wide range of things.
The first step is, of course, to get the included software to run on Linux. Being a Linux Gentoo user (and this kind of software being usually targeted at outdated RedHat releases) I was ready for some trouble.
Strangely enough, the installer actually worked (mostly) and installed almost all the files in /opt/Xilinx. The drivers didn’t install (some not at all, some a bit) but the soft was mostly running fine. At first I was troubled because this seemed to require a thing called WinDriver. Someone made an opensource implementation of this, but in the end the VC707 does not use this at all, so I didn’t need to get it working.
What the VC707 is using is Digilent hardware, and the driver on Linux segfaults instantly when you try to use it. Searching on Google finally led me to someone with the same issue who had a really simple – and working – fix.
To run Xilinx ISE, you need first to setup the environment on Linux, and the fix for Digilent driver is part of the env, so I’ve put everything in the same file.
export LD_PRELOAD=/usr/local/lib64/digilent/adept/libdpcomm.so.2 source /opt/Xilinx/13.4/ISE_DS/settings64.sh >/dev/null
This makes ISE working just fine on Linux Gentoo. I had a lot of trouble getting Digilent’s lib working fine, and I’m considering writing a Gentoo ebuild for this, as it’ll make it much easier…
Anyway I was able to compile my first VHDL program (something as easy as GPIO_LED_0 <= GPIO_SW_N and GPIO_SW_S) and run it on the board, so now I’m ready for more complex stuff!