0% found this document useful (0 votes)
52 views3 pages

Tutorial 3 Updated

This document provides instructions for installing and using the open-source high-level synthesis tool Bambu HLS to generate Verilog RTL from C code. It outlines downloading the Bambu AppImage file, making it executable, and installing required dependencies like FUSE. It also gives an example of C code to synthesize a function using Bambu HLS, and provides links for tutorials, papers, and the Github repository for more information.

Uploaded by

Harsh Vardhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views3 pages

Tutorial 3 Updated

This document provides instructions for installing and using the open-source high-level synthesis tool Bambu HLS to generate Verilog RTL from C code. It outlines downloading the Bambu AppImage file, making it executable, and installing required dependencies like FUSE. It also gives an example of C code to synthesize a function using Bambu HLS, and provides links for tutorials, papers, and the Github repository for more information.

Uploaded by

Harsh Vardhan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

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

You might also like