Device Management
This tutorial covers day-to-day V80 board management using v80-smi.
For the full command syntax, see Command Reference.
Prerequisites
SLASH platform is set up (kernel module loaded, vrtd running). See Platform Setup if starting from scratch.
v80-smiis installed and onPATH.
Listing Devices
Enumerate all V80 boards on the system:
v80-smi list
The output shows each board’s BDF address and readiness status. A board is ready when all four checks pass:
PF0 (
ami) — management interface driver loaded.PF1 (
slash_qdma) — QDMA driver loaded.PF2 (
slash_ctl) — control driver loaded.VRTD — daemon is running and the device is registered.
For detailed information including PCI IDs and driver names:
v80-smi list -l
For machine-readable output:
v80-smi list -j # compact JSON
v80-smi list -J # pretty-printed JSON
To include sensor readings (temperature, power):
v80-smi list -s
Inspecting a Vrtbin
Before programming a device, inspect a vrtbin file to verify its contents:
v80-smi inspect my_design.vbin
This displays the platform (Hardware/Emulation/Simulation), clock
frequency, kernel names, argument lists, and memory port connections —
all parsed from the system_map.xml inside the archive.
See vrtbin Format for details on the archive structure.
Programming a Device
Load a vrtbin onto a board:
v80-smi program my_design.vbin -d 03:00
This extracts the PDI bitstream from the vrtbin and programs the FPGA.
The device BDF (03:00) can be found from v80-smi list.
Programming can also be done using VRT:
vrt::Device device("03:00", "my_design.vbin"); // programs automatically
Querying the Active Design
To see what was last programmed on a device:
v80-smi query -d 03:00
This shows the same metadata as inspect but reads it from the device
rather than from a file on disk.
Warning
query only reports what you (the current user) last wrote to the
board at the given BDF — not what is physically loaded on the device right
now. Querying the actual on-board design is not currently possible. Treat
the output as a guide, not absolute truth.
Resetting a Device
Perform a hardware reset (PCIe secondary bus reset and rescan):
v80-smi reset -d 03:00
Use this when:
A kernel is stuck and not responding to
AP_DONEpolling.You need to clear the device state before reprogramming.
Debugging hardware issues.
After a reset, the board returns to an unprogrammed state and must be reprogrammed before use.
Validating Memory
Run memory integrity and bandwidth tests:
v80-smi validate -d 03:00
This tests both HBM and DDR subsystems:
Integrity — fills each memory region with a deterministic pattern (
i ^ seed), reads it back, and compares.Bandwidth — measures host-to-device (H2C) and device-to-host (C2H) throughput.
Control the number of parallel test threads:
v80-smi validate -d 03:00 -j 16 # 16 threads (default: 8, max: 64)
A passing result confirms the hardware, drivers, and memory subsystems are functioning correctly.
Next Steps
Command Reference — full
v80-smicommand reference.vrtd Configuration — customise daemon permissions and roles.
Getting Started — run your first user application.