--- /dev/null
+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 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(" -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 {
+ System.out.println("Bad argument: "+args[i]);
+ usage();
+ }
+ }
+ }
+}
import com.sun.async.test.SimulationModel;
import com.sun.async.test.VoltageReadable;
import com.sun.vlsi.chips.marina.test.Marina.Ilc;
-import com.sun.vlsi.chips.marina.test.MarinaUtils.CmdArgs;
-import com.sun.vlsi.chips.marina.test.MarinaUtils.Station;
-import com.sun.vlsi.chips.marina.test.MarinaUtils.CmdArgs.Mode;
+import com.sun.vlsi.chips.marina.test.CmdArgs;
+import com.sun.vlsi.chips.marina.test.CmdArgs.Mode;
import edu.berkeley.fleet.api.Dock;
import edu.berkeley.fleet.api.Instruction;
}
private MarinaTest(String[] args) {
- cmdArgs = new MarinaUtils.CmdArgs(args);
+ cmdArgs = new CmdArgs(args);
reportTask(cmdArgs);
if (cmdArgs.mode==Mode.TEST_SILICON) doSilicon(); else doSim();
}
* or whether high means EMPTY */
public static enum StateWireState {FULL, EMPTY};
- public static 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 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(" -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 {
- System.out.println("Bad argument: "+args[i]);
- usage();
- }
- }
- }
- }
- public static enum Station {
- ONE("152.70.25.42", 1, "H34401C", "H34401A", 24.98e-3),
- TWO("152.70.25.27", 2, "H34401B", "H34401D", 26.47e-3);
- public final String ipAddr, coreVoltmeter, currentVoltmenter;
- public final int jtagChannel;
- public final double ammeterShuntResistance;
- private Station(String ip, int jtagChannel, String coreVoltmeter,
- String currentVoltmeter, double ammeterShuntResistance) {
- this.ipAddr = ip;
- this.jtagChannel = jtagChannel;
- this.coreVoltmeter = coreVoltmeter;
- this.currentVoltmenter = currentVoltmeter;
- this.ammeterShuntResistance = ammeterShuntResistance;
- }
- };
-
public static void fatal(boolean pred, String msg) {
if (pred) Infrastructure.fatal(msg);
}
--- /dev/null
+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 enum Station {
+ ONE("152.70.25.42", 1, "H34401C", "H34401A", 24.98e-3),
+ TWO("152.70.25.27", 2, "H34401B", "H34401D", 26.47e-3);
+ public final String ipAddr, coreVoltmeter, currentVoltmenter;
+ public final int jtagChannel;
+ public final double ammeterShuntResistance;
+ private Station(String ip, int jtagChannel, String coreVoltmeter,
+ String currentVoltmeter, double ammeterShuntResistance) {
+ this.ipAddr = ip;
+ this.jtagChannel = jtagChannel;
+ this.coreVoltmeter = coreVoltmeter;
+ this.currentVoltmenter = currentVoltmeter;
+ this.ammeterShuntResistance = ammeterShuntResistance;
+ }
+};