[14] | 1 | /**CHeaderFile***************************************************************** |
---|
| 2 | |
---|
| 3 | FileName [ltl.h] |
---|
| 4 | |
---|
| 5 | PackageName [ltl] |
---|
| 6 | |
---|
| 7 | Synopsis [Internal declarations.] |
---|
| 8 | |
---|
| 9 | Author [Chao Wang<chao.wang@colorado.EDU>] |
---|
| 10 | |
---|
| 11 | Copyright [This file was created at the University of Colorado at Boulder. |
---|
| 12 | The University of Colorado at Boulder makes no warranty about the suitability |
---|
| 13 | of this software for any purpose. It is presented on an AS IS basis.] |
---|
| 14 | |
---|
| 15 | Revision [$Id: ltl.h,v 1.19 2005/04/30 04:00:25 fabio Exp $] |
---|
| 16 | |
---|
| 17 | ******************************************************************************/ |
---|
| 18 | |
---|
| 19 | #ifndef _LTL |
---|
| 20 | #define _LTL |
---|
| 21 | |
---|
| 22 | /*---------------------------------------------------------------------------*/ |
---|
| 23 | /* Nested includes */ |
---|
| 24 | /*---------------------------------------------------------------------------*/ |
---|
| 25 | #include "vm.h" |
---|
| 26 | #include "ctlsp.h" |
---|
| 27 | #include "hrc.h" |
---|
| 28 | #include "ntk.h" |
---|
| 29 | #include "fsm.h" |
---|
| 30 | /*---------------------------------------------------------------------------*/ |
---|
| 31 | /* Constant declarations */ |
---|
| 32 | /*---------------------------------------------------------------------------*/ |
---|
| 33 | /*define DEBUG_LTLMC */ |
---|
| 34 | |
---|
| 35 | /*---------------------------------------------------------------------------*/ |
---|
| 36 | /* Structure declarations */ |
---|
| 37 | /*---------------------------------------------------------------------------*/ |
---|
| 38 | |
---|
| 39 | |
---|
| 40 | /*---------------------------------------------------------------------------*/ |
---|
| 41 | /* Type declarations */ |
---|
| 42 | /*---------------------------------------------------------------------------*/ |
---|
| 43 | typedef struct LtlAutomatonStruct Ltl_Automaton_t; |
---|
| 44 | typedef struct LtlAutomatonNodeStruct Ltl_AutomatonNode_t; |
---|
| 45 | |
---|
| 46 | |
---|
| 47 | /*---------------------------------------------------------------------------*/ |
---|
| 48 | /* Variable declarations */ |
---|
| 49 | /*---------------------------------------------------------------------------*/ |
---|
| 50 | |
---|
| 51 | |
---|
| 52 | /*---------------------------------------------------------------------------*/ |
---|
| 53 | /* Macro declarations */ |
---|
| 54 | /*---------------------------------------------------------------------------*/ |
---|
| 55 | |
---|
| 56 | |
---|
| 57 | /**AutomaticStart*************************************************************/ |
---|
| 58 | |
---|
| 59 | /*---------------------------------------------------------------------------*/ |
---|
| 60 | /* Function prototypes */ |
---|
| 61 | /*---------------------------------------------------------------------------*/ |
---|
| 62 | |
---|
| 63 | EXTERN void Ltl_Init(void); |
---|
| 64 | EXTERN void Ltl_End(void); |
---|
| 65 | EXTERN Ltl_Automaton_t * Ltl_McFormulaToAutomaton(Ntk_Network_t *network, Ctlsp_Formula_t *Formula, int options_algorithm, int options_rewriting, int options_prunefair, int options_iocompatible, int options_directsim, int options_reversesim, int options_directsimMaximize, int options_verbosity, int checkSemantics); |
---|
| 66 | EXTERN Hrc_Manager_t * Ltl_McAutomatonToNetwork(Ntk_Network_t *designNetwork, Ltl_Automaton_t *automaton, int verbosity); |
---|
| 67 | EXTERN boolean Ltl_FormulaStaticSemanticCheckOnNetwork(Ctlsp_Formula_t *formula, Ntk_Network_t *network, boolean inputsAllowed); |
---|
| 68 | EXTERN Ltl_Automaton_t * Ltl_AutomatonCreate(void); |
---|
| 69 | EXTERN void Ltl_AutomatonFree(gGeneric g); |
---|
| 70 | EXTERN Ltl_AutomatonNode_t * Ltl_AutomatonNodeCreate(Ltl_Automaton_t *aut); |
---|
| 71 | EXTERN void Ltl_AutomatonNodeFree(gGeneric g); |
---|
| 72 | EXTERN void Ltl_AutomatonNodePrint(Ltl_Automaton_t *aut, Ltl_AutomatonNode_t *node); |
---|
| 73 | EXTERN void Ltl_AutomatonPrint(Ltl_Automaton_t *aut, int verbosity); |
---|
| 74 | EXTERN void Ltl_AutomatonToDot(FILE *fp, Ltl_Automaton_t *aut, int level); |
---|
| 75 | EXTERN int Ltl_AutomatonToBlifMv(FILE *fp, Ntk_Network_t *network, Ltl_Automaton_t *A); |
---|
| 76 | EXTERN int Ltl_AutomatonToVerilog(FILE *fp, Ntk_Network_t *network, Ltl_Automaton_t *A); |
---|
| 77 | EXTERN int Ltl_AutomatonToSmv(FILE *fp, Ntk_Network_t *network, Ltl_Automaton_t *A); |
---|
| 78 | EXTERN int Ltl_AutomatonMinimizeByIOCompatible(Ltl_Automaton_t *A, int verbosity); |
---|
| 79 | EXTERN int Ltl_AutomatonMinimizeByDirectSimulation(Ltl_Automaton_t *A, int verbosity); |
---|
| 80 | EXTERN void Ltl_AutomatonAddFairStates(Ltl_Automaton_t *A); |
---|
| 81 | EXTERN int Ltl_AutomatonMaximizeByDirectSimulation(Ltl_Automaton_t *A, int verbosity); |
---|
| 82 | EXTERN int Ltl_AutomatonMinimizeByReverseSimulation(Ltl_Automaton_t *A, int verbosity); |
---|
| 83 | EXTERN int Ltl_AutomatonMinimizeByPrune(Ltl_Automaton_t *A, int verbosity); |
---|
| 84 | EXTERN void Ltl_AutomatonComputeSCC(Ltl_Automaton_t *A, int force); |
---|
| 85 | EXTERN int Ltl_AutomatonIsWeak(Ltl_Automaton_t *A); |
---|
| 86 | EXTERN Mc_AutStrength_t Ltl_AutomatonGetStrength(Ltl_Automaton_t *A); |
---|
| 87 | EXTERN Ltl_Automaton_t * Ltl_AutomatonCreateQuotient(Ltl_Automaton_t *A, st_table *partition); |
---|
| 88 | EXTERN int Ltl_AutomatonVtxGetNodeIdx(vertex_t *v); |
---|
| 89 | |
---|
| 90 | /**AutomaticEnd***************************************************************/ |
---|
| 91 | |
---|
| 92 | #endif /* _LTL */ |
---|