1 | /**CHeaderFile***************************************************************** |
---|
2 | |
---|
3 | FileName [truesim.h] |
---|
4 | |
---|
5 | PackageName [truesim] |
---|
6 | |
---|
7 | Synopsis [Exported functions and data structures for the truesim package.] |
---|
8 | |
---|
9 | Description [Exported functions and data structures for the truesim |
---|
10 | package. This package provides procedures to perform pattern based |
---|
11 | zero delay and levelized two-pass event-driven simulation of |
---|
12 | circuits described in BLIF format. Pattern vectors to be simulated |
---|
13 | can either be provided or can be generated using user-specified |
---|
14 | primary input probabilities. Only combinational circuits are |
---|
15 | supported at this time.] |
---|
16 | |
---|
17 | SeeAlso [truesimInt.h] |
---|
18 | |
---|
19 | Author [Balakrishna Kumthekar] |
---|
20 | |
---|
21 | Copyright [This file was created at the University of Colorado at Boulder. |
---|
22 | The University of Colorado at Boulder makes no warranty about the suitability |
---|
23 | of this software for any purpose. It is presented on an AS IS basis.] |
---|
24 | |
---|
25 | ******************************************************************************/ |
---|
26 | |
---|
27 | #ifndef _TRUESIM |
---|
28 | #define _TRUESIM |
---|
29 | |
---|
30 | #include "part.h" |
---|
31 | #include "cmd.h" |
---|
32 | #include "util.h" |
---|
33 | |
---|
34 | /*---------------------------------------------------------------------------*/ |
---|
35 | /* Constant declarations */ |
---|
36 | /*---------------------------------------------------------------------------*/ |
---|
37 | |
---|
38 | |
---|
39 | /*---------------------------------------------------------------------------*/ |
---|
40 | /* Type declarations */ |
---|
41 | /*---------------------------------------------------------------------------*/ |
---|
42 | |
---|
43 | |
---|
44 | /*---------------------------------------------------------------------------*/ |
---|
45 | /* Structure declarations */ |
---|
46 | /*---------------------------------------------------------------------------*/ |
---|
47 | |
---|
48 | |
---|
49 | /*---------------------------------------------------------------------------*/ |
---|
50 | /* Variable declarations */ |
---|
51 | /*---------------------------------------------------------------------------*/ |
---|
52 | |
---|
53 | |
---|
54 | /*---------------------------------------------------------------------------*/ |
---|
55 | /* Macro declarations */ |
---|
56 | /*---------------------------------------------------------------------------*/ |
---|
57 | |
---|
58 | |
---|
59 | /**AutomaticStart*************************************************************/ |
---|
60 | |
---|
61 | /*---------------------------------------------------------------------------*/ |
---|
62 | /* Function prototypes */ |
---|
63 | /*---------------------------------------------------------------------------*/ |
---|
64 | |
---|
65 | EXTERN void Truesim_Init(void); |
---|
66 | EXTERN void Truesim_End(void); |
---|
67 | EXTERN int Truesim_RealDelayPatternSimulate(Ntk_Network_t *network, array_t *inputArray, array_t *patternArray); |
---|
68 | EXTERN void Truesim_InitializeSimulation(Ntk_Network_t *network, char *delayFile, boolean truedelay, int header, int verbose, st_table *nodeDelayTable); |
---|
69 | EXTERN void Truesim_QuitSimulation(Ntk_Network_t *network); |
---|
70 | EXTERN void Truesim_NetworkUpdateNodeTopologicalDepth(Ntk_Network_t *network); |
---|
71 | EXTERN void Truesim_ReadInputProbabilities(Ntk_Network_t *network, char *probFile, array_t *inputArray, array_t *probArray); |
---|
72 | EXTERN void Truesim_GeneratePrimaryInputProbs(Ntk_Network_t *network, char *probFile); |
---|
73 | EXTERN int Truesim_ReadSimulationVectors(Ntk_Network_t *network, char *simFile, array_t *inputArray, array_t *patternArray); |
---|
74 | EXTERN array_t * Truesim_GenerateRandomVectors(Ntk_Network_t *network, array_t *probArray, array_t *patternArray, int numInputs, int N); |
---|
75 | EXTERN void Truesim_DumpSimulationVectors(Ntk_Network_t *network, array_t *inputArray, array_t *patternArray, char *outFile); |
---|
76 | EXTERN array_t * Truesim_NetworkComputeNodeDepths(Ntk_Network_t *network); |
---|
77 | EXTERN int Truesim_NetworkReadNodeDepth(Ntk_Network_t *network, Ntk_Node_t *node); |
---|
78 | EXTERN float Truesim_NetworkReadNodeProbability(Ntk_Network_t *network, Ntk_Node_t *node); |
---|
79 | EXTERN float Truesim_NetworkReadNodeSwitchingProb(Ntk_Network_t *network, Ntk_Node_t *node); |
---|
80 | EXTERN float Truesim_NetworkReadNodeLoad(Ntk_Network_t *network, Ntk_Node_t *node); |
---|
81 | EXTERN float Truesim_NetworkReadNodeDelay(Ntk_Network_t *network, Ntk_Node_t *node); |
---|
82 | EXTERN boolean Truesim_NetworkSetNodeLoad(Ntk_Network_t *network, Ntk_Node_t *node, float load); |
---|
83 | EXTERN boolean Truesim_NetworkSetNodeDelay(Ntk_Network_t *network, Ntk_Node_t *node, float delay); |
---|
84 | EXTERN boolean Truesim_NetworkSetNodeStaticProb(Ntk_Network_t *network, Ntk_Node_t *node, float prob); |
---|
85 | EXTERN boolean Truesim_NetworkSetNodeSwitchingProb(Ntk_Network_t *network, Ntk_Node_t *node, float switching); |
---|
86 | EXTERN float Truesim_BddNodeComputeProbability(Ntk_Network_t *network, bdd_node *func); |
---|
87 | EXTERN int Truesim_ZeroDelayPatternSimulate(Ntk_Network_t *network, array_t *inputArray, array_t *patternArray); |
---|
88 | |
---|
89 | /**AutomaticEnd***************************************************************/ |
---|
90 | |
---|
91 | #endif /* _TRUESIM */ |
---|