Build Pipeline

Michael Adler edited this page Mar 3, 2015 · 1 revision

Build Pipeline

LEAP programs are composed of latency-insensitive modules (LIMs), computational entities which communicate over conceptual FIFO channels. Because LIMs can be comprised of either hardware or software, the compilation of LEAP designs can become quite complicated.

The goal of the build pipeline is to generate a SCons data structure to contain information AWB knows, so that this information is accessible by the compilation tools.

Build Pipeline Data Structures
Hybrid LEAP Compilation Overview
Multiple FPGA Compilation Overview

The ModuleList data structure is a representation of the entire module instantiation hierarchy in a form that build pipeline “stages” can manipulate. The format is a tree where each node is a list of subnodes. The top-level SConstruct is basically just responsible for building the data structure representation and invoking the build pipeline.

ModuleList.py lives in the toplevel project. This constructs a tree from the @-parameters substituted by leap-configure. This file isn’t usually edited by the user. This uses pygraph to store the modules as a graph of dependencies between them. Synthesis boundaries are stored in a parallel structure representation.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.