Coding, FPGA

avs3a Google Code Page

A few quick updates to the avs3a software that I’ve writting for the Avnet Spartan-3A Eval Kit (as mentioned in a previous post). First, many thanks to George Gallant from the Avnet Spartan-3A Eval Kit mailing list for rewriting the code to fix the horrible configuration time, as well as for the many error checking and usability improvements. Secondly, I’ve taken the latest version of George’s code revision and uploaded it to a new Google Code site, where it will now be hosted. Go there for the latest download of the project tarball or to check out your own copy from Subversion.

Coding, FPGA

Configuring the Avnet Spartan-3A Eval Board on Linux (Alpha)

As I mentioned on the Avnet Spartan-3A Eval Kit Google Group, I’ve created a C program that will allow you to configure the FPGA via your Linux box. I don’t have a lot of time to elaborate on how to use this program, but the basic steps are listed below. These instructions assume that you are at least moderately familiar with using the shell in your distribution and building a program from source code. This code is in an alpha state and I have only tested this on my Ubuntu Hardy Heron box, so your mileage may vary. I’m sure there’s much I can do to improve it (clean up, refactor, etc.), but it seems to do what it needs to for now.

Right now, the program is controlled by three command line switches. I’ve created these options with a mind for expansion in the future (at least the serial flash part). Here’s the help printout from the program:

Usage: avs3a [options]
  -b, --bitstream=BITSTREAM	Bitstream used to configure FPGA
  -p, --port=SERIAL-PORT	Serial port connected to eval board
  -s, --slaveser		Configure FPGA in Slave Serial mode
  1. Download the source code here.
  2. Unpack the archive in the location where you intend to use the program.
    tar xzvf avs3a.tar.gz
  3. Change to the avs3a directory.
    cd avs3a
  4. Build the program from source.
    make all
  5. Make sure that your eval board is plugged into a USB port.
  6. If you don’t know the serial port of the eval board, then find it. I’m not sure what you will see, but on my Ubuntu Hardy box, my board enumerates as /dev/ttyACM0 or /dev/ttyACM1
    dmesg | grep tty
  7. Make sure you have a bitstream file to use.
  8. Issue the command to program the board
    ./avs3a -s -p /dev/ttyACM0 -b sample_bitstream.bit

If you try this and find it useful, or find a problem with the program then please, please, let me know in the comments below (or e-mail me). Thank you for testing this!