{"id":88,"date":"2012-03-14T06:24:48","date_gmt":"2012-03-14T06:24:48","guid":{"rendered":"http:\/\/panda.dei.polimi.it\/?page_id=88"},"modified":"2023-09-22T11:11:43","modified_gmt":"2023-09-22T11:11:43","slug":"panda-bambu-install","status":"publish","type":"page","link":"https:\/\/panda.deib.polimi.it\/?page_id=88","title":{"rendered":"PandA &#8211;  bambu install"},"content":{"rendered":"<h2>Installation Instructions<\/h2>\n<p>In order to install the PandA framework, you need to perform the following steps:<\/p>\n<p>1) Give write permission to your user on \/opt:<\/p>\n<pre>   $chown -R &lt;username.usergroup&gt; \/opt\r\n<\/pre>\n<p>2) Install required packages (for Ubuntu\/Debian\/CentOS\/Scientific Linux\/ArchLinux\/Fedora systems, see below)<\/p>\n<p>3) Prepare the configuration script:<\/p>\n<pre>   $make -f Makefile.init\r\n<\/pre>\n<p>4) Create the directory for the building:<\/p>\n<pre>   $mkdir obj\r\n   $cd obj\r\n<\/pre>\n<p>5) Configure PandA:<\/p>\n<pre>   $..\/configure [--enable-&lt;ext-feature&gt;...] --prefix=\/opt\/panda\r\n<\/pre>\n<p>The complete list of options can be found by running:<\/p>\n<pre>  $..\/configure --help <\/pre>\n<p>The most relevant ones are:<\/p>\n<pre>  --enable-flopoco: add floating point support by leveraging FloPoCo Library \r\n                   http:\/\/flopoco.gforge.inria.fr\/\r\n  --enable-debug: add debugging symbols to the binaries \r\n  --enable-opt: compile the framework with GCC optimizations enabled\r\n  --enable-release: remove further tests not useful in a production environment\r\n  --enable-glpk: enable the GNU Linear Programming Kit, required for SDC scheduling\r\n  --with-compiler: set a non-standard path to the executable of a compiler \r\n                   (gcc45 - gcc8 and clang4 - clang13)\r\n  --with-prefix: install folder\r\n<\/pre>\n<p>Note: since FloPoCo generates a VHDL-based description, co-simulation requires a mixed-language simulator. Both Modelsim from Mentor and XSIM\/ISIM from Xilinx have such support.<\/p>\n<p>7) Compile the tool:<\/p>\n<pre>  $make\r\n<\/pre>\n<p>8) Install the tool:<\/p>\n<pre>  $make install\r\n<\/pre>\n<p>At the end, if the installation has been successful, you can run the tool:<\/p>\n<pre>  $\/opt\/panda\/bin\/bambu\r\n<\/pre>\n<p>which prints its help message.<br \/>\nAdditional documentation about the configuration, the execution of the test examples, and the creation of the basic documentation of the framework can be found at: http:\/\/panda.dei.polimi.it\/?page_id=88<\/p>\n<h2>Testcases<\/h2>\n<p>In the directory examples, you can find several different testcases, with the bash scripts for their execution.<\/p>\n<p>These scripts automatically create subdirectories containing all the results of the execution. You can start from them to build your own hardware accelerators with bambu.<\/p>\n<h2>Documentation<\/h2>\n<p>After configuring the framework in the directory for the building, you can create a preliminary documentation of the framework by executing the following<br \/>\ncommand:<\/p>\n<pre>  $cd obj\r\n  $make documentation\r\n<\/pre>\n<p>Then, you can start browsing the documentation from the file<\/p>\n<pre>  obj\/doc\/PANDA_html\/index.html\r\n<\/pre>\n<h2>Ubuntu packages<\/h2>\n<p>The following packages have to be installed under Ubuntu to compile PandA<\/p>\n<p>Ubuntu 18.04 64bit or newer:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- libtool\r\n- g++\r\n- gcc-4.8\r\n- g++-4.8\r\n- gcc-5\r\n- g++-5\r\n- gcc-6\r\n- g++-6\r\n- gcc-7\r\n- g++-7\r\n- gcc-8\r\n- g++-8\r\n- gcc-4.8-plugin-dev\r\n- gcc-5-plugin-dev\r\n- gcc-6-plugin-dev\r\n- gcc-7-plugin-dev\r\n- gcc-8-plugin-dev\r\n- gcc-4.8-multilib\r\n- gcc-5-multilib\r\n- gcc-6-multilib\r\n- gcc-7-multilib\r\n- gcc-7-multilib\r\n- g++-4.8-multilib\r\n- g++-5-multilib\r\n- g++-6-multilib\r\n- g++-7-multilib\r\n- g++-8-multilib\r\n- gfortran-4.8\r\n- gfortran-4.8-multilib \r\n- gfortran-5\r\n- gfortran-5-multilib\r\n- gfortran-6 \r\n- gfortran-6-multilib\r\n- gfortran-7\r\n- gfortran-7-multilib\r\n- gfortran-8\r\n- gfortran-8-multilib\r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- clang-5.0\r\n- libclang-5.0-dev\r\n- clang-6.0\r\n- libclang-6.0-dev\r\n- clang-7\r\n- libclang-7-dev\r\n- libbdd-dev\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>\r\nsudo apt-get install autoconf autoconf-archive automake libtool g++ gcc-4.8 g++-4.8 gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7 gcc-8 g++-8 gcc-4.8-plugin-dev gcc-5-plugin-dev gcc-6-plugin-dev gcc-7-plugin-dev  gcc-8-plugin-dev gcc-4.8-multilib gcc-5-multilib gcc-6-multilib gcc-7-multilib gcc-8-multilib g++-4.8-multilib g++-5-multilib g++-6-multilib g++-7-multilib g++-8-multilib gfortran-4.8 gfortran-4.8-multilib gfortran-5 gfortran-5-multilib gfortran-6 gfortran-6-multilib gfortran-7 gfortran-7-multilib gfortran-8 gfortran-8-multilib clang-4.0 libclang-4.0-dev libclang-6.0-dev clang-6.0 libclang-6.0-dev clang-7 libclang-7-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator make libsuitesparse-dev libglpk-dev\r\n<\/pre>\n<p>Ubuntu 17.04 64bit and Ubuntu 17.04 32bit:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- libtool\r\n- g++\r\n- gcc-4.8\r\n- g++-4.8\r\n- gcc-4.9\r\n- g++-4.9\r\n- gcc-4.8-plugin-dev\r\n- gcc-4.9-plugin-dev\r\n- gcc-5-plugin-dev\r\n- gcc-6-plugin-dev\r\n- gcc-4.8-multilib\r\n- gcc-4.9-multilib\r\n- gcc-5-multilib\r\n- gcc-6-multilib\r\n- g++-4.8-multilib\r\n- g++-4.9-multilib\r\n- g++-5-multilib\r\n- g++-6-multilib\r\n- gfortran-4.8\r\n- gfortran-4.8-multilib \r\n- gfortran-4.9\r\n- gfortran-4.9-multilib\r\n- gfortran-5 \r\n- gfortran-5-multilib\r\n- gfortran-6 \r\n- gfortran-6-multilib\r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- libbdd-dev\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>\r\nsudo apt install autoconf autoconf-archive automake libtool g++ gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-6 g++-6 gcc-4.8-plugin-dev gcc-4.9-plugin-dev gcc-5-plugin-dev gcc-6-plugin-dev gcc-4.8-multilib gcc-4.9-multilib gcc-5-multilib gcc-6-multilib g++-4.8-multilib g++-4.9-multilib g++-5-multilib g++-6-multilib gfortran-4.8 gfortran-4.8-multilib gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib gfortran-6 gfortran-6-multilib clang-4.0 libclang-4.0-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator make libsuitesparse-dev libglpk-dev\r\n<\/pre>\n<p>Ubuntu 16.10 64bit:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- libtool\r\n- g++\r\n- gcc-4.8\r\n- g++-4.8\r\n- gcc-4.9\r\n- g++-4.9\r\n- gcc-4.8-plugin-dev\r\n- gcc-4.9-plugin-dev\r\n- gcc-5-plugin-dev\r\n- gcc-6-plugin-dev\r\n- gcc-4.8-multilib\r\n- gcc-4.9-multilib\r\n- gcc-5-multilib\r\n- gcc-6-multilib\r\n- g++-4.8-multilib\r\n- g++-4.9-multilib\r\n- g++-5-multilib\r\n- g++-6-multilib\r\n- gfortran-4.8\r\n- gfortran-4.8-multilib \r\n- gfortran-4.9\r\n- gfortran-4.9-multilib\r\n- gfortran-5 \r\n- gfortran-5-multilib\r\n- gfortran-6 \r\n- gfortran-6-multilib\r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- libbdd-dev\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>sudo apt install autoconf autoconf-archive automake libtool g++ gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-6 g++-6 gcc-4.8-plugin-dev gcc-4.9-plugin-dev gcc-5-plugin-dev gcc-6-plugin-dev gcc-4.8-multilib gcc-4.9-multilib gcc-5-multilib gcc-6-multilib g++-4.8-multilib g++-4.9-multilib g++-5-multilib g++-6-multilib gfortran-4.8 gfortran-4.8-multilib gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib gfortran-6 gfortran-6-multilib clang-4.0 libclang-4.0-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator make libsuitesparse-dev libglpk-dev\r\n<\/pre>\n<p>Ubuntu 16.04 64bit:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- libtool\r\n- g++\r\n- gcc-4.8\r\n- g++-4.8\r\n- gcc-4.9\r\n- g++-4.9\r\n- g++-5\r\n- gcc-4.8-plugin-dev\r\n- gcc-4.9-plugin-dev\r\n- gcc-5-plugin-dev\r\n- gcc-4.8-multilib\r\n- gcc-4.9-multilib\r\n- gcc-5-multilib\r\n- g++-4.8-multilib\r\n- g++-4.9-multilib\r\n- g++-5-multilib\r\n- gfortran-4.8\r\n- gfortran-4.8-multilib \r\n- gfortran-4.9\r\n- gfortran-4.9-multilib\r\n- gfortran-5 \r\n- gfortran-5-multilib\r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- libbdd-dev\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>\r\nsudo apt-get install autoconf autoconf-archive automake libtool g++ gcc-4.8 g++-4.8 gcc-4.9 g++-4.9 gcc-5 g++-5 gcc-4.8-plugin-dev gcc-4.9-plugin-dev gcc-5-plugin-dev  gcc-4.8-multilib gcc-4.9-multilib gcc-5-multilib g++-4.8-multilib g++-4.9-multilib g++-5-multilib gfortran-4.8 gfortran-4.8-multilib gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib clang-4.0 libclang-4.0-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator make libsuitesparse-dev libglpk-dev\r\n<\/pre>\n<p>Ubuntu 14.04 LTS 64bit and Ubuntu 14.04 LTS 32bit:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- libtool\r\n- g++\r\n- gcc-4.6\r\n- g++-4.6\r\n- gcc-4.7\r\n- g++-4.7\r\n- gcc-4.8-plugin-dev\r\n- gcc-4.7-plugin-dev\r\n- gcc-4.6-plugin-dev\r\n- gcc-4.6-multilib\r\n- gcc-4.7-multilib\r\n- gcc-4.8-multilib\r\n- g++-4.8-multilib\r\n- gfortran-4.6\r\n- gfortran-4.6-multilib\r\n- gfortran-4.7\r\n- gfortran-4.7-multilib\r\n- gfortran-4.8\r\n- gfortran-4.8-multilib\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>\r\nsudo apt-get install autoconf autoconf-archive automake libtool g++ gcc-4.6 g++-4.6 gcc-4.6-plugin-dev gcc-4.6-plugin-dev gcc-4.7 g++-4.7 gcc-4.8-plugin-dev gcc-4.7-plugin-dev gcc-4.6-multilib gcc-4.7-multilib gcc-4.8-multilib g++-4.8-multilib gfortran-4.6 gfortran-4.6-multilib gfortran-4.7 gfortran-4.7-multilib gfortran-4.8 gfortran-4.8-multilib libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator libsuitesparse-dev libglpk-dev make\r\n<\/pre>\n<h2>Debian packages<\/h2>\n<p>The following packages have to be installed under Debian to compile PandA.<\/p>\n<p>Debian unstable (sid):<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- libtool\r\n- make\r\n- g++\r\n- gcc-5\r\n- g++-5\r\n- gcc-6\r\n- g++-6\r\n- gcc-7\r\n- g++-7\r\n- gcc-8\r\n- g++-8\r\n- gcc-5-plugin-dev\r\n- gcc-6-plugin-dev\r\n- gcc-7-plugin-dev\r\n- gcc-8-plugin-dev\r\n- gcc-5-multilib\r\n- gcc-6-multilib\r\n- gcc-7-multilib\r\n- gcc-8-multilib\r\n- gfortran\r\n- gfortran-multilib \r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- clang-5.0\r\n- libclang-5.0-dev\r\n- clang-6.0\r\n- libclang-6.0-dev\r\n- libbdd-dev\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n- make\r\n<\/pre>\n<p>In a single line (as root user):<\/p>\n<pre>\r\napt install autoconf autoconf-archive libtool make g++ gcc-5 g++-5 gcc-6 g++-6 gcc-7 g++-7 gcc-5-plugin-dev gcc-6-plugin-dev gcc-7-plugin-dev gcc-8-plugin-dev gcc-5-multilib gcc-6-multilib gcc-7-multilib gcc-8-multilib gfortran gfortran-multilib clang-4.0 libclang-4.0-dev clang-5.0 libclang-5.0-dev clang-6.0 libclang-6.0-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator pkg-config\r\n<\/pre>\n<p>Debian 9 (Stretch):<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- libtool\r\n- make\r\n- gcc\r\n- g++\r\n- gcc-multilib\r\n- gcc-6-plugin-dev\r\n- gfortran\r\n- gfortran-multilib \r\n- clang-4.0\r\n- libclang-4.0-dev\r\n- libbdd-dev\r\n- libcloog-ppl1\r\n- libboost-all-dev\r\n- libmpc-dev\r\n- libmpfr-dev\r\n- libxml2-dev\r\n- liblzma-dev\r\n- libmpfi-dev\r\n- zlib1g-dev\r\n- libicu-dev\r\n- bison\r\n- doxygen\r\n- flex\r\n- graphviz\r\n- iverilog\r\n- verilator\r\n- pkg-config\r\n- libsuitesparse-dev\r\n- libglpk-dev\r\n<\/pre>\n<p>In a single line (as root user):<\/p>\n<pre>\r\napt install autoconf autoconf-archive libtool make gcc g++ gcc-multilib gcc-6-plugin-dev gfortran gfortran-multilib libcloog-ppl1 clang-4.0 libclang-4.0-dev libbdd-dev libboost-all-dev libmpc-dev libmpfr-dev libxml2-dev liblzma-dev libmpfi-dev zlib1g-dev libicu-dev bison doxygen flex graphviz iverilog verilator pkg-config libsuitesparse-dev libglpk-dev\r\n<\/pre>\n<h2>CentOS 6\/Scientific Linux distributions<\/h2>\n<p>These two distributions are very similar and present the very same problems. They use an old gcc compiler, not compatible with the PandA framework and they do not have a compatible version of boost libraries. So these are few notes for those who are still willing to install the PandA framework on such systems.<br \/>\nFirst, some dependencies need to be satisfied:<\/p>\n<pre>   $ sudo yum install python-devel zlib-devel bzip2-devel libicu-devel glibc-devel.i686 libgcc.i686 wget tar bzip2 gcc glibc-devel gcc-c++ suiteparse-devel libtool-ltdl-devel glpk-devel\r\n<\/pre>\n<p>autoconf-archive package is also required, but it is not present in CentOS repositories:<\/p>\n<pre>   $ wget ftp:\/\/ftp.pbone.net\/mirror\/ftp5.gwdg.de\/pub\/opensuse\/repositories\/home:\/pelliott11:\/autoconf-archive\/CentOS_CentOS-6\/noarch\/autoconf-archive-2012.04.07-7.3.noarch.rpm\r\n   $sudo rpm -Uvh autoconf-archive-2012.04.07-7.3.noarch.rpm\r\n<\/pre>\n<p>Then a recent version of boost has to be installed by hand.<\/p>\n<pre>   $ wget http:\/\/sourceforge.net\/projects\/boost\/files\/boost\/1.48.0\/boost_1_48_0.tar.bz2\/download\r\n   $ cp download boost_1_48_0.tar.bz2\r\n   $ tar xf boost_1_48_0.tar.bz2 -C \/tmp\r\n   $ cd \/tmp\/boost_1_48_0\/\r\n   $ sudo mkdir -p \/opt\/boost\/1.48.0\r\n   $ sudo .\/bootstrap.sh\r\n   $ sudo .\/bjam --prefix=\/opt\/boost\/1.48.0\/ variant=release install\r\n<\/pre>\n<p>Once you have boost installed, you need a recent gcc to compile the PandA sources. This can be done with devtools<\/p>\n<p>On CentOS you can retrieve the devtools repos with the following line:<\/p>\n<pre>   $ sudo wget http:\/\/people.centos.org\/tru\/devtools-1.1\/devtools-1.1.repo -O \/etc\/yum.repos.d\/devtools-1.1.repo\r\n<\/pre>\n<p>On Scientific Linux you can follow the instructions at this link http:\/\/linux.web.cern.ch\/linux\/devtoolset\/ to retrieve the repos info.<\/p>\n<p>Then for gcc-4.7.2 run the following line:<\/p>\n<pre>   $ sudo yum install devtoolset-1.1 devtoolset-1.1-runtime devtoolset-1.1-binutils devtoolset-1.1-binutils-devel devtoolset-1.1-build devtoolset-1.1-dwz devtoolset-1.1-elfutils devtoolset-1.1-elfutils-devel devtoolset-1.1-elfutils-libelf devtoolset-1.1-elfutils-libelf-devel devtoolset-1.1-elfutils-libs devtoolset-1.1-gcc devtoolset-1.1-gcc-c++ devtoolset-1.1-gcc-gfortran devtoolset-1.1-gcc-plugin-devel devtoolset-1.1-gdb devtoolset-1.1-libitm-devel devtoolset-1.1-libquadmath-devel devtoolset-1.1-libstdc++-devel devtoolset-1.1-valgrind\r\n<\/pre>\n<p>After this you can enable gcc-4-7 by typing:<\/p>\n<pre>   $ scl enable devtoolset-1.1 bash\r\n<\/pre>\n<p>Finally, the following packages have to be installed:<\/p>\n<pre>   $ sudo yum install automake bison flex libtool libxml2-devel mpfr-devel\r\n<\/pre>\n<p>This environment allows the compilation of the PandA framework with a minimal configuration without flopoco library and without Icarus verilog simulator.<br \/>\nThe configure we tested for centos is the following one:<\/p>\n<pre>   $ CXX=\/opt\/centos\/devtoolset-1.1\/root\/usr\/bin\/g++ CC=\/opt\/centos\/devtoolset-1.1\/root\/usr\/bin\/gcc ..\/configure --prefix=\/opt\/panda --enable-opt --enable-release --with-boost=\/opt\/boost\/1.48.0\/ --with-gcc47=\/opt\/centos\/devtoolset-1.1\/root\/usr\/bin\/gcc\r\n<\/pre>\n<p>where &#8211;with-boost specifies the manually installed boost library and &#8211;with-gcc47 specifies the gcc executable provided by devtools-1.1.<br \/>\nFloPoCo is currently not supported by bambu under CentOS 6.<\/p>\n<p>Note that, before the configure, you need to run the make -f Makefile.init command as described in the standard PandA *Installation Instructions*.<\/p>\n<h2>CentOS 7<\/h2>\n<p>The following packages have to be installed under Centos 7 to compile PandA:<\/p>\n<pre>- autoconf\r\n- autoconf-archive\r\n- automake\r\n- bison\r\n- boost-devel\r\n- flex\r\n- gcc-c++\r\n- gcc-plugin-devel\r\n- glibc-devel.i686\r\n- glpk-devel\r\n- libgcc.i686\r\n- libicu-devel\r\n- libtool\r\n- libtool-ltdl-devel\r\n- libxml2-devel\r\n- make\r\n- mpfr-devel\r\n- suitesparse-static\r\n- verilator\r\n- xz-devel\r\n- zlib-devel\r\n<\/pre>\n<p>Extra packages for Enterprise Linux (EPEL) is required:<\/p>\n<pre>yum install epel-release<\/pre>\n<p>In a single line (as root):<\/p>\n<pre>yum install autoconf autoconf-archive automake bison boost-devel flex gcc-c++ gcc-plugin-devel glibc-devel.i686 glpk-devel libgcc.i686 libicu-devel libtool libtool-ltdl-devel libxml2-devel make mpfr-devel suitesparse-static xz-devel zlib-devel\r\n<\/pre>\n<p>FloPoCo is currently not supported by bambu under CentOS 7.<\/p>\n<h2>Fedora<\/h2>\n<p>The following packages have to be installed under Fedora 23 (64 bit) to compile PandA:<\/p>\n<pre>sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz iverilog verilator gcc gcc-c++ gcc-plugin-devel.x86_64 gcc-plugin-devel.i686 libxml2-devel glibc glibc-devel glibc.i686 glibc-devel.i686 libgcc.i686 make suitesparse-static libtool-ltdl-devel glpk-devel gawk\r\n<\/pre>\n<p>The following packages have to be installed under Fedora 24 (64 bit) to compile PandA:<\/p>\n<pre>sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz iverilog verilator gcc gcc-c++ gcc-plugin-devel.x86_64 gcc-plugin-devel.i686 libxml2-devel glibc glibc-devel glibc.i686 glibc-devel.i686 libgcc.i686 make suitesparse-static libtool-ltdl-devel glpk-devel gawk which\r\n<\/pre>\n<p>The following packages have to be installed under Fedora 25 (64 bit) to compile PandA:<\/p>\n<pre>sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz iverilog verilator gcc gcc-c++ gcc-plugin-devel.x86_64 gcc-plugin-devel.i686 libxml2-devel glibc glibc-devel glibc.i686 glibc-devel.i686 libgcc.i686 make suitesparse-static libtool-ltdl-devel glpk-devel gawk\r\n<\/pre>\n<h2>ArchLinux<\/h2>\n<p>The following packages have to be installed under ArchLinux to compile PandA:<\/p>\n<pre>\r\n- base-devel \r\n- multilib-devel \r\n- boost \r\n- iverilog \r\n- gcc-multilib \r\n- autoconf-archive \r\n- verilator \r\n- mpfi \r\n- clang \r\n- llvm \r\n- gcc \r\n- gcc-fortran \r\n- git \r\n- tar \r\n- suitesparse \r\n- glpk \r\n- readline\r\n<\/pre>\n<p>In a single line:<\/p>\n<pre>sudo pacman -S base-devel multilib-devel boost iverilog gcc-multilib autoconf-archive verilator mpfi clang llvm gcc gcc-fortran git tar suitesparse glpk readline\r\n<\/pre>\n<p>A working configure example is:<\/p>\n<pre>..\/configure --prefix=$HOME\/panda --enable-verilator --enable-glpk --enable-opt --enable-flopoco --with-opt-level=fast\r\n<\/pre>\n<h2>Mac OSX<\/h2>\n<p>To compile PandA on MacOSX you need to install MacPorts (version 2.5.4 or later).<\/p>\n<p>Here the list of commands required: <\/p>\n<pre>     $sudo port -N -q install git autoconf autoconf-archive automake bison flex boost libtool SuiteSparse glpk iverilog clang-6.0 gcc8 mpfi coreutils\r\n     $sudo cp \/opt\/local\/bin\/greadlink \/opt\/local\/bin\/readlink\r\n     $git clone https:\/\/github.com\/ferrandi\/PandA-bambu.git\r\n     $cd PandA-bambu\r\n     $make -f Makefile.init\r\n     $mkdir build\r\n     $cd build && ..\/configure --prefix=$HOME\/panda --enable-icarus --enable-glpk --enable-opt --enable-flopoco --with-opt-level=fast --with-clang6=\/opt\/local\/bin\/clang-mp-6.0 --with-gcc8=\/opt\/local\/bin\/gcc-mp-8 LDFLAGS=-L\/opt\/local\/lib CPPFLAGS=-I\/opt\/local\/include\/ && make -j3 && make install && make clean\r\n<\/pre>\n<h2>Notes on Ubuntu 13.04 64bit and XILINX ISE 14.6<\/h2>\n<p>The vendor version of stdlibc++ does not have the correct versions of GLIBC for Ubuntu 13.04.<br \/>\nThis is probably due to the fact that the tool is loading a mixture of system libraries and vendor libraries.<br \/>\nThe solution is to replace the Xilinx version of stdlibc++ with the system version:<br \/>\nIn case ISE is installed in \/opt\/Xilinx\/14.6\/ the solution is:<\/p>\n<pre>  $cd \/opt\/Xilinx\/14.6\/ISE_DS\/ISE\/lib\/lin64\/\r\n  $sudo mv libstdc++.so.6 libstdc++.so.6.orig\r\n  $sudo ln -s \/usr\/lib\/x86_64-linux-gnu\/libstdc++.so.6\r\n<\/pre>\n<h2>Notes on Debian\/Ubuntu and Lattice Diamond 3.9<\/h2>\n<p>Lattice Diamond is currently distributed in rpm form for Linux distributions. To convert an rpm archive file into a .deb you can use the following instructions:<\/p>\n<pre>  $sudo apt-get install alien\r\n  $sudo alien --scripts diamond_3_9-base_x64-99-2-x86_64-linux.rpm\r\n<\/pre>\n<p>once the package has been converted you can install with:<\/p>\n<pre>  $sudo dpkg -i diamond-3-9-base-x64_3.9-100_amd64.deb\r\n<\/pre>\n<h2>Notes on NanoXplore tools<\/h2>\n<p>The tested version of NanoXplore tools is the 2.9.4.<br \/>\nThe configuration of the PandA framework may require to add this option to the configure script:<br \/>\n  &#8211;with-nanoxplore-bypass=&lt;operating-system-distribution&gt;<br \/>\nwhere possible value can be:<br \/>\n  x86_64_UBUNTU_14<br \/>\n  x86_64_UBUNTU_16<br \/>\n  x86_64_UBUNTU_18<br \/>\n  x86_64_DEBIAN_9<br \/>\n  x86_64_RHEL_6<\/p>\n<h2>Notes on Modelsim<\/h2>\n<p>PandA\/bambu supports both Modelsim full version and Student\/Free version by adding &#8211;enable-modelsim option to the PandA configure.<br \/>\nWhen the Free\/Student version of Modelsim is used, PandA\/bambu should be configured by further adding the &#8211;disable-mentor-optimizer option. The Student\/Free version does not have the optimization feature.<\/p>\n<h2>Notes on backend installation directories<\/h2>\n<p>PandA\/bambu automatically looks for the RTL synthesis\/simulation backends once they are enabled. By default, it looks into specific directories of the filesystem.<br \/>\nFor Altera it checks this set of directories \/opt\/altera\/* \/opt\/intelFPGA\/*<br \/>\nFor Lattice it checks this set of directories \/usr\/local\/diamond\/*<br \/>\nFor Mentor it checks this set of directories \/opt\/mentor and \/opt\/mentor\/*<br \/>\nFor Xilinx ISE it checks these sets of directories \/opt\/Xilinx\/* and \/opt\/Xilinx\/*\/ISE*<br \/>\nFor Xilinx VIVADO it checks this set of directories \/opt\/Xilinx\/* and \/opt\/Xilinx\/Vivado\/*<br \/>\nFor BRAVE FPGA NanoXplore it checks this set of directories \/opt\/NanoXplore\/NXmap\/*<br \/>\nAnyway, it is possible to specify a different position of the filesystem for the configuration script to look into.<br \/>\nThis is the list of options that may be useful for this purpose:<\/p>\n<pre>  --with-altera-dir=DIR  where the root where ALTERA tools are installed\r\n  --with-lattice-dir=DIR  where the root where LATTICE tools are installed\r\n  --with-mentor-dir=DIR  where the root where MENTOR tools are installed\r\n  --with-xilinx-root-dir=DIR  where the root where XILINX tools are installed\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Installation Instructions In order to install the PandA framework, you need to perform the following steps: 1) Give write permission to your user on \/opt: $chown -R &lt;username.usergroup&gt; \/opt 2) Install required packages (for Ubuntu\/Debian\/CentOS\/Scientific Linux\/ArchLinux\/Fedora systems, see below) 3) Prepare the configuration script: $make -f Makefile.init 4) Create the directory for the building: $mkdir &hellip; <a href=\"https:\/\/panda.deib.polimi.it\/?page_id=88\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">PandA &#8211;  bambu install<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-88","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PandA - bambu install - panda.deib.polimi.it<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/panda.deib.polimi.it\/?page_id=88\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PandA - bambu install - panda.deib.polimi.it\" \/>\n<meta property=\"og:description\" content=\"Installation Instructions In order to install the PandA framework, you need to perform the following steps: 1) Give write permission to your user on \/opt: $chown -R &lt;username.usergroup&gt; \/opt 2) Install required packages (for Ubuntu\/Debian\/CentOS\/Scientific Linux\/ArchLinux\/Fedora systems, see below) 3) Prepare the configuration script: $make -f Makefile.init 4) Create the directory for the building: $mkdir &hellip; Continue reading PandA &#8211; bambu install &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/panda.deib.polimi.it\/?page_id=88\" \/>\n<meta property=\"og:site_name\" content=\"panda.deib.polimi.it\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-22T11:11:43+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@PandA4Design\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"15 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=88\",\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=88\",\"name\":\"PandA - bambu install - panda.deib.polimi.it\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#website\"},\"datePublished\":\"2012-03-14T06:24:48+00:00\",\"dateModified\":\"2023-09-22T11:11:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=88#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=88\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?page_id=88#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/panda.deib.polimi.it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PandA &#8211; bambu install\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/panda.deib.polimi.it\\\/#website\",\"url\":\"https:\\\/\\\/panda.deib.polimi.it\\\/\",\"name\":\"panda.deib.polimi.it\",\"description\":\"A framework for Hardware-Software Co-Design of Embedded Systems\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/panda.deib.polimi.it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PandA - bambu install - panda.deib.polimi.it","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/panda.deib.polimi.it\/?page_id=88","og_locale":"en_US","og_type":"article","og_title":"PandA - bambu install - panda.deib.polimi.it","og_description":"Installation Instructions In order to install the PandA framework, you need to perform the following steps: 1) Give write permission to your user on \/opt: $chown -R &lt;username.usergroup&gt; \/opt 2) Install required packages (for Ubuntu\/Debian\/CentOS\/Scientific Linux\/ArchLinux\/Fedora systems, see below) 3) Prepare the configuration script: $make -f Makefile.init 4) Create the directory for the building: $mkdir &hellip; Continue reading PandA &#8211; bambu install &rarr;","og_url":"https:\/\/panda.deib.polimi.it\/?page_id=88","og_site_name":"panda.deib.polimi.it","article_modified_time":"2023-09-22T11:11:43+00:00","twitter_card":"summary_large_image","twitter_site":"@PandA4Design","twitter_misc":{"Est. reading time":"15 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/panda.deib.polimi.it\/?page_id=88","url":"https:\/\/panda.deib.polimi.it\/?page_id=88","name":"PandA - bambu install - panda.deib.polimi.it","isPartOf":{"@id":"https:\/\/panda.deib.polimi.it\/#website"},"datePublished":"2012-03-14T06:24:48+00:00","dateModified":"2023-09-22T11:11:43+00:00","breadcrumb":{"@id":"https:\/\/panda.deib.polimi.it\/?page_id=88#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/panda.deib.polimi.it\/?page_id=88"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/panda.deib.polimi.it\/?page_id=88#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/panda.deib.polimi.it\/"},{"@type":"ListItem","position":2,"name":"PandA &#8211; bambu install"}]},{"@type":"WebSite","@id":"https:\/\/panda.deib.polimi.it\/#website","url":"https:\/\/panda.deib.polimi.it\/","name":"panda.deib.polimi.it","description":"A framework for Hardware-Software Co-Design of Embedded Systems","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/panda.deib.polimi.it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/88","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=88"}],"version-history":[{"count":42,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/88\/revisions"}],"predecessor-version":[{"id":1088,"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=\/wp\/v2\/pages\/88\/revisions\/1088"}],"wp:attachment":[{"href":"https:\/\/panda.deib.polimi.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=88"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}