1 /*---------------------------------------------------------------
3 *---------------------------------------------------------------
6 extern mlist
*modules
; /* M the set of all modules */
7 extern nlist
*nets
; /* N the set of all nets */
8 extern tlist
*ext_terms
; /* ST the set of all system terminals */
9 extern mlist
*ext_mods
; /* the modules associated w/ ST */
12 extern tlist
*int_terms
; /* T the set of all inter-module terminals */
14 /* FOR THE ROUTER (only) */
15 extern tile
**routingRoot
[2];
16 extern int currentPartition
;
19 extern mlist
**boxes
; /* the sets of unit boxes */
20 extern ctree
**parti_stats
; /* partition statistics */
22 /* FOR THE PLACER (only) */
23 extern mlist
**strings
; /* the set of strings */
24 extern mlist
**partitions
; /* the set of PARTITIONS (lists) of modules */
25 extern tile
**rootTiles
; /* the tile-spaces that correspond to each partition */
26 extern int *x_positions
; /* and their postions, after placement */
27 extern int *y_positions
;
28 extern int *str_length
;
29 extern int *str_height
;
31 /* Used by a lot of files: */
32 extern int *x_sizes
; /* max x size of each partition */
33 extern int *y_sizes
; /* max y size of each partition */
34 extern int xfloor
, yfloor
;
38 extern int partition_count
; /* the total number of partitions created */
39 extern int lcount
; /* number of input lines read */
40 extern int module_count
; /* number of modules/objects read in */
41 extern int node_count
; /* number of nodes/signals read in */
42 extern int terminal_count
; /* number of terminals read in */
44 extern int connected
[MAX_MOD
][MAX_MOD
]; /* BIG array of connection counts */
45 extern info_type module_info
[MAX_MOD
]; /* reused module information array */
47 extern int compute_aspect_ratios
; /* command line flag: a(spect ratios) */
48 extern int Xcanvas_scaling
; /* command line flag: b (use XCanvas scaling) */
49 extern int max_partition_conn
; /* command line arg: c(onnections) */
50 extern int debug_level
; /* command line arg: d(ebug) */
51 extern int stopAtFirstCut
; /* command line flag: f(irst cut @ Global Route) */
52 extern int congestion_rule
; /* command line flag: conGestion Rule */
53 extern int do_hand_placement
; /* command line flag: h(and placement) */
54 extern int includeSysterms
; /* command line flag: i(donot Include system terminals)*/
55 extern int cc_search_level
; /* command line arg: l(evel) */
56 extern int matrix_type
; /* command line arg: m(atrix type) */
57 extern int do_routing
; /* command line flag: n(o routing) */
58 extern FILE *outputFile
; /* command line arg: o(utput to file) */
59 extern int partition_rule
; /* command line arg: p(artition_rule) */
60 extern int recordStats
; /* command line flag: q(uality statistics) */
61 extern float partition_ratio
; /* command line arg: r(atio) */
62 extern int max_partition_size
; /* command line arg: s(ize) */
63 extern int turn_mode
; /* command line arg: t(urn mode) */
64 extern int useSlivering
; /* command line flag: v(bypass sliver correction code) */
65 extern int useAveraging
; /* command line flag: w(use Weighted averaging) */
66 extern int latex
; /* command line flag: x(lateX mode) */
67 extern int recordTiming
; /* command line flag: y(collect timing stats) */
68 extern int useBlockPartitioning
; /* -u flag; skips automatic partitioning */
69 extern char *ivffilename
; /* input ivf file name */
70 extern int collapseNullModules
; /* -k flag;denies kollapse of NL_GATES */
71 /*---------------------------------------------------------------
73 *---------------------------------------------------------------
75 //void GenerateXcircuitFormat(Clientdata areastruct, FILE *ps,Boolean bIsSparmode);
79 /*---------------------------------------------------------------
81 *---------------------------------------------------------------
84 extern void readivf();
85 extern module
*curobj_module
;
86 extern char *str_end_copy();
88 /*---------------------------------------------------------------
90 *---------------------------------------------------------------
93 extern int partition();
94 extern void place_first_strings();
95 extern void box_placement();
96 extern void placement_prep();
97 extern mlist
*partition_placement();
98 extern mlist
*gross_systerm_placement();
99 extern mlist
*make_room_for_systerm_placement();
100 extern int cross_coupled_p();
101 extern int on_output_net_p();
103 /*---------------------------------------------------------------
104 * Defined in terminals.c
105 *---------------------------------------------------------------
107 extern mlist
*fine_systerm_placement();
109 /*---------------------------------------------------------------
110 * Defined in hand_place.c
111 *---------------------------------------------------------------
113 extern mlist
*hand_placement();
115 /*---------------------------------------------------------------
116 * Defined in global_route.c
117 *---------------------------------------------------------------
119 extern void create_routing_space();
120 extern nlist
*first_global_route();
121 extern nlist
*incremental_global_route();
122 extern void print_global_route();
123 extern int identity();
124 extern int (*set_congestion_value
)();
126 /*---------------------------------------------------------------
127 * Defined in local_route.c
128 *---------------------------------------------------------------
130 extern void local_route();
131 extern void print_local_route();
132 extern void collect_congestion_stats();
134 /*---------------------------------------------------------------
135 * Defined in psfigs.c
136 *---------------------------------------------------------------
138 extern int ps_print_seg();
139 extern int ps_print_mod();
140 extern int ps_print_contact();
141 extern int ps_print_border();
142 extern int ps_put_label();
143 extern int ps_put_int();
145 extern int ps_print_standard_header();
147 /*---------------------------------------------------------------
149 *---------------------------------------------------------------
151 extern void print_modules();
152 extern void print_nets();
153 extern void print_ext();
154 extern void print_connections();
155 extern void p_cons();
156 extern int print_ctree();
157 extern void print_info();
158 extern void print_boxes();
159 extern void print_strings();
160 extern void print_result();
161 extern void draft_statistics();
162 extern float manhattan_PWS();
163 extern void print_distance_stats();
164 extern void print_distance_matricies();
166 /*---------------------------------------------------------------
167 * Defined in utility.c
168 *---------------------------------------------------------------
170 extern void newnode();
171 extern module
*newobject();
173 extern void addout();
174 extern void adddelay();
175 extern void add_port();
177 extern llist
*insert_index_list();
178 extern module
*get_module();
179 extern mark_connection();
180 extern count_terms();
181 extern count_terms_part();
183 extern tnode
*build_leaf();
184 extern tnode
*build_node();
186 extern int pull_terms_from_nets();
187 extern int add_terms_to_nets();
189 extern void clip_null_gates();
191 extern int pin_spacing();
192 extern int get_terminal_counts();
193 extern int reposition_all_terminals();
194 extern int reset_default_icon_size();
195 extern int fix_pin_position();