public class Netscan extends NetscanGeneric
ChainControl
. All of the
methods could have been static, but we made them non-static to allow
device-independent JTAG control.
Here is an example of how to use Netscan
:
JtagTester jtag = new Netscan(JTAG_IP_ADDRESS);The user can then call
ChainControl control = new ChainControl(XML_PATH, jtag, DEFAULT_VDD, DEFAULT_TCK_KHZ);
ChainControl.setInBits(java.lang.String, com.sun.electric.tool.simulation.test.BitVector)
and ChainControl.shift(java.lang.String, boolean, boolean, int, int, int)
to program scan chains.Modifier and Type | Field and Description |
---|---|
static short |
DEFAULT_STOP_STATE
Default stop state for scan.
|
static int |
NUM_OUTPUT_PINS
Number of channels of programmable parallel output
|
newInstructionRegister
logicOutput, printInfo
Constructor and Description |
---|
Netscan(java.lang.String addressIP)
Creates the
Netscan object. |
Modifier and Type | Method and Description |
---|---|
protected int |
hw_net_scan_dr(int numBits,
short[] scanIn,
short[] scanOut)
Write the bits
scanIn to the JTAG controller's data
register, and read back the bits scanOut . |
protected int |
hw_net_scan_ir(int numBits,
short[] scanIn,
short[] scanOut,
int drBits)
Write the bits
scanIn to the JTAG controller's instruction
register. |
void |
reset()
Reset the finite state machine of the chip's JTAG controller by briefly
setting the TRSTb signal LO.
|
void |
tms_reset()
Reset the finite state machine of the chip's JTAG controller by briefly
setting the TMS signal HI for five cycles.
|
incrementNumTesters, main, padBitVector, shortsToString
isScanOutInverted, setScanOutInverted
isLogInits, isLogOthers, isLogSets, logInit, logOther, logSet, setAllLogging, setLogInits, setLogOthers, setLogSets, toString
public static final short DEFAULT_STOP_STATE
public static final int NUM_OUTPUT_PINS
public Netscan(java.lang.String addressIP)
Netscan
object. Only one Netscan
or Netscan4
instance is allowed, because the Netscan
library only supports one JTAG controller at a time. Connects to the JTAG
tester (by using the Net_Connect routine in the scan function library).
The tester must then be configured before use, by passing the new
Netscan
object to
ChainControl.ChainControl(String, JtagTester, float, int)
.addressIP
- IP address of JTAG testerpublic void reset()
reset
in class JtagTester
public void tms_reset()
tms_reset
in class JtagTester
protected int hw_net_scan_ir(int numBits, short[] scanIn, short[] scanOut, int drBits)
scanIn
to the JTAG controller's instruction
register. The first bit scanned in to the chip is the LSB of
scanIn[0]
, and the first bit scanned out from the chip is
the LSB of scanOut[0]
.hw_net_scan_ir
in class NetscanGeneric
numBits
- The number of bits to shiftscanIn
- Bit sequence to write to instruction registerscanOut
- Bits scanned out of instruction registerdrBits
- Number of bits in the selected chainprotected int hw_net_scan_dr(int numBits, short[] scanIn, short[] scanOut)
scanIn
to the JTAG controller's data
register, and read back the bits scanOut
. The first bit
scanned in to the chip is the LSB of scanIn[0]
, and the
first bit scanned out from the chip is the LSB of scanOut[0]
.
Extracted from netScan_DR to simplify overriding for different hardware,
e.g., in class Netscan4
.
hw_net_scan_dr
in class NetscanGeneric
numBits
- The number of bits to shiftscanIn
- Bit sequence to write to data registerscanOut
- Bits scanned out of data register