In a configured UltraScale device, the boundary register control cell for a non-tristatable output captures the incorrect value (1) during boundary-scan (for example when the SAMPLE, PRELOAD, EXTEST, EXTEST_PULSE, or EXTEST_TRAIN instructions are active).
The boundary register control cell controls the output enable/disable for an I/O.
A non-3-statable output is never disabled in normal operation, but the control cell captures the disable value (1).
Thus, the captured control cell value is an incorrect representation of the output state.
This issue can occur when all of the following are true:
The device is an UltraScale device
The device is configured with a bitstream
One or more SelectIO are configured as non-tristatable output-only pins, for example, OBUF or OBUFDS.
This issue can cause boundary-scan tools to incorrectly interpret the state of output pins in configured UltraScale devices.
This issue can cause boundary-scan tools to improperly clamp (i.e. persist) the state for output pins in configured UltraScale devices.
When the boundary-scan tool samples the I/O state and attempts to maintain that state during EXTEST, the output pins can change from an active drive state to a disabled stated.
The following work-arounds are available for this issue:
Do not configure the UltraScale device, and perform boundary-scan operations when the device is not configured.
If the UltraScale device must be configured during the boundary-scan operation, then change the I/O-type in the design to a 3-statable I/O type, for example change an OBUF to an OBUFT with the T=0.
Do not use the captured (e.g. SAMPLE) value of the control cell to control a non-tristatable output during EXTEST. Instead, explicitly load the control cell with a 0 value to ensure that the non-tristatable output is enabled.
If the boundary register control cell value is only used for observation (i.e., only the SAMPLE instruction is used), then ignore the control cell value for non-tristatable output pins.