Answers Database
 
 
 JTAG - How to read SVF files. 
 
 Record #3173
Product Family:  Hardware 
 
Product Line:  9500 
 
Product Part:  9500 
 
Problem Title: 
JTAG - How to read SVF files.  
 
 
Problem Description: 
Urgency: Standard 
 
General Description: Understanding  the different commands in 
the SVF files created by Xilinx Software. 
 
 
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 or 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 - Last Modified: 01/10/00 20:24  |