Working with Auto-Restarting Designs - 2023.2 English

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
Release Date
2023.2 English

Auto-restarting designs can run continuously after being started once by the software application. They can run continuously until reset and restarted, or they can be programmed to run for a predetermined number of iterations without the software application explicitly calling them multiple times in a mode called counted auto-restart. This functionality is similar to a while(running) loop in software code, where the running variable is controlled by the software application.

The control of the design is managed in hardware so that once the block is started by the software application it is automatically restarted until the iteration count is exceeded, or until explicitly stopped by the host code. In addition, the application can query the status of the design to check specific register states or to provide new parameters to be used at the next opportunity.

Auto-restarting designs make use of several unique features:

  1. The auto-restart bit in the control register is used to continuously restart the design, or restart it for a specified number of iterations, without explicit software calls for each execution.
  2. A mailbox feature of the Xilinx Runtime (XRT) to enable the software application to occasionally synchronize with the design to set new operating parameters, or check the status of the current run, as described in Using the Mailbox.
  3. The software_reset feature letting the software application reset the design to stop execution.