move marina/testCode/com to src/com
[fleet.git] / src / com / sun / vlsi / chips / marina / test / CmdArgs.java
diff --git a/src/com/sun/vlsi/chips/marina/test/CmdArgs.java b/src/com/sun/vlsi/chips/marina/test/CmdArgs.java
new file mode 100644 (file)
index 0000000..2b1d237
--- /dev/null
@@ -0,0 +1,97 @@
+package com.sun.vlsi.chips.marina.test;
+import com.sun.async.test.BitVector;
+import com.sun.async.test.Infrastructure;
+
+import java.util.List;
+import java.util.Random;
+import java.util.ArrayList;
+
+public class CmdArgs {
+    public enum Mode {
+        //ISOLATED_IN_DOCK,
+        //ISOLATED_OUT_DOCK,
+        WHOLE_CHIP_SCHEMATIC_PARASITICS,
+            WHOLE_CHIP_LAYOUT_PARASITICS,
+            TEST_SILICON
+            };
+    public Mode mode = Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS;
+    public int testNum, ringNum, numTokensOther, chipNum=-1;
+    public boolean jtagShift = false;
+    public boolean testChains = false;
+    public boolean useVerilog = false;
+    public boolean useHsim = false;
+    public Station station=Station.ONE;
+    public float vdd, temp;
+    public boolean init;
+
+    public boolean wholeChipNetlist() {return mode==Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS ||
+            mode==Mode.WHOLE_CHIP_LAYOUT_PARASITICS ||
+            mode==Mode.TEST_SILICON;}
+    private static void usage() {
+        System.out.println("Options: -testNum <int>            select which test to run");
+        System.out.println("         -verilog                  use Verilog-XL simulator rather than NanoSim");
+        System.out.println("         -hsim                     use Hsim simulator rather than NanoSim");
+        System.out.println("         -testChains               invoke testAllChains() on startup");
+        System.out.println("         -vdd <float>");
+        System.out.println("         -temp <float>");
+        System.out.println("         -chipSch                  simulate netlist of entire chip, parasitics from schematic");
+        System.out.println("         -chipLay                  simulate netlist of entire chip, parasitics from layout");
+        System.out.println("         -jtagShift                simulate shifting of JTAG chains");
+        System.out.println("         -silicon                  test the silicon");
+        System.out.println("         -chipNum <int>            store test results according to chip number");
+        System.out.println("         -station <int>            select test station");
+        System.exit(-1);
+    }
+
+    public CmdArgs(String[] args) {
+        int nbArgs = args.length;
+        for (int i=0; i<nbArgs; i++) {
+            if (args[i].equals("-testNum")) {
+                i++;
+                if (i>=nbArgs) usage();
+                testNum = Integer.parseInt(args[i]);
+            } else if (args[i].equals("-vdd")) {
+                i++;
+                if (i>=nbArgs) usage();
+                vdd = Float.parseFloat(args[i]);
+            } else if (args[i].equals("-init")) {
+                i++;
+                if (i>=nbArgs) usage();
+                init = Boolean.parseBoolean(args[i]);
+            } else if (args[i].equals("-temp")) {
+                i++;
+                if (i>=nbArgs) usage();
+                temp = Float.parseFloat(args[i]);
+            } else if (args[i].equals("-chipNum")) {
+                i++;
+                if (i>=nbArgs) usage();
+                chipNum = Integer.parseInt(args[i]); 
+            } else if (args[i].equals("-station")) {
+                i++;
+                if (i>=nbArgs) usage();
+                switch (Integer.parseInt(args[i])) {
+                    case 1: station = Station.ONE; break; 
+                    case 2: station = Station.TWO; break;
+                    default: System.out.println("Bad station: "+args[i]); usage();
+                }
+            } else if (args[i].equals("-chipSch")) {
+                mode = CmdArgs.Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS;
+            } else if (args[i].equals("-chipLay")) {
+                mode = CmdArgs.Mode.WHOLE_CHIP_LAYOUT_PARASITICS;
+            } else if (args[i].equals("-silicon")) {
+                mode = CmdArgs.Mode.TEST_SILICON;
+            } else if (args[i].equals("-jtagShift")) {
+                jtagShift = true;
+            } else if (args[i].equals("-testChains")) {
+                testChains = true;
+            } else if (args[i].equals("-verilog")) {
+                useVerilog = true;
+            } else if (args[i].equals("-hsim")) {
+                useHsim = true;
+            } else {
+                System.out.println("Bad argument: "+args[i]);
+                usage();
+            }
+        }
+    }
+}