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-smi is installed and on PATH.

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_DONE polling.

  • 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