1 | /**CHeaderFile***************************************************************** |
---|
2 | |
---|
3 | FileName [hrc.h] |
---|
4 | |
---|
5 | PackageName [hrc] |
---|
6 | |
---|
7 | Synopsis [Hierarchical representation of a design.] |
---|
8 | |
---|
9 | Description [The concept of a hierarchy is directly related to the |
---|
10 | constructs in a blifmv file. It is built around three important data |
---|
11 | structures viz. Hrc_Model_t, Hrc_Subckt_t and Hrc_Node_t. These will be |
---|
12 | referred to as model, subckt and node.<p> |
---|
13 | |
---|
14 | A model corresponds directly to a model definition in a blifmv file. It can |
---|
15 | be viewed as a black box with some I/O pins. A model could call another |
---|
16 | model as a module within itself using names for the I/O pins which are, in |
---|
17 | general, different from those actually used inside the model that is |
---|
18 | called. The correspondence between the two sets of names is stored in a |
---|
19 | subckt. A call to a model will henceforth be referred to as an instantiation |
---|
20 | of the model.<p> |
---|
21 | |
---|
22 | Since a given model could be called by many other models, it is necessary to |
---|
23 | distinguish between its different instantiations. An instantiation is |
---|
24 | represented by a node. A hierarchy is a tree of nodes. The root node of the |
---|
25 | tree corresponds to the single instantiation of the root model in a blifmv |
---|
26 | file. An instantiation of a model results in the instantiation of all models |
---|
27 | recursively called by it. Thus, the instantiation of root model results in a |
---|
28 | tree structure being formed.<p> |
---|
29 | |
---|
30 | There is also a structure called a hierarchy manager which contains a list |
---|
31 | of all models and pointers to the root node and the current node. The |
---|
32 | current node represents the current position in the hierarchy. The designer |
---|
33 | can, if he wishes, make changes in this node only, or modify the whole |
---|
34 | sub-tree below it.] |
---|
35 | |
---|
36 | SeeAlso [hrcInt.h] |
---|
37 | |
---|
38 | Author [Yuji Kukimoto, Shaz Qadeer] |
---|
39 | |
---|
40 | Copyright [Copyright (c) 1994-1996 The Regents of the Univ. of California. |
---|
41 | All rights reserved. |
---|
42 | |
---|
43 | Permission is hereby granted, without written agreement and without license |
---|
44 | or royalty fees, to use, copy, modify, and distribute this software and its |
---|
45 | documentation for any purpose, provided that the above copyright notice and |
---|
46 | the following two paragraphs appear in all copies of this software. |
---|
47 | |
---|
48 | IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR |
---|
49 | DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT |
---|
50 | OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF |
---|
51 | CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
---|
52 | |
---|
53 | THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, |
---|
54 | INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND |
---|
55 | FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN |
---|
56 | "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE |
---|
57 | MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.] |
---|
58 | |
---|
59 | Revision [$Id: hrc.h,v 1.5 2005/04/16 04:23:47 fabio Exp $] |
---|
60 | |
---|
61 | ******************************************************************************/ |
---|
62 | |
---|
63 | #ifndef _HRC |
---|
64 | #define _HRC |
---|
65 | |
---|
66 | /*---------------------------------------------------------------------------*/ |
---|
67 | /* Constant declarations */ |
---|
68 | /*---------------------------------------------------------------------------*/ |
---|
69 | |
---|
70 | |
---|
71 | /*---------------------------------------------------------------------------*/ |
---|
72 | /* Type declarations */ |
---|
73 | /*---------------------------------------------------------------------------*/ |
---|
74 | |
---|
75 | typedef struct HrcModelStruct Hrc_Model_t; |
---|
76 | typedef struct HrcManagerStruct Hrc_Manager_t; |
---|
77 | typedef struct HrcNodeStruct Hrc_Node_t; |
---|
78 | typedef struct HrcSubcktStruct Hrc_Subckt_t; |
---|
79 | typedef struct HrcLatchStruct Hrc_Latch_t; |
---|
80 | typedef void (*Hrc_ApplInfoFreeFn) (void *); |
---|
81 | typedef void (*Hrc_ApplInfoChangeFn) (Hrc_Node_t *, Hrc_Node_t *, void **); |
---|
82 | |
---|
83 | |
---|
84 | /*---------------------------------------------------------------------------*/ |
---|
85 | /* Stucture declarations */ |
---|
86 | /*---------------------------------------------------------------------------*/ |
---|
87 | |
---|
88 | |
---|
89 | /*---------------------------------------------------------------------------*/ |
---|
90 | /* Variable declarations */ |
---|
91 | /*---------------------------------------------------------------------------*/ |
---|
92 | |
---|
93 | |
---|
94 | /*---------------------------------------------------------------------------*/ |
---|
95 | /* Macro declarations */ |
---|
96 | /*---------------------------------------------------------------------------*/ |
---|
97 | |
---|
98 | /**Macro*********************************************************************** |
---|
99 | |
---|
100 | Synopsis [Iterates over the models in the hierarchy manager.] |
---|
101 | |
---|
102 | Description [This macro iterates over the models in the hierarchy manager. |
---|
103 | It is an error to modify the models while iterating over them.] |
---|
104 | |
---|
105 | SideEffects [] |
---|
106 | |
---|
107 | SeeAlso [] |
---|
108 | |
---|
109 | ******************************************************************************/ |
---|
110 | #define Hrc_ManagerForEachModel( \ |
---|
111 | /* Hrc_Manager_t * */ manager /* manager to iterate models */, \ |
---|
112 | /* st_generator * */ gen /* local variable for iterator */,\ |
---|
113 | /* char * */ modelName /* name of model */, \ |
---|
114 | /* Hrc_Model_t * */ model /* model * */ \ |
---|
115 | ) \ |
---|
116 | st_foreach_item(Hrc_ManagerReadModelTable(manager), gen, &(modelName), &(model)) |
---|
117 | |
---|
118 | /**Macro*********************************************************************** |
---|
119 | |
---|
120 | Synopsis [Iterates over the formal inputs of a node.] |
---|
121 | |
---|
122 | Description [This macro iterates over the formal inputs of a node. It is an |
---|
123 | error to modify the formal inputs while iterating over them.] |
---|
124 | |
---|
125 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
126 | it is advisable not to nest this macro within array macros.] |
---|
127 | |
---|
128 | SeeAlso [Hrc_NodeForEachFormalOutput()] |
---|
129 | |
---|
130 | ******************************************************************************/ |
---|
131 | #define Hrc_NodeForEachFormalInput( \ |
---|
132 | /* Hrc_Node_t * */ node /* node to iterate inputs */, \ |
---|
133 | /* int */ i /* local variable for iterator */,\ |
---|
134 | /* Var_Variable_t * */ var /* input variable of node */ \ |
---|
135 | ) \ |
---|
136 | arrayForEachItem(Var_Variable_t *, Hrc_NodeReadFormalInputs(node), i, var) |
---|
137 | |
---|
138 | /**Macro*********************************************************************** |
---|
139 | |
---|
140 | Synopsis [Iterates over the formal outputs of a node.] |
---|
141 | |
---|
142 | Description [This macro iterates over the formal outputs of a node. It is an |
---|
143 | error to modify the formal outputs while iterating over them.] |
---|
144 | |
---|
145 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
146 | it is advisable not to nest this macro within array macros.] |
---|
147 | |
---|
148 | SeeAlso [Hrc_NodeForEachFormalInput()] |
---|
149 | |
---|
150 | ******************************************************************************/ |
---|
151 | #define Hrc_NodeForEachFormalOutput( \ |
---|
152 | /* Hrc_Node_t * */ node /* node to iterate outputs */, \ |
---|
153 | /* int */ i /* local variable for iterator */,\ |
---|
154 | /* Var_Variable_t * */ var /* output variable of node */ \ |
---|
155 | ) \ |
---|
156 | arrayForEachItem(Var_Variable_t *, Hrc_NodeReadFormalOutputs(node), i, var) |
---|
157 | |
---|
158 | /**Macro*********************************************************************** |
---|
159 | |
---|
160 | Synopsis [Iterates over the actual inputs of a model.] |
---|
161 | |
---|
162 | Description [This macro iterates over the actual inputs of a node. It is an |
---|
163 | error to modify the actual inputs while iterating over them.] |
---|
164 | |
---|
165 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
166 | it is advisable not to nest this macro within array macros.] |
---|
167 | |
---|
168 | SeeAlso [Hrc_NodeForEachActualOutput()] |
---|
169 | |
---|
170 | ******************************************************************************/ |
---|
171 | #define Hrc_NodeForEachActualInput( \ |
---|
172 | /* Hrc_Node_t * */ node /* node to iterate actual inputs */,\ |
---|
173 | /* int */ i /* local variable for iterator */, \ |
---|
174 | /* Var_Variable_t * */ var /* actual input variable of node */ \ |
---|
175 | ) \ |
---|
176 | arrayForEachItem(Var_Variable_t *, Hrc_NodeReadActualInputs(node), i, var) |
---|
177 | |
---|
178 | /**Macro*********************************************************************** |
---|
179 | |
---|
180 | Synopsis [Iterates over the actual outputs of a node.] |
---|
181 | |
---|
182 | Description [This macro iterates over the actual outputs of a node. It is an |
---|
183 | error to modify the actual outputs while iterating over them.] |
---|
184 | |
---|
185 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
186 | it is advisable not to nest this macro within array macros.] |
---|
187 | |
---|
188 | SeeAlso [Hrc_NodeForEachActualInput()] |
---|
189 | |
---|
190 | ******************************************************************************/ |
---|
191 | #define Hrc_NodeForEachActualOutput( \ |
---|
192 | /* Hrc_Node_t * */ node /* node to iterate actual outputs */,\ |
---|
193 | /* int */ i /* local variable for iterator */, \ |
---|
194 | /* Var_Variable_t * */ var /* actual output variable of node */ \ |
---|
195 | ) \ |
---|
196 | arrayForEachItem(Var_Variable_t *, Hrc_NodeReadActualOutputs(node), i, var) |
---|
197 | |
---|
198 | /**Macro*********************************************************************** |
---|
199 | |
---|
200 | Synopsis [Iterates over the name tables of a node.] |
---|
201 | |
---|
202 | Description [This macro iterates over the name tables of a node. It is an |
---|
203 | error to modify the name tables while iterating over them.] |
---|
204 | |
---|
205 | SideEffects [This macro instantiates macros from the array package. Hence |
---|
206 | it is advisable not to nest this macro within array macros.] |
---|
207 | |
---|
208 | SeeAlso [Hrc_NodeForEachLatch()] |
---|
209 | |
---|
210 | ******************************************************************************/ |
---|
211 | #define Hrc_NodeForEachNameTable( \ |
---|
212 | /* Hrc_Node_t * */ node /* node to iterate tables */, \ |
---|
213 | /* int */ i /* local variable for iterator */,\ |
---|
214 | /* Tbl_Table_t * */ table /* table of node */ \ |
---|
215 | ) \ |
---|
216 | arrayForEachItem(Tbl_Table_t *, Hrc_NodeReadNameTables(node), i, table) |
---|
217 | |
---|
218 | /**Macro*********************************************************************** |
---|
219 | |
---|
220 | Synopsis [Iterates over the subckts of a model.] |
---|
221 | |
---|
222 | Description [This macro iterates over the sub-circuits of a node. It is an |
---|
223 | error to modify the sub-circuits while iterating over them.] |
---|
224 | |
---|
225 | SideEffects [] |
---|
226 | |
---|
227 | SeeAlso [] |
---|
228 | |
---|
229 | ******************************************************************************/ |
---|
230 | #define Hrc_ModelForEachSubckt( \ |
---|
231 | /* Hrc_Model_t */ model /* model to iterate subcircuits */,\ |
---|
232 | /* st_generator * */ gen /* local variable for iterator */, \ |
---|
233 | /* char * */ name /* instance name of subcircuit */, \ |
---|
234 | /* Hrc_Subckt_t * */ subckt /* subcircuit */ \ |
---|
235 | ) \ |
---|
236 | st_foreach_item(Hrc_ModelReadSubcktTable(model), gen, &(name), &(subckt)) |
---|
237 | |
---|
238 | /**Macro*********************************************************************** |
---|
239 | |
---|
240 | Synopsis [Iterates over the children of a node.] |
---|
241 | |
---|
242 | Description [This macro iterates over the children of a node. It is an |
---|
243 | error to modify the children while iterating over them.] |
---|
244 | |
---|
245 | SideEffects [] |
---|
246 | |
---|
247 | SeeAlso [] |
---|
248 | |
---|
249 | ******************************************************************************/ |
---|
250 | #define Hrc_NodeForEachChild( \ |
---|
251 | /* Hrc_Node_t * */ node /* node to iterate child nodes */, \ |
---|
252 | /* st_generator * */ gen /* local variable for iterator */, \ |
---|
253 | /* char * */ childName /* name of child */, \ |
---|
254 | /* Hrc_Node_t * */ child /* child */ \ |
---|
255 | ) \ |
---|
256 | st_foreach_item(Hrc_NodeReadChildTable(node), gen, &(childName), &(child)) |
---|
257 | |
---|
258 | |
---|
259 | /**Macro*********************************************************************** |
---|
260 | |
---|
261 | Synopsis [Iterates over the latches of a node.] |
---|
262 | |
---|
263 | Description [This macro iterates over the latches of a node. It is an |
---|
264 | error to modify the latches while iterating over them.] |
---|
265 | |
---|
266 | SideEffects [] |
---|
267 | |
---|
268 | SeeAlso [Hrc_NodeForEachNameTable()] |
---|
269 | |
---|
270 | ******************************************************************************/ |
---|
271 | #define Hrc_NodeForEachLatch( \ |
---|
272 | /* Hrc_Node_t * */ node /* node to iterate latches */, \ |
---|
273 | /* st_generator * */ gen /* local variable for iterator */,\ |
---|
274 | /* char * */ latchName /* name of latch */, \ |
---|
275 | /* Hrc_Latch_t * */ latch /* latch */ \ |
---|
276 | ) \ |
---|
277 | st_foreach_item(Hrc_NodeReadLatchTable(node), gen, &(latchName), &(latch)) |
---|
278 | |
---|
279 | /**Macro*********************************************************************** |
---|
280 | |
---|
281 | Synopsis [Iterates over the formal variables of a node.] |
---|
282 | |
---|
283 | Description [This macro iterates over the formal variables of a node. It |
---|
284 | is an error to modify the formal variables while iterating |
---|
285 | over them.] |
---|
286 | |
---|
287 | SideEffects [] |
---|
288 | |
---|
289 | SeeAlso [Hrc_NodeForEachFormalInput(), Hrc_NodeForEachFormalOuput()] |
---|
290 | |
---|
291 | ******************************************************************************/ |
---|
292 | #define Hrc_NodeForEachVariable( \ |
---|
293 | /* Hrc_Node_t * */ node /* node to iterate variables */, \ |
---|
294 | /* st_generator * */ gen /* local variable for iterator */,\ |
---|
295 | /* char * */ varName /* name of variable */, \ |
---|
296 | /* Var_Variable_t * */ var /* variable */ \ |
---|
297 | ) \ |
---|
298 | st_foreach_item(Hrc_NodeReadVariableTable(node), gen, &(varName), &var) |
---|
299 | |
---|
300 | #include "tbl.h" |
---|
301 | |
---|
302 | /**AutomaticStart*************************************************************/ |
---|
303 | |
---|
304 | /*---------------------------------------------------------------------------*/ |
---|
305 | /* Function prototypes */ |
---|
306 | /*---------------------------------------------------------------------------*/ |
---|
307 | |
---|
308 | EXTERN void Hrc_Init(void); |
---|
309 | EXTERN void Hrc_End(void); |
---|
310 | EXTERN Hrc_Node_t * Hrc_ModelCreateHierarchy(Hrc_Manager_t *hmgr, Hrc_Model_t *model, char *instanceName); |
---|
311 | EXTERN boolean Hrc_NodeAddApplInfo(Hrc_Node_t *node, char * key, Hrc_ApplInfoFreeFn freeFn, Hrc_ApplInfoChangeFn changeFn, void * data); |
---|
312 | EXTERN void * Hrc_NodeReadApplInfo(Hrc_Node_t *node, char * key); |
---|
313 | EXTERN boolean Hrc_NodeFreeApplInfo(Hrc_Node_t *node, char * key); |
---|
314 | EXTERN void Hrc_ModelWriteBlifMv(FILE *fp, Hrc_Model_t *model, boolean isRootModel, char *rootInstanceName); |
---|
315 | EXTERN Hrc_Node_t * Hrc_ManagerReadRootNode(Hrc_Manager_t *manager); |
---|
316 | EXTERN Hrc_Node_t * Hrc_ManagerReadCurrentNode(Hrc_Manager_t *manager); |
---|
317 | EXTERN st_table * Hrc_ManagerReadModelTable(Hrc_Manager_t *manager); |
---|
318 | EXTERN Hrc_Model_t * Hrc_ManagerFindModelByName(Hrc_Manager_t *manager, char *modelName); |
---|
319 | EXTERN Hrc_Node_t * Hrc_ModelReadMasterNode(Hrc_Model_t *model); |
---|
320 | EXTERN char * Hrc_ModelReadName(Hrc_Model_t *model); |
---|
321 | EXTERN st_table * Hrc_ModelReadSubcktTable(Hrc_Model_t *model); |
---|
322 | EXTERN Hrc_Model_t * Hrc_SubcktReadModel(Hrc_Subckt_t *subckt); |
---|
323 | EXTERN char * Hrc_SubcktReadInstanceName(Hrc_Subckt_t *subckt); |
---|
324 | EXTERN array_t * Hrc_SubcktReadActualInputVars(Hrc_Subckt_t *subckt); |
---|
325 | EXTERN array_t * Hrc_SubcktReadActualOutputVars(Hrc_Subckt_t *subckt); |
---|
326 | EXTERN Hrc_Manager_t * Hrc_NodeReadManager(Hrc_Node_t *node); |
---|
327 | EXTERN char * Hrc_NodeReadModelName(Hrc_Node_t *node); |
---|
328 | EXTERN char * Hrc_NodeReadInstanceName(Hrc_Node_t *node); |
---|
329 | EXTERN Hrc_Node_t * Hrc_NodeReadParentNode(Hrc_Node_t *node); |
---|
330 | EXTERN int Hrc_NodeReadNumFormalInputs(Hrc_Node_t *node); |
---|
331 | EXTERN int Hrc_NodeReadNumFormalOutputs(Hrc_Node_t *node); |
---|
332 | EXTERN int Hrc_NodeReadNumVariables(Hrc_Node_t *node); |
---|
333 | EXTERN int Hrc_NodeReadNumTables(Hrc_Node_t *node); |
---|
334 | EXTERN int Hrc_NodeReadNumLatches(Hrc_Node_t *node); |
---|
335 | EXTERN int Hrc_NodeReadNumChildren(Hrc_Node_t *node); |
---|
336 | EXTERN array_t * Hrc_NodeReadFormalInputs(Hrc_Node_t *node); |
---|
337 | EXTERN array_t * Hrc_NodeReadFormalOutputs(Hrc_Node_t *node); |
---|
338 | EXTERN array_t * Hrc_NodeReadActualInputs(Hrc_Node_t *node); |
---|
339 | EXTERN array_t * Hrc_NodeReadActualOutputs(Hrc_Node_t *node); |
---|
340 | EXTERN array_t * Hrc_NodeReadNameTables(Hrc_Node_t *node); |
---|
341 | EXTERN st_table * Hrc_NodeReadChildTable(Hrc_Node_t *node); |
---|
342 | EXTERN st_table * Hrc_NodeReadLatchTable(Hrc_Node_t *node); |
---|
343 | EXTERN st_table * Hrc_NodeReadVariableTable(Hrc_Node_t *node); |
---|
344 | EXTERN void * Hrc_NodeReadUndef(Hrc_Node_t *node); |
---|
345 | EXTERN Hrc_Latch_t * Hrc_NodeFindLatchByName(Hrc_Node_t *node, char *latchName); |
---|
346 | EXTERN Var_Variable_t * Hrc_NodeFindVariableByName(Hrc_Node_t *node, char *varName); |
---|
347 | EXTERN Hrc_Node_t * Hrc_NodeFindChildByName(Hrc_Node_t *node, char *instanceName); |
---|
348 | EXTERN Var_Variable_t * Hrc_LatchReadInput(Hrc_Latch_t *latch); |
---|
349 | EXTERN Var_Variable_t * Hrc_LatchReadOutput(Hrc_Latch_t *latch); |
---|
350 | EXTERN Tbl_Table_t * Hrc_LatchReadResetTable(Hrc_Latch_t *latch); |
---|
351 | EXTERN void * Hrc_LatchReadUndef(Hrc_Latch_t *latch); |
---|
352 | EXTERN void Hrc_ManagerSetRootNode(Hrc_Manager_t *manager, Hrc_Node_t *node); |
---|
353 | EXTERN void Hrc_ManagerSetCurrentNode(Hrc_Manager_t *manager, Hrc_Node_t *currentNode); |
---|
354 | EXTERN boolean Hrc_NodeAddFormalInput(Hrc_Node_t *node, Var_Variable_t *var); |
---|
355 | EXTERN boolean Hrc_NodeAddFormalOutput(Hrc_Node_t *node, Var_Variable_t *var); |
---|
356 | EXTERN void Hrc_NodeAddNameTable(Hrc_Node_t *node, Tbl_Table_t *nameTable); |
---|
357 | EXTERN void Hrc_NodeSetUndef(Hrc_Node_t *node, void *value); |
---|
358 | EXTERN boolean Hrc_LatchSetResetTable(Hrc_Latch_t *latch, Tbl_Table_t *table); |
---|
359 | EXTERN void Hrc_LatchSetUndef(Hrc_Latch_t *latch, void *value); |
---|
360 | EXTERN Hrc_Manager_t * Hrc_ManagerAlloc(void); |
---|
361 | EXTERN Hrc_Model_t * Hrc_ModelAlloc(Hrc_Manager_t *manager, char *modelName); |
---|
362 | EXTERN Hrc_Node_t * Hrc_NodeAlloc(Hrc_Manager_t *manager, char *modelName, char *instanceName, Hrc_Node_t *parentNode); |
---|
363 | EXTERN Hrc_Node_t * Hrc_NodeDup(Hrc_Node_t *node, char *instanceName); |
---|
364 | EXTERN Hrc_Latch_t * Hrc_LatchCreate(Hrc_Model_t *model, Var_Variable_t *latchInput, Var_Variable_t *latchOutput); |
---|
365 | EXTERN void Hrc_ManagerFree(Hrc_Manager_t *manager); |
---|
366 | EXTERN boolean Hrc_ModelDelete(Hrc_Manager_t *manager, char *modelName); |
---|
367 | EXTERN Hrc_Node_t * Hrc_ManagerFindNodeByPathName(Hrc_Manager_t *manager, char *path, boolean pathFlag); |
---|
368 | EXTERN Var_Variable_t * Hrc_VariableFindActualFromFormal(Hrc_Node_t *node, Var_Variable_t *formalVar, Hrc_Node_t *referenceNode); |
---|
369 | EXTERN array_t * Hrc_ManagerObtainComponentModels(Hrc_Manager_t *manager); |
---|
370 | EXTERN char * Hrc_NodeFindHierarchicalName(Hrc_Node_t *node, boolean pathFlag); |
---|
371 | EXTERN boolean Hrc_TreeReplace(Hrc_Node_t *oldNode, Hrc_Node_t *newNode); |
---|
372 | EXTERN boolean Hrc_NodeTestIsInTree(Hrc_Node_t *node1, Hrc_Node_t *node2); |
---|
373 | EXTERN boolean Hrc_NodeTestIsUninterpreted(Hrc_Node_t *node); |
---|
374 | EXTERN boolean Hrc_ModelTestIsUninterpreted(Hrc_Model_t* model); |
---|
375 | EXTERN boolean Hrc_NodeTestRecursivelyIsUninterpreted(Hrc_Node_t* parent); |
---|
376 | EXTERN boolean Hrc_NodeTestIsUninterpretedNodeInHierarchy(Hrc_Manager_t* hmgr); |
---|
377 | EXTERN boolean Hrc_NodeCheckVariableConsistency(Hrc_Node_t *node); |
---|
378 | EXTERN boolean Hrc_ModelAddSubckt(Hrc_Model_t *callerModel, Hrc_Model_t *calleeModel, char *instanceName, array_t *actualInputVars, array_t *actualOutputVars); |
---|
379 | EXTERN void Hrc_ModelAddNameTable(Hrc_Model_t *model, Tbl_Table_t *table); |
---|
380 | EXTERN boolean Hrc_NodeAddChild(Hrc_Node_t *parent, Hrc_Node_t *child, array_t *actualInputs, array_t *actualOutputs); |
---|
381 | EXTERN boolean Hrc_NodeAddLatch(Hrc_Node_t *node, Hrc_Latch_t *latch); |
---|
382 | EXTERN boolean Hrc_NodeAddVariable(Hrc_Node_t *node, Var_Variable_t *var); |
---|
383 | EXTERN boolean Hrc_NodeDeleteVariable(Hrc_Node_t *node, Var_Variable_t *var); |
---|
384 | EXTERN boolean Hrc_NodeDeleteLatch(Hrc_Node_t *node, Hrc_Latch_t *latch); |
---|
385 | EXTERN void Hrc_ModelWriteSmv(FILE *fp, Hrc_Model_t *model, boolean isRootModel, char *rootInstanceName); |
---|
386 | |
---|
387 | /**AutomaticEnd***************************************************************/ |
---|
388 | |
---|
389 | #endif /* _HRC */ |
---|