next up previous contents
Next: TR management Up: User's Manual Previous: Operators   Contents

FSM

Each FSM has an internal representation. Each internal representation can be stored on secondary memory on what we call a FSM file. This gives the user the possibility to store intermediate computation results and to exchange information on a FSM and BDD basis. A result of this strategy is to allow the user to perform with great flexibility a certain number of (expensive) operations such as partially traverse a FSM, store intermediate results, and restart reachability analysis afterwards.

Internal and external (on files) formats are pretty alike one to the other. They contain information about the size of the FSM (number of inputs, outputs, latches), names, and BDD representations (for initial state set, next states and output functions, transition relations, and so on). The current format is the following one:


.Fsm <name>

.Size
  .i <Number of Primary Inputs>
  .o <Number of Primary Outputs>
  .l <Number of Memory Elements>
.EndSize

.Ord
  .ordFile <File Name for the Variable Order File>
.EndOrd

.Name
  .i <Name of Primary Input Variables>
  .ps <Name of Present State Variables>
  .ns <Name of Next State Variables>
.EndName

.Index
  .i <Variable Index for Primary Inputs>
  .ps <Variable Index for Present State Variables>
  .ns <Variable Index for Next State Variables>
.EndIndex

.Delta
  .bddFile <File Name for the Next State Functions BDD File>
.EndDelta

.Lambda
  .bddfile <File Name for the Output Functions BDD File>
.EndLambda

.InitState
  .bddFile <File Name for the Initial State Set BDD File>
.EndInitState

.Tr
  .bddFile <File Name for the Transition Relation BDD File>
.EndTr

.Reached
  .bddFile <File Name for the Reachable State Set BDD File>
.EndReached

.EndFsm

In general, not all the sections are present, depending on the ``state'' of the program. For example, the reachable state set at the beginning does not exist and storing the FSM implies not storing the section


.Reached
  .bddfile <File Name for the Reachable State Set BDD File>
.EndReached

Functions are given to perform a certain number of operations on the FSM structure. Namely we allow the user to:

Given the name of the FSM the names of the various files are automatically created and dealt with. Typically if name is the name of the FSM file, name.ord is the name of the variable order file, namedelta.bdd is the name of the file containing the next state function BDD representation, and so on. During storing and loading operations two modes are permitted: In the first mode the FSM file and all the BDD files are loaded, in the second mode only the FSM file is loaded. This features allows the user to explicitly concentrate on the objects he really cares about. For example next state functions, the transition relation and the reachable state set can be loaded separately and optimized with different variable orders in different working sections. The package provides functions to manage (such as load and store or perform operation on) singular object belonging to a FSM (such as BDDs). Normally the FSM description has to be loaded or created before any other object belonging to it (such as the transition relation).


next up previous contents
Next: TR management Up: User's Manual Previous: Operators   Contents
Gianpiero Cabodi
2001-03-25