VPR-6.0

vpr/SRC/place/timing_place_lookup.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define IMPOSSIBLE   -1

Functions

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)
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

Define Documentation

#define IMPOSSIBLE   -1

indicator of an array location that should never be accessed

Definition at line 1 of file timing_place_lookup.h.


Function Documentation

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 
)

Definition at line 1212 of file timing_place_lookup.c.

{

    static struct s_net *original_net;  /*this will be used as a pointer to remember what */

    /*the "real" nets in the circuit are. This is    */
    /*required because we are using the net structure */
    /*in these routines to find delays between blocks */
    static struct s_block *original_block;      /*same def as original_nets, but for block  */

    static int original_num_nets;
    static int original_num_blocks;
    static int longest_length;

    load_simplified_device();

    alloc_and_assign_internal_structures(&original_net,
                                         &original_block,
                                         &original_num_nets,
                                         &original_num_blocks);
    setup_chan_width(router_opts, chan_width_dist);

    alloc_routing_structs(router_opts, det_routing_arch, segment_inf,
                          timing_inf);

    longest_length =
        get_longest_segment_length(det_routing_arch, segment_inf);


    /*now setup and compute the actual arrays */
    alloc_delta_arrays();
    compute_delta_arrays(router_opts, det_routing_arch, segment_inf,
                         timing_inf, longest_length);

    /*free all data structures that are no longer needed */
    free_routing_structs(router_opts, det_routing_arch, segment_inf,
                         timing_inf);

    restore_original_device();

    free_and_reset_internal_structures(original_net, original_block,
                                       original_num_nets,
                                       original_num_blocks);
}

Here is the call graph for this function:

Here is the caller graph for this function:

void free_place_lookup_structs ( void  )

Definition at line 1263 of file timing_place_lookup.c.

Here is the call graph for this function:


Variable Documentation

Definition at line 72 of file timing_place_lookup.c.

float** delta_clb_to_io

Definition at line 73 of file timing_place_lookup.c.

float** delta_io_to_clb

<only used during debugging, calls routine to print out the various lookup arrays the delta arrays are used to contain the best case routing delay between different locations on the FPGA.

Definition at line 71 of file timing_place_lookup.c.

float** delta_io_to_io

Definition at line 74 of file timing_place_lookup.c.