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
The project was tested with AMD Vivado & Vitis tools version 2024.2, kernel version 5.15.
- libxml2
- ZeroMQ (zmq) for emulation & simulation
- jsoncpp for emulation & simulation
To install the dependencies:
sudo apt install libxml2-dev libzmq3-dev libjsoncpp-dev
SLASH depends on AVED and QDMA which can be pulled from git using:
git submodule update --init --recursive
In 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
,out
so 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.