The Task Parallel System Composer (TaPaSCo)
TaPaSCo is known to work in this environment:
- Intel x86_64 arch
- Linux kernel 4.4+
- Fedora 26+, Ubuntu 16.04+
- Fedora 24/25 does not support debug mode due to GCC bug
- Bash Shell 4.2.x+
Other setups likely work as well, but are untested.
To use TaPaSCo, you'll need working installations of
- Vivado Design Suite 2017.4 or newer
- Java SDK 8 - 11
- sbt 0.13.x or newer (use SDKMAN! for easy installation)
- GCC newer than 5.x.x for C++11 support
- OPTIONAL: libncurses for the tapasco-debug application
sudo apt-get -y update && sudo apt-get -y install unzip git zip findutils curl build-essential \ linux-headers-generic python cmake libelf-dev libncurses-dev rpm curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java sdk install sbt
sudo dnf -y install which unzip git zip tar findutils kernel-devel make gcc gcc-c++ \ elfutils-libelf-devel cmake ncurses-devel python libatomic rpm-build curl -s "https://get.sdkman.io" | bash source "$HOME/.sdkman/bin/sdkman-init.sh" sdk install java sdk install sbt
If you want to use the High-Level Synthesis flow for generating custom IP cores, you'll also need:
- Vivado HLS 2017.4+
Check that at least the following are in your
- Open a terminal in the main directory of the repository and source the
TaPaSCo setup script via
. setup.sh. You need to do this every time you use TaPaSCo (or put it into your
- Build TaPaSCo:
sbt compile(this may take a while,
sbtneeds to fetch all dependencies etc. once).
- Create the necessary jar files with
- Optional: Run TaPaSCo unit tests:
- Optional: Generate sample configuration file:
tapasco -n config.jsonTaPaSCo should exit immediately and
config.jsonwill include a full configuration that can be read with
--configFile, including one example for each kind of job.
- Build libraries and tlkm kernel module:
When everything completed successfully, TaPaSCo is ready to use!
Build a TaPaSCo design
- Import your kernels
- HDL flow:
tapasco import <ZIP> as <ID>
- HLS flow:
tapasco hls <KERNELS>
- HDL flow:
- Create a composition:
tapasco compose [<KERNEL> x <COUNT>] @ <NUM> MHz -p <PLATFORM>
- Load the bitstream:
- Implement your host software
- C API
- C++ API
You can get more information about commands with
tapasco help <COMMAND>.
We would also like to thank Bluespec, Inc. for making their Bluespec SystemVerilog (BSV) tools available to us and their permission to distribute the Verilog code generated by the Bluespec Compiler (bsc).
We provided pre-compiled packages for many popular Linux distributions. All packages are build for the x86_64 variant.