|
VPR-7.0
|
#include <stdio.h>#include <assert.h>#include "util.h"#include "vpr_types.h"#include "globals.h"#include "rr_graph_util.h"#include "rr_graph2.h"#include "rr_graph_sbox.h"#include "read_xml_arch_file.h"
Include dependency graph for rr_graph2.c:Go to the source code of this file.
Macros | |
| #define | ALLOW_SWITCH_OFF |
| #define | ENABLE_REVERSE 0 |
| #define | SAME_TRACK -5 |
| #define | UN_SET -1 |
Functions | |
| static void | get_switch_type (boolean is_from_sbox, boolean is_to_sbox, short from_node_switch, short to_node_switch, short switch_types[2]) |
| static void | load_chan_rr_indices (INP int nodes_per_chan, INP int chan_len, INP int num_chans, INP t_rr_type type, INP t_seg_details *seg_details, INOUTP int *index, INOUTP t_ivec ***indices) |
| static int | get_bidir_track_to_chan_seg (INP struct s_ivec conn_tracks, INP t_ivec ***L_rr_node_indices, INP int to_chan, INP int to_seg, INP int to_sb, INP t_rr_type to_type, INP t_seg_details *seg_details, INP boolean from_is_sbox, INP int from_switch, INOUTP boolean *L_rr_edge_done, INP enum e_directionality directionality, INOUTP struct s_linked_edge **edge_list) |
| static int | get_unidir_track_to_chan_seg (INP boolean is_end_sb, INP int from_track, INP int to_chan, INP int to_seg, INP int to_sb, INP t_rr_type to_type, INP int nodes_per_chan, INP int L_nx, INP int L_ny, INP enum e_side from_side, INP enum e_side to_side, INP int Fs_per_side, INP int *opin_mux_size, INP short *****sblock_pattern, INP t_ivec ***L_rr_node_indices, INP t_seg_details *seg_details, INOUTP boolean *L_rr_edge_done, OUTP boolean *Fs_clipped, INOUTP struct s_linked_edge **edge_list) |
| static int | vpr_to_phy_track (INP int itrack, INP int chan_num, INP int seg_num, INP t_seg_details *seg_details, INP enum e_directionality directionality) |
| static int * | get_seg_track_counts (INP int num_sets, INP int num_seg_types, INP t_segment_inf *segment_inf, INP boolean use_full_seg_groups) |
| static int * | label_wire_muxes (INP int chan_num, INP int seg_num, INP t_seg_details *seg_details, INP int max_len, INP enum e_direction dir, INP int nodes_per_chan, OUTP int *num_wire_muxes) |
| static int * | label_wire_muxes_for_balance (INP int chan_num, INP int seg_num, INP t_seg_details *seg_details, INP int max_len, INP enum e_direction direction, INP int nodes_per_chan, INP int *num_wire_muxes, INP t_rr_type chan_type, INP int *opin_mux_size, INP t_ivec ***L_rr_node_indices) |
| static int * | label_incoming_wires (INP int chan_num, INP int seg_num, INP int sb_seg, INP t_seg_details *seg_details, INP int max_len, INP enum e_direction dir, INP int nodes_per_chan, OUTP int *num_incoming_wires, OUTP int *num_ending_wires) |
| static int | find_label_of_track (int *wire_mux_on_track, int num_wire_muxes, int from_track) |
| t_seg_details * | alloc_and_load_seg_details (INOUTP int *nodes_per_chan, INP int max_len, INP int num_seg_types, INP t_segment_inf *segment_inf, INP boolean use_full_seg_groups, INP boolean is_global_graph, INP enum e_directionality directionality) |
| void | free_seg_details (t_seg_details *seg_details, int nodes_per_chan) |
| void | dump_seg_details (t_seg_details *seg_details, int nodes_per_chan, const char *fname) |
| int | get_seg_start (INP t_seg_details *seg_details, INP int itrack, INP int chan_num, INP int seg_num) |
| int | get_seg_end (INP t_seg_details *seg_details, INP int itrack, INP int istart, INP int chan_num, INP int seg_max) |
| int | get_bidir_opin_connections (INP int i, INP int j, INP int ipin, INP struct s_linked_edge **edge_list, INP int *****opin_to_track_map, INP int Fc, INP boolean *L_rr_edge_done, INP t_ivec ***L_rr_node_indices, INP t_seg_details *seg_details) |
| int | get_unidir_opin_connections (INP int chan, INP int seg, INP int Fc, INP t_rr_type chan_type, INP t_seg_details *seg_details, INOUTP t_linked_edge **edge_list_ptr, INOUTP int **Fc_ofs, INOUTP boolean *L_rr_edge_done, INP int max_len, INP int nodes_per_chan, INP t_ivec ***L_rr_node_indices, OUTP boolean *Fc_clipped) |
| boolean | is_cbox (INP int chan, INP int seg, INP int track, INP t_seg_details *seg_details, INP enum e_directionality directionality) |
| struct s_ivec *** | alloc_and_load_rr_node_indices (INP int nodes_per_chan, INP int L_nx, INP int L_ny, INOUTP int *index, INP t_seg_details *seg_details) |
| void | free_rr_node_indices (INP t_ivec ***L_rr_node_indices) |
| int | get_rr_node_index (int x, int y, t_rr_type rr_type, int ptc, t_ivec ***L_rr_node_indices) |
| int | get_track_to_ipins (int seg, int chan, int track, t_linked_edge **edge_list_ptr, t_ivec ***L_rr_node_indices, struct s_ivec ****track_to_ipin_lookup, t_seg_details *seg_details, enum e_rr_type chan_type, int chan_length, int wire_to_ipin_switch, enum e_directionality directionality) |
| int | get_track_to_tracks (INP int from_chan, INP int from_seg, INP int from_track, INP t_rr_type from_type, INP int to_seg, INP t_rr_type to_type, INP int chan_len, INP int nodes_per_chan, INP int *opin_mux_size, INP int Fs_per_side, INP short *****sblock_pattern, INOUTP struct s_linked_edge **edge_list, INP t_seg_details *seg_details, INP enum e_directionality directionality, INP t_ivec ***L_rr_node_indices, INOUTP boolean *L_rr_edge_done, INP struct s_ivec ***switch_block_conn) |
| boolean | is_sbox (INP int chan, INP int wire_seg, INP int sb_seg, INP int track, INP t_seg_details *seg_details, INP enum e_directionality directionality) |
| short ***** | alloc_sblock_pattern_lookup (INP int L_nx, INP int L_ny, INP int nodes_per_chan) |
| void | free_sblock_pattern_lookup (INOUTP short *****sblock_pattern) |
| void | load_sblock_pattern_lookup (INP int i, INP int j, INP int nodes_per_chan, INP t_seg_details *seg_details, INP int Fs, INP enum e_switch_block_type switch_block_type, INOUTP short *****sblock_pattern) |
Variables | |
| t_linked_edge * | free_edge_list_head = NULL |
| #define ALLOW_SWITCH_OFF |
Definition at line 11 of file rr_graph2.c.
| #define ENABLE_REVERSE 0 |
Definition at line 16 of file rr_graph2.c.
| #define SAME_TRACK -5 |
Definition at line 18 of file rr_graph2.c.
| #define UN_SET -1 |
Definition at line 19 of file rr_graph2.c.
| struct s_ivec*** alloc_and_load_rr_node_indices | ( | INP int | nodes_per_chan, |
| INP int | L_nx, | ||
| INP int | L_ny, | ||
| INOUTP int * | index, | ||
| INP t_seg_details * | seg_details | ||
| ) |
Definition at line 707 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| t_seg_details* alloc_and_load_seg_details | ( | INOUTP int * | nodes_per_chan, |
| INP int | max_len, | ||
| INP int | num_seg_types, | ||
| INP t_segment_inf * | segment_inf, | ||
| INP boolean | use_full_seg_groups, | ||
| INP boolean | is_global_graph, | ||
| INP enum e_directionality | directionality | ||
| ) |
Definition at line 175 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 1444 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void dump_seg_details | ( | t_seg_details * | seg_details, |
| int | nodes_per_chan, | ||
| const char * | fname | ||
| ) |
Definition at line 373 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 2035 of file rr_graph2.c.
Here is the caller graph for this function:Definition at line 797 of file rr_graph2.c.
Here is the caller graph for this function:| void free_sblock_pattern_lookup | ( | INOUTP short ***** | sblock_pattern | ) |
| void free_seg_details | ( | t_seg_details * | seg_details, |
| int | nodes_per_chan | ||
| ) |
| int get_bidir_opin_connections | ( | INP int | i, |
| INP int | j, | ||
| INP int | ipin, | ||
| INP struct s_linked_edge ** | edge_list, | ||
| INP int ***** | opin_to_track_map, | ||
| INP int | Fc, | ||
| INP boolean * | L_rr_edge_done, | ||
| INP t_ivec *** | L_rr_node_indices, | ||
| INP t_seg_details * | seg_details | ||
| ) |
Definition at line 478 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1168 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:Definition at line 846 of file rr_graph2.c.
Here is the caller graph for this function:| int get_seg_end | ( | INP t_seg_details * | seg_details, |
| INP int | itrack, | ||
| INP int | istart, | ||
| INP int | chan_num, | ||
| INP int | seg_max | ||
| ) |
| int get_seg_start | ( | INP t_seg_details * | seg_details, |
| INP int | itrack, | ||
| INP int | chan_num, | ||
| INP int | seg_num | ||
| ) |
|
static |
Definition at line 109 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
| int get_track_to_ipins | ( | int | seg, |
| int | chan, | ||
| int | track, | ||
| t_linked_edge ** | edge_list_ptr, | ||
| t_ivec *** | L_rr_node_indices, | ||
| struct s_ivec **** | track_to_ipin_lookup, | ||
| t_seg_details * | seg_details, | ||
| enum e_rr_type | chan_type, | ||
| int | chan_length, | ||
| int | wire_to_ipin_switch, | ||
| enum e_directionality | directionality | ||
| ) |
Definition at line 929 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int get_track_to_tracks | ( | INP int | from_chan, |
| INP int | from_seg, | ||
| INP int | from_track, | ||
| INP t_rr_type | from_type, | ||
| INP int | to_seg, | ||
| INP t_rr_type | to_type, | ||
| INP int | chan_len, | ||
| INP int | nodes_per_chan, | ||
| INP int * | opin_mux_size, | ||
| INP int | Fs_per_side, | ||
| INP short ***** | sblock_pattern, | ||
| INOUTP struct s_linked_edge ** | edge_list, | ||
| INP t_seg_details * | seg_details, | ||
| INP enum e_directionality | directionality, | ||
| INP t_ivec *** | L_rr_node_indices, | ||
| INOUTP boolean * | L_rr_edge_done, | ||
| INP struct s_ivec *** | switch_block_conn | ||
| ) |
Definition at line 1017 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| int get_unidir_opin_connections | ( | INP int | chan, |
| INP int | seg, | ||
| INP int | Fc, | ||
| INP t_rr_type | chan_type, | ||
| INP t_seg_details * | seg_details, | ||
| INOUTP t_linked_edge ** | edge_list_ptr, | ||
| INOUTP int ** | Fc_ofs, | ||
| INOUTP boolean * | L_rr_edge_done, | ||
| INP int | max_len, | ||
| INP int | nodes_per_chan, | ||
| INP t_ivec *** | L_rr_node_indices, | ||
| OUTP boolean * | Fc_clipped | ||
| ) |
Definition at line 551 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1228 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| boolean is_cbox | ( | INP int | chan, |
| INP int | seg, | ||
| INP int | track, | ||
| INP t_seg_details * | seg_details, | ||
| INP enum e_directionality | directionality | ||
| ) |
Definition at line 636 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| boolean is_sbox | ( | INP int | chan, |
| INP int | wire_seg, | ||
| INP int | sb_seg, | ||
| INP int | track, | ||
| INP t_seg_details * | seg_details, | ||
| INP enum e_directionality | directionality | ||
| ) |
Definition at line 1332 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1970 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1917 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1819 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 660 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:| void load_sblock_pattern_lookup | ( | INP int | i, |
| INP int | j, | ||
| INP int | nodes_per_chan, | ||
| INP t_seg_details * | seg_details, | ||
| INP int | Fs, | ||
| INP enum e_switch_block_type | switch_block_type, | ||
| INOUTP short ***** | sblock_pattern | ||
| ) |
Definition at line 1524 of file rr_graph2.c.
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Definition at line 1415 of file rr_graph2.c.
Here is the caller graph for this function:| t_linked_edge* free_edge_list_head = NULL |
Definition at line 25 of file rr_graph2.c.