VPR-7.0
|
#include <stdio.h>
#include <math.h>
#include <string.h>
#include "util.h"
#include "vpr_types.h"
#include "globals.h"
#include "route_common.h"
#include "place_and_route.h"
#include "route_tree_timing.h"
#include "route_timing.h"
#include "timing_place_lookup.h"
#include "rr_graph.h"
#include "route_export.h"
#include <assert.h>
#include "read_xml_arch_file.h"
Go to the source code of this file.
Macros | |
#define | NET_COUNT 1 /*we only use one net in these routines, */ |
#define | NET_USED 0 /*we use net at location zero of the net */ |
#define | NET_USED_SOURCE_BLOCK 0 /*net.block[0] is source block */ |
#define | NET_USED_SINK_BLOCK 1 /*net.block[1] is sink block */ |
#define | SOURCE_BLOCK 0 /*block[0] is source */ |
#define | SINK_BLOCK 1 /*block[1] is sink */ |
#define | BLOCK_COUNT 2 /*use 2 blocks to compute delay between */ |
#define | NUM_TYPES_USED 3 /* number of types used in look up */ |
#define | DEBUG_TIMING_PLACE_LOOKUP /*initialize arrays to known state */ |
#define | DUMPFILE "lookup_dump.echo" |
Functions | |
static void | alloc_net (void) |
static void | alloc_block (void) |
static void | load_simplified_device (void) |
static void | restore_original_device (void) |
static void | alloc_and_assign_internal_structures (struct s_net **original_net, struct s_block **original_block, int *original_num_nets, int *original_num_blocks) |
static void | free_and_reset_internal_structures (struct s_net *original_net, struct s_block *original_block, int original_num_nets, int original_num_blocks) |
static void | setup_chan_width (struct s_router_opts router_opts, t_chan_width_dist chan_width_dist) |
static void | alloc_routing_structs (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf, INP t_direct_inf *directs, INP int num_directs) |
static void | free_routing_structs (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | assign_locations (t_type_ptr source_type, int source_x_loc, int source_y_loc, int source_z_loc, t_type_ptr sink_type, int sink_x_loc, int sink_y_loc, int sink_z_loc) |
static float | assign_blocks_and_route_net (t_type_ptr source_type, int source_x_loc, int source_y_loc, t_type_ptr sink_type, int sink_x_loc, int sink_y_loc, struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | alloc_delta_arrays (void) |
static void | free_delta_arrays (void) |
static void | generic_compute_matrix (float ***matrix_ptr, t_type_ptr source_type, t_type_ptr sink_type, int source_x, int source_y, int start_x, int end_x, int start_y, int end_y, struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | compute_delta_clb_to_clb (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf, int longest_length) |
static void | compute_delta_io_to_clb (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | compute_delta_clb_to_io (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | compute_delta_io_to_io (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf) |
static void | compute_delta_arrays (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf, int longest_length) |
static int | get_first_pin (enum e_pin_type pintype, t_type_ptr type) |
static int | get_longest_segment_length (struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf) |
static void | reset_placement (void) |
void | compute_delay_lookup_tables (struct s_router_opts router_opts, struct s_det_routing_arch det_routing_arch, t_segment_inf *segment_inf, t_timing_inf timing_inf, t_chan_width_dist chan_width_dist, INP t_direct_inf *directs, INP int num_directs) |
void | free_place_lookup_structs (void) |
Variables | |
float ** | delta_io_to_clb |
float ** | delta_clb_to_clb |
float ** | delta_clb_to_io |
float ** | delta_io_to_io |
static float ** | net_delay |
static float * | pin_criticality |
static int * | sink_order |
static t_rt_node ** | rt_node_of_sink |
static t_type_ptr | IO_TYPE_BACKUP |
static t_type_ptr | EMPTY_TYPE_BACKUP |
static t_type_ptr | FILL_TYPE_BACKUP |
static t_type_descriptor | dummy_type_descriptors [NUM_TYPES_USED] |
static t_type_descriptor * | type_descriptors_backup |
static struct s_grid_tile ** | grid_backup |
static int | num_types_backup |
static t_ivec ** | clb_opins_used_locally |
#define BLOCK_COUNT 2 /*use 2 blocks to compute delay between */ |
Definition at line 46 of file timing_place_lookup.c.
#define DEBUG_TIMING_PLACE_LOOKUP /*initialize arrays to known state */ |
Definition at line 55 of file timing_place_lookup.c.
#define DUMPFILE "lookup_dump.echo" |
Definition at line 57 of file timing_place_lookup.c.
#define NET_COUNT 1 /*we only use one net in these routines, */ |
Definition at line 35 of file timing_place_lookup.c.
Definition at line 39 of file timing_place_lookup.c.
Definition at line 42 of file timing_place_lookup.c.
Definition at line 41 of file timing_place_lookup.c.
#define NUM_TYPES_USED 3 /* number of types used in look up */ |
Definition at line 53 of file timing_place_lookup.c.
#define SINK_BLOCK 1 /*block[1] is sink */ |
Definition at line 44 of file timing_place_lookup.c.
#define SOURCE_BLOCK 0 /*block[0] is source */ |
Definition at line 43 of file timing_place_lookup.c.
|
static |
Definition at line 344 of file timing_place_lookup.c.
|
static |
Definition at line 236 of file timing_place_lookup.c.
|
static |
Definition at line 565 of file timing_place_lookup.c.
|
static |
Definition at line 211 of file timing_place_lookup.c.
|
static |
Definition at line 422 of file timing_place_lookup.c.
|
static |
Definition at line 521 of file timing_place_lookup.c.
|
static |
Definition at line 493 of file timing_place_lookup.c.
void compute_delay_lookup_tables | ( | struct s_router_opts | router_opts, |
struct s_det_routing_arch | det_routing_arch, | ||
t_segment_inf * | segment_inf, | ||
t_timing_inf | timing_inf, | ||
t_chan_width_dist | chan_width_dist, | ||
INP t_direct_inf * | directs, | ||
INP int | num_directs | ||
) |
Definition at line 978 of file timing_place_lookup.c.
|
static |
Definition at line 947 of file timing_place_lookup.c.
|
static |
Definition at line 636 of file timing_place_lookup.c.
|
static |
Definition at line 787 of file timing_place_lookup.c.
|
static |
Definition at line 742 of file timing_place_lookup.c.
|
static |
Definition at line 837 of file timing_place_lookup.c.
|
static |
Definition at line 367 of file timing_place_lookup.c.
|
static |
Definition at line 600 of file timing_place_lookup.c.
void free_place_lookup_structs | ( | void | ) |
Definition at line 1021 of file timing_place_lookup.c.
|
static |
Definition at line 469 of file timing_place_lookup.c.
|
static |
Definition at line 610 of file timing_place_lookup.c.
|
static |
|
static |
|
static |
Definition at line 265 of file timing_place_lookup.c.
|
static |
|
static |
Definition at line 309 of file timing_place_lookup.c.
|
static |
Definition at line 399 of file timing_place_lookup.c.
|
static |
Definition at line 88 of file timing_place_lookup.c.
float** delta_clb_to_clb |
Definition at line 67 of file timing_place_lookup.c.
float** delta_clb_to_io |
Definition at line 68 of file timing_place_lookup.c.
float** delta_io_to_clb |
Definition at line 66 of file timing_place_lookup.c.
float** delta_io_to_io |
Definition at line 69 of file timing_place_lookup.c.
|
static |
Definition at line 83 of file timing_place_lookup.c.
|
static |
Definition at line 81 of file timing_place_lookup.c.
|
static |
Definition at line 82 of file timing_place_lookup.c.
|
static |
Definition at line 85 of file timing_place_lookup.c.
|
static |
Definition at line 80 of file timing_place_lookup.c.
|
static |
Definition at line 76 of file timing_place_lookup.c.
|
static |
Definition at line 86 of file timing_place_lookup.c.
|
static |
Definition at line 77 of file timing_place_lookup.c.
|
static |
Definition at line 79 of file timing_place_lookup.c.
|
static |
Definition at line 78 of file timing_place_lookup.c.
|
static |
Definition at line 84 of file timing_place_lookup.c.