Lately I’ve been playing with the Xilinx Zynq 7000 FPGA/ARM platform, using the Digilent Zybo development board. The ability to design some hardware and then write a device driver for it (in my case for Linux) without excessive faff is great! (And just so that you don’t think I’m a shill for Xilinx, I’ve spent most of my FPGA time the last two years n Altera-land.)
Of course, software is involved so a bit of screwing around remains. Here are some brief notes.
- I installed Vivado as root, including “cable drivers” (which seems to amount to adding some hotplug stuff). Then I blew away /opt/Xilinx and reinstalled everything (minus drivers) as myself. Everything seems to work.
- I have Xubuntu in a VM and there appears to be a race condition or locking problem if the project is located in a directory on hgfs. Vivado was unable to launch runs, meaning that the generated runme.sh scripts had to be started manually. Yuck. Moving the project to the VM’s disk fixed this.
- I run 64-bit but the ARM GCC is 32-bit! It seems that by default the compatibility libraries are missing, so SDK blew up because most binaries couldn’t be launched. Installing the package libc6:i386 (and the dependencies it dragged along) seem to have fixed this.