High Speed 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 it from your PC, send data to it and get the results back. If you are using an Altera/Terasic DE-3 or DE-4 demo board, this package is for you.

The Solution

The TMU (Transmogrifier USB) ports package allows you to 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 a USB 2.0 cable to talk to the board. The boards supported are the Altera DE-3 (Stratix 3) and DE-4 (Stratix 4) sold by Terasic.

We are seeing data transfer rates of 3 to 8 Mbytes/second when reading data from the board, and 4 to 11 Mbytes/second when writing data to the board.

[If you have a DE-4 and need higher transfer rates, have a look at our new TME FPGA communications package, which is very similar, but uses the PCIe bus to talk to the board.]

Easy to Use

On the FPGA side, you declare the names of your ports and connect your circuit to a communications sub-module that is automatically generated by TMU. On the workstation side, you can open the ports by name, and read or write to them:
	char result[BUFSIZE];

	p = tmopen("my_port", "r");
	tmread(p, result, BUFSIZE);

New Version 1.3 Released

The new version removes the restriction that ports be exactly 32 bits wide, and allows ports of any width.

Download it Here

Version 1.3, May 2, 2013 Download tmu1.3.tar.gz
Version 1.0, January 27, 2011 Download tmu1.0.tar.gz

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 examples that work on both types of boards. 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 TMU Ports Package

Creating and Running Circuits with the TMU Ports Package

An Example Application for the TMU Package

The tmumon Program