SRC/timing_place.h File Reference

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

Go to the source code of this file.

Functions

void alloc_lookups_and_criticalities (t_chan_width_dist chan_width_dist, 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_subblock_data subblock_data, float ***net_delay, float ***net_slack)
void load_criticalities (struct s_placer_opts placer_opts, float **net_slack, float d_max, float crit_exponent)
void free_lookups_and_criticalities (float ***net_delay, float ***net_slack)

Variables

float ** timing_place_crit

Function Documentation

void alloc_lookups_and_criticalities ( t_chan_width_dist  chan_width_dist,
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_subblock_data  subblock_data,
float ***  net_delay,
float ***  net_slack 
)

Definition at line 138 of file timing_place.c.

00146 {
00147 
00148     (*net_slack) = alloc_and_load_timing_graph(timing_inf, subblock_data);
00149 
00150     (*net_delay) = alloc_net_delay(&net_delay_chunk_list_head);
00151 
00152     compute_delay_lookup_tables(router_opts, det_routing_arch, segment_inf,
00153                                 timing_inf, chan_width_dist, subblock_data);
00154 
00155     timing_place_crit = alloc_crit(&timing_place_crit_chunk_list_head);
00156 
00157 }

Here is the call graph for this function:

Here is the caller graph for this function:

void free_lookups_and_criticalities ( float ***  net_delay,
float ***  net_slack 
)

Definition at line 161 of file timing_place.c.

Here is the call graph for this function:

Here is the caller graph for this function:

void load_criticalities ( struct s_placer_opts  placer_opts,
float **  net_slack,
float  d_max,
float  crit_exponent 
)

Definition at line 100 of file timing_place.c.

00104 {
00105 
00106     /*set criticality values, returns the maximum criticality found */
00107     /*assumes that net_slack contains correct values, ie. assumes  *
00108      *that load_net_slack has been called*/
00109 
00110     int inet, ipin;
00111     float pin_crit;
00112 
00113 
00114 
00115     for(inet = 0; inet < num_nets; inet++)
00116         {
00117 
00118             if(inet == OPEN)
00119                 continue;
00120             if(net[inet].is_global)
00121                 continue;
00122 
00123             for(ipin = 1; ipin <= net[inet].num_sinks; ipin++)
00124                 {
00125                     /*clip the criticality to never go negative (could happen */
00126                     /*for a constant generator since it's slack is huge) */
00127                     pin_crit = max(1 - net_slack[inet][ipin] / d_max, 0.);
00128                     timing_place_crit[inet][ipin] =
00129                         pow(pin_crit, crit_exponent);
00130 
00131                 }
00132         }
00133 }

Here is the caller graph for this function:


Variable Documentation

Definition at line 13 of file timing_place.c.


Generated on Tue Jan 5 15:26:40 2010 for VPR5.0 by  doxygen 1.6.1