1698 int i, j, source_clock_domain, sink_clock_domain, inode, inet, ipin;
1700 #if defined PATH_COUNTING || SLACK_DEFINITION == 'S'
1701 int iedge, num_edges;
1704 #ifdef PATH_COUNTING
1712 float criticality_denom;
1716 long max_critical_output_paths, max_critical_input_paths;
1719 #if SLACK_DEFINITION == 'S'
1728 for (inode = 0; inode <
num_tnodes; inode++) {
1751 #ifdef PATH_COUNTING
1752 slacks->path_criticality[inet][ipin] = 0.;
1765 #ifndef PATH_COUNTING
1768 for (inode = 0; inode <
num_tnodes; inode++) {
1776 if (do_lut_input_balancing) {
1794 is_prepacked, is_final_analysis, &max_critical_input_paths, &max_critical_output_paths);
1795 #ifdef PATH_COUNTING
1797 do_path_counting(criticality_denom);
1803 update_slacks(slacks, source_clock_domain, sink_clock_domain, criticality_denom, update_slack);
1805 #ifndef PATH_COUNTING
1812 #if SLACK_DEFINITION == 'S'
1814 criticality_denom_global =
std::max(criticality_denom_global, criticality_denom);
1820 #ifdef PATH_COUNTING
1826 for (iedge = 0; iedge < num_edges; iedge++) {
1827 max_path_criticality =
std::max(max_path_criticality, slacks->path_criticality[inet][iedge + 1]);
1833 for (iedge = 0; iedge < num_edges; iedge++) {
1834 slacks->path_criticality[inet][iedge + 1] /= max_path_criticality;
1840 #if SLACK_DEFINITION == 'S'
1841 if (!is_final_analysis) {
1851 if (smallest_slack_in_design < 0) {
1854 for (iedge = 0; iedge < num_edges; iedge++) {
1855 slacks->
slack[inet][iedge + 1] -= smallest_slack_in_design;
1867 for (iedge = 0; iedge < num_edges; iedge++) {
static int num_timing_nets
static void do_lut_rebalancing()
static t_timing_stats * f_timing_stats
float ** domain_constraint
struct s_pb ** rr_node_to_pb_mapping
boolean getEchoEnabled(void)
t_prepacked_tnode_data * prepacked_data
static float do_timing_analysis_for_constraint(int source_clock_domain, int sink_clock_domain, boolean is_prepacked, boolean is_final_analysis, long *max_critical_input_paths_ptr, long *max_critical_output_paths_ptr)
#define HUGE_POSITIVE_FLOAT
float normalized_total_critical_paths
static void update_slacks(t_slack *slacks, int source_clock_domain, int sink_clock_domain, float criticality_denom, boolean update_slack)
int num_constrained_clocks
t_pb_graph_pin * pb_graph_pin
struct s_pb_type * pb_type
static struct s_net * timing_nets
static void update_normalized_costs(float T_arr_max_this_domain, long max_critical_input_paths, long max_critical_output_paths)
float ** timing_criticality
t_timing_constraints * g_sdc
t_pb_graph_node * pb_graph_node
#define HUGE_NEGATIVE_FLOAT