FTDI Async FIFO Interface to Wishbone Bridge

FTDI Async FIFO Interface to Wishbone Bridge


Category: Communication Controller

Created: July 12, 2015

Updated: January 27, 2020

Language: Verilog

Other project properties

Development Status: Stable

WishBone compliant: No

WishBone version: n/a

License: GPL


This component provides a bridge from a FTDI asynchronous FIFO interface (such as found on the FT245R or FT2232) to a Wishbone master interface & GPIO interface.

Devices such as the FT2232 must be switched into asynchronous FIFO mode using the FT_PROG EEPROM programming tool from FTDI.

The component supports writes down to byte level granularity, and reads down to a 32-bit word level.


Verified on FPGA on the miniSpartan6+ board which uses the FTDI FT2232HL. Many megabytes of self checking transfers to and from SDRAM using this component.

The supplied smoke test works with the free version Modelsim.

Test project for the miniSpartan6+:



CLK_DIV - Clock divider (minimum is 2)
LITTLE_ENDIAN - System is little endian (1) or big endian (0)
ADDR_W - Width of Wishbone address bus
GP_OUTPUTS - Number of GPIO outputs (1 - 8)
GP_INPUTS - Number of GPIO inputs (1 - 8)
GP_IN_EVENT_MASK - Bit mask of inputs which are events that are registered and cleared on read

Size / Performance

With the default configuration...

- the design contains 122 flops.
- synthesizes to > 160MHz on Xilinx Spartan 6 LX9 (speed -3)
- write performance: 5.4MB/s (block size of 2KB)
- read performance: 2MB/s (block size of 2KB)