The Command Interface provides a simple interface if you want to transition to the Idle, Observation, Detect only, or Diagnostic Scan state, perform error injections or software resets. The Command Interface consists of an input command, input strobe, and an output busy signal implementing a simple parallel input port with a busy output. This interface is optional. If not used, all inputs can be tied Low.
This interface accepts the following types of commands:
- Command to enter Idle state (suspend normal scanning)
- Command to enter Observation state (resume normal scanning)
- Command to enter Detect only state (resume normal scanning with no correction)
- Command to enter Diagnostic Scan state (perform diagnostic scan of all configuration memory in the device and report all frame level ECC errors)
- Command to perform a software reset (reboot and initialize)
- Inject error at a frame address
To execute the commands, the Status Interface must be monitored because some of the commands only execute if the IP is in Observation, Idle, or Detect only state.
Each command generated through the Command Interface is reflected and reported on the Monitor Interface.
For UltraScale SSI implementations of the system-level example design, there is a controller instance on each SLR with all controller instances receiving the signals from the Command Interface. For UltraScale+ SSI implementations of the system-level example design, there is one controller instance for the entire device, identical to the monolithic implementation. In many cases, signals from the Command Interface can be brought to I/O pins on the FPGA.
This interface can be driven both from internal to the FPGA (for example connected to the Vivado Design Suite debug feature) or connected to another device for control through
I/O pins. In the latter case, the timing requirements of the Command Interface must be accounted for to properly capture supplied commands when interfacing to another device. See Switching Behavior.