00001 enum e_graph_type
00002 {
00003 GRAPH_GLOBAL,
00004 GRAPH_BIDIR,
00005 GRAPH_UNIDIR,
00006
00007 GRAPH_UNIDIR_TILEABLE
00008 };
00009 typedef enum e_graph_type t_graph_type;
00010
00011
00012
00013 enum
00014 {
00015 RR_GRAPH_NO_WARN = 0x00,
00016 RR_GRAPH_WARN_FC_CLIPPED = 0x01,
00017 RR_GRAPH_WARN_CHAN_WIDTH_CHANGED = 0x02
00018 };
00019
00020 void build_rr_graph(IN t_graph_type graph_type,
00021 IN int num_types,
00022 IN t_type_ptr types,
00023 IN int nx,
00024 IN int ny,
00025 IN struct s_grid_tile **grid,
00026 IN int chan_width,
00027 IN struct s_chan_width_dist *chan_capacity_inf,
00028 IN enum e_switch_block_type sb_type,
00029 IN int Fs,
00030 IN int num_seg_types,
00031 IN int num_switches,
00032 IN t_segment_inf * segment_inf,
00033 IN int global_route_switch,
00034 IN int delayless_switch,
00035 IN t_timing_inf timing_inf,
00036 IN int wire_to_ipin_switch,
00037 IN enum e_base_cost_type base_cost_type,
00038 OUT int *Warnings);
00039
00040 void free_rr_graph(void);
00041
00042 void dump_rr_graph(IN const char *file_name);
00043 void print_rr_indexed_data(FILE * fp,
00044 int index);
00045 void load_net_rr_terminals(t_ivec *** rr_node_indices);