Home
Pages 50
Clone this wiki locally
LEAP
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.
Releases
The latest LEAP release is version 15.02. Debian packages are available for Ubuntu 14.04 "Trusty" and 12.04 "Precise".
License
LEAP is released under BSD and MIT license terms.
Publications
Sources
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:
- AWB - the Architect's Workbench for composing LEAP modules into systems.
- asimcore contains some required header files.
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:
Communication Services
- SoftConnections modular interconnect, supporting latency-insensitive channel-based communications among multiple heterogeneous platforms
- RRR-based remote request response protocol
Memory services
- LEAP Scratchpads, an abstract interface to memory
- Coherent Scratchpads, extending LEAP scratchpads to support shared memory in FPGA
Service Libraries
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.
Configuration
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.
Bluespec
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.
- Bluespec documentation
- Getting started
- Very brief Bluespec introduction for LEAP users
Tutorials
- We will be presenting a LEAP tutorial focused on HLS at FPL 2015 in London.
- LEAP tutorial at FPL 2014 in Munich.