PandA framework 0.9.7 released

We are glad to announce a new release of the PandA-bambu project, an open-source framework for research in high-level synthesis and HW/SW co-design.

Panda Bambu is an open-source framework aimed at assisting the designer during the high-level synthesis of complex applications, supporting most of the C constructs. It is developed for Linux systems, it is written in C++11, and its pre-compiled binaries can be downloaded under GPL license as an AppImage package (link). The source code is also publicly available as a GitHub repository at this link.

Issues, pull requests, and patches can be submitted by using the GitHub website. Install instructions, tutorials, and other info can be found on the PandA website.

New features introduced:

  • Added support to CLANG/LLVM compiler versions 8, 9,10, 11, and 12.
  • Added support to Xilinx Vitis HLS LLVM 2020.2. (link)
  • Added a Google Colab notebook with many examples to play with Bambu.
  • Improved support to NanoXplore FPGAs (e.g., NG-Medium and NG-Large) in the contest of hermes-h2020-project.
  • Added initial support to ASIC flow based on Yosys+OpenROAD projects. Nangate45 and ASAP7 PDKs supported.
  • Simplified the simulation/synthesis backends integration. In case the used simulator or synthesizer is in the system path, the configuration can be as simple as ../configure –prefix=/opt/panda
  • Added support to multi-thread simulation when Verilator version 4 is used (it is disabled by default).
  • Improved bambu memory consumption.
  • Added support to AppImage bambu binary distribution.
  • Added support to xc7z045-2ffg900-VVD device.
  • Added support to ECP5 Lattice semiconductor devices (e.g., LFE5UM85F8BG756C, LFE5U85F8BG756C).
  • Improved and better integrated value range analysis.
  • Improved support to interface synthesis by allowing references in called functions.
  • Added a first support to axis interface.
  • Simulation and synthesis tools are now detected at runtime. Configure options have been removed, now vendor-specific install directories may be specified using Bambu option –<vendor>-root=<path> (e.g. –xilinx-root=/opt/Xilinx).
  • PandA-bambu reference paper has been published at DAC: F. Ferrandi, V. G. Castellana, S. Curzel, P. Fezzardi, M. Fiorito, M. Lattuada, M. Minutoli, C. Pilato, and A. Tumeo, “Invited: Bambu: an Open-Source Research Framework for the High-Level Synthesis of Complex Applications,” in 2021 58th ACM/IEEE Design Automation Conference (DAC), 2021, pp. 1327-1330.
  • Added support to Svelto methodology. Reference paper: M. Minutoli, V. Castellana, N. Saporetti, S. Devecchi, M. Lattuada, P. Fezzardi, A. Tumeo, and F. Ferrandi, “Svelto: High-Level Synthesis of Multi-Threaded Accelerators for Graph Analytics,” IEEE Transactions on Computers, iss. 01, pp. 1-14, 2021.
  • Added support to Tensor flow optimization. Reference paper: M. Siracusa and F. Ferrandi, “Tensor Optimization for High-Level Synthesis Design Flows,” IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Best Paper Candidate of CODES+ISSS 2020, vol. 39, iss. 11, pp. 4217-4228, 2020.
  • Example of integration between Soda-Opt and Bambu: Reference paper: S. Curzel, N. Bohm Agostini, S. Song, I. Dagli, A. Limaye, C. Tan, M. Minutoli, V. G. Castellana, V. Amatya, J. Manzano, A. Das, F. Ferrandi, A. Tumeo, “Automated Generation of Integrated Digital and Spiking Neuromorphic Machine Learning Accelerators”, 2021 40th International Conference on Computer-Aided Design (ICCAD).
  • Improved support for discrepancy analysis. Reference paper: P. Fezzardi and F. Ferrandi, “Automated Bug Detection for High-Level Synthesis of Multi-Threaded Irregular Applications,” ACM Trans. Parallel Comput., vol. 7, iss. 4, 2020.
  • Paper describing the PandA-bambu framework: F. Ferrandi, V.G. Castellana, S. Curzel, P. Fezzardi, M, Fiorito, M. Lattuada, M. Minutoli, C. Pilato, A. Tumeo, “Invited: Bambu: an Open-Source Research Framework for the High-Level Synthesis of Complex Applications,” 2021 58th ACM/IEEE Design Automation Conference (DAC), pp. 1327-1330.

What’s Changed

Full Changelog: v0.9.6.1…v0.9.7

Link to the binary AppImage: