SAFE Statement

The SAFE statement causes XJTAG to set the circuit into a safe state by applying the Safe Bitstream to the JTAG chain, which resets it to the state it is in when testing starts:

  • The disable values set in Test Device files are driven to the relevant devices in order to disable them.
  • Constant pins are set to the specified value.
  • Logic devices are driven to a known state.
  • All other I/O pins on JTAG devices are set to "safe" values set by the applicable BSDL file, which typically disables the output circuitry of the pin.

As well as applying the SAFE state to the JTAG pins this statement also applies a similar state to pins driven by external non-JTAG hardware (such as ICT machines controlled by XJTAG), so it is not necessary to follow a call to SAFE with an EXTERNAL_SAFE call.

The SAFE statement cannot be used inside a raw JTAG block. It should not be confused with the SAFE function that is used in raw JTAG blocks to return the safe bitstream for a device.

If the SAFE statement is used inside a HOLDOFF block, HOLDOFF is temporarily disabled and all outstanding writes are performed, followed by the SAFE scan. HOLDOFF is then enabled again.

SAFE can be called without any brackets after it, but this usage is discouraged and will be deprecated in a future version.

Syntax

SAFE()

See also