VPR-7.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
globals.c
Go to the documentation of this file.
1 /* Define global variables here */
2 
3 #include "vpr_types.h"
4 #include "globals.h"
5 
6 
7 /******** General global variables ********/
8 int Fs_seed = -1;
9 
10 int W_seed = -1;
11 int binary_search = -1;
12 
15 
16 /* User netlist information begin */
19 struct s_net *vpack_net = NULL;
21 char *blif_circuit_name = NULL;
22 char *default_output_name = NULL;
23 /* User netlist information end */
24 
25 /******** Clustered netlist to be mapped stuff ********/
26 
27 int num_nets = 0;
28 struct s_net *clb_net = NULL;
29 
30 int num_blocks = 0;
31 struct s_block *block = NULL;
32 
33 int *clb_to_vpack_net_mapping = NULL; /* [0..num_clb_nets - 1] */
34 int *vpack_to_clb_net_mapping = NULL; /* [0..num_vpack_nets - 1] */
35 
36 /* This identifies the t_type_ptr of an IO block */
37 int num_types = 0;
39 
43 
44 /******** Physical architecture stuff ********/
45 
46 int nx = 0;
47 int ny = 0;
48 
49 /* TRUE if this is a global clb pin -- an input pin to which the netlist can *
50  * connect global signals, but which does not connect into the normal *
51  * routing via muxes etc. Marking pins like this (only clocks in my work) *
52  * stops them from screwing up the input switch pattern in the rr_graph *
53  * generator and from creating extra switches that the area model would *
54  * count. */
55 
56 int *chan_width_x = NULL; /* [0..ny] */
57 int *chan_width_y = NULL; /* [0..nx] */
58 
59 struct s_grid_tile **grid = NULL; /* [0..(nx+1)][0..(ny+1)] Physical block list */
60 
61 /******** Structures defining the routing ********/
62 
63 /* Linked list start pointers. Define the routing. */
64 struct s_trace **trace_head = NULL; /* [0..(num_nets-1)] */
65 struct s_trace **trace_tail = NULL; /* [0..(num_nets-1)] */
66 
67 /******** Structures defining the FPGA routing architecture ********/
68 
69 int num_rr_nodes = 0;
70 t_rr_node *rr_node = NULL; /* [0..(num_rr_nodes-1)] */
72 
74 t_rr_indexed_data *rr_indexed_data = NULL; /* [0..(num_rr_indexed_data-1)] */
75 
76 /* Gives the rr_node indices of net terminals. */
77 
78 int **net_rr_terminals = NULL; /* [0..num_nets-1][0..num_pins-1] */
79 
80 /* Gives information about all the switch types *
81  * (part of routing architecture, but loaded in read_arch.c */
82 
83 struct s_switch_inf *switch_inf = NULL; /* [0..(det_routing_arch.num_switch-1)] */
84 
85 /* Stores the SOURCE and SINK nodes of all CLBs (not valid for pads). */
86 
87 int **rr_blk_source = NULL; /* [0..(num_blocks-1)][0..(num_class-1)] */
88 
89 /* primiary inputs removed from circuit */
91 
92 /********** Structures representing timing graph information */
93 float pb_max_internal_delay = UNDEFINED; /* biggest internal delay of physical block */
94 const t_pb_type *pbtype_max_internal_delay = NULL; /* physical block type with highest internal delay */
95 
96 /********** Structures representing the global clock network */
t_type_ptr FILL_TYPE
Definition: globals.c:42
int W_seed
Definition: globals.c:10
int num_p_inputs
Definition: globals.c:18
struct s_trace ** trace_tail
Definition: globals.c:65
struct s_linked_vptr * circuit_p_io_removed
Definition: globals.c:90
t_rr_node * rr_node
Definition: globals.c:70
t_type_ptr EMPTY_TYPE
Definition: globals.c:41
int * clb_to_vpack_net_mapping
Definition: globals.c:33
t_rr_indexed_data * rr_indexed_data
Definition: globals.c:74
float pb_max_internal_delay
Definition: globals.c:93
int num_rr_indexed_data
Definition: globals.c:73
int * chan_width_x
Definition: globals.c:56
int num_nets
Definition: globals.c:27
const t_pb_type * pbtype_max_internal_delay
Definition: globals.c:94
t_clock_arch * g_clock_arch
Definition: globals.c:97
int * chan_width_y
Definition: globals.c:57
int num_logical_nets
Definition: globals.c:17
int num_blocks
Definition: globals.c:30
char * blif_circuit_name
Definition: globals.c:21
#define UNDEFINED
Definition: vpr_types.h:103
int * vpack_to_clb_net_mapping
Definition: globals.c:34
struct s_block * block
Definition: globals.c:31
struct s_net * clb_net
Definition: globals.c:28
int num_rr_nodes
Definition: globals.c:69
int nx
Definition: globals.c:46
char * default_output_name
Definition: globals.c:22
int num_p_outputs
Definition: globals.c:18
struct s_trace ** trace_head
Definition: globals.c:64
int binary_search
Definition: globals.c:11
struct s_switch_inf * switch_inf
Definition: globals.c:83
struct s_grid_tile ** grid
Definition: globals.c:59
Definition: util.h:47
t_ivec *** rr_node_indices
Definition: globals.c:71
int num_types
Definition: globals.c:37
t_type_ptr IO_TYPE
Definition: globals.c:40
int ** rr_blk_source
Definition: globals.c:87
int num_logical_blocks
Definition: globals.c:17
int ** net_rr_terminals
Definition: globals.c:78
float grid_logic_tile_area
Definition: globals.c:13
struct s_type_descriptor * type_descriptors
Definition: globals.c:38
struct s_net * vpack_net
Definition: globals.c:19
int ny
Definition: globals.c:47
float ipin_mux_trans_size
Definition: globals.c:14
int Fs_seed
Definition: globals.c:8
struct s_logical_block * logical_block
Definition: globals.c:20