com.sun.electric.tool.io.output
Class ScanChainXML

java.lang.Object
  extended by com.sun.electric.tool.io.output.ScanChainXML

public class ScanChainXML
extends java.lang.Object

Class to define XML for scan chains.


Constructor Summary
ScanChainXML()
          Create a new ScanChainXML object that will parse the schematics and write out an XML description
 
Method Summary
 void addCellToFlatten(java.lang.String libName, java.lang.String cellName)
          Specify a cell to flatten.
 void addJtagPort(int opcode, java.lang.String soutPortName, java.lang.String chainName)
          Add a port to the JTAG Controller that serves as a starting point for a scan chain.
 void addPassThroughCell(java.lang.String cellName, java.lang.String inport, java.lang.String outport)
          Specify a pass through element.
 void addScanChainElement(java.lang.String name, java.lang.String access, java.lang.String clears, java.lang.String inport, java.lang.String outport)
          Specify a scan chain element.
 void addScanChainElement(java.lang.String name, java.lang.String access, java.lang.String clears, java.lang.String inport, java.lang.String outport, java.lang.String dataport, java.lang.String dataport2)
          Specify a scan chain element.
 void setChipName(java.lang.String name)
          Specify the name of the chip.
 void setJtagController(java.lang.String jtagLib, java.lang.String jtagCellName, int lengthIR)
          Specify the JTAG Controller.
 void setOutput(java.lang.String file)
          Set the output file.
 void start(java.lang.String libName, java.lang.String cellName)
          Start tracing all the scan chains from the any instances of specified jtag controller
 void startFromExport(java.lang.String exportName, java.lang.String chainName)
          Start tracing a chain from the specified export in the start cell.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ScanChainXML

public ScanChainXML()
Create a new ScanChainXML object that will parse the schematics and write out an XML description

Method Detail

addScanChainElement

public void addScanChainElement(java.lang.String name,
                                java.lang.String access,
                                java.lang.String clears,
                                java.lang.String inport,
                                java.lang.String outport)
Specify a scan chain element. When an instance of this is found, it is will be parsed as one bit in the scan chain.

Parameters:
name - name of the cell to be defined as a scan chain element.
access - the access type: for example, "RW".
clears - the clears type: for example, "L".
inport - the name of input data port, typically "sin". May contain index info, such as "s[1]"
outport - the name of the output data port, typically "sout". May contain index info, such as "ss[1]"

addScanChainElement

public void addScanChainElement(java.lang.String name,
                                java.lang.String access,
                                java.lang.String clears,
                                java.lang.String inport,
                                java.lang.String outport,
                                java.lang.String dataport,
                                java.lang.String dataport2)
Specify a scan chain element. When an instance of this is found, it is will be parsed as one bit in the scan chain.

Parameters:
name - name of the cell to be defined as a scan chain element.
access - the access type: for example, "RW".
clears - the clears type: for example, "L".
inport - the name of input data port, typically "sin". May contain index info, such as "s[1]"
outport - the name of the output data port, typically "sout". May contain index info, such as "ss[1]"
dataport - the name of the port the scan data is read from and written to. May include options R, W, or I for (Readable,Writable,Inverted) in parenthesis at the end. Ex: dout(RW)
dataport2 - another port for data like dataport, with the same format.

addPassThroughCell

public void addPassThroughCell(java.lang.String cellName,
                               java.lang.String inport,
                               java.lang.String outport)
Specify a pass through element. Pass through elements are found in series in the scan chain, but are not scan chain elements themselves. Examples of this are inverters and buffers that buffer the scan chain data.

Parameters:
cellName - name of the cell to be defined as a pass through element
inport - the name of the input port that passes data through May contain index info, such as "s[1]"
outport - the name of the output port that passes data through May contain index info, such as "ss[1]"

addCellToFlatten

public void addCellToFlatten(java.lang.String libName,
                             java.lang.String cellName)
Specify a cell to flatten. The XML is hierarchical, but sometimes you don't need or want all that hierarchy. This specifies a cell that will be flattened

Parameters:
libName - the library that contains the cell
cellName - the name of the cell

setJtagController

public void setJtagController(java.lang.String jtagLib,
                              java.lang.String jtagCellName,
                              int lengthIR)
Specify the JTAG Controller. All scan chains are assumed to start, and end, at the JTAG Controller. This specifies the jtag controller.

Parameters:
jtagLib - the name of the library that holds the jtag controller cell
jtagCellName - the name of the cell that is the jtag controller
lengthIR - the number of instruction register bits in the jtag controller.

addJtagPort

public void addJtagPort(int opcode,
                        java.lang.String soutPortName,
                        java.lang.String chainName)
Add a port to the JTAG Controller that serves as a starting point for a scan chain. A JTAG Controller may have several ports that each have a scan chain attached. The JTAG Controller must have already been specified using setJtagController.

Parameters:
opcode - the opcode for this scan chain
soutPortName - the port name that outputs data for the scan chain. May contain index info, such as "leaf1[1]"
chainName - the name given to this scan chain

startFromExport

public void startFromExport(java.lang.String exportName,
                            java.lang.String chainName)
Start tracing a chain from the specified export in the start cell. This is used to trace a section of the scan chain. This traces only one chain.

Parameters:
exportName -
chainName -

setChipName

public void setChipName(java.lang.String name)
Specify the name of the chip. Only used when writing the chip name to the file.

Parameters:
name - the chip name

setOutput

public void setOutput(java.lang.String file)
Set the output file. This may be an absolute or relative path. If this option is not specified, the output goes to the Electric console.

Parameters:
file - the name of the file.

start

public void start(java.lang.String libName,
                  java.lang.String cellName)
Start tracing all the scan chains from the any instances of specified jtag controller