VPR-6.0

vpr/SRC/base/ReadOptions.h

Go to the documentation of this file.
00001 #ifndef READOPTIONS_H
00002 #define READOPTIONS_H
00003 
00004 typedef struct s_options t_options;
00005 struct s_options
00006 {
00007         /**@{*/
00008         /** File names */
00009     char *ArchFile;
00010     char *CircuitName;
00011     char *NetFile;
00012     char *PlaceFile;
00013     char *RouteFile;
00014         char *BlifFile;
00015         char *OutFilePrefix;
00016         /**@}*/
00017 
00018         /**@{*/
00019         /** General options */
00020         int GraphPause;
00021         float constant_net_delay;
00022     boolean TimingAnalysis;
00023         /**@}*/
00024     
00025         /**@{*/
00026         /** Clustering options */
00027         boolean global_clocks;
00028         int cluster_size;
00029         int inputs_per_cluster;
00030         int lut_size;
00031         boolean hill_climbing_flag;
00032         boolean sweep_hanging_nets_and_inputs;
00033         boolean timing_driven;
00034         enum e_cluster_seed cluster_seed_type;
00035         float alpha;
00036         float beta;
00037         int recompute_timing_after;
00038         float block_delay;
00039         float intra_cluster_net_delay;
00040         float inter_cluster_net_delay;
00041         boolean skip_clustering;
00042         boolean allow_unrelated_clustering;
00043         boolean allow_early_exit;
00044         boolean connection_driven;
00045         enum e_packer_algorithm packer_algorithm;
00046         /**@}*/
00047 
00048         /**@{*/
00049         /** Placement options */
00050     enum e_place_algorithm PlaceAlgorithm;
00051     float PlaceInitT;
00052     float PlaceExitT;
00053     float PlaceAlphaT;
00054     float PlaceInnerNum;
00055     int Seed;
00056         float place_cost_exp;
00057     enum place_c_types PlaceCostType;
00058     int PlaceChanWidth;
00059     int PlaceNonlinearRegions;
00060     char *PinFile;
00061     boolean ShowPlaceTiming;
00062     int block_dist;
00063         /**@}*/
00064 
00065         /**@{*/
00066         /* Timing-driven placement options only */
00067         float PlaceTimingTradeoff;
00068         int RecomputeCritIter;
00069         int inner_loop_recompute_divider;
00070         float place_exp_first;
00071         float place_exp_last;
00072         /**@}*/
00073     
00074         /**@{*/
00075         /* Router Options */
00076         int max_router_iterations;
00077         int bb_factor;
00078         float initial_pres_fac;
00079         float pres_fac_mult;
00080         float acc_fac;
00081         float first_iter_pres_fac;
00082         float bend_cost;
00083     enum e_route_type RouteType;
00084         int RouteChanWidth;
00085     enum e_router_algorithm RouterAlgorithm;
00086         enum e_base_cost_type base_cost_type;
00087         /**@}*/
00088 
00089         /**@{*/
00090         /* Timing-driven router options only */
00091         float astar_fac;
00092         float criticality_exp;
00093         float max_criticality;
00094         /**@}*/
00095         
00096     int Count[OT_BASE_UNKNOWN];
00097 };
00098 
00099 void ReadOptions(INP int argc,
00100                  INP char **argv,
00101                  OUTP t_options * Options);
00102 
00103 #endif
00104