Skip to content

Commit

Permalink
Merge pull request #11 from ferrandi/panda-0.9.6.1-candidate
Browse files Browse the repository at this point in the history
Panda 0.9.6.1 candidate
  • Loading branch information
Fabrizio Ferrandi authored Jan 17, 2020
2 parents bfeb5e7 + 3612113 commit 5e5e306
Show file tree
Hide file tree
Showing 1,250 changed files with 4,357 additions and 4,274 deletions.
6 changes: 6 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Giacomo Galbiati
Silvia Lovergine
Marco Minutoli
Christian Pilato
Nicola Saporetti
Katia Turati

Other committers:
Expand Down Expand Up @@ -56,6 +57,8 @@ Andrea Corti
Fulvio Cristiani
Davide Crivelli
Andrea Cuoccio
Serena Curzel
Iris Cusini
Matteo Dabeni
Nicola Dalessandro
Livio Dalloro
Expand Down Expand Up @@ -148,13 +151,16 @@ Marco Santambrogio
Giulio Stramondo
Matteo Sassi
Riccardo Sioli
Marco Siracusa
Filippo Sironi
Luca Sisler
Marco Spelta
Marco Speziali
Carlo Straccialini
Alfonso Tarantini
Michele Tartara
Federico Terraneo
Davide Toschi
Marco Triverio
Antonino Tumeo
Luca Vaccaro
Expand Down
4 changes: 2 additions & 2 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
=========== PANDA 0.9.6 ===========
Wed 1 January 2020, PandA release 0.9.6
Sat 11 January 2020, PandA release 0.9.6
Seventh public release of PandA framework.

New features introduced:
Expand Down Expand Up @@ -66,7 +66,7 @@ New features introduced:
- Fixed floating point division
- Fixed make dist command under Github repository

Main contributions to this release come from Fabrizio Ferrandi, Marco Lattuada, Pietro Fezzardi, Serena Curzel, Iris Cusini, Marco Siracusa, Marco Speziali and Davide Toschi.
Main contributions to this release come from Fabrizio Ferrandi, Marco Lattuada, Pietro Fezzardi, Nicola Saporetti, Serena Curzel, Iris Cusini, Marco Siracusa, Marco Speziali and Davide Toschi.

=========== PANDA 0.9.5 ===========
Mon 14 Aug 2017, PandA release 0.9.5
Expand Down
6 changes: 3 additions & 3 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ pipeline {
}
stage('VHDL') {
steps {
sh 'mkdir -p $WORKSPACE/panda_regressions/vhdl_tests && mkdir -p $WORKSPACE/vhdl_tests/ && mkdir -p $WORKSPACE/vhdl_tests/test-reports && cd $WORKSPACE/panda_regressions/vhdl_tests && nice -n 16 $WORKSPACE/panda_regressions/panda_regression_hls.sh -j20 --bambu $WORKSPACE/panda-bin/bin/bambu --spider $WORKSPACE/panda-bin/bin/spider -c="-wH" --name="_VHDL" --restart '
sh 'mkdir -p $WORKSPACE/vhdl_tests/ && mkdir -p $WORKSPACE/vhdl_tests/test-reports mkdir -p $WORKSPACE/panda_regressions/vhdl_tests && cd $WORKSPACE/panda_regressions/vhdl_tests && nice -n 16 $WORKSPACE/panda_regressions/panda_regression_hls.sh -j20 --bambu $WORKSPACE/panda-bin/bin/bambu --spider $WORKSPACE/panda-bin/bin/spider -c="-wH" --name="_VHDL" --restart '
sh 'cd $WORKSPACE/panda_regressions/vhdl_tests && nice -n 16 $WORKSPACE/panda_regressions/panda_regression_hls.sh -j20 --bambu $WORKSPACE/panda-bin/bin/bambu --spider $WORKSPACE/panda-bin/bin/spider --junitdir="$WORKSPACE/vhdl_tests/test-reports" -c="-wH" --name="_VHDL" --returnfail --restart '
}
}
Expand All @@ -71,7 +71,7 @@ pipeline {
}
}
steps {
sh 'mkdir -p $WORKSPACE/examples/test-reports && mkdir -p $WORKSPACE/examples/pp-reports && cd $WORKSPACE/examples && nice -n 17 ./example.sh -j20 --bambu $WORKSPACE/panda-bin/bin/bambu --spider $WORKSPACE/panda-bin/bin/spider --junitdir="$WORKSPACE/examples/test-reports" --perfpublisherdir="$WORKSPACE/examples/pp-reports" --restart '
sh 'mkdir -p $WORKSPACE/examples/pp-reports && cd $WORKSPACE/examples && nice -n 17 ./example.sh -j60 --bambu $WORKSPACE/panda-bin/bin/bambu --spider $WORKSPACE/panda-bin/bin/spider --perfpublisherdir="$WORKSPACE/examples/pp-reports" --restart '
}
}
stage('Publish Junits results') {
Expand All @@ -81,7 +81,7 @@ pipeline {
}
}
steps {
junit allowEmptyResults: true, testResults: 'vhdl_tests/test-reports/*.xml,sdc_tests/test-reports/*.xml,list/test-reports/*.xml,examples/test-reports/*.xml'
junit allowEmptyResults: true, testResults: '**/test-reports/*.xml'
}
}
stage('Publish Perf results') {
Expand Down
70 changes: 70 additions & 0 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,3 +1,73 @@
=========== PANDA 0.9.6 ===========
Wed 1 January 2020, PandA release 0.9.6
Seventh public release of PandA framework.

New features introduced:
- Added support to BRAVE FPGAs (https://www.esa.int/Our_Activities/Space_Engineering_Technology/Shaping_the_Future/High_Density_European_Rad-Hard_SRAM-Based_FPGA-_First_Validated_Prototypes_BRAVE). Both NG-Medium and NG-Large are supported.
- added support to TASTE model-based design flow (https://taste.tools/). A new option has been added to activate the customized HLS flow: --experimental-setup=BAMBU-TASTE.
- Added support for Hardware Discrepancy Analysis. Reference paper: Pietro Fezzardi, Marco Lattuada, Fabrizio Ferrandi, Using Efficient Path Profiling to Optimize Memory Consumption of On-Chip Debugging for High-Level Synthesis. ACM Trans. Embedded Comput. Syst. 16(5): 149:1-149:19 (2017).
- Added support for OpenMP for. Reference papers: M. Minutoli, V. G. Castellana, A. Tumeo, M. Lattuada, and F. Ferrandi, “Efficient Synthesis of Graph Methods: A Dynamically Scheduled Architecture,” in Proceedings of the 35th International Conference on Computer-Aided Design, New York, NY, USA, 2016, p. 128:1–128:8. V. G. Castellana, M. Minutoli, A. Morari, A. Tumeo, M. Lattuada, and F. Ferrandi, “High level synthesis of RDF queries for graph analytics,” in Proceedings of the IEEE/ACM International Conference on Computer-Aided Design, 2015, pp. 323-330.
- Customized Dynamic HLS flow updated. Reference paper: M. Lattuada and F. Ferrandi, "A Design Flow Engine for the Support of Customized Dynamic High Level Synthesis Flows", ACM Trans. Reconfigurable Technol. Syst. 12, 4, Article 19 (October 2019), 26 pages.
- Added initial support to C++/fortran high-level synthesis. Now, Ubuntu distributions require the installation of g++-multilib package.
- Added support to CLANG/LLVM compiler version 4, 5, 6 and 7. On multiple files, LTO is exploited.
- Added support to high-level synthesis of spec in LLVM format (i.e., file with .ll extension).
- Added to CLANG/LLVM based analysis an interprocedural value range analysis based on the following paper: Fernando Magno Quintao Pereira, Raphael Ernani Rodrigues, and Victor Hugo Sperle Campos. "A fast and low-overhead technique to secure programs against integer overflows", In Proceedings of the 2013 IEEE/ACM International Symposium on Code Generation and Optimization (CGO) (CGO '13). Washington, DC, USA, 1-11.
The implementation started from code available at this link:https://code.google.com/archive/p/range-analysis/.
The original code went through a deep revision and it has been changed to be compatible with a recent version of LLVM. Some extensions have been also added:
- Added anti range support.
- Redesigned many Range operations to take into account wrapping and to improve the reductions performed.
- Integrated the LLVM lazy value range analysis.
- Added support to range value propagation of load from constant arrays.
- Added support to range value propagation of load and store from generic arrays.
- Added to CLANG/LLVM based analysis an Andersen based pointer analysis . The specific version used is described in:
"The Ant and the Grasshopper: Fast and Accurate Pointer Analysis for
Millions of Lines of Code", by Ben Hardekopf & Calvin Lin, in PLDI 2007.
The BDD library used is the Buddy BDD package By Jørn Lind-Nielsen. Users working on a Debian/Ubuntu distribution can install the libbdd-dev package.
- Added support to GCC compiler version 8.
- Added support to mingw-w64. A Windows-7 64bit binary distribution is now available. This minimal msys2 binary distribution includes bambu, GCC8 with plugin and multilib enabled and a customized version of clang7.
- Added support to Mac OSX exploiting Mac Ports project (https://www.macports.org/)
- Improved the vagrant based virtual machine generation scripts. Such scripts now create an Ubuntu 16.04 32bit VirtualBox image and an Ubuntu 18.04 64bit VirtualBox image.
- Added Vagrant scripts for Ubuntu precise, trusty,xenial and bionic, Fedora 29, CentOs7, MacOSX MacPorts.
- Improved timing constraints and timing reports.
- Added --registered-inputs=top option.
- Improved the support for discrepancy when Verilator is used as simulator and a better check of basic floating-point operations.
- Added an example using C++14 constexpr declaration and a simple GCD example written in C++.
- The building system is now based on a single configure.ac.
- Regressions are now exploiting a Jenkins based infrastructure.
- Some performance, style, and c++ improvements have been done following the suggestions coming from cppcheck, clang static analyzer, and Codacy.
- A single-precision floating-point faithfully rounded powf function has been added. It follows the method published in:
Florent De Dinechin, Pedro Echeverria, Marisa Lopez-Vallejo, Bogdan Pasca. Floating-Point Exponentiation Units for Reconfigurable Computing. ACM Transactions on Reconfigurable Technology and Systems (TRETS), ACM, 2013, 6 (1), pp.4:1–4:15.
The powf function currently does not supports subnormals.
- Ported some parts of the code to C++11 standard by applying clang-tidy modernize-deprecated-headers, modernize-pass-by-value, modernize-use-auto,
modernize-use-bool-literals, modernize-use-equals-default, modernize-use-equals-delete, modernize-loop-convert and modernize-use-override.
- Added a SRT4 implementation. Added --hls-fpdiv to select which floating-point division will be used. Current options: SRT4 for Sweeney, Robertson, Tocher floating-point division with radix 4 and G for Goldschmidt floating point division.
- Added support to ac_types and ac_math library from Mentor Graphics. Concerning the original library, the bambu/PandA library does support both LLVM/Clang and GCC compiler and it requires c++14 standard for the compilation. Initial support to ap_* objects used by VIVADO HLS has been added as well.
- Added support to top design interfaces: none (ap_none), acknowledge (ap_ack), valid (ap_vld), ovalid (ap_ovld), handshake (ap_hs), fifo (ap_fifo) and array (ap_memory). These interfaces are activated by pragmas added to the source code and when the option --generate-interface=INFER is passed to bambu. Examples of pragma use can be found in panda_regressions/hls/bambu_specific_test4.
- Added some examples taken from https://github.com/Xilinx/HLx_Examples
- Added option --clock-name, --reset-name, --start-name and --done-name to specify the top component controlling signal names.
- Renamed top component and removed the suffix _minimal_interface. Now, the top component has the same name of the top function.
- Improved and fixed the synthesis of empty functions.
- Added option --VHDL-library=libraryname to specify the library in which the synthesized function has to be compiled.
- Extended the VHDL support to other bambu library components.
- If it is supported, the compiler used to compile the PandA framework uses the c++17 standard (-std=c++17), otherwise, it uses c++11 standard.
- Integrated Mockturtle library from EPFL (https://github.com/lsils/mockturtle) to simplify LUT-based expressions.
- Integrated Abseil C++ libraries (https://abseil.io/)
- Added examples of parallel_queries from ICCAD15 and ICCAD16 papers.
- Added FPT tutorial material.
- Added PNNL19 tutorial material.
- Added PACT19 tutorial material.
- Improved makefile parallelization.
- Improved bambu determinism: two runs with the same specs produce the same HDL output.
- Fixed COND_EXPR_RESTRUCTURING step
- Fixed omp tests
- Fixed libm tests
- Fixed make check and on cpp examples
- Fixed c++ struct initialization
- Fixed floating point division
- Fixed make dist command under Github repository

Main contributions to this release come from Fabrizio Ferrandi, Marco Lattuada, Pietro Fezzardi, Serena Curzel, Iris Cusini, Marco Siracusa, Marco Speziali and Davide Toschi.

=========== PANDA 0.9.5 ===========
Mon 14 Aug 2017, PandA release 0.9.5
Sixth public release of PandA framework.
Expand Down
2 changes: 2 additions & 0 deletions QTCreator-PandA-GitHub.files
Original file line number Diff line number Diff line change
Expand Up @@ -1814,6 +1814,8 @@ src/HLS/memory/memory.cpp
src/HLS/memory/memory.hpp
src/HLS/memory/memory_allocation.cpp
src/HLS/memory/memory_allocation.hpp
src/HLS/memory/memory_cs.cpp
src/HLS/memory/memory_cs.hpp
src/HLS/memory/memory_symbol.cpp
src/HLS/memory/memory_symbol.hpp
src/HLS/module_allocation/add_library.cpp
Expand Down
2 changes: 1 addition & 1 deletion documentation/authors.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/documentation.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/graphs.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/install.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
4 changes: 2 additions & 2 deletions documentation/license.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (C) 2004-2019 Politecnico di Milano
* Copyright (C) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down Expand Up @@ -40,7 +40,7 @@
Politecnico di Milano - DEIB
System Architectures Group
**********************************************
Copyright (C) 2004-2019 Politecnico di Milano
Copyright (C) 2004-2020 Politecnico di Milano
\endverbatim

\verbinclude COPYING
Expand Down
2 changes: 1 addition & 1 deletion documentation/makefiles.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/panda.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/panda_sdk.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (C) 2004-2019 Politecnico di Milano
* Copyright (C) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/programming.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (c) 2004-2019 Politecnico di Milano
* Copyright (c) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
2 changes: 1 addition & 1 deletion documentation/root.doc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Politecnico di Milano - DEIB
* System Architectures Group
* ***********************************************
* Copyright (C) 2004-2019 Politecnico di Milano
* Copyright (C) 2004-2020 Politecnico di Milano
*
* This file is part of the PandA framework.
*
Expand Down
16 changes: 8 additions & 8 deletions documentation/tutorial_fpl_2017/lab4/materials/4.1/checksum.v
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
`endif

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>, Christian Pilato <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -57,7 +57,7 @@ module mangled_constant_value(out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -80,7 +80,7 @@ module mangled_UUconvert_expr_FU(in1, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -103,7 +103,7 @@ module mangled_UIdata_converter_FU(in1, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -126,7 +126,7 @@ module IUdata_converter_FU(in1, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -141,7 +141,7 @@ module plus_expr_FU(in1, in2, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -157,7 +157,7 @@ module ternary_plus_expr_FU(in1, in2, in3, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand All @@ -172,7 +172,7 @@ module ui_plus_expr_FU(in1, in2, out1);
endmodule

// This component is part of the BAMBU/PANDA IP LIBRARY
// Copyright (C) 2004-2017 Politecnico di Milano
// Copyright (C) 2004-2020 Politecnico di Milano
// Author(s): Fabrizio Ferrandi <[email protected]>
// License: PANDA_LGPLv3
`timescale 1ns / 1ps
Expand Down
2 changes: 1 addition & 1 deletion documentation/tutorial_fpl_2017/lab4/solutions/4.1/IP.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<circuit>
<component_o id="checksum">
<description>This component is automatically generated by bambu</description>
<copyright>Copyright (C) 2017-2019 Politecnico di Milano</copyright>
<copyright>Copyright (C) 2017-2020 Politecnico di Milano</copyright>
<authors>none</authors>
<license>LGPLv3</license>
<structural_type_descriptor id_type="checksum"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<circuit>
<component_o id="TRUE_DUAL_PORT_BYTE_ENABLING_RAM">
<description>This component is part of the BAMBU/PANDA IP LIBRARY</description>
<copyright>Copyright (C) 2016-2019 Politecnico di Milano</copyright>
<copyright>Copyright (C) 2016-2020 Politecnico di Milano</copyright>
<authors>Fabrizio Ferrandi &lt;[email protected]&gt;</authors>
<license>PANDA_LGPLv3</license>
<specialized>NanoXplore</specialized>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<circuit>
<component_o id="TRUE_DUAL_PORT_BYTE_ENABLING_RAM">
<description>This component is part of the BAMBU/PANDA IP LIBRARY</description>
<copyright>Copyright (C) 2016-2019 Politecnico di Milano</copyright>
<copyright>Copyright (C) 2016-2020 Politecnico di Milano</copyright>
<authors>Fabrizio Ferrandi &lt;[email protected]&gt;</authors>
<license>PANDA_LGPLv3</license>
<specialized>NanoXplore</specialized>
Expand Down
Loading

0 comments on commit 5e5e306

Please sign in to comment.