1 package edu.berkeley.fleet.marina;
2 import com.sun.electric.tool.simulation.test.*;
5 import java.util.Random;
6 import java.util.ArrayList;
12 WHOLE_CHIP_SCHEMATIC_PARASITICS,
13 WHOLE_CHIP_LAYOUT_PARASITICS,
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 float vdd, temp;
26 public boolean wholeChipNetlist() {return mode==Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS ||
27 mode==Mode.WHOLE_CHIP_LAYOUT_PARASITICS ||
28 mode==Mode.TEST_SILICON;}
29 private static void usage() {
30 System.out.println("Options: -testNum <int> select which test to run");
31 System.out.println(" -verilog use Verilog-XL simulator rather than NanoSim");
32 System.out.println(" -hsim use Hsim simulator rather than NanoSim");
33 System.out.println(" -silicon use actual silicon chip via blue box");
34 System.out.println(" -testChains invoke testAllChains() on startup");
35 System.out.println(" -vdd <float>");
36 System.out.println(" -temp <float>");
37 System.out.println(" -chipSch simulate netlist of entire chip, parasitics from schematic");
38 System.out.println(" -chipLay simulate netlist of entire chip, parasitics from layout");
39 System.out.println(" -jtagShift simulate shifting of JTAG chains");
40 System.out.println(" -silicon test the silicon");
41 System.out.println(" -chipNum <int> store test results according to chip number");
45 public CmdArgs(String[] args) {
46 int nbArgs = args.length;
47 for (int i=0; i<nbArgs; i++) {
48 if (args[i].equals("-testNum")) {
50 if (i>=nbArgs) usage();
51 testNum = Integer.parseInt(args[i]);
52 } else if (args[i].equals("-vdd")) {
54 if (i>=nbArgs) usage();
55 vdd = Float.parseFloat(args[i]);
56 } else if (args[i].equals("-init")) {
58 if (i>=nbArgs) usage();
59 init = Boolean.parseBoolean(args[i]);
60 } else if (args[i].equals("-temp")) {
62 if (i>=nbArgs) usage();
63 temp = Float.parseFloat(args[i]);
64 } else if (args[i].equals("-chipNum")) {
66 if (i>=nbArgs) usage();
67 chipNum = Integer.parseInt(args[i]);
68 } else if (args[i].equals("-chipSch")) {
69 mode = CmdArgs.Mode.WHOLE_CHIP_SCHEMATIC_PARASITICS;
70 } else if (args[i].equals("-chipLay")) {
71 mode = CmdArgs.Mode.WHOLE_CHIP_LAYOUT_PARASITICS;
73 } else if (args[i].equals("-silicon")) {
74 mode = CmdArgs.Mode.TEST_SILICON;
76 } else if (args[i].equals("-jtagShift")) {
78 } else if (args[i].equals("-testChains")) {
80 } else if (args[i].equals("-verilog")) {
82 } else if (args[i].equals("-hsim")) {
84 } else if (args[i].equals("-silicon")) {
87 System.out.println("Bad argument: "+args[i]);