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:
- 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.
- A mailbox feature of the Xilinx run time (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.
- The
software_reset
feature letting the software application reset the design to stop execution.