Skip to content

streamblocks/streamblocks-examples

Repository files navigation

StreamBlocks Example Repository

Welcome to the StreamBlocks examples repository. This repository contains a set of dataflow applications that you can use with the StreamBlocks dataflow compiler.

Dependencies

We assume you have a working Vivado/Vitis installtion (2019.2) and have gone through setting up streamblocks-platfroms.

Cloning the repository

We assume you have cloned streamblocks-platforms in some local directory such as /home/mahyar/streamblocks/streamblocks-platforms. Then set the environment variable STREAMBLOCKS_HOME to point to /home/mahyar/streamblocks.

> export STREAMBLOCKS_HOME=...

And clone the this repository in ${STREAMBLOCKS_HOME}

> cd ${STREAMBLOCKS_HOME}
> git clone git@github.com:streamblocks/streamblocks-platforms.git

Some of the examples use the Streamblocks.cmake as a helper fo building StreamBlocks projects. This script requires a valid $STREAMBLOCKS_HOME environment variable. So make sure if you are trying to build a project, you have the correct variable.

If you wish to generate heterogeneous code, ensure a working Vitis 2019.2 installation. Newer versions of Vitis may work, but are not supported right now by streamblocks-platform. As usual, you need to source settings64.sh from your Vitis installation directory and also have the environment variable XILINX_XRT point to your XRT installation directory (e.g., export XILINX_XRT=/opt/xilinx/xrt)

Running an example

Let's try compiling the RVC-MPEG4SP program.

> cd rvc-mpeg4sp
> cmake .. -DCMAKE_BUILD_TYPE=Release -DTARGET=hw -DXCF_CONFIG=configuration_0.xcf
> cmake --build .

This should take a while because we are generating an FPGA bitstream, if you just want to quickly go through the example set -DTARGET=hw_emu to finish up compilation faster.

There are various configuration files that place different actors on hardware, feel free to give them a shot by changing the XCF_CONFIG option.

We encourage you to take a look at the corresponding CMakeLists.txt file to get inspired on how you can write your own.