Answers Database
Boundary Scan/JTAG: How to read the Xilinx XC9500 SVF files?
Record #3173
Product Family: Hardware
Product Line: 9500
Problem Title:
Boundary Scan/JTAG: How to read the Xilinx XC9500 SVF files?
Problem Description:
Keywords: svf, xc9500, 9k, 9500, sir, sdr, runtest, state, trst
Urgency: Standard
General Description: Understanding the different commands in
the XC9500 SVF files created by EZTAG or JTAG Programmer.
Solution 1:
TRST (Test Reset)
Syntax:
TRST trst_mode
This command describes the operation of the Optional Test Reset
signal. It is described as OFF, as the TRST pin does not exist
on the XC9500 device. ON, OFF, Z and ABSENT are the valid
trst_mode states.
Example:
TRST OFF;
Solution 2:
ENDDR, ENDIR
Syntax:
ENDDR stable_state
ENDIR stable_state
The ENDDR and ENDIR commands specify the state in which the TAP
controller will be forced in to at the conclusion of a DR ot IR
scan. Once specified, the ENDDR/ENDIR commands remain in force
unless overridden by another ENDDR/ENDIR command. Both, ENDDR &
ENDIR are set to IDLE at startup. Valid stable_states are
IRPAUSE, DRPAUSE, RESET and IDLE.
Example:
ENDIR IDLE;
ENDDR DRPAUSE;
Solution 3:
STATE
Syntax:
STATE [pathstate1 [pathstate2...[pathstaten]]] stable_state;
The STATE command is used to move the TAP controller from one
stable state in to another for test initialization, completion,
etc. TDI and TDO are undefined during the STATE command. For
every state path, it is assumed that at least one Test Clock
will be executed.
The pathstate1..n is an optional list of states that must be
traversed through the TAP state diagram in order to reach the
final stable state. Valid states are RESET, IDLE, DRSELECT,
DRCAPTURE, DRSHIFT, DRPAUSE, DREXIT1, DREXIT2, DRUPDATE,
IRSELECT, IRCAPTURE, IRSHIFT, IRPAUSE, IREXIT1, IREXIT2 and
IRUPDATE. The stable_state is the state that the TAP controller
will be forced to. IRPAUSE, DRPAUSE, RESET and IDLE are the
valid stable states.
Example;
STATE RESET IDLE;
Solution 4:
SDR, SIR (Scan Data Register, Scan Instruction Register)
Syntax:
SDR length [TDI (tdi)] [TDO (tdo)] [MASK (mask)] [SMASK (smask)];
SIR length [TDI (tdi)] [TDO (tdo)] [MASK (mask)] [SMASK (smask)];
These commands specify a SCAN pattern that can be applied to the
target Data or Instruction registers.
Length is a 32 bit unsigned decimal integer greater than 0
specifying the number of bits to be scanned.
[TDI (tdi)] is an optional value to be scanned in HEX. If this
parameter is not present, the value of TDI to be scanned will
equal the previous SIR/SDR statement. The TDI parameter should
be explicitly specified for the first command or when the length
of the target register changes.
[TDO (tdo)] is the optional value that would be compared against
the actual value scanned out of target, in HEX. If this
parameter is not present, no comparison is performed.
[MASK (mask)] is the optional MASK to be used when comparing the
TDO values against the actual values, in HEX. A `1' in a
specific bit position indicates a care condition and a `0'
indicates a don't care. If this parameter is not present, then
the previously assigned value of MASK is used. If a new scan
command changes the length of a data pattern with respect to a
previous scan, the MASK parameter should be explicitly
specified. If TDO parameter is not specified, MASK will not be
used.
[SMASK (smask)] is the optional value that specifies whether TDI
is don't care or care, in HEX. A `1' in a specific bit position
indicates a care condition and a `0' indicates a don't care. If
this parameter is not present, then the previously assigned
value of SMASK is used. If a new scan command changes the length
of a data pattern with respect to a previous scan, the SMASK
parameter should be explicitly specified. The SMASK will be used
even if the TDI parameter is not present.
Example:
SIR 8 TDI (fe) SMASK (ff) ;
SDR 32 TDI (ffffffff) SMASK (ffffffff) TDO (09502093) MASK
(ffffffff) ;
Solution 5:
RUNTEST
Syntax:
RUNTEST [run_test] run_count run_clk [min_time SEC [MAXIMUM
max_time SEC]] [ENDSTATE end_state]
Or,
RUNTEST [run_test] min_time SEC [MAXIMUM max_time SEC] [ENDSTATE
end_state]
The RUNTEST command forces the TAP controller to the specified
run state for a specified number of clocks, a specified length
of time or both, and then moves it to the specified end state.
Either run_count or min_time must be specified. If both are
specified, RUNTEST executes till both conditions are satisfied
or, till max_time has been exceeded.
run_state is the optional stable state that the TAP controller
will be forced to during the RUNTEST command. IRPAUSE, DRPAUSE,
RESET and IDLE are the valid stable states. If run_state, is not
specified, the RUNTEST command defaults to the earlier value
that was specified. If none was specified, then the initial
default is IDLE.
run_count is the optional number of clocks that the TAP
controller will stay in the run state. It is a 32 bit unsigned
decimal integer.
run_clk specifies the optional clock used, either TCK or system
clock.
[min_time SEC] is the optional minimum amount of time in seconds
that the RUNTEST command must execute for.
[MAXIMUM max_time SEC] is the optional maximum amount of time in
seconds that the RUNTEST command must execute for. It must be
greater than min_time.
[ENDSTATE end_state] is the optional state which the TAP
controller will be forced to after executing the specified
number of clocks. The valid end_states are IRPAUSE, DRAPAUSE,
RESET and IDLE. If the end_state is not specified, the default
end_state is used. When an end_state is specified, it is the
default. When a run_state is specified, the new run_state
becomes the default. When a run_state is not specified, the
default end_state remains in effect. The initial default for the
end_state is IDLE.
Example:
RUNTEST 1300000 TCK;
End of Record #3173
For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals! |