Skip to content
Michael Adler edited this page Jul 31, 2015 · 13 revisions


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 papers and talks.


LEAP sources are organized in a hierarchy of repositories:

  • LEAP-Core contains the central libraries that manage compilation, I/O and memory.
  • LEAP-Workloads holds sample applications written in the LEAP framework.

Compilation of LEAP is also dependent on code from a few other libraries:

LEAP facilities

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:

  • SoftConnections modular interconnect, supporting latency-insensitive channel-based communications among multiple heterogeneous platforms
  • RRR-based remote request response protocol

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.

Platform Support

LEAP supports a number of commercially available platforms including:

Xilinx-based platforms

Altera-based platforms

Multiple FPGA configurations of these systems are also supported.

Running a LEAP Program

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.