static int 
BddSizeCompare(
  const void * s1, 
  const void * s2 
)
The function compares two BDDs and return:
1, if size of 1st BDD is greater then 2nd
-1, if size of 1st BDD is smaller then 2nd
0, if both 1st and 2nd BDD have the same size.

Side Effects none

See Also Tr_BddarraySort()
Defined in trSort.c

static int 
MaxMinVSupportCompare(
  const void * s1, 
  const void * s2 
)
Compares BDDs for MAX-MIN-V-SORTING method.

Side Effects none

See Also Tr_BddarraySort()
Defined in trSort.c

static void 
SetSortWeights(
  Tr_Mgr_t * trMgr, Traversal Manager
  char * weights Weights
)
Set sort settings in the Transition Relation Manager reading them from a string.

Side Effects none

Defined in trMgr.c

static char * 
ShowSortWeights(
  Tr_Mgr_t * trMgr Traversal Manager
)
Show sort settings reading them from the Transition Relation manager. Return a string containing them.

Side Effects none

Defined in trMgr.c

Tr_Tr_t * 
TrAlloc(
  Tr_Mgr_t * trMgr 
)
insert a TR in TR manager list.

Side Effects none

Defined in trTr.c

Ddi_Bdd_t * 
TrBuildTransClosure(
  Tr_Mgr_t * trMgr, TR manager
  Ddi_Bdd_t * TR, Transition Relation
  Ddi_Vararray_t * s, Present state vars
  Ddi_Vararray_t * y, Next state vars
  Ddi_Vararray_t * z Intermediate state vars
)
Internal procedure to build the transitive closure of a transition relation. This can now handle a Monolithic TR as well as a disjunctively partitioned one. In the latter case closure is only partial: it is operated within single partitions. The iterative squaring method, expressed by the following recurrence equations:

T(0)(s,y) = TR(s,y)
T(i+1)(s,y)= TR(s,y) + Exist(z) ( T(i)(s,z) * T(i)(z,y) )

The least fixed point is T* (transitive closure) and the number of iterations required to compute T* is logarithmic in the sequential depth of TR (the diameter of the state transition graph represented by TR).
The transitive closure describes the pairs of states that are connected by at least one path in the state graph of FSM.

See Also TrCompose
Defined in trClosure.c

static Ddi_Bdd_t * 
TrCompose(
  Tr_Mgr_t * trMgr, Tr Manager
  Ddi_Bdd_t * f, first function
  Ddi_Bdd_t * g, second function
  Ddi_Vararray_t * s, array of s variables
  Ddi_Vararray_t * y, array of y variables
  Ddi_Vararray_t * z, array of z variables
  Ddi_Varset_t * suppZ z variables as a set
)
Computes the relational composition of f(s,z) and g(z,y), after proper variable substitutions on the initial f(s,y): initially both f and g are expressed as functions of (s,y). This is the basic step of iterative squaring using monolithic transition relations.

Side Effects None

Defined in trClosure.c

static Ddi_Bdd_t * 
TrImgApproxConjPartTr(
  Tr_Mgr_t * TrMgr, Tr manager
  Ddi_Bdd_t * TR, Partitioned TR
  Ddi_Bdd_t * from, Input state set
  Ddi_Vararray_t * psv, Array of present state variables
  Ddi_Vararray_t * nsv, Array of next state variables
  Ddi_Varset_t * smoothV Variables to be abstracted
)
Compute approx image of a conjunctively partitioned transition relation.

Side Effects None

Defined in trImg.c

static Ddi_Bdd_t * 
TrImgConjPartTr(
  Tr_Mgr_t * trMgr, Tr manager
  Ddi_Bdd_t * TR, Partitioned TR
  Ddi_Bdd_t * from, Input constrain
  Ddi_Vararray_t * psv, Array of present state variables
  Ddi_Vararray_t * nsv, Array of next state variables
  Ddi_Varset_t * smoothV Variables to be abstracted
)
Internal image computation function.

Side Effects None

Defined in trImg.c

static Ddi_Bdd_t * 
TrImgDisjPartSet(
  Tr_Mgr_t * TrMgr, Tr manager
  Ddi_Bdd_t * TR, Partitioned TR
  Ddi_Bdd_t * part_from, Input state set
  Ddi_Vararray_t * psv, Array of present state variables
  Ddi_Vararray_t * nsv, Array of next state variables
  Ddi_Varset_t * smoothV Variables to be abstracted
)
Compute image of a disjunctively partitioned from set.

Side Effects None

Defined in trImg.c

static Ddi_Bdd_t * 
TrImgDisjPartTr(
  Tr_Mgr_t * TrMgr, Tr manager
  Ddi_Bdd_t * TR, Partitioned TR
  Ddi_Bdd_t * from, Input state set
  Ddi_Vararray_t * psv, Array of present state variables
  Ddi_Vararray_t * nsv, Array of next state variables
  Ddi_Varset_t * smoothV Variables to be abstracted
)
Compute image of a disjunctively partitioned transition relation

Side Effects None

Defined in trImg.c

Tr_Tr_t * 
TrTrRelWrite(
  Tr_Tr_t * tr, 
  Ddi_Bdd_t * bdd 
)
Write (replace) Bdd relation.

Side Effects none

Defined in trTr.c

char * 
Tr_ImgMethodEnum2String(
  Tr_ImgMethod_e  enumType 
)
Given an Enumerated type Returns a string

Side Effects none

Defined in trUtil.c

Tr_ImgMethod_e 
Tr_ImgMethodString2Enum(
  char * string String to Analyze
)
It receives a string; to facilitate the user that string can be an easy-to-remember predefined code or an integer number (interpreted as a string). It returns the enumerated type.

Side Effects none

Defined in trUtil.c

Ddi_Bdd_t * 
Tr_Img(
  Tr_Tr_t * TR, Partitioned TR
  Ddi_Bdd_t * from Input constrain
)
Compute image of a conjunctively partitioned transition relation.

Side Effects None

See Also Part_BddarrayMultiwayAndExist
Defined in trImg.c

Tr_Mgr_t * 
Tr_MgrInit(
  char * trName, Name of the FSM structure
  Ddi_Mgr_t * dd Decision Diagram Manager
)
Creates a DdManager.

Side Effects none

See Also Ddi_MgrQuit Fsm_MgrQuit Trav_MgrQuit
Defined in trMgr.c

int 
Tr_MgrOperation(
  Tr_Mgr_t * trMgr, TR Manager
  char * string, String
  Pdtutil_MgrOp_t  operationFlag, Operation Flag
  void ** voidPointer, Generic Pointer
  Pdtutil_MgrRet_t * returnFlagP Type of the Pointer Returned
)
Performs an Operation on a Transition Relation Manager. The allowed operations are specified by the enumerated type Pdtutil_MgrOp_t. Returns the result of the operation, the enumerated type Pdtutil_MgrRet_t.

See Also CmdMgrOperation CmdRegOperation Fsm_MgrOperation Trav_MgrOperation
Defined in trMgr.c

int 
Tr_MgrPrintStats(
  Tr_Mgr_t * trMgr Tr manager
)
Prints Statistics on a Transition Relation Manager on standard output.

Defined in trMgr.c

void 
Tr_MgrQuit(
  Tr_Mgr_t * trMgr Tr manager
)
Closes a Transition Relation Manager freeing all the correlated fields.

Side Effects none

See Also Ddi_BddiMgrInit
Defined in trMgr.c

int 
Tr_MgrReadClustThreshold(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read cluster threshold

Side Effects none

Defined in trMgr.c

Ddi_Mgr_t * 
Tr_MgrReadDdiMgrDefault(
  Tr_Mgr_t * trMgr trersal manager
)
Read default DDi Mgr

Side Effects none

Defined in trMgr.c

Tr_ImgMethod_e 
Tr_MgrReadImgMethod(
  Tr_Mgr_t * trMgr Tr Manager
)
Read the image method selection

Side Effects none

Defined in trMgr.c

Ddi_Vararray_t * 
Tr_MgrReadI(
  Tr_Mgr_t * trMgr tr manager
)
Read PI array

Side Effects none

Defined in trMgr.c

int 
Tr_MgrReadMaxIter(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read the maximum number of closure iterations.

Side Effects none

Defined in trMgr.c

Ddi_Vararray_t * 
Tr_MgrReadNS(
  Tr_Mgr_t * trMgr tr manager
)
Read NS array in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

Ddi_Vararray_t * 
Tr_MgrReadPS(
  Tr_Mgr_t * trMgr tr manager
)
Read PS array in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

int 
Tr_MgrReadPartThFrom(
  Tr_Mgr_t * trMgr Tr Manager
)
Read partitioning threshold for from

Side Effects none

Defined in trMgr.c

int 
Tr_MgrReadPartThTr(
  Tr_Mgr_t * trMgr Tr Manager
)
Read partitioning threshold for TR

Side Effects none

Defined in trMgr.c

Part_Method_e 
Tr_MgrReadPartitionMethod(
  Tr_Mgr_t * trMgr Tr Manager
)
Read

Side Effects none

Defined in trMgr.c

Tr_Sort_e 
Tr_MgrReadSortMethod(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read sort method

Side Effects none

Defined in trMgr.c

double 
Tr_MgrReadSortW(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  i 
)
Read sort weight

Side Effects none

Defined in trMgr.c

int 
Tr_MgrReadSquaringMethod(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read the squaring method

Side Effects none

Defined in trMgr.c

char * 
Tr_MgrReadTrName(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read verbosity

Side Effects none

Defined in trMgr.c

Tr_Tr_t * 
Tr_MgrReadTr(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read TR in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

Pdtutil_VerbLevel_e 
Tr_MgrReadVerbosity(
  Tr_Mgr_t * trMgr Transition Relation Manager
)
Read verbosity

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetAuxFuns(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Bddarray_t * auxFuns Array of functions
)
Set the auxVars array in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetAuxVars(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Vararray_t * auxVars Array of variables
)
Set the auxVars array in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetClustSmoothPi(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  val 
)
Set the cluster smoothPi flag

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetClustThreshold(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  ClustThreshold Threshold
)
Set the cluster threshold

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetDdiMgrDefault(
  Tr_Mgr_t * trMgr, trersal manager
  Ddi_Mgr_t * mgr dd Manager
)
Set default DDi Mgr on the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetImgMethod(
  Tr_Mgr_t * trMgr, Tr Manager
  Tr_ImgMethod_e  imgMethod Image Method
)
Set the image method selection

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetImgSmoothPi(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  val 
)
Set the image smoothPi flag

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetI(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Vararray_t * i Array of variables
)
Set the PI array

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetMaxIter(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  maxIter max iterations
)
Set the maximum number of closure iterations

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetNS(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Vararray_t * ns Array of variables
)
Set the NS array in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetPS(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Ddi_Vararray_t * ps Array of Variables
)
Set the PS array

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetPartThFrom(
  Tr_Mgr_t * trMgr, Tr Manager
  int  threshold Threshold value (-1 for no threshold)
)
Set partitioning threshold for from

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetPartThTr(
  Tr_Mgr_t * trMgr, Tr Manager
  int  threshold Threshold value (-1 for no threshold)
)
Set partitioning threshold for TR

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetPartitionMethod(
  Tr_Mgr_t * trMgr, Tr Manager
  Part_Method_e  partitionMethod Partition Method
)
Set

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetSortMethod(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Tr_Sort_e  sortMethod Method
)
Set the sort Method

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetSortW(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  i, 
  double  SortW Weight
)
Set the sort weight

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetSquaringMethod(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  int  method Method
)
Set the squaring method

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetTrName(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  char * trName Traversal Manager Name
)

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetTr(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Tr_Tr_t * tr Transition Relation
)
Set the Transition Relation in the Transition Relation Manager.

Side Effects none

Defined in trMgr.c

void 
Tr_MgrSetVerbosity(
  Tr_Mgr_t * trMgr, Transition Relation Manager
  Pdtutil_VerbLevel_e  verbosity Verbosity
)
Set the period for verbosity enabling.

Side Effects none

Defined in trMgr.c

void 
Tr_RemoveLambdaLatches(
  Tr_Tr_t * tr 
)
Remove the so-called lambda-latches following the strategy presented at ICCAD'96 by Cabodi, Camurati, Quer.

See Also Trav_BuildClusteredTR
Defined in trBuild.c

Ddi_Bdd_t * 
Tr_TrBdd(
  Tr_Tr_t * tr 
)
Return Bdd relation field

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrDup(
  Tr_Tr_t * old 
)
Duplicate a TR

Side Effects none

Defined in trTr.c

void 
Tr_TrFree(
  Tr_Tr_t * tr 
)
Release a TR.

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrMakeFromExpr(
  Tr_Mgr_t * trMgr, 
  Ddi_Expr_t * expr 
)
Create a TR from expression.

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrMakeFromRel(
  Tr_Mgr_t * trMgr, 
  Ddi_Bdd_t * bdd 
)
Create a TR from relation.

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrMakePartConjFromFuns(
  Tr_Mgr_t * trMgr, 
  Ddi_Bddarray_t * Fa, 
  Ddi_Vararray_t * Va 
)
Create a conjunctively partitioned TR from array of functions.

Side Effects none

Defined in trTr.c

Tr_Mgr_t * 
Tr_TrMgr(
  Tr_Tr_t * tr 
)
Return tr Manager

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrReverseAcc(
  Tr_Tr_t * tr 
)
Reverse a TR by swapping present/next state variables

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrReverse(
  Tr_Tr_t * old 
)
Reverse a TR by swapping present/next state variables

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrSetClustered(
  Tr_Tr_t * tr 
)
Transform tr to clustered form.

Side Effects none

Defined in trTr.c

Tr_Tr_t * 
Tr_TrSetMono(
  Tr_Tr_t * tr 
)
Reduce tr from partitioned/clustered to monolithic.

Side Effects none

Defined in trTr.c

char * 
Tr_TrSortEnum2String(
  Tr_Sort_e  enumType 
)
Given an Enumerated type Returns a string

Side Effects none

Defined in trUtil.c

int 
Tr_TrSortIwls95(
  Tr_Tr_t * tr 
)
Given an BDDs'array , the function sorts the BDDs in the array in order to find the best sort for compute esistential abstraction of BDDs product. The smoothing variable set should include the quantifying ones, too. It returns 1 if successfully sorted, 0 otherwise.

Side Effects none

Defined in trSort.c

Tr_Sort_e 
Tr_TrSortString2Enum(
  char * string String to Analyze
)
It receives a string; to facilitate the user that string can be an easy-to-remember predefined code or an integer number (interpreted as a string). It returns the verbosity enumerated type.

Side Effects none

Defined in trUtil.c

Tr_Tr_t * 
Tr_TransClosure(
  Tr_Tr_t * tr 
)
Transitive closure of a Monolithic or Disjunctively partitioned Transition Relation is operated using the iterative squaring method, expressed by the following recurrence equations:

T(0)(s,y) = TR(s,y)
T(i+1)(s,y)= TR(s,y) + Exist(z) ( T(i)(s,z) * T(i)(z,y) )

The least fixed point is T* (transitive closure) and the number of iterations required to compute T* is logarithmic in the sequential depth of TR (the diameter of the state transition graph represented by TR).
The transitive closure describes the pairs of states that are connected by at least one path in the state graph of FSM. This function is a shell to TrBuildTransClosure, where the job is really done. Nothing is done here if the array of "intermediate" z variables is not NULL, whereas a temporary BDD manager is created (and destroyed when the job is done) if z is NULL, to avoid creating new variables in the original manager. Primary input variables (NON quantifying and NON state variables) are not taken into account. This means that they are NOT duplicated at every step as in standart squaring. They should (since they could) be quantifyed out from a monolithic or disjunctively partitioned TR. Otherwise the algorithm only closes paths with constant input values.

Side Effects A Ddi Manager (a BDD manager) is temporarily allocated if required for all the operations involved, if the auxiliary set of variables (Zs) must be created.

See Also TrBuildTransClosure
Defined in trClosure.c

static int 
WeightedSort(
  Tr_Mgr_t * trMgr, Tr manager
  Ddi_Mgr_t * dd, dd manager
  PartitionInfo_t ** FSa, array of Partition Infos
  int  nPart, number of partitions
  Tr_Sort_e  method sorting method
)
The method of sorting is the heuristic method of Ranjan

Side Effects none

See Also Tr_BddarraySort()
Defined in trSort.c

Last updated on 1010515 11h48