Introduction
The PandA project contains the the set of tools and libraries reported below.
Tools
The tools that can be configured and so enabled are:
- Bambu HLS provides high-level synthesis functionalities
- Eucalyptus allows the characterization of resources in the technology library
Libraries sub-projects
Creation and dumping of intermediate representation:
- Subproject Parsers: provides all the available parsers, adopted to acquire the data that the tools use as input to their algorithms.
- Subproject Graph: contains the definition of the graph-based descriptions.
- Subproject POLIXML: contains the definition of a simple and easy-to-use XML library.
- Subproject Behavior: contains functions to manage and to represent graphs with different granularity. In particular we can represent CFG/DFG/CDG/DDG/SDG for operations and CFG/DFG/Dom/PostDom for basic blocks.
- Subproject src_tree_page provides "Tree:" functions to manage and to represent the tree computed by the GCC compilation.
- Subproject Frontend: contains the algorithms adopted to build the entire intermediate representation (both tree and graph-based).
- Subproject Parsers: it provides backend functions to C, SystemC, VHDL, and Verilog descriptions.
Resource library and circuit representation management:
- Subproject Technology: provides functions to manage and to represent technology information.
- Subproject Circuit: describes a generic data structure representing a circuit.
- Subproject Wrappers: it provides classes to wrap commercial synthesis tools.
Bambu tool:
Development aids:
- Subproject src_algorithms_page contains a set of useful algorithms that can be used to aid problem solution into development.
- Subproject ILP Solver provides utilities used to solve ILP formulations.
- Subproject src_utility_page contains some useful macros and functions.