📄 rr_graph2.h
字号:
/************** Global variables shared only by the rr_* modules. ************/extern boolean *rr_edge_done; /* [0..num_rr_nodes-1]. Used to keep track * * of whether or not a node has been put in * * an edge list yet. *//******************* Subroutines exported by rr_graph2.c *********************/struct s_ivec ***alloc_and_load_rr_node_indices(IN int nodes_per_chan, IN int nx, IN int ny, INOUT int *index, IN t_seg_details * seg_details);void free_rr_node_indices(IN t_ivec *** rr_node_indices);int get_rr_node_index(int x, int y, t_rr_type rr_type, int ptc, t_ivec *** rr_node_indices);void free_seg_details(t_seg_details * seg_details, int nodes_per_chan);t_seg_details *alloc_and_load_seg_details(INOUT int *nodes_per_chan, IN int max_len, IN int num_seg_types, IN t_segment_inf * segment_inf, IN boolean use_full_seg_groups, IN boolean is_global_graph, IN enum e_directionality directionality);void dump_seg_details(t_seg_details * seg_details, int nodes_per_chan, char *fname);int get_seg_start(IN t_seg_details * seg_details, IN int itrack, IN int chan_num, IN int seg_num);int get_seg_end(IN t_seg_details * seg_details, IN int itrack, IN int istart, IN int chan_num, IN int seg_max);boolean is_cbox(IN int chan, IN int seg, IN int track, IN t_seg_details * seg_details, IN enum e_directionality directionality);boolean is_sbox(IN int chan, IN int wire_seg, IN int sb_seg, IN int track, IN t_seg_details * seg_details, IN enum e_directionality directionality);int get_bidir_opin_connections(IN int i, IN int j, IN int ipin, IN struct s_linked_edge **edge_list, IN int *****opin_to_track_map, IN int Fc, IN boolean * rr_edge_done, IN t_ivec *** rr_node_indices, IN t_seg_details * seg_details);int get_unidir_opin_connections(IN int chan, IN int seg, IN int Fc, IN t_rr_type chan_type, IN t_seg_details * seg_details, INOUT t_linked_edge ** edge_list_ptr, INOUT int **Fc_ofs, INOUT boolean * rr_edge_done, IN int max_len, IN int nodes_per_chan, IN t_ivec *** rr_node_indices, OUT boolean * Fc_clipped);int get_track_to_ipins(int seg, int chan, int track, t_linked_edge ** edge_list_ptr, t_ivec *** 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(IN int from_chan, IN int from_seg, IN int from_track, IN t_rr_type from_type, IN int to_seg, IN t_rr_type to_type, IN int chan_len, IN int nodes_per_chan, IN int *opin_mux_size, IN int Fs_per_side, IN short *****sblock_pattern, INOUT struct s_linked_edge **edge_list, IN t_seg_details * seg_details, IN enum e_directionality directionality, IN t_ivec *** rr_node_indices, INOUT boolean * rr_edge_done, IN struct s_ivec ***switch_block_conn);short *****alloc_sblock_pattern_lookup(IN int nx, IN int ny, IN int nodes_per_chan);void free_sblock_pattern_lookup(INOUT short *****sblock_pattern);void load_sblock_pattern_lookup(IN int i, IN int j, IN int nodes_per_chan, IN t_seg_details * seg_details, IN int Fs, IN enum e_switch_block_type switch_block_type, INOUT short *****sblock_pattern);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -