118 int source_clock_domain, sink_clock_domain, iinput, ioutput, icc, isource, isink;
135 vpr_printf(TIO_MESSAGE_INFO,
"Timing analysis off; using default timing constraints.\n");
140 if ((
sdc = fopen(timing_inf.
SDCFile,
"r")) == NULL) {
142 vpr_printf(TIO_MESSAGE_INFO,
"SDC file '%s' blank or not found.\n", timing_inf.
SDCFile);
164 vpr_printf(TIO_MESSAGE_INFO,
"SDC file '%s' blank or not found.\n", timing_inf.
SDCFile);
176 vpr_printf(TIO_MESSAGE_ERROR,
"[SDC line %d] Input %s is associated with an unconstrained clock %s.\n",
186 vpr_printf(TIO_MESSAGE_ERROR,
"[SDC line %d] Output %s is associated with an unconstrained clock %s.\n",
198 vpr_printf(TIO_MESSAGE_ERROR,
"[SDC line %d] Token %s is not a constrained clock.\n",
206 vpr_printf(TIO_MESSAGE_ERROR,
"[SDC line %d] Token %s is not a constrained clock.\n",
243 vpr_printf(TIO_MESSAGE_INFO,
"SDC file '%s' parsed successfully.\n",
245 vpr_printf(TIO_MESSAGE_INFO,
"%d clocks (including virtual clocks), %d inputs and %d outputs were constrained.\n",
void ** alloc_matrix(int nrmin, int nrmax, int ncmin, int ncmax, size_t elsize)
boolean timing_analysis_enabled
void * my_calloc(size_t nelem, size_t size)
float ** domain_constraint
int num_constrained_outputs
int num_constrained_inputs
static boolean get_sdc_tok(char *buf)
int num_constrained_clocks
static void use_default_timing_constraints(void)
static float calculate_constraint(t_sdc_clock source_domain, t_sdc_clock sink_domain)
static int find_constrained_clock(char *ptr)
t_clock * constrained_clocks
static void alloc_and_load_netlist_clocks_and_ios(void)
static int find_cc_constraint(char *source_clock_domain, char *sink_clock_domain)
t_io * constrained_outputs
char * my_fgets(char *buf, int max_size, FILE *fp)
t_override_constraint * cc_constraints
t_timing_constraints * g_sdc
t_io * constrained_inputs