Main Page   Namespace List   Alphabetical List   Compound List   File List   Compound Members   File Members  

atpg.hpp File Reference

#include <boost/config.hpp>
#include <functional>
#include <numeric>
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <set>
#include <deque>
#include <boost/static_assert.hpp>
#include <boost/type_traits.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/tuple/tuple.hpp>
#include <boost/pending/queue.hpp>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graph_utility.hpp>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/properties.hpp>
#include <boost/graph/depth_first_search.hpp>
#include <boost/graph/breadth_first_search.hpp>
#include <boost/graph/graphviz.hpp>
#include <boost/graph/reverse_graph.hpp>
#include "Debug.hpp"
#include "DFrontier.hpp"
#include "DLogic.hpp"

Include dependency graph for atpg.hpp:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Compounds

class  BacktraceVisitor
class  GetSignalFunctor
struct  isDTypeFunctor
struct  isXTypeFunctor
class  NodeHelper
class  RunGraph
class  SupportGraph
class  VertexSignalPair
class  XEdgeVisitor

Typedefs

typedef tuple< bool, bool,
bool > 
tripleBool

Functions

template<class VertexType, class VertexAttrMapType> void dumpDFrontier (std::deque< VertexType > &dF, VertexAttrMapType &vMap)
template<class VertexType, class VertexAttrMapType> void dumpSetVS (std::set< VertexSignalPair< VertexType > > &sVS, VertexAttrMapType &vMap)
template<class VertexType, class GraphType> void putDescendantsInDFrontier (VertexType &v, GraphType &g, std::deque< VertexType > &dF)
template<class VertexType, class GraphType> void putDescendantsInPContainer (VertexType &v, GraphType &g, std::deque< VertexType > &cV)
template<typename ContainerType> bool DPassable (ContainerType &vDLogic, DLogic result)
bool OutputConsistent (DLogic sA, DLogic sB)
template<class Vertex, class GraphType> DLogic EvaluateOutputs (Vertex &v, GraphType &g)
DLogic EvaluateSingleInput (const string &func, const string &input)
DLogic EvaluateMultipleInputs (const string &func, vector< DLogic > &v)
template<class VertexType, class GraphType> void setOutputEdges (VertexType &v, GraphType &g, DLogic d)


Typedef Documentation

typedef tuple<bool,bool,bool> tripleBool
 

Further areas of investigation 1) Multiple faults With some changes, the algorithm can be used to simulate multiple faults. The backtrace algorithm remains unchanged since although the set of input vertices may be larger, the suggested signals for each input remains unchanged. In fact, it is possible for one input to cover more than one fault.

The termination condition has to be changed because we currently finish after detecting one output. The only criteria to terminate would be an empty D Frontier. 2) Reconvergent signals As the book [5] indicates, the basic ATPG algorithm does not work in the case of reconvergent fanout. A modified algorithm called PODEM ( path-oriented decision making ) introduces a retry step that addresses this.

Definition at line 135 of file atpg.hpp.

Referenced by RunGraph< GraphType >::propagateChange(), and RunGraph< GraphType >::propagateVertex().


Function Documentation

template<typename ContainerType>
bool DPassable ContainerType &    vDLogic,
DLogic    result
 

Definition at line 289 of file atpg.hpp.

References DLogic::_D, and DLogic::D.

Referenced by RunGraph< GraphType >::propagateChange().

template<class VertexType, class VertexAttrMapType>
void dumpDFrontier std::deque< VertexType > &    dF,
VertexAttrMapType &    vMap
 

Definition at line 210 of file atpg.hpp.

References Debug::Dbg().

Referenced by putDescendantsInDFrontier(), RunGraph< GraphType >::seedDFrontier(), and RunGraph< GraphType >::updateDFrontier().

template<class VertexType, class VertexAttrMapType>
void dumpSetVS std::set< VertexSignalPair< VertexType > > &    sVS,
VertexAttrMapType &    vMap
 

Definition at line 224 of file atpg.hpp.

References Debug::Dbg().

Referenced by RunGraph< GraphType >::runATPG().

DLogic EvaluateMultipleInputs const string &    func,
vector< DLogic > &    v
 

Definition at line 392 of file atpg.hpp.

Referenced by RunGraph< GraphType >::propagateChange().

template<class Vertex, class GraphType>
DLogic EvaluateOutputs Vertex &    v,
GraphType &    g
 

Definition at line 330 of file atpg.hpp.

References Debug::Dbg().

Referenced by RunGraph< GraphType >::propagateChange().

DLogic EvaluateSingleInput const string &    func,
const string &    input
 

Definition at line 378 of file atpg.hpp.

Referenced by RunGraph< GraphType >::propagateChange().

bool OutputConsistent DLogic    sA,
DLogic    sB
 

Definition at line 314 of file atpg.hpp.

Referenced by RunGraph< GraphType >::processOutput().

template<class VertexType, class GraphType>
void putDescendantsInDFrontier VertexType &    v,
GraphType &    g,
std::deque< VertexType > &    dF
 

Definition at line 240 of file atpg.hpp.

References dumpDFrontier().

Referenced by RunGraph< GraphType >::processOutput().

template<class VertexType, class GraphType>
void putDescendantsInPContainer VertexType &    v,
GraphType &    g,
std::deque< VertexType > &    cV
 

Definition at line 256 of file atpg.hpp.

References Debug::Dbg().

Referenced by RunGraph< GraphType >::processOutput().

template<class VertexType, class GraphType>
void setOutputEdges VertexType &    v,
GraphType &    g,
DLogic    d
 

Definition at line 415 of file atpg.hpp.

References DLogic::GetString().

Referenced by RunGraph< GraphType >::processOutput(), and RunGraph< GraphType >::propagateVertex().


Generated on Mon Jan 20 11:54:30 2003 for ATPG by doxygen1.3-rc1