Saturday, 4 June 2016
Starting out with a Waxwing Spartan 6 FPGA dev board
Up until now, I've been cutting my FPGA teeth on a miniSpartan6+ dev board from Scarab, but have wanted to get into communicating with my projects over a network and/or PCIe. After looking around for options, I came across the Numato Waxwing Spartan 6 FPGA development board.
Amazingly, this board has a ton a feature including a LX45; loads of on-board LPDDR & flash memory; an LCD, HDMI, VGA, SD card slot, lots of audio capabilities, tones of GPIO, and an onboard 10/100 Ethernet interface - winner.
After a rash purchase and quick delivery from India, it's been lying neglected for a few months. So I thought it was time to see what it could do (or rather what I could do with it). Ok, first up, a simple led binary counter to check the tool chain.
Dusting off the led_test project for the miniSpartan6+ (based on the field hamster project), updating the target and constraints file with info from the datasheet, I soon have a .bit file.
Here starts the problems. With the miniSpartan6+, I've been using "xc3sprog" to communicate with the dev board via USB. Unfortunately I've not been able to get xc3sprog to connect to the FTDI 2232 chip, despite various driver updates and general mucking about (in which I managed to overwrite the FTDI config).
The manufacturer does provides a flashing utility, but only for Windows :facepalm: well, you know what they say, "fail fast, fail early".
In the end I abandoned attempting to programme via the USB chip and turned attention to the JTAG interface. As I don't have a dedicated JTAG programmer, the ever useful BusPirate partner with openOCD seems an ideal solution. Again, things aren't as simple as they should be. OpenOCD doesn't have configuration for the Waxwing or even an LX45, and with many hours of trying various parameters and options, I could not see the target device. Fail.!
I'm not one for giving up so easy, and I'm old enough now to consider throwing money at a problem. So a flash of the credit card later, I'm the proud owner of a Xilinx Platform Cable JTAG programmer. And, what do you know, the right tool (ISE -> iMPACT -> Platform Cable -> JTAG) for the job makes a real difference. Within 15 mins I now have a design successfully programmed. It kinda takes the fun out of it :).
Anway, with the toolchain sorted out, time for a project to stretch the boards abilities.