jaga.pj.circuits.fpgaft
Class SimulatorFaultyCircuitOpt

java.lang.Object
  |
  +--jaga.pj.circuits.fpgaft.SimulatorFaultyCircuit
        |
        +--jaga.pj.circuits.fpgaft.SimulatorFaultyCircuitOpt
All Implemented Interfaces:
FaultyCircuit, java.io.Serializable, SimulatorCircuit, StateManipulableSimulatorCircuit

public class SimulatorFaultyCircuitOpt
extends SimulatorFaultyCircuit

A circuit to be simulated. Includes faults, currently only single stuck at faults are simulated. Must be extended to provide the reconfigure method which will take a BitSet and build a network of SimulatorFaultyDelayLE logic elements of whichever type.

See Also:
Serialized Form

Field Summary
static int LINE_HIGH
           
static int NORMAL
           
static int OUTPUT_DIFFERENT
           
 
Fields inherited from class jaga.pj.circuits.fpgaft.SimulatorFaultyCircuit
FAULTS_AS_INPUTS
 
Fields inherited from interface jaga.pj.circuits.SimulatorCircuit
ELEMENTS, INPUTS, OUTPUTS
 
Constructor Summary
SimulatorFaultyCircuitOpt(CircuitMapping mapping)
           
SimulatorFaultyCircuitOpt(CircuitMapping mapping, int DQTol, int lineHighSize)
           
SimulatorFaultyCircuitOpt(CircuitMapping mapping, int DQTol, int lineHighSize, int nrLinesToScan)
           
SimulatorFaultyCircuitOpt(CircuitMapping mapping, int DQTol, int lineHighSize, int nrLinesToScan, int time2Rst)
           
SimulatorFaultyCircuitOpt(CircuitMapping mapping, int DQTol, int lineHighSize, int nrLinesToScan, int time2Rst, int ignoreAtStart)
           
SimulatorFaultyCircuitOpt(CircuitMapping mapping, int DQTol, int lineHighSize, int nrLinesToScan, int time2Rst, int ignoreAtStart, int groupEvery)
           
 
Method Summary
 SampleData[] run(SampleData[] inputData)
           
 SampleData[] run(SampleData[] inputData, SampleData[] desQ, int[] retVal2)
          Omitted fault, insFautlAt, stopAt
 SampleData[] run(SampleData[] inputData, SampleData[] desQ, int[] retVal2, int stopAt)
          Omitted fault, insFaultAt
 SampleData[] run(SampleData[] inputData, SampleData[] desQ, int[] retVal2, java.awt.Point fault, int insFAt)
          Omitted stopAt
 SampleData[] run(SampleData[] inputData, SampleData[] desQ, int[] retVal2, java.awt.Point fault, int insFAt, int stopAt)
          Sends these inputs to the circuit and returns the outputs.
 java.lang.String toString()
           
 
Methods inherited from class jaga.pj.circuits.fpgaft.SimulatorFaultyCircuit
getElements, getInOutEls, getState, randomReset, reconfigure, removeFault, removeFault, reset, resetDelays, run, setFault, setFault, setPersistentFaults, setPersistentFaults, setRunMode, setState
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NORMAL

public static final int NORMAL

OUTPUT_DIFFERENT

public static final int OUTPUT_DIFFERENT

LINE_HIGH

public static final int LINE_HIGH
Constructor Detail

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping)

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping,
                                 int DQTol,
                                 int lineHighSize)

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping,
                                 int DQTol,
                                 int lineHighSize,
                                 int nrLinesToScan)

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping,
                                 int DQTol,
                                 int lineHighSize,
                                 int nrLinesToScan,
                                 int time2Rst)

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping,
                                 int DQTol,
                                 int lineHighSize,
                                 int nrLinesToScan,
                                 int time2Rst,
                                 int ignoreAtStart)

SimulatorFaultyCircuitOpt

public SimulatorFaultyCircuitOpt(CircuitMapping mapping,
                                 int DQTol,
                                 int lineHighSize,
                                 int nrLinesToScan,
                                 int time2Rst,
                                 int ignoreAtStart,
                                 int groupEvery)
Method Detail

run

public SampleData[] run(SampleData[] inputData)
Overrides:
run in class SimulatorFaultyCircuit

run

public SampleData[] run(SampleData[] inputData,
                        SampleData[] desQ,
                        int[] retVal2)
Omitted fault, insFautlAt, stopAt

run

public SampleData[] run(SampleData[] inputData,
                        SampleData[] desQ,
                        int[] retVal2,
                        int stopAt)
Omitted fault, insFaultAt

run

public SampleData[] run(SampleData[] inputData,
                        SampleData[] desQ,
                        int[] retVal2,
                        java.awt.Point fault,
                        int insFAt)
Omitted stopAt

run

public SampleData[] run(SampleData[] inputData,
                        SampleData[] desQ,
                        int[] retVal2,
                        java.awt.Point fault,
                        int insFAt,
                        int stopAt)

Sends these inputs to the circuit and returns the outputs. The input sample separation is taken into account to sample the outputs at the appropriate frequency.

If faults are sent with inptus, the first ( ( bitsPerVar + 1 ) * nrSSAFaults ) SampleDatas define stuck at faults to be simualted at each point in the input test. For each of the bitsPerVar + 1 sections, the bitsPerVar encode which element is faulty and the extra bit what value it's stuck at.

The retVal2 hack is used so that the state of termination of the method can be sent back to the caller. The more proper way of doing this would be to throw Exceptions containing the output data so far, but this would be adding inefficiency to an optimization...

Parameters:
inputData - Inputs fed into circuit, usually their input sample separation > 1.
desQ - Desired outputs, if these are different to the current ones for more than DQTolerance we abort with retVal2 flagging OUTPUT_DIFFERENT.
retVal2 - int array that must be passed with one element. It is actually used to return an extra value.
fault - Point defining fault to insert during run. (<0 = never )
infFAt - Position in input test pattern to insert the fault at.
stopAt - Position in input test pattern to halt and exit with retval2[ 0 ] = NORMAL

toString

public java.lang.String toString()
Overrides:
toString in class SimulatorFaultyCircuit