5i20 PCI FPGA Board
Posted: December 23, 2008
So I bought this 5i20 PCI board from http://www.mesanet.com/ to practice doing FPGA work from Linux. The card has a 200k gate Xilinx Spartan II FPGA (XC2S200-PQ208) on board along with a PLX9030 PCI bridge chip. On the board is 8 LED's and a bunch of connectors I never plan on using. My ultimate goal (which I'll post in on this page later) is to write a Linux driver for the card and to do to some processing on the card to test the speed of the FPGA vs another project I did in assembly.
Related Projects @mikekohn.net
How To Use This Card With Linux
So my first test program is called pciblink. Basically it just turns the LED's on the board into a binary counter to prove I could create a bitfile (the actual program/firmware programmed onto the FPGA) and load the card using Linux. So for anyone else interested in developing with this card, here's how I set up my Linux system:
First I went to Xilinx's website and downloaded their free webpack for Linux. For anyone with a 64 bit system like me, when you install it, make sure you run bin/lin/setup instead of the setup program in the root dir. This will install the 32bit ISE instead of the 64 bit ISE which won't include the IDE.
Next create a new project, add the .ucf file, type in the VHDL, synthesize, implement, generate. This should create a pciblink.bit file which I copied to the computer that has the card installed.
Now all that is needed the bfload program that tranfers the bitfile to the card. Download the emc2 program from http://linuxcnc.org/ and untar it. Unforunately their configure script didn't work for me so I had to create my own makefile here: Makefile. Copy this file to src/hal/utils, cd into src/hal/utils, and type: make. This should build the bfload program. Now you should be able to type: bfload pciblink.bit
So I've alread created my first Linux kernel module (a netdisk kernel module) to practice with. My next step is to make a kernel module that talks to the PCI bus/5i20 card and make a bitfile that can read and write from the bus through the PLX9030.
Here's a close up of the card with the LED's running.
Another pic of the LED's going from a different angle.
Copyright 1997-2018 - Michael Kohn