|
VPR-6.0
|
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, 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 |
| 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, | ||
| float *** | net_delay, | ||
| float *** | net_slack | ||
| ) |
Definition at line 138 of file timing_place.c.
{
(*net_slack) = alloc_and_load_timing_graph(timing_inf);
(*net_delay) = alloc_net_delay(&net_delay_chunk_list_head, clb_net, num_nets);
compute_delay_lookup_tables(router_opts, det_routing_arch, segment_inf,
timing_inf, chan_width_dist);
timing_place_crit = alloc_crit(&timing_place_crit_chunk_list_head);
}
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 160 of file timing_place.c.
{
free(timing_place_crit);
free_crit(&timing_place_crit_chunk_list_head);
free_timing_graph(*net_slack);
free_net_delay(*net_delay, &net_delay_chunk_list_head);
}
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 | ||
| ) |
set criticality values, returns the maximum criticality found assumes that net_slack contains correct values, ie. assumes that load_net_slack has been called
Definition at line 104 of file timing_place.c.
{
int inet, ipin;
float pin_crit;
for(inet = 0; inet < num_nets; inet++)
{
if(inet == OPEN)
continue;
if(clb_net[inet].is_global)
continue;
for(ipin = 1; ipin <= clb_net[inet].num_sinks; ipin++)
{
/*clip the criticality to never go negative (could happen */
/*for a constant generator since it's slack is huge) */
pin_crit = max(1 - net_slack[inet][ipin] / d_max, 0.);
timing_place_crit[inet][ipin] =
pow(pin_crit, crit_exponent);
}
}
}
Here is the caller graph for this function:| float** timing_place_crit |
available externally
Definition at line 13 of file timing_place.c.