-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathINSTALL
634 lines (539 loc) · 21 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
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 <username.usergroup> /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 obj
5) Move into the building directory:
$cd obj
6) Configure PandA:
$../configure [--enable-<ext-feature>...] --prefix=/opt/panda
Currently accepted parameters are:
--enable-flopoco: add floating point support by leveraging FloPoCo Library
http://flopoco.gforge.inria.fr/
--enable-debug : add debugging symbols to the binaries
--enable-opt : Compile the framework with GCC optimizations enabled
--enable-release: Remove further tests not useful in a production environment
Note that the scripts for synthesis and simulation are generated even if the
corresponding tools are not configured as described above. In this case, the
synthesis/simulation will exploit the system PATH variable.
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.
The suggested configuration is
../configure --prefix=/opt/panda --enable-flopoco --enable-opt --enable-release
7) Compile the tool:
$make
8) Install the tool:
$make install
At the end, if the installation has been successful, you can run the tool:
$/opt/panda/bin/bambu
which prints its help message.
Additional documentation about the configuration, the execution of the test
examples, and the creation of the basic documentation of the framework can be
found at: https://docs.bambuhls.eu/
Testcases
*********
In the directory examples, you can find several different testcases, with the
bash scripts for their execution.
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.
Documentation
*************
After configuring the framework in the directory for the building, you can
create a preliminary documentation of the framework by executing the following
command:
$cd obj
$make documentation
Then, you can start browsing the documentation from the file
obj/doc/PANDA_html/index.html
Ubuntu packages
***************
The following packages have to be installed under Ubuntu to compile PandA
Ubuntu 20.04 64bit:
- autoconf
- autoconf-archive
- automake
- bison
- clang-10
- clang-11
- clang-12
- clang-6.0
- clang-7
- clang-8
- clang-9
- doxygen
- flex
- g++
- g++-7
- g++-7-multilib
- g++-8
- g++-8-multilib
- gcc-7
- gcc-7-multilib
- gcc-7-plugin-dev
- gcc-8
- gcc-8-plugin-dev
- gfortran-7
- gfortran-7-multilib
- gfortran-8
- gfortran-8-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-10-dev
- libclang-11-dev
- libclang-12-dev
- libclang-6.0-dev
- libclang-7-dev
- libclang-8-dev
- libclang-9-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line:
sudo apt-get install autoconf autoconf-archive automake bison clang-10 clang-11 clang-12 clang-6.0 clang-7 clang-8 clang-9 doxygen flex g++ g++-7 g++-7-multilib g++-8 g++-8-multilib gcc-7 gcc-7-multilib gcc-7-plugin-dev gcc-8 gcc-8-plugin-dev gfortran-7 gfortran-7-multilib gfortran-8 gfortran-8-multilib graphviz libbdd-dev libboost-all-dev libclang-10-dev libclang-11-dev libclang-12-dev libclang-6.0-dev libclang-7-dev libclang-8-dev libclang-9-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
Ubuntu 18.04 64bit:
- autoconf
- autoconf-archive
- automake
- bison
- clang-4.0
- clang-5.0
- clang-6.0
- clang-7
- clang-8
- clang-9
- doxygen
- flex
- g++
- g++-5
- g++-5-multilib
- g++-6
- g++-6-multilib
- g++-7
- g++-7-multilib
- g++-8
- g++-8-multilib
- gcc-5
- gcc-5-multilib
- gcc-5-plugin-dev
- gcc-6
- gcc-6-multilib
- gcc-6-plugin-dev
- gcc-7
- gcc-7-multilib
- gcc-7-plugin-dev
- gcc-8
- gcc-8-plugin-dev
- 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
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-4.0-dev
- libclang-5.0-dev
- libclang-6.0-dev
- libclang-7-dev
- libclang-8-dev
- libclang-9-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line:
sudo apt-get install autoconf autoconf-archive automake bison clang-4.0 clang-5.0 clang-6.0 clang-7 clang-8 clang-9 doxygen flex g++ g++-5 g++-5-multilib g++-6 g++-6-multilib g++-7 g++-7-multilib g++-8 g++-8-multilib gcc-5 gcc-5-multilib gcc-5-plugin-dev gcc-6 gcc-6-multilib gcc-6-plugin-dev gcc-7 gcc-7-multilib gcc-7-plugin-dev gcc-8 gcc-8-plugin-dev 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 graphviz libbdd-dev libboost-all-dev libclang-4.0-dev libclang-5.0-dev libclang-6.0-dev libclang-7-dev libclang-8-dev libclang-9-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
Ubuntu 17.04 64bit and Ubuntu 17.04 32bit:
- autoconf
- autoconf-archive
- automake
- bison
- clang-4.0
- doxygen
- flex
- g++
- g++-4.9
- g++-4.9-multilib
- g++-5-multilib
- g++-6-multilib
- gcc-4.9
- gcc-4.9-multilib
- gcc-4.9-plugin-dev
- gcc-5-multilib
- gcc-5-plugin-dev
- gcc-6-multilib
- gcc-6-plugin-dev
- gfortran-4.9
- gfortran-4.9-multilib
- gfortran-5
- gfortran-5-multilib
- gfortran-6
- gfortran-6-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-4.0-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line:
sudo apt install autoconf autoconf-archive automake bison clang-4.0 doxygen flex g++ g++-4.9 g++-4.9-multilib g++-5-multilib g++-6-multilib gcc-4.9 gcc-4.9-multilib gcc-4.9-plugin-dev gcc-5-multilib gcc-5-plugin-dev gcc-6-multilib gcc-6-plugin-dev gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib gfortran-6 gfortran-6-multilib graphviz libbdd-dev libboost-all-dev libclang-4.0-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
Ubuntu 16.10 64bit:
- autoconf
- autoconf-archive
- automake
- bison
- clang-4.0
- doxygen
- flex
- g++
- g++-4.9
- g++-4.9-multilib
- g++-5-multilib
- g++-6-multilib
- gcc-4.9
- gcc-4.9-multilib
- gcc-4.9-plugin-dev
- gcc-5-multilib
- gcc-5-plugin-dev
- gcc-6-multilib
- gcc-6-plugin-dev
- gfortran-4.9
- gfortran-4.9-multilib
- gfortran-5
- gfortran-5-multilib
- gfortran-6
- gfortran-6-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-4.0-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line:
sudo apt install autoconf autoconf-archive automake bison clang-4.0 doxygen flex g++ g++-4.9 g++-4.9-multilib g++-5-multilib g++-6-multilib gcc-4.9 gcc-4.9-multilib gcc-4.9-plugin-dev gcc-5-multilib gcc-5-plugin-dev gcc-6-multilib gcc-6-plugin-dev gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib gfortran-6 gfortran-6-multilib graphviz libbdd-dev libboost-all-dev libclang-4.0-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
Ubuntu 16.04 64bit:
- autoconf
- autoconf-archive
- automake
- bison
- clang-4.0
- doxygen
- flex
- g++
- g++-4.9
- g++-4.9-multilib
- g++-5
- g++-5-multilib
- gcc-4.9
- gcc-4.9-multilib
- gcc-4.9-plugin-dev
- gcc-5-multilib
- gcc-5-plugin-dev
- gfortran-4.9
- gfortran-4.9-multilib
- gfortran-5
- gfortran-5-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-4.0-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line:
sudo apt-get install autoconf autoconf-archive automake bison clang-4.0 doxygen flex g++ g++-4.9 g++-4.9-multilib g++-5 g++-5-multilib gcc-4.9 gcc-4.9-multilib gcc-4.9-plugin-dev gcc-5-multilib gcc-5-plugin-dev gfortran-4.9 gfortran-4.9-multilib gfortran-5 gfortran-5-multilib graphviz libbdd-dev libboost-all-dev libclang-4.0-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
Debian packages
***************
The following packages have to be installed under Debian to compile PandA.
Debian testing (bullseye) and unstable (sid):
- autoconf
- autoconf-archive
- bison
- clang-6.0
- clang-7
- clang-8
- clang-9
- doxygen
- flex
- g++
- g++-8
- gcc-8
- gcc-8-multilib
- gcc-8-plugin-dev
- gfortran
- gfortran-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-6.0-dev
- libclang-7-dev
- libclang-8-dev
- libclang-9-dev
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line (as root user):
apt install autoconf autoconf-archive bison clang-6.0 clang-7 clang-8 clang-9 doxygen flex g++ g++-8 gcc-8 gcc-8-multilib gcc-8-plugin-dev gfortran gfortran-multilib graphviz libbdd-dev libboost-all-dev libclang-6.0-dev libclang-7-dev libclang-8-dev libclang-9-dev libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make make pkg-config verilator zlib1g-dev
Debian 9 (Stretch):
- autoconf
- autoconf-archive
- bison
- clang-4.0
- doxygen
- flex
- g++
- gcc
- gcc-6-plugin-dev
- gcc-multilib
- gfortran
- gfortran-multilib
- graphviz
- libbdd-dev
- libboost-all-dev
- libclang-4.0-dev
- libcloog-ppl1
- libglpk-dev
- libicu-dev
- liblzma-dev
- libmpc-dev
- libmpfi-dev
- libmpfr-dev
- libsuitesparse-dev
- libtool
- libxml2-dev
- make
- pkg-config
- verilator
- zlib1g-dev
In a single line (as root user):
apt install autoconf autoconf-archive bison clang-4.0 doxygen flex g++ gcc gcc-6-plugin-dev gcc-multilib gfortran gfortran-multilib graphviz libbdd-dev libboost-all-dev libclang-4.0-dev libcloog-ppl1 libglpk-dev libicu-dev liblzma-dev libmpc-dev libmpfi-dev libmpfr-dev libsuitesparse-dev libtool libxml2-dev make pkg-config verilator zlib1g-dev
CentOS 6/Scientific Linux distributions
*************
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.
First, some dependencies need to be satisfied:
$ 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
autoconf-archive package is also required, but it is not present in CentOS repositories:
$ 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
$sudo rpm -Uvh autoconf-archive-2012.04.07-7.3.noarch.rpm
Then a recent version of boost has to be installed by hand.
$ wget http://sourceforge.net/projects/boost/files/boost/1.48.0/boost_1_48_0.tar.bz2/download
$ cp download boost_1_48_0.tar.bz2
$ tar xf boost_1_48_0.tar.bz2 -C /tmp
$ cd /tmp/boost_1_48_0/
$ sudo mkdir -p /opt/boost/1.48.0
$ sudo ./bootstrap.sh
$ sudo ./bjam --prefix=/opt/boost/1.48.0/ variant=release install
Once you have boost installed, you need a recent gcc to compile the PandA sources. This can be done with devtools
On CentOS you can retrieve the devtools repos with the following line:
$ sudo wget http://people.centos.org/tru/devtools-1.1/devtools-1.1.repo -O /etc/yum.repos.d/devtools-1.1.repo
On Scientific Linux you can follow the instructions at this link http://linux.web.cern.ch/linux/devtoolset/ to retrieve the repos info.
Then for gcc-4.7.2 run the following line:
$ 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
After this you can enable gcc-4-7 by typing:
$ scl enable devtoolset-1.1 bash
Finally the following packages have to be installed:
$ sudo yum install automake bison flex libtool libxml2-devel mpfr-devel
This enviroment allows the compilation of the PandA framework with a minimal configuration without flopoco library and without Icarus verilog simulator.
The configure we tested for centos is the following one:
$ 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
where --with-boost specifies the manually installed boost library and --with-gcc47 specifies the gcc executable provided by devtools-1.1.
FloPoCo is currently not supported by bambu under CentOS 6.
Note that, before the configure, you need to run the make -f Makefile.init command as described in the standard PandA *Installation Instructions*.
CentOS 7
***************
The following packages have to be installed under Centos 7 to compile PandA:
- 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
- verilator
- xz-devel
- zlib-devel
Extra packages for Enterprise Linux (EPEL) is required:
yum install epel-release
In a single line (as root):
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 verilator xz-devel zlib-devel
FloPoCo is currently not supported by bambu under CentOS 7.
Fedora
***************
The following packages have to be installed under Fedora 23 (64 bit) to compile PandA:
sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz 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
The following packages have to be installed under Fedora 24 (64 bit) to compile PandA:
sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz 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
The following packages have to be installed under Fedora 25 (64 bit) to compile PandA:
sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz 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
The following packages have to be installed under Fedora 29 (64 bit) to compile PandA:
sudo dnf install autoconf autoconf-archive libtool boost-devel mpfr-devel xml2 lzma-devel mpfi-devel zlib-devel bison flex doxygen graphviz 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 clang clang-devel llvm llvm-devel
ArchLinux
*************
The following packages have to be installed under ArchLinux to compile PandA:
- autoconf-archive
- base-devel
- boost
- clang
- gcc
- gcc-fortran
- gcc-multilib
- git
- glpk
- iverilog
- llvm
- mpfi
- multilib-devel
- readline
- suitesparse
- tar
- verilator
In a single line:
sudo pacman -S base-devel multilib-devel boost gcc-multilib autoconf-archive verilator mpfi clang llvm gcc gcc-fortran git tar suitesparse glpk readline
A working configure example is:
../configure --prefix=$HOME/panda --enable-glpk --enable-opt --enable-flopoco --with-opt-level=fast
Mac OSX
*************
To compile PandA on MacOSX you need to install MacPorts (version 2.5.4 or later).
Here the list of commands required:
$sudo port -N -q install git autoconf autoconf-archive automake bison flex boost libtool SuiteSparse glpk clang-6.0 gcc8 mpfi coreutils
$sudo cp /opt/local/bin/greadlink /opt/local/bin/readlink
$git clone https://github.com/ferrandi/PandA-bambu.git
$cd PandA-bambu
$export PATH=/opt/local/bin:/opt/local/sbin:$PATH
$make -f Makefile.init
$mkdir build
$cd build && ../configure --prefix=$HOME/panda --enable-glpk --enable-opt --enable-flopoco --with-opt-level=fast --disable-Werror --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
Notes on Ubuntu 13.04 64bit and XILINX ISE 14.6
*************
The vendor version of stdlibc++ does not have the correct versions of GLIBC for Ubuntu 13.04.
This is probably due to the fact that the tool is loading a mixture of system libraries and vendor libraries.
The solution is to replace the Xilinx version of stdlibc++ with the system version:
In case ISE is installed in /opt/Xilinx/14.6/ the solution is:
$cd /opt/Xilinx/14.6/ISE_DS/ISE/lib/lin64/
$sudo mv libstdc++.so.6 libstdc++.so.6.orig
$sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6
Notes on Debian/Ubuntu and Lattice Diamond 3.12
*************
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:
$sudo apt-get install alien
$sudo alien --scripts diamond_3_12-base-240-2-x86_64-linux.rpm
once the package has been converted you can install with:
$sudo dpkg -i diamond-3-12-base_3.12-241_amd64.deb
Device LFE5U85F8BG756C requires a free license available from Lattice Semiconductor. Check this link to get the license: http://www.latticesemi.com/Support/Licensing/
Notes on NanoXplore tools
*************
The tested version of NanoXplore tools is the 2.9.4.
The PandA framework may require to add this option at runtime:
--nanoxplore-bypass=<operating-system-distribution>
where possible value can be:
x86_64_UBUNTU_14
x86_64_UBUNTU_16
x86_64_UBUNTU_18
x86_64_DEBIAN_9
x86_64_RHEL_6
Notes on Modelsim
*************
PandA/bambu supports both Modelsim full version and Student/Free version.
When the Free/Student version of Modelsim is used, PandA/bambu should be executed by further adding the --mentor-optimizer=0 option. The Student/Free version does not have the optimization feature.
Notes on backend installation directories
*************
PandA/bambu automatically looks for the RTL synthesis/simulation backends once they are enabled. By default, it looks into specific directories of the filesystem.
For Altera it checks this set of directories /opt/altera/* /opt/intelFPGA/*
For Lattice it checks this set of directories /usr/local/diamond/*
For Mentor it checks this set of directories /opt/mentor and /opt/mentor/*
For Xilinx ISE it checks these sets of directories /opt/Xilinx/* and /opt/Xilinx/*/ISE*
For Xilinx VIVADO it checks this set of directories /opt/Xilinx/* and /opt/Xilinx/Vivado/*
For BRAVE FPGA NanoXplore it checks this set of directories /opt/NanoXplore/*
Anyway, it is possible to specify a different position of the filesystem for the application to look into.
This is the list of options that may be useful for this purpose:
--altera-root=DIR where the root where ALTERA tools are installed
--lattice-root=DIR where the root where LATTICE tools are installed
--mentor-root=DIR where the root where MENTOR tools are installed
--xilinx-root=DIR where the root where XILINX tools are installed
--nanoxplore-root=DIR where the root where BRAVE FPGA NanoXplore tools are installed