00001 #ifndef __INSTANCE_H__
00002 #define __INSTANCE_H__
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #include "defines.h"
00027
00028
00030 funit_inst* instance_create(
00031 func_unit* funit,
00032 char* inst_name,
00033 bool name_diff,
00034 bool ignore,
00035 bool gend_scope,
00036 vector_width* range
00037 );
00038
00040 void instance_display_tree(
00041 funit_inst* root
00042 );
00043
00045 void instance_gen_scope(
00046 char* scope,
00047 funit_inst* leaf,
00048 bool flatten
00049 );
00050
00052 funit_inst* instance_find_scope(
00053 funit_inst* root,
00054 char* scope,
00055 bool rm_unnamed
00056 );
00057
00059 funit_inst* instance_find_by_funit(
00060 funit_inst* root,
00061 const func_unit* funit,
00062 int* ignore
00063 );
00064
00066 vsignal* instance_find_signal_by_exclusion_id(
00067 funit_inst* root,
00068 int id,
00069 func_unit** found_funit
00070 );
00071
00073 expression* instance_find_expression_by_exclusion_id(
00074 funit_inst* root,
00075 int id,
00076 func_unit** found_funit
00077 );
00078
00080 int instance_find_fsm_arc_index_by_exclusion_id(
00081 funit_inst* root,
00082 int id,
00083 fsm_table** found_fsm,
00084 func_unit** found_funit
00085 );
00086
00088 funit_inst* instance_copy(
00089 funit_inst* from_inst,
00090 funit_inst* to_inst,
00091 char* name,
00092 vector_width* range,
00093 bool resolve
00094 );
00095
00097 bool instance_parse_add(
00098 funit_inst** root,
00099 func_unit* parent,
00100 func_unit* child,
00101 char* inst_name,
00102 vector_width* range,
00103 bool resolve,
00104 bool child_gend,
00105 bool ignore_child,
00106 bool gend_scope
00107 );
00108
00110 void instance_resolve(
00111 funit_inst* root
00112 );
00113
00115 bool instance_read_add(
00116 funit_inst** root,
00117 char* parent,
00118 func_unit* child,
00119 char* inst_name
00120 );
00121
00123 void instance_get_leading_hierarchy(
00124 funit_inst* root,
00125 char* leading_hierarchy,
00126 funit_inst** top_inst
00127 );
00128
00130 bool instance_merge_two_trees(
00131 funit_inst* root1,
00132 funit_inst* root2
00133 );
00134
00136 void instance_db_write(
00137 funit_inst* root,
00138 FILE* file,
00139 char* scope,
00140 bool parse_mode,
00141 bool issue_ids
00142 );
00143
00145 void instance_only_db_read(
00146 char** line
00147 );
00148
00150 void instance_only_db_merge(
00151 char** line
00152 );
00153
00155 void instance_remove_stmt_blks_calling_stmt(
00156 funit_inst* root,
00157 statement* stmt
00158 );
00159
00161 void instance_remove_parms_with_expr(
00162 funit_inst* root,
00163 statement* stmt
00164 );
00165
00167 void instance_output_dumpvars(
00168 FILE* vfile,
00169 funit_inst* root
00170 );
00171
00173 void instance_dealloc_tree(
00174 funit_inst* root
00175 );
00176
00178 void instance_dealloc(
00179 funit_inst* root,
00180 char* scope
00181 );
00182
00183 #endif
00184