FPGA Resources

This is a list of FPGA related opportunities that may or may not be applicable to your project. There are many companies that have different mechanisms for programming FPGAs, for instance. I will also list specifications, websites, etc that may help.


Plunify is a company that allows designers to synthesize a design against a large selection of FPGA chips from multiple vendors. This process exposes optimization opportunities. I have been contacted by the company, which has some CMU personnel.

Impulse C

Impulse aims to convert C code to Verilog that can be run on an FPGA. I have never tried using such a tool, though I gather they can be successful -- especially in particular application areas such as signal processing. We can probably get a license for you to try it in your project, should you desire.


LinuxLink is a toolchain and Linux distribution for use on embedded systems. They have a toolchain that will run on the Virtex-5 boards and was used fairly successfully in the 2009 Quake II project.

FPGA Arcade

This website tries to recreate classic gaming hardware on FPGAs.


This website is dedicated to Computer Architecture on FPGAs.

Audio Codec '97

This specification describes how audio is converted from analog signals into digital format and back.

All the FPGA boards used in this course have audio input and output jacks that you can use AC97 to control.

Audio Codec '97 Interface

The Team Dragonforce group built a completely-Verilog interface to the AC'97 codec chip for the Virtex-5 boards. They did a great job of documenting what they built. This module takes files from the Flash memory, so it might not match the needs of your group. Nevertheless, it is a great place to start.

Robert Waaser's Support Pack Mods for Virtex-5LX board and 11.5/12.2 Xilinx tools

Download and unzip somewhere. When you start a new project with the Base System Builder, you will need to specify the project name on the first dialog box. On that same dialog box, click the Set Project Peripheral Repository Search Path option and browse to the unzipped directory. Navigate to EDK-XUPV5-LX110T-Pack and select the "lib" directory. When you get to the Board Selection Screen, you can now choose "XUPV5-LX110T Evaluation Platform" from the dropdown list of platforms. This works in both 11.5 and 12.2.

This pack is the same support pack downloaded from Xilinx, but with some modifications. The original pack works for the most part but will be unable to complete pin placement whenever you try to place-and-route a design that involves the DDR SDRAM ip core. According to Xilinx this is because the version of "mpmc", a memory controller for the DDR SDRAM, has compatibility problems with the board that were introduced in EDK version 10.5 or thereabouts. The course of action recommended by several users is to edit the UCF file for the mpmc controller and remove all RLOC constraints (apparently a non-essential constraint related to timing or something). After we made this change we were able to successfully create a variety of custom hardware configurations, create custom software for them, etc from scratch, and have not had a problem since.