Welcome to the StreamBlocks examples repository. This repository contains a set of dataflow applications that you can use with the StreamBlocks dataflow compiler.
We assume you have a working Vivado/Vitis installtion (2019.2) and have gone through setting up streamblocks-platfroms.
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
)
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.