VPR-7.0
|
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <math.h>
#include "util.h"
#include "vpr_types.h"
#include "globals.h"
#include "path_delay.h"
#include "path_delay2.h"
#include "net_delay.h"
#include "vpr_utils.h"
#include <assert.h>
#include "read_xml_arch_file.h"
#include "ReadOptions.h"
#include "read_sdc.h"
#include "stats.h"
Go to the source code of this file.
Macros | |
#define | NUM_BUCKETS 5 /* Used when printing slack and criticality. */ |
Functions | |
static t_slack * | alloc_slacks (void) |
static void | update_slacks (t_slack *slacks, int source_clock_domain, int sink_clock_domain, float criticality_denom, boolean update_slack) |
static void | alloc_and_load_tnodes (t_timing_inf timing_inf) |
static void | alloc_and_load_tnodes_from_prepacked_netlist (float block_delay, float inter_cluster_net_delay) |
static void | alloc_timing_stats (void) |
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) |
static void | do_lut_rebalancing () |
static void | load_tnode (INP t_pb_graph_pin *pb_graph_pin, INP int iblock, INOUTP int *inode, INP t_timing_inf timing_inf) |
static void | update_normalized_costs (float T_arr_max_this_domain, long max_critical_input_paths, long max_critical_output_paths) |
static void | print_primitive_as_blif (FILE *fpout, int iblk) |
static void | set_and_balance_arrival_time (int to_node, int from_node, float Tdel, boolean do_lut_input_balancing) |
static void | load_clock_domain_and_clock_and_io_delay (boolean is_prepacked) |
static char * | find_tnode_net_name (int inode, boolean is_prepacked) |
static t_tnode * | find_ff_clock_tnode (int inode, boolean is_prepacked) |
static int | get_tnode_index (t_tnode *node) |
static boolean | has_valid_T_arr (int inode) |
static boolean | has_valid_T_req (int inode) |
static int | find_clock (char *net_name) |
static int | find_input (char *net_name) |
static int | find_output (char *net_name) |
static int | find_cf_constraint (char *source_clock_name, char *sink_ff_name) |
static void | propagate_clock_domain_and_skew (int inode) |
static void | process_constraints (void) |
static void | print_global_criticality_stats (FILE *fp, float **criticality, const char *singular_name, const char *capitalized_plural_name) |
static void | print_timing_constraint_info (const char *fname) |
static void | print_spaces (FILE *fp, int num_spaces) |
t_slack * | alloc_and_load_timing_graph (t_timing_inf timing_inf) |
t_slack * | alloc_and_load_pre_packing_timing_graph (float block_delay, float inter_cluster_net_delay, t_model *models, t_timing_inf timing_inf) |
void | load_timing_graph_net_delays (float **net_delay) |
void | free_timing_graph (t_slack *slacks) |
void | free_timing_stats (void) |
void | print_slack (float **slack, boolean slack_is_normalized, const char *fname) |
void | print_criticality (t_slack *slacks, boolean criticality_is_normalized, const char *fname) |
void | print_net_delay (float **net_delay, const char *fname) |
void | print_clustering_timing_info (const char *fname) |
void | print_timing_graph (const char *fname) |
void | do_timing_analysis (t_slack *slacks, boolean is_prepacked, boolean do_lut_input_balancing, boolean is_final_analysis) |
void | print_lut_remapping (const char *fname) |
void | print_critical_path (const char *fname) |
t_linked_int * | allocate_and_load_critical_path (void) |
void | get_tnode_block_and_output_net (int inode, int *iblk_ptr, int *inet_ptr) |
void | do_constant_net_delay_timing_analysis (t_timing_inf timing_inf, float constant_net_delay_value) |
boolean | has_valid_normalized_T_arr (int inode) |
float | get_critical_path_delay (void) |
void | print_timing_stats (void) |
void | print_timing_graph_as_blif (const char *fname, t_model *models) |
Variables | |
t_tnode * | tnode = NULL |
int | num_tnodes = 0 |
static t_chunk | tedge_ch = {NULL, 0, NULL} |
static struct s_net * | timing_nets = NULL |
static int | num_timing_nets = 0 |
static t_timing_stats * | f_timing_stats = NULL |
static int * | f_net_to_driver_tnode |
#define NUM_BUCKETS 5 /* Used when printing slack and criticality. */ |
Definition at line 148 of file path_delay.c.
t_slack* alloc_and_load_pre_packing_timing_graph | ( | float | block_delay, |
float | inter_cluster_net_delay, | ||
t_model * | models, | ||
t_timing_inf | timing_inf | ||
) |
Definition at line 288 of file path_delay.c.
t_slack* alloc_and_load_timing_graph | ( | t_timing_inf | timing_inf | ) |
Definition at line 239 of file path_delay.c.
|
static |
Definition at line 730 of file path_delay.c.
|
static |
Definition at line 995 of file path_delay.c.
|
static |
Definition at line 344 of file path_delay.c.
|
static |
Definition at line 1598 of file path_delay.c.
t_linked_int* allocate_and_load_critical_path | ( | void | ) |
Definition at line 2522 of file path_delay.c.
void do_constant_net_delay_timing_analysis | ( | t_timing_inf | timing_inf, |
float | constant_net_delay_value | ||
) |
Definition at line 2636 of file path_delay.c.
|
static |
Definition at line 1877 of file path_delay.c.
void do_timing_analysis | ( | t_slack * | slacks, |
boolean | is_prepacked, | ||
boolean | do_lut_input_balancing, | ||
boolean | is_final_analysis | ||
) |
Definition at line 1613 of file path_delay.c.
|
static |
Definition at line 1926 of file path_delay.c.
|
static |
Definition at line 3018 of file path_delay.c.
|
static |
Definition at line 2982 of file path_delay.c.
Definition at line 2955 of file path_delay.c.
|
static |
Definition at line 2994 of file path_delay.c.
|
static |
Definition at line 3006 of file path_delay.c.
|
static |
Definition at line 2936 of file path_delay.c.
void free_timing_graph | ( | t_slack * | slacks | ) |
Definition at line 390 of file path_delay.c.
void free_timing_stats | ( | void | ) |
float get_critical_path_delay | ( | void | ) |
Definition at line 3060 of file path_delay.c.
void get_tnode_block_and_output_net | ( | int | inode, |
int * | iblk_ptr, | ||
int * | inet_ptr | ||
) |
Definition at line 2611 of file path_delay.c.
|
inlinestatic |
boolean has_valid_normalized_T_arr | ( | int | inode | ) |
Definition at line 3054 of file path_delay.c.
|
inlinestatic |
Definition at line 3043 of file path_delay.c.
|
inlinestatic |
Definition at line 3048 of file path_delay.c.
|
static |
Definition at line 2807 of file path_delay.c.
void load_timing_graph_net_delays | ( | float ** | net_delay | ) |
Definition at line 368 of file path_delay.c.
|
static |
Definition at line 1297 of file path_delay.c.
void print_clustering_timing_info | ( | const char * | fname | ) |
Definition at line 696 of file path_delay.c.
void print_critical_path | ( | const char * | fname | ) |
Definition at line 2458 of file path_delay.c.
Definition at line 559 of file path_delay.c.
|
static |
Definition at line 606 of file path_delay.c.
void print_lut_remapping | ( | const char * | fname | ) |
Definition at line 2430 of file path_delay.c.
void print_net_delay | ( | float ** | net_delay, |
const char * | fname | ||
) |
Definition at line 670 of file path_delay.c.
|
static |
Definition at line 3452 of file path_delay.c.
void print_slack | ( | float ** | slack, |
boolean | slack_is_normalized, | ||
const char * | fname | ||
) |
Definition at line 441 of file path_delay.c.
|
static |
|
static |
Definition at line 3222 of file path_delay.c.
void print_timing_graph | ( | const char * | fname | ) |
Definition at line 1388 of file path_delay.c.
void print_timing_graph_as_blif | ( | const char * | fname, |
t_model * | models | ||
) |
Definition at line 3360 of file path_delay.c.
void print_timing_stats | ( | void | ) |
Definition at line 3081 of file path_delay.c.
|
static |
Definition at line 1489 of file path_delay.c.
|
static |
Definition at line 2905 of file path_delay.c.
|
static |
Definition at line 2707 of file path_delay.c.
|
static |
Definition at line 2677 of file path_delay.c.
|
static |
Definition at line 2344 of file path_delay.c.
|
static |
Definition at line 161 of file path_delay.c.
|
static |
Definition at line 159 of file path_delay.c.
|
static |
Definition at line 157 of file path_delay.c.
int num_tnodes = 0 |
Definition at line 144 of file path_delay.c.
|
static |
Definition at line 153 of file path_delay.c.
|
static |
Definition at line 155 of file path_delay.c.
t_tnode* tnode = NULL |
Definition at line 143 of file path_delay.c.