High Speed PCIe Communications Package Between Host Computer and FPGA
The Problem
You've created an amazing FPGA circuit, and downloaded it to your demo board.
Now you want to monitor and control the circuit from your PC,
send data from the PC to the FPGA and get the results back.
If you are using an Altera/Terasic DE-4 or DE-5 demo board,
this package is for you.
The Solution
The TME (TransMogrifier pciE) ports package allows you to quickly and easily transfer data between a program
on a Linux workstation and your circuit in a FPGA development board.
This implementation of the ports package uses the PCIe
bus to talk to the board.
The boards supported are the Altera DE-4 (Stratix IV) and DE-5 (Stratix V) sold by Terasic.
We are seeing data transfer rates of 40 Mbytes/second when reading
data from the FPGA,
and 100 Mbytes/second when writing data to the FPGA from the host.
[If you don't have PCIe available, you might be interested in our
TMU FPGA communications package, which is very similar, but uses USB to talk to Altera
DE-3 or DE-4 boards at lower data rates.]
Easy to Use
On the FPGA side, you declare the names of your circuit's input and
output ports and connect them
to a Verilog communications sub-module that is automatically generated by TME.
On the workstation side, you can open the ports by name, and read or write to them:
int p1, p2;
char data[720], result[500];
p1 = tmopen("my_circuit_input_bus", "w");
tmwrite(p1, data, 720);
p2 = tmopen("my_output", "r");
tmread(p2, result, 500);
Download it Here
To install the package, you need to unpack the tar file,
and read the installation
instructions in the README.txt file that it contains:
The tar file contains the source for the package, along with two example
Verilog circuits.
One of the examples is a simple counter
that increments its output every time it is read. The other example is
a summation circuit that adds up all of the data that is fed to it.
The package supports circuits written in Verilog or VHDL.
Documentation
The TME Ports Package
Creating and Running Circuits with the TME Ports Package
An Example Application for the TME Package
The tmemon Program