Dies ist eine alte Version des Dokuments!


flink, Universal Serial Interface to FPGA's

Downloads

flink is

  • an universal serial interface to FPGA's
  • is open-source
  • is highly flexibel
  • is real-time capable

flink can be read as fast link or as the German „flink“ meaning fast. It enables any processors to communicate with an external FPGA over a serial interface. The FPGA may contain several blocks such as counters or pulse-width modulation. Such blocks are extensively used in robotics for control applications.

Overview

flink can be used on a multitude of targets and with various setups.
flink includes the following modules

  • flinkVHDL: Configuration for an external FPGA toghether with a suitable hardware link
  • flinkLinux: Kernel Modules
  • flinkLib: Userspace library for C/C++
  • flinkLibLite: Userspace library for OS-less systems for C/C++
  • flinkUtils: Utilities and test programs for the flink library
  • flinkDeep: Library for Java

Typical use with C/C++ under an operating system

Implement all necessary hardware modules with flink VHDL modules and interfaces and choose a suitable interconnection with the available flink Linux Kernel Modules. Develop your application using the flink Userspace Library. The following picture shows the system setup.

Invalid Link
flink with OS and C/C++ programming

System Architecture

An external FPGA contains hardware modules, which provide certain functions such as a pwm generator or an analog input channel. Such an external FPGA is represented by a flink device. Every flink device contains one or more subdevices. A subdevice represents a function. At last every subdevice has one or more channels.

  • device: An external FPGA, group of subdevices.
  • subdevice: Modul with a specific function, such as digital IO or analog input.
  • channel: Single channel of a subdevice, corresponds to a single pin of a digital IO subdevice.