change com.sun.async.test -> com.sun.electric.tool.simulation.test
[fleet.git] / src / com / sun / vlsi / chips / marina / test / CmdArgs.java
1 package com.sun.vlsi.chips.marina.test;
2 import com.sun.electric.tool.simulation.test.*;
3
4 import java.util.List;
5 import java.util.Random;
6 import java.util.ArrayList;
7
8 public class CmdArgs {
9     public enum Mode {
10         //ISOLATED_IN_DOCK,
11         //ISOLATED_OUT_DOCK,
12         WHOLE_CHIP_SCHEMATIC_PARASITICS,
13             WHOLE_CHIP_LAYOUT_PARASITICS,
14             TEST_SILICON
15             };
16     public Mode mode = Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS;
17     public int testNum, ringNum, numTokensOther, chipNum=-1;
18     public boolean jtagShift = false;
19     public boolean testChains = false;
20     public boolean useVerilog = false;
21     public boolean useHsim = false;
22     public boolean silicon = false;
23     public Station station=Station.ONE;
24     public float vdd, temp;
25     public boolean init;
26
27     public boolean wholeChipNetlist() {return mode==Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS ||
28             mode==Mode.WHOLE_CHIP_LAYOUT_PARASITICS ||
29             mode==Mode.TEST_SILICON;}
30     private static void usage() {
31         System.out.println("Options: -testNum <int>            select which test to run");
32         System.out.println("         -verilog                  use Verilog-XL simulator rather than NanoSim");
33         System.out.println("         -hsim                     use Hsim simulator rather than NanoSim");
34         System.out.println("         -silicon                  use actual silicon chip via blue box");
35         System.out.println("         -testChains               invoke testAllChains() on startup");
36         System.out.println("         -vdd <float>");
37         System.out.println("         -temp <float>");
38         System.out.println("         -chipSch                  simulate netlist of entire chip, parasitics from schematic");
39         System.out.println("         -chipLay                  simulate netlist of entire chip, parasitics from layout");
40         System.out.println("         -jtagShift                simulate shifting of JTAG chains");
41         System.out.println("         -silicon                  test the silicon");
42         System.out.println("         -chipNum <int>            store test results according to chip number");
43         System.out.println("         -station <int>            select test station");
44         System.exit(-1);
45     }
46
47     public CmdArgs(String[] args) {
48         int nbArgs = args.length;
49         for (int i=0; i<nbArgs; i++) {
50             if (args[i].equals("-testNum")) {
51                 i++;
52                 if (i>=nbArgs) usage();
53                 testNum = Integer.parseInt(args[i]);
54             } else if (args[i].equals("-vdd")) {
55                 i++;
56                 if (i>=nbArgs) usage();
57                 vdd = Float.parseFloat(args[i]);
58             } else if (args[i].equals("-init")) {
59                 i++;
60                 if (i>=nbArgs) usage();
61                 init = Boolean.parseBoolean(args[i]);
62             } else if (args[i].equals("-temp")) {
63                 i++;
64                 if (i>=nbArgs) usage();
65                 temp = Float.parseFloat(args[i]);
66             } else if (args[i].equals("-chipNum")) {
67                 i++;
68                 if (i>=nbArgs) usage();
69                 chipNum = Integer.parseInt(args[i]); 
70             } else if (args[i].equals("-station")) {
71                 i++;
72                 if (i>=nbArgs) usage();
73                 switch (Integer.parseInt(args[i])) {
74                     case 1: station = Station.ONE; break; 
75                     case 2: station = Station.TWO; break;
76                     default: System.out.println("Bad station: "+args[i]); usage();
77                 }
78             } else if (args[i].equals("-chipSch")) {
79                 mode = CmdArgs.Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS;
80             } else if (args[i].equals("-chipLay")) {
81                 mode = CmdArgs.Mode.WHOLE_CHIP_LAYOUT_PARASITICS;
82                 /*
83             } else if (args[i].equals("-silicon")) {
84                 mode = CmdArgs.Mode.TEST_SILICON;
85                 */
86             } else if (args[i].equals("-jtagShift")) {
87                 jtagShift = true;
88             } else if (args[i].equals("-testChains")) {
89                 testChains = true;
90             } else if (args[i].equals("-verilog")) {
91                 useVerilog = true;
92             } else if (args[i].equals("-hsim")) {
93                 useHsim = true;
94             } else if (args[i].equals("-silicon")) {
95                 silicon = true;
96             } else {
97                 System.out.println("Bad argument: "+args[i]);
98                 usage();
99             }
100         }
101     }
102 }