dspio board

This page is designated for the development of an I/O board for the DSP courses and SoC projects.


This board is an IO-extension for the FPGA module Cycore that contains an Altera Cyclone FPGA, SRAM, Flash and NAND Flash. A short feature list:

  • Dual-port USB interface: for configuration and communication
  • Power supply via USB or external source for stand-alone applicatons
  • Two SD-Card connectors for large flash memory and bluetooth communication
  • Serial interface for legacy devices
  • Two push buttons and LEDs for very simple start project
  • High-speed comperators and passive components for Sigma-Delta converter with the FPGA
  • AC97 audio codec

The dspio board can be connected via USB to a PCB. USB is used to power the board and to download the configuration of the FPGA - no download cable and no power supply are needed. The board is BSD style open-source, all design files can be downloaded from this website.

We have several of them available.





Support Projects

This board is used for the DSP-lab and the AK JVM in HW in Fall 2005. However, some preparation work has to be done. You can help us with this board. Following jobs, ordered by relevance, have to be done:

  1. FPGA configuration via USB (PC program in C or Java) - done
  2. AC97 HW-interface (VHDL or use the opencore controller) - done
  3. AC97 SW-interface (in Java, register programming - see Linux driver) - done
  4. Sigmal/Delta converter (VHDL, DSP knowledge) - framework available
  5. USB data communication with the PC (VHDL, Java) - done
  6. DSP sample applications (Matlab, VHDL and/or Java)
  7. SD-Card connection (VHDL, Java)

If you are interested in one of the above projects drop me a note: Martin Schoeberl.

PCB layout





Eagle design files



These files can be viewed with the free version of Eagle

BOM in Excel


FTDI Driver Installation

A short introduction how to install the FTDI drivers. Detailed information can be found at the FTDI website.

  1. Download ftdi.zip from this site
  2. Disconnect your PC from the network
  3. Plug in the board
  4. All driver sources are selected manually
  5. For the first driver/port select the folder ftdi/d2xx
  6. For the second and third driver select the folder ftdi/vcom

Port A uses the direct driver for the FPGA configuration. Port B uses a virtual COM port for communication between the FPGA board and the PC (e.g. Java program download).


A few links for the main components of the board:

FT2232C Dual USB UART/FIFO for FPGA configuration via JTAG interface and PC-FPGA communication (up to 1MByte/s).

Jam STAPL documentation and free programs from Altera for JTAG configuration

JRunner C sources for JTAG configuration of Altera devices


MMC Application Note

AD1981BL AC97 audio codec from Analog Devices

AC 97 Controller IP Core from opencores.org

AC 97 Specification from Intel

Design Files (JOP)


The actual version of JOP can be downloaded from the git repository by:

git clone git://www.soc.tuwien.ac.at/jop.git

Change following places in the Makefile:

  • Uncomment COM_PORT=COM6 and COM_FLAG=-e -usb and set the correct com port number.
  • Change the project to QPROJ=dspio
  • Comment the all: and japp: target for the serial download and uncomment them for the USB download

A simple make will build everything from scratch and downloads JOP and a Hello World program to the board.

First tests show a transfer rate of 800KB/s write and 870KB/s read between the PC and JOP over the FTDI USB connection with the VCP driver - the theoretical limit is 1MB/s.

A very simple Sigma-Delta ADC/DAC is connected as SimpCon slave. Test program with a dummy effect: test/wishbone/Guitar.java

The AC97 controller is connected to JOP via the WISHBONE interface. First test program (app/dsp/AC97.java) initializes the AD1981 and playes the input samples at line out.