This repository contains SLASH, a SmartNIC platform for Alveo V80. SLASH consists of several components:
- card management functionality that layers on top of AVED
- V80 RunTime (VRT): the VRT API implementation, along with examples.
- (upcoming) 200Gbps MAC implementation for network-attached kernels and SmartNIC applications
Warning
The project was only tested with AMD Vivado & Vitis tools version 2024.2, on Ubuntu 22.04, kernel version 5.15. Please use same versions of tools/kernel.
- libxml2
- ZeroMQ (zmq) for emulation & simulation
- jsoncpp for emulation & simulation
To install the dependencies:
sudo apt install libxml2-dev libzmq3-dev libjsoncpp-dev xvfbSLASH depends on AVED and QDMA which can be pulled from git using:
git submodule update --init --recursiveIn order to build and deploy all necessary software for this project to work, follow the steps shown in the deployment instructions.
Follow the instructions in the API documentation README.
A README file can be found in the examples directory. Please follow the instruction given there to proceed.
- HLS arguments should not be Verilog or VHDL keywords (eg.
in,outso on). Some issues may appear in the linker with this configuration. - In emulation, HLS kernels must include at least one axi4lite interface to work.
- In the current version of the linker, a maximum number of 15 kernels can be instantiated. This will be fixed in future versions.
All the hardware examples are built using the Segmented Configuration flow.