‎"Behind every stack of books there is a flood of knowledge."

FPGALink: Easy USB to FPGA Communication


Because of its ubiquity, USB provides a good mechanism for JTAG-programming Field-Programmable Gate Arrays, but it also provides a good conduit for the host to exchange data with the FPGA, once programmed. FPGA development kits incorporating some kind of USB-capable microcontroller are common, and cheap. Unfortunately there is a confusing variety of different devkits, with different FPGAs and different USB microcontrollers, and a general lack of good software and firmware for interacting with them, and the software that is provided is often released under a restrictive license, or only available for one platform.

The FPGALink library is my attempt to provide an end-to end solution capable of JTAG-programming the FPGA on a variety of USB-based hardware platforms, and subsequently communicating with it using a straightforward API on the host side and a standard FIFO interface on the FPGA side. It works on many host and FPGA platforms. All source code is released under the GNU Lesser General Public License v3.0, meaning you are free to distribute unmodified copies of it (or binaries built from unmodified source) with your products. It has no commercial or hardware platform usage restrictions (cf. Digilent Adept may only be used on Digilent hardware), so you can prototype your design with an inexpensive devkit, and then use the same software tools on your custom-built PCBs, so you can easily distribute updated FPGA designs to your customers just as you would with firmware updates, with no special programming cables required, making your FPGA truly “field-programmable”.

libfpgalink-20120621.tar.gz (Linux, MacOSX & Win32)
Browse API docs
User Manual PDF (VHDL Paper Edition)
User Manual PDF (VHDL eReader Edition)
User Manual PDF (Verilog Paper Edition)
User Manual PDF (Verilog eReader Edition)
Support Mailing List
Browse source repository
RSS feed of recent commits
Open issues

The source code should compile with minor changes on most modern platforms. Binaries are provided for the following platforms:

Platform Architectures
Linux x86_64, i686, arm, ppc
MacOSX x86_64, i386
Windows i686

The FPGALink library is just a C DLL, so using it from C and C++ is straightforward. Bindings are provided for Python and Excel/VBA. Simple examples are provided for all three languages. There is also a utility which provides straightforward command-line access to many of the library functions.

On the FPGA side, all HDL code is provided in separate VHDL & Verilog implementations. The VHDL code includes GHDL/GTKWave-based simulation testbenches. Xilinx and Altera target FPGAs are supported. There is firmware support for the Cypress FX2LP and the USB-capable Atmel AVR8s. There are a couple of ready-made example FPGA designs with platform support for these boards:

However, there are many FPGA devkits available with basically FPGALink-compatible hardware, so if you have a board that is not listed here that you’d like to use with FPGALink, send a message to the FPGALink User Group.



Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Virtual Fashion Technology

Virtual Fashion Education


"chúng tôi chỉ là tôi tớ của anh em, vì Đức Kitô" (2Cr 4,5b)


News About Tech, Money and Innovation


Modern art using the GPU

Theme Showcase

Find the perfect theme for your blog.


Learn to Learn

Gocomay's Blog

Con tằm đến thác vẫn còn vương tơ

Toán cho Vật lý

Khoa Vật lý, Đại học Sư phạm Tp.HCM - ĐT :(08)-38352020 - 109

Maths 4 Physics & more...

Blog Toán Cao Cấp (M4Ps)

Bucket List Publications

Indulge- Travel, Adventure, & New Experiences


‎"Behind every stack of books there is a flood of knowledge."

The Blog

The latest news on and the WordPress community.

%d bloggers like this: