char * 
Fsm_BddFormatInt2String(
  int  intValue 
)
Given an Integer Returns a string

Side Effects none


int 
Fsm_BddFormatString2Int(
  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 integer DDDMP value.

Side Effects none


int 
Fsm_BlifStore(
  Fsm_Mgr_t * fsmMgr, FSM structure
  int  reduceDelta, If 0 Store Original Delta, if 1 Store Dummy Delta
  char * fileName, Output File Name
  FILE * fp File Pointer
)
If the filename is stdout print out the file on standard output.

See Also Ddi_BddarrayStore Ddi_BddarrayRead Ddi_BddarrayNum

void 
Fsm_CommonEnableCompute(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  Fsm_Retime_t * retimeStrPtr Retime Structure
)


void 
Fsm_EnableDependencyCompute(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  Fsm_Retime_t * retimeStrPtr Retime Structure
)


void 
Fsm_FindRemovableLatches(
  Ddi_Mgr_t * dd, 
  int * removableLatches, 
  Ddi_Bddarray_t * delta, 
  Ddi_Vararray_t * sarray, 
  Ddi_Varset_t * inputs, 
  int  ns 
)

Side Effects none


void 
Fsm_MgrAuxVarRemove(
  Fsm_Mgr_t * fsmMgr FSM Manager
)
The same FSM is returned in any case.

Side Effects none


int 
Fsm_MgrCheck(
  Fsm_Mgr_t * fsmMgr FSM structure
)
Check the Congruence of a FSM structure. Return 1 if the FSM is a NULL pointer or it is not correct. Return 0 otherwise.

Side Effects none


Fsm_Mgr_t * 
Fsm_MgrDup(
  Fsm_Mgr_t * fsmMgr FSM Manager
)
The new FSM is allocated and all the field are duplicated from the original FSM.

Side Effects none

See Also Fsm_MgrInit ()

Fsm_Mgr_t * 
Fsm_MgrInit(
  char * fsmName Name of the FSM structure
)
Notice: Direct access to fileds is used, because macros check for NULL fields to discover memory leaks.

Side Effects none


int 
Fsm_MgrLoadFromBlif(
  Fsm_Mgr_t ** fsmMgrP, FSM Pointer
  Ddi_Mgr_t * dd, BDD manager
  char * fileFsmName, FSM File Name
  char * fileOrdName, ORD File Name
  int  bddFlag, Not Used For Now
  Pdtutil_VariableOrderFormat_e  ordFileFormat Order File Format
)
The function gives a compatible DDI:

Side Effects None


int 
Fsm_MgrLoad(
  Fsm_Mgr_t ** fsmMgrP, FSM Pointer
  Ddi_Mgr_t * dd, Main DD manager
  char * fileFsmName, Input file name
  char * fileOrdName, ORD File Name
  int  bddFlag, 0=Do non load BDD (default), 1=Load BDD
  Pdtutil_VariableOrderFormat_e  ordFileFormat 
)

See Also get_name_file readFsm

int 
Fsm_MgrOperation(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  char * string, String
  Pdtutil_MgrOp_t  operationFlag, Operation Flag
  void ** voidPointer, Generic Pointer
  Pdtutil_MgrRet_t * returnFlagP Type of the Pointer Returned
)

See Also CmdMgrOperation CmdRegOperation Trav_MgrOperation Tr_MgrOperation

int 
Fsm_MgrPMBuild(
  Fsm_Mgr_t ** fsmMgrPMP, FSM Product Machine Pointer
  Fsm_Mgr_t * fsmMgr1, First FSM
  Fsm_Mgr_t * fsmMgr2 Second FSM
)

See Also get_name_file readFsm

void 
Fsm_MgrPrintPrm(
  Fsm_Mgr_t * fsmMgr 
)
Prints the permutation on file "tmp.prm"

Side Effects none


void 
Fsm_MgrPrintStats(
  Fsm_Mgr_t * fsmMgr 
)
Prints Statistics on the FSM Structure

Side Effects none

See Also Ddi_MgrPrintStats Tr_MgrPrintStats Trav_MgrPrintStats

void 
Fsm_MgrQuit(
  Fsm_Mgr_t * fsmMgr FSM Manager
)
Frees unused FSM structure members

Side Effects none

See Also Ddi_MgrQuit Tr_MgrQuit Trav_MgrQuit

Ddi_Bddarray_t * 
Fsm_MgrReadAuxVarBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadAuxVarName(
  Fsm_Mgr_t * fsmMgr 
)


int 
Fsm_MgrReadBddFormat(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Mgr_t * 
Fsm_MgrReadDdManager(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bddarray_t * 
Fsm_MgrReadDeltaBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadDeltaName(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadFileName(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bdd_t * 
Fsm_MgrReadFromBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadFromName(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadFromString(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadFsmName(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadIndexAuxVar(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadIndexI(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadIndexNS(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadIndexO(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadIndexPS(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bdd_t * 
Fsm_MgrReadInitBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadInitName(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadInitString(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadInvauxids(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bddarray_t * 
Fsm_MgrReadLambdaBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadLambdaName(
  Fsm_Mgr_t * fsmMgr 
)


int 
Fsm_MgrReadNAuxVar(
  Fsm_Mgr_t * fsmMgr 
)


int 
Fsm_MgrReadNI(
  Fsm_Mgr_t * fsmMgr 
)


int 
Fsm_MgrReadNL(
  Fsm_Mgr_t * fsmMgr 
)


int 
Fsm_MgrReadNO(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNameAuxVar(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNameI(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNameNSTrueName(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNameNS(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNameO(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadNamePS(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadOrdFileName(
  Fsm_Mgr_t * fsmMgr 
)


void 
Fsm_MgrReadOrdFile(
  FILE * fp, 
  Fsm_Mgr_t * fsmMgr, 
  Pdtutil_VariableOrderFormat_e  ordFileFormat 
)
Reads variable order from a .ord file


char ** 
Fsm_MgrReadOrdNodeName(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadOrdNodeid(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bdd_t * 
Fsm_MgrReadReachedBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadReachedName(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadReachedString(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Bdd_t * 
Fsm_MgrReadTrBDD(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadTrName(
  Fsm_Mgr_t * fsmMgr 
)


char * 
Fsm_MgrReadTrString(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Vararray_t * 
Fsm_MgrReadVarAuxVar(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Vararray_t * 
Fsm_MgrReadVarI(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Vararray_t * 
Fsm_MgrReadVarNS(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Vararray_t * 
Fsm_MgrReadVarO(
  Fsm_Mgr_t * fsmMgr 
)


Ddi_Vararray_t * 
Fsm_MgrReadVarPS(
  Fsm_Mgr_t * fsmMgr 
)


int * 
Fsm_MgrReadVarauxids(
  Fsm_Mgr_t * fsmMgr 
)


char ** 
Fsm_MgrReadVarnames(
  Fsm_Mgr_t * fsmMgr 
)


Pdtutil_VerbLevel_e 
Fsm_MgrReadVerbosity(
  Fsm_Mgr_t * fsmMgr 
)


void 
Fsm_MgrSetAuxVarBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bddarray_t * var 
)


void 
Fsm_MgrSetAuxVarName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetBddFormat(
  Fsm_Mgr_t * fsmMgr, 
  int  var 
)


void 
Fsm_MgrSetDdManager(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Mgr_t * var 
)


void 
Fsm_MgrSetDeltaBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bddarray_t * delta 
)


void 
Fsm_MgrSetDeltaName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetFileName(
  Fsm_Mgr_t * fsmMgr, 
  char * fileName 
)


void 
Fsm_MgrSetFromBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bdd_t * var 
)


void 
Fsm_MgrSetFromName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetFromString(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetFsmName(
  Fsm_Mgr_t * fsmMgr, 
  char * fsmName 
)


void 
Fsm_MgrSetIndexAuxVar(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetIndexI(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetIndexNS(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetIndexO(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetIndexPS(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetInitBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bdd_t * var 
)


void 
Fsm_MgrSetInitName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetInitString(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetInvauxids(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetLambdaBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bddarray_t * var 
)


void 
Fsm_MgrSetLambdaName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetNAuxVar(
  Fsm_Mgr_t * fsmMgr, 
  int  var 
)


void 
Fsm_MgrSetNI(
  Fsm_Mgr_t * fsmMgr, 
  int  var 
)


void 
Fsm_MgrSetNL(
  Fsm_Mgr_t * fsmMgr, 
  int  var 
)


void 
Fsm_MgrSetNO(
  Fsm_Mgr_t * fsmMgr, 
  int  var 
)


void 
Fsm_MgrSetNameAuxVar(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetNameI(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetNameNSTrueName(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetNameNS(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetNameO(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetNamePS(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetOrdFileName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetOrdNodeName(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetOrdNodeid(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetReachedBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bdd_t * var 
)


void 
Fsm_MgrSetReachedName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetReachedString(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetTrBDD(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Bdd_t * var 
)


void 
Fsm_MgrSetTrName(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetTrString(
  Fsm_Mgr_t * fsmMgr, 
  char * var 
)


void 
Fsm_MgrSetVarAuxVar(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Vararray_t * var 
)


void 
Fsm_MgrSetVarI(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Vararray_t * var 
)


void 
Fsm_MgrSetVarNS(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Vararray_t * var 
)


void 
Fsm_MgrSetVarO(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Vararray_t * var 
)


void 
Fsm_MgrSetVarPS(
  Fsm_Mgr_t * fsmMgr, 
  Ddi_Vararray_t * var 
)


void 
Fsm_MgrSetVarauxids(
  Fsm_Mgr_t * fsmMgr, 
  int * var 
)


void 
Fsm_MgrSetVarnamesOne(
  Fsm_Mgr_t * fsmMgr, 
  char * var, 
  int  i 
)


void 
Fsm_MgrSetVarnames(
  Fsm_Mgr_t * fsmMgr, 
  char ** var 
)


void 
Fsm_MgrSetVerbosity(
  Fsm_Mgr_t * fsmMgr, 
  Pdtutil_VerbLevel_e  var 
)


int 
Fsm_MgrStore(
  Fsm_Mgr_t * fsmMgr, FSM Structure
  char * fileName, Output File Name
  FILE * fp, File Pointer
  int  bddFlag, Flag to Store or Not BDD on Files
  int  bddFormat, 0 = default, 1 = text, 2 = binary
  Pdtutil_VariableOrderFormat_e  ordFileFormat 
)
Stores (on file o stdout) of FSM structure.

See Also Ddi_BddarrayStore Ddi_BddarrayRead Ddi_BddarrayNum

void 
Fsm_OptimalRetimingCompute(
  Ddi_Mgr_t * dd, 
  Pdtutil_VerbLevel_e  verbosity, 
  int  retimeEqual, 
  int * retimeDeltas, 
  Ddi_Varset_t ** deltaSupp, 
  Ddi_Bddarray_t * enableArray, 
  Ddi_Bdd_t * en, 
  Ddi_Vararray_t * sarray, 
  int  ns, 
  Ddi_Varset_t * latches, 
  Ddi_Varset_t * inputs, 
  Ddi_Varset_t * notRetimed 
)

Side Effects none


int 
Fsm_PortBnetBuildNodeBDD(
  Ddi_Mgr_t * dd, DD manager
  FsmPortBnetNode_t * nd, node of the boolean network
  st_table * hash, symbol table of the boolean network
  int  params, type of DD to be built
  int  nodrop retain the intermediate node DDs until the end
)
Builds the BDD for the function of a node and stores a pointer to it in the dd field of the node itself. The reference count of the BDD is incremented. If params is PORT_BNETLOCAL_DD, then the BDD is built in terms of the local inputs to the node; otherwise, if params is PORT_BNETGLOBAL_DD, the BDD is built in terms of the network primary inputs. To build the global BDD of a node, the BDDs for its local inputs must exist. If that is not the case, Fsm_PortBnetBuildNodeBDD recursively builds them. Likewise, to create the local BDD for a node, the local inputs must have variables assigned to them. If that is not the case, Fsm_PortBnetBuildNodeBDD recursively assigns variables to nodes. Fsm_PortBnetBuildNodeBDD returns 1 in case of success; 0 otherwise.

Side Effects Sets the dd field of the node.


int 
Fsm_PortBnetDfsVariableOrder(
  Ddi_Mgr_t * dd, 
  FsmPortBnetNetwork_t * net 
)
Orders the BDD variables by DFS. Returns 1 in case of success; 0 otherwise.

Side Effects Uses the visited flags of the nodes.


void 
Fsm_PortBnetFreeNetwork(
  FsmPortBnetNetwork_t * net 
)
Frees a boolean network created by Fsm_PortBnetReadNetwork.

Side Effects None

See Also Fsm_PortBnetReadNetwork

FsmPortBnetNetwork_t * 
Fsm_PortBnetReadNetwork(
  FILE * fp, pointer to the blif file
  int  pr verbosity level
)
Reads a boolean network from a blif file. A very restricted subset of blif is supfsmPorted. Specifically: Caveat emptor: There may be other limitations as well. One should check the syntax of the blif file with some other tool before relying on this parser. Fsm_PortBnetReadNetwork returns a pointer to the network if successful; NULL otherwise.

Side Effects None

See Also Fsm_PortBnetPrintNetwork Fsm_PortBnetFreeNetwork

int 
Fsm_PortBnetReadOrder(
  Ddi_Mgr_t * dd, 
  char * ordFile, 
  FsmPortBnetNetwork_t * net, 
  int  locGlob, 
  int  nodrop, 
  Pdtutil_VariableOrderFormat_e  ordFileFormat 
)
Reads the variable order from a file. Returns 1 if successful; 0 otherwise.

Side Effects The BDDs for the primary inputs and present state variables are built.


int 
Fsm_PortNtrBuildDDs(
  FsmPortBnetNetwork_t * net, network for which DDs are to be built
  Ddi_Mgr_t * dd, DD manager
  FsmPortNtrOptions_t * option, option structure
  Pdtutil_VariableOrderFormat_e  ordFileFormat 
)
Builds DDs for a network outputs and next state functions. The method is really brain-dead, but it is very simple. Returns 1 in case of success; 0 otherwise. Some inputs to the network may be shared with another network whose DDs have already been built. In this case we want to share the DDs as well.

Side Effects the dd fields of the network nodes are modified. Uses the count fields of the nodes.


Ddi_Bdd_t * 
Fsm_PortNtrInitState(
  Ddi_Mgr_t * dd, 
  FsmPortBnetNetwork_t * net, 
  FsmPortNtrOptions_t * option 
)
Builds the BDD of the initial state(s). Returns a BDD if successful; NULL otherwise.

Side Effects None


Fsm_Mgr_t * 
Fsm_RetimeApply(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  Fsm_Retime_t * retimeStrPtr Retime Structure
)
There should be a 1 to 1 correspondence between the retiming array (retimeStrPtr->retimeArray) and the delta array.


void 
Fsm_RetimeCompute(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  Fsm_Retime_t * retimeStrPtr Retime Structure
)


Fsm_Mgr_t * 
Fsm_RetimeForRACompute(
  Fsm_Mgr_t * fsmMgr, FSM Manager
  Fsm_Retime_t * retimeStrPtr 
)


Last updated on 1010515 11h48