Main Page | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound Members | File Members

CommandLine.h

Go to the documentation of this file.
00001 /**************************************************************************
00002 ***    
00003 *** Copyright (c) 1995-2000 Regents of the University of California,
00004 ***               Andrew E. Caldwell, Andrew B. Kahng and Igor L. Markov
00005 *** Copyright (c) 2000-2004 Regents of the University of Michigan,
00006 ***               Saurabh N. Adya, Jarrod A. Roy and Igor L. Markov
00007 ***
00008 ***  Contact author(s): abk@cs.ucsd.edu, imarkov@umich.edu
00009 ***  Original Affiliation:   UCLA, Computer Science Department,
00010 ***                          Los Angeles, CA 90095-1596 USA
00011 ***
00012 ***  Permission is hereby granted, free of charge, to any person obtaining 
00013 ***  a copy of this software and associated documentation files (the
00014 ***  "Software"), to deal in the Software without restriction, including
00015 ***  without limitation 
00016 ***  the rights to use, copy, modify, merge, publish, distribute, sublicense, 
00017 ***  and/or sell copies of the Software, and to permit persons to whom the 
00018 ***  Software is furnished to do so, subject to the following conditions:
00019 ***
00020 ***  The above copyright notice and this permission notice shall be included
00021 ***  in all copies or substantial portions of the Software.
00022 ***
00023 *** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
00024 *** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
00025 *** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
00026 *** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
00027 *** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
00028 *** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
00029 *** THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00030 ***
00031 ***
00032 ***************************************************************************/
00033 
00034 
00035 
00036 
00037 #ifndef COMMAND_LINE_H
00038 #define COMMAND_LINE_H
00039 
00040 // 040608 hhchan added StringParam "FPrep" ("SeqPair" or "BTree")
00041 
00042 #include <string>
00043 #include "ABKCommon/verbosity.h"
00044 using namespace std;
00045 
00046 namespace parquetfp
00047 {
00048    class Command_Line
00049    {
00050    public:
00051       Command_Line (int argc, const char *argv[]);
00052       Command_Line ();
00053                 
00054       // -----public member variables to store params-----
00055       bool getSeed, budgetTime;
00056       bool softBlocks;
00057       bool initQP;     // initialize a QP soln
00058       char inFileName[1024];
00059       char outPlFile [1024];
00060       char capoPlFile [1024];
00061       char capoBaseFile [1024];
00062       char baseFile [1024];
00063 
00064       string FPrep;
00065       
00066       int seed;        // fixed seed
00067       int iterations;  // number of runs
00068       int maxIterHier; // max # iterations during hierarchical flow
00069 
00070       double seconds;
00071       bool plot;             // plot to out.plt
00072       bool plotNoNets;       // do not plot nets 
00073       bool plotNoSlacks;     // do not plot slacks
00074       bool plotNoNames;      // do not plot names
00075       bool savePl;           // save .pl file as output
00076       bool saveCapoPl;       // save .pl file in Capo format
00077       bool saveCapo;         // save files in Capo format
00078       bool save;             // save files in bookshelf format
00079 
00080       bool takePl;           // takes a Placement and converts it 
00081                              // to sequence pair for initial soln
00082 
00083       // -----Parameters for 2-level hierarchy-----
00084       bool solveMulti;       // use multilevel heirarchy
00085       bool clusterPhysical;  // use physical hierarchy instead of 
00086                              // closest node
00087       bool solveTop;         // solve only top level of heirarchy
00088       double maxWSHier;      // maximum WS for heirarchical blocks
00089                              // default: 15%
00090       bool usePhyLocHier;    // use physical locs which updating 
00091       // locs of sub-blocks of clustered blocks, if using physical 
00092       // clustering. usefull for eco purposes
00093       bool dontClusterMacros; // keep macros out of clustering
00094                               // default: false
00095       int maxTopLevelNodes; // number of top-level nodes required during
00096                             // clustering. if -9999 then use sqrt(#nodes)
00097 
00098       // -----Annealer performance parameters next-----
00099       double timeInit;     // initial temperature default 30000
00100       double timeCool;     // cooling temperature default 0.01
00101       double startTime;    // default to timeInit
00102                            // (this is the time the area & WL are normalized to)
00103       double reqdAR;       // required Aspect Ratio of fixed outline
00104                            // default -9999(means no fixed outline
00105                            // desired)
00106       double maxWS;        // if fixed-outline then maximum whitespace
00107                            // acceptable
00108       bool minWL;          // whether HPWL minimization desired
00109       double areaWeight;   // weight for area minimization
00110       double wireWeight;   // weight for WL minimization
00111 
00112       bool useFastSP;      // whether to use fast SP(O(nlog n)) algo 
00113                            // for SPEval
00114 
00115       bool snapToGrid;     // use for snapping the solutions to a grid
00116                            // specified by rowHeight & siteSpacing in DB
00117 
00118       // -----pre/post-processing-----
00119       bool initCompact;    // whether to use compaction to generate
00120                            // initial SP (default: false)
00121       bool compact;        // compact final soln (default: false)
00122 
00123       Verbosity verb;      // by royj to control the verbosity of Parquet
00124 
00125       // print usage info. to cerr
00126       void printHelp(int argc, const char *argv[]) const;
00127       
00128       // print the Annealer params
00129       void printAnnealerParams() const;
00130       void printAnnealerParamsClassic() const;
00131       void setSeed();
00132    };
00133 }
00134 //using namespace parquetfp;
00135 #endif // COMMAND_LINE_H

Generated on Mon Apr 25 01:09:24 2005 for Parquete by doxygen 1.3.2