5. Project repository¶
5.1. About cF Projects¶
In cloudFPGA, a user application is referred to as a ROLE. To be functional in a cF system, this ROLE must be integrated with a specific SHELL.
The integration of a ROLE along with its associated SHELL into a top-level design (TOP)
is what constitutes a cloudFPGA project which is typically stored as a cFp
repository of the
cloudFPGA organization.
- Info
By convention, we recommend naming a project repository after the project itself while prefixing it with the string “cFp_” (e.g. cFp_Zoo).
5.2. Getting started with a cF project¶
If you are new to cloudFPGA, we recommend that you clone or copy an existing cFp
project
(e.g. cFp_HelloThemisto) and that you
start experimenting by modifying or removing its ROLE.
The typical structure of a cF project is a follows:
$ tree <cFp_ProjectName>
cFDK/ (the cloudFPGA development kit as a submodule)
TOP/ (the toplevel that integrates a SHELL and a ROLE)
└──tcl/ (don't touch, is copied from cFDK)
└──xdc/ (user added constraints; you add your debug nets here)
└──hdl/ (HDL version of the toplevel)
└──top.vhdl
└── a.s.o. (if custom hdl files for TOP)
ROLE/ (the user application(s))
└── role1 (or not, depends on PR, etc.)
└── role2 (or not, depends on cluster)
└── a.s.o.
dcps/ (contains the dcps and bitfiles)
xpr/ (contains the Vivado project)
ip/ (contains the IP cores (generated during build))
Makefile
env/
└── setenv.sh (sets the envrionment)
<possible_addons/>
5.3. How to cFCreate¶
To facilitate the creation of a new project from scratch or to manage and update an existing one, we provide you with the cFCreate framework.
To use this framework, you need to clone the cFCreate
repository into **\
$ cd <your-path>
$ git clone git@github.com:cloudFPGA/cFCreate.git
$ cd cFCreate/
$ which python3.8
/usr/bin/python3.8
$ virtualenv -p /usr/bin/python3.8 cfenv
$ source cfenv/bin/activate
$ pip install -r requirements.txt
From now on, you can create a new empty cFp
with the following command:
$ cd <your-path>
$ ./cFCreate new --cfdk-version=latest --git-init <path-to-the-new-project-folder>
For more information and more advanced options, please consult the documentation of the cFCreate repository.
5.4. How to create a project in the cF organization¶
If you want to create a repository in the cF organization, please contact us here and we will create one for your project to live in github.com/cloudFPGA.
5.5. Project Repositories¶
- 5.5.1. cFp_HelloKale
- 5.5.1.1. Overview
- 5.5.1.2. Shell-Role-Architecture
- 5.5.1.3. How to build the project
- 5.5.1.4. How to deploy a cloudFPGA instance
- 5.5.1.5. How to access your cloudFPGA instance
- 5.5.1.6. How to cleanup (optional)
- 5.5.2. cFp_HelloThemisto
- 5.5.2.1. Overview
- 5.5.2.2. Shell-Role-Architecture
- 5.5.2.3. How to build the project
- 5.5.2.3.1. Step-1: Clone and configure the project
- 5.5.2.3.2. Step-2: Setup your environment
- 5.5.2.3.3. Step-3: Add your cloudFPGA credentials
- 5.5.2.3.4. Step-4: Retrieve the latest static shell
- 5.5.2.3.5. Step-5: Activate the 1st role (optional) and generate corresponding partial bitstream
- 5.5.2.3.6. Step-6: Activate and generate a partial bitstream for the 2nd role
- 5.5.2.4. How to deploy the cluster
- 5.5.3. cFp_Zoo
- 5.5.3.1. cFp_Zoo Overview
- 5.5.3.2. cFp_Zoo Projects
- 5.5.3.2.1. cFp Uppercase
- 5.5.3.2.2. cFp_Memtest
- 5.5.3.2.2.1. System configurattion
- 5.5.3.2.2.2. Full-stack software support
- 5.5.3.2.2.3. Vivado tool support
- 5.5.3.2.2.3.1. For the SHELL (cFDK’s code)
- 5.5.3.2.2.3.2. For the ROLE (user’s code)
- 5.5.3.2.2.4. Firewall issues
- 5.5.3.2.2.5. Memory test Results
- 5.5.3.2.3. cFp Harris Corner Detection
- 5.5.3.2.3.1. Repository and environment setup
- 5.5.3.2.3.2. Intergration of Vitis Vision Harris with cloudFPGA
- 5.5.3.2.3.3. Harris Simulation
- 5.5.3.2.3.4. Harris Synthesis
- 5.5.3.2.3.5. Harris Host Testbench
- 5.5.3.2.3.6. Harris cF End-to-End Demo
- 5.5.3.2.3.7. Harris usefull commands
- 5.5.3.2.3.8. Working with ZYC2
- 5.5.3.2.4. cFp Monte Carlo European Pricing Engine