VLSI Design Flow: RTL To GDS (NPTEL Course)
Lab Tutorial 3
Objective: To gain a hands-on experience on High Level Synthesis
Requirement:
⚫ You can use any tool for HLS
⚫ Following open-source HLS tool can also be used: Bambu HLS
Installation of Bambu HLS:
1. Update package index files on system
$ sudo apt-get update
2. Install dependencies required by Bambu HLS tool
$ sudo apt-get install -y --no-install-recommends build-essential ca-certificates gcc-multilib
git iverilog verilator wget
3. Downlaod AppImage
$ wget https://release.bambuhls.eu/appimage/bambu-0.9.7.AppImage
4. Make AppImage executable
$ chmod +x bambu-0.9.7.AppImage
5. AppImages require Linux technology called “File system in userspace” (FUSE). Installing
FUSE
$ sudo add-apt-repository universe
$ sudo apt install libfuse2
6. Run tool
$ ./bambu-0.9.7.AppImage <path-to-c-file> --top-fname=<accelerator-function-to-be-
implemented-in-hardware>
Example: Input C code for generating Verilog RTL using HLS tool:
long func(int,int,int,int);
main()
{
int j;
int k;
int c;
int d;
int res = func(j,k, c, d);
return 0;
}
long func(int j,int k, int c, int d)
{
int i=0;
if(c > 2){
i = j - k;
} else if (d < 5) {
i = j + k;
} else {
i= 12;
}
return i;
}
For more information:
C. Pilato and F. Ferrandi, “Bambu: A modular framework for the high level synthesis of
memory- intensive applications," in 23rd International Conference on Field programmable
Logic and Applications, pp. 1-4,IEEE, 2013.
Where and how to download? https://panda.dei.polimi.it/?page_id=81
NOTE: downloading and running the AppImage is sufficient
How to run?
Tutorial: https://panda.dei.polimi.it/?page_id=555
script: ./bambu-x86_64.AppImage file.c <path of c file> --top-fname = <accelerator func>
How to get more information?
Reference paper:
https://www.researchgate.net/publication/315383441_Open_Source_HLS_Tools_A_steppin
g_stone_for_modern_Electronic_CAD
https://www.researchgate.net/publication/261299590_Bambu_A_modular_framework_for
_the%20_high_level_synthesis_of_memory-intensive_applications
Github:
https://github.com/ferrandi/PandA-bambu