The RIFFA distribution available on this site contains the RIFFA source HDL, the RIFFA driver and software bindings, an installation script, and examples for common FPGA development boards. This website and the distribution should help you get started if you're using one of the FPGA boards we've tested. If you're using a different board, you'll need to adapt the setup instructions accordingly.
There are only three steps to get a basic RIFFA design up and running:
Step 1: Program your FPGA with one of the examples
The RIFFA distribution contains programming files for a variety of development boards. We currently provide files for the Xilinx VC707, ML605, and S6-LX150T, and the Altera DE5-Net, DE4 and DE2i.
The Xilinx programming files are located in source/fpga/Xilinx/<dev-board>/ with the extension *.bit. Program your Xilinx development board using Impact (ISE) or Open a New Hardware Session in Vivado
The Altera programming files are located in source/fpga/Altera/<dev-board>/<project-name>/bit/. The project-name contains information about the dev board, PCIe Generation (1, 2, or 3), PCI width (x1, x4, or x8), and RIFFA interface width (64, or 128). Program your board using the Quartus Programmer.
Step 2: Install RIFFA on your system
You'll only need to run make setup once, as this simply attempts to install the Linux kernel headers for your version of the Linux kernel. They won't need updating unless you upgrade your system kernel. Running make (or make debug) will build the driver and C/C++ library. Using the make debug directive will output debug messages in the kernel log. This can be very helpful when you're developing your application. After running make install, you'll want to reboot to let the system find your RIFFA design on the PCIe bus and let the OS load your driver.
Download the RIFFA distribution. Install the kernel driver and C/C++ library by running the setup.exe or setup_dbg.exe installer in the source/driver/windows/install directory (the debug installer outputs additional debug messages to the Windows debug framework). After running the installer, reboot to let the system find your RIFFA 2.0 design on the PCIe bus and let the OS load your driver.
Step 3: Create and build a RIFFA design for your FPGA
As described on the architecture page, RIFFA relies on a PCIe Endpoint core to drive the transceivers. If you have a development board that is not covered by one of our guides, let us know. We would be happy to test with a PCIe Endpoint core for that board and add it to the list. However, we have decided not to support older FPGAs with legacy interfaces, such as the Xilinx Virtex 5. If you need Virtex 5 support consider using RIFFA 1.0.