The Latency-insensitive Environment for Application Programming (LEAP) is a set of modules that provide a convenient platform for the development of FPGA-based applications. To get started with LEAP, you need AWB. Documentation and installation instructions are here. The examples on that page are all LEAP based designs. If you are feeling lazy, VirtualBox images can be downloaded here.
The latest LEAP release is version 15.02. Debian packages are available for Ubuntu 14.04 “Trusty” and 12.04 “Precise”.
LEAP is released under BSD and MIT license terms.
LEAP sources are organized in a hierarchy of repositories:
Compilation of LEAP is also dependent on code from a few other libraries:
One of the chief difficulties in developing for FPGAs is interfacing with the physical devices attached to the FPGA. LEAP abstracts the physical devices using a set of simple abstraction layers. Additionally LEAP provides a library of generally useful services built on top of these abstraction layers. LEAP facilities include:
LEAP provides multiple service libraries built on top of its communications services. Some include:
LEAP layers on top of various physical platforms by replying on a standard low-level interface provided by various physical board-specific platforms.
As with all AWB-based projects the build process for a LEAP design involves a configuration step where a sub-set of .awb modules from the module pool are collected into a build tree where Make (or SCons) can be invoked. A description of this process and the facilities provided is here, including a description of the modular Build Pipeline. LEAP also supports a simple FPGA programming and management tool, leap-fpga-ctrl.
LEAP supports a number of commercially available platforms including:
Multiple FPGA configurations of these systems are also supported.
A basic tutorial for running a LEAP program can be found here.
LEAP is written in Bluespec System Verilog. Applications written in Bluespec can take advantage of all LEAP features. Applications written in any synthesizable language can connect to LEAP services through shims.