Well, well. I finally got my hands on a Spartan-3E starter kit from Xilinx and had a chance to play with it for a while yesterday. I like to get my feet wet on stuff like this by doing things one (very) small step at a time. Here are the steps I've taken so far:
- Fired up the board and saw that it ran okay. (It comes already configured with a little "Hi, I'm alive" sort of program.) This was a no-brainer.
- Found that the Xilinx development tools on the CD that came with the board were a revision or two out of date. So on Richard's recommendation, I downloaded and installed ISE version 9.2i from the Xilinx website. Again, no problems except the 1.7 GB download took a while.
- Went through Xilinx's "quick start" tutorial for using ISE. This tutorial gives step-by-step instructions for setting up a simple counter, synthesizing it, simulating it, and loading it onto the development board. Everything went fine until I went to actually load the device configuration onto the board. That's when I realized that the tutorial was written for an older version of the development board than the one I have, and that all the I/O configuration was wrong. Oops.
- Started back at Step 1 of the "quick start" tutorial, knowing this time that I needed to pay closer attention to how the evaluation board is wired up. I also abandoned the counter example given by Xilinx in favor of a tiny module of my own with a just few simple logic gates. Their inputs are hooked to a couple of switches on the board and their outputs drive a few LEDs. This worked right away. I can flip switches and make LEDs go on and off. 500,000 gates on this hotdog device and I'm using three of them. Imagine that.
So all is well so far, although the questions are bubbling up in my brain faster than I can find the answers. Here are the next few little problems to solve:
- Every time I reconnect the USB programming cable to my PC, Windows acts all surprised, says "new hardware found", and proceeds to install the same drivers and whatnot that it did two minutes earlier. Somehow this doesn't seem right.
- The original Xilinx "Hi, I'm alive" program must reside in non-volatile memory somewhere, since it's rarin' to go every time the board powers up. When I put my program onto the board, however, it doesn't survive a power down. So I must be missing a step somewhere that's needed to store it into flash.
- Sooner or later, I'm going to want to abandon the IDE-like environment that Xilinx provides and move (some would probably say "revert") to a more automatic setup involving "make" or some batch files or something similar. I haven't seen how to do that yet, but I suspect that there must be a collection of commad line programs somewhere that is actually doing all the real work. If that's the case, it shouldn't be a big trick to set up batch processing of some sort.
In addition to the "quick start" tutorial, Xilinx also has an "in depth" tutorial. I think I'll work through it next and see if it answers more questions than it generates.
-- Russ