1 package com.sun.vlsi.chips.marina.test;
2 import com.sun.async.test.BitVector;
3 import com.sun.async.test.Infrastructure;
6 import java.util.Random;
7 import java.util.ArrayList;
13 WHOLE_CHIP_SCHEMATIC_PARASITICS,
14 WHOLE_CHIP_LAYOUT_PARASITICS,
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;
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");
48 public CmdArgs(String[] args) {
49 int nbArgs = args.length;
50 for (int i=0; i<nbArgs; i++) {
51 if (args[i].equals("-testNum")) {
53 if (i>=nbArgs) usage();
54 testNum = Integer.parseInt(args[i]);
55 } else if (args[i].equals("-vdd")) {
57 if (i>=nbArgs) usage();
58 vdd = Float.parseFloat(args[i]);
59 } else if (args[i].equals("-init")) {
61 if (i>=nbArgs) usage();
62 init = Boolean.parseBoolean(args[i]);
63 } else if (args[i].equals("-temp")) {
65 if (i>=nbArgs) usage();
66 temp = Float.parseFloat(args[i]);
67 } else if (args[i].equals("-chipNum")) {
69 if (i>=nbArgs) usage();
70 chipNum = Integer.parseInt(args[i]);
71 } else if (args[i].equals("-station")) {
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();
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;
84 } else if (args[i].equals("-silicon")) {
85 mode = CmdArgs.Mode.TEST_SILICON;
87 } else if (args[i].equals("-jtagShift")) {
89 } else if (args[i].equals("-testChains")) {
91 } else if (args[i].equals("-verilog")) {
93 } else if (args[i].equals("-hsim")) {
95 } else if (args[i].equals("-silicon")) {
98 System.out.println("Bad argument: "+args[i]);