blob: 2fa4431b6623e62fa864ca3972a212b433d8a209 [file] [log] [blame]
#ifndef READOPTIONS_H
#define READOPTIONS_H
typedef struct s_options t_options;
struct s_options
{
/* File names */
char *ArchFile;
char *CircuitName;
char *NetFile;
char *PlaceFile;
char *RouteFile;
char *BlifFile;
char *OutFilePrefix;
/* General options */
int GraphPause;
float constant_net_delay;
boolean TimingAnalysis;
/* Clustering options */
boolean global_clocks;
int cluster_size;
int inputs_per_cluster;
int lut_size;
boolean hill_climbing_flag;
boolean sweep_hanging_nets_and_inputs;
boolean timing_driven;
enum e_cluster_seed cluster_seed_type;
float alpha;
float beta;
int recompute_timing_after;
float block_delay;
float intra_cluster_net_delay;
float inter_cluster_net_delay;
boolean skip_clustering;
boolean allow_unrelated_clustering;
boolean allow_early_exit;
boolean connection_driven;
enum e_packer_algorithm packer_algorithm;
/* Placement options */
enum e_place_algorithm PlaceAlgorithm;
float PlaceInitT;
float PlaceExitT;
float PlaceAlphaT;
float PlaceInnerNum;
int Seed;
float place_cost_exp;
enum place_c_types PlaceCostType;
int PlaceChanWidth;
int PlaceNonlinearRegions;
char *PinFile;
boolean ShowPlaceTiming;
int block_dist;
/* Timing-driven placement options only */
float PlaceTimingTradeoff;
int RecomputeCritIter;
int inner_loop_recompute_divider;
float place_exp_first;
float place_exp_last;
/* Router Options */
int max_router_iterations;
int bb_factor;
float initial_pres_fac;
float pres_fac_mult;
float acc_fac;
float first_iter_pres_fac;
float bend_cost;
enum e_route_type RouteType;
int RouteChanWidth;
enum e_router_algorithm RouterAlgorithm;
enum e_base_cost_type base_cost_type;
/* Timing-driven router options only */
float astar_fac;
float criticality_exp;
float max_criticality;
int Count[OT_BASE_UNKNOWN];
};
void ReadOptions(INP int argc,
INP char **argv,
OUTP t_options * Options);
#endif