INJTAGSTATE
The INJTAGSTATE statement notifies the system that the TAP controller state has changed. It can only be used inside a JTAG block.
This is used when the controller state has been modified outside the control of the system, e.g. by controlling the TCK and TMS pins manually. This enables the system to resynchronise in cases where changes have been made that it cannot track.
The INJTAGSTATE statement is not required when the TAP state is changed using one of the raw JTAG statements that explicitly changes the state, such as JTAGSTATE, DRSCAN or IRSCAN.
Syntax
INJTAGSTATE ( state )
Parameters
- state
-
A STRING that specifies the current TAP state. The string is not case sensitive. The valid JTAG states are:
- RESET
- IDLE
- IRSELECT
- IRCAPTURE
- IRSHIFT
- IREXIT1
- IRPAUSE
- IREXIT2
- IRUPDATE
- DRSELECT
- DRCAPTURE
- DRSHIFT
- DREXIT1
- DRPAUSE
- DREXIT2
- DRUPDATE
Errors
An error can occur in the following circumstances:
- The state is not one of the listed values (at compile-time if the string is a constant, otherwise at run-time).
- The function is used outside a JTAG block.
Example
This example performs a TMS reset, which is five clock ticks with TMS held high. This sequence guarantees that the TAP controller will be left in the RESET state, and so notifies the system that the controller is now in that state.
INT i; JTAG SET TMS := 1, TCK := 0; FOR i := 0 TO 5 SET TCK := 1; SET TCK := 0; END; INJTAGSTATE ("RESET"); END;
XJTAG v4.1.100