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