move marina/testCode/com to src/com
[fleet.git] / src / com / sun / vlsi / chips / marina / test / InstructionStopper.java
diff --git a/src/com/sun/vlsi/chips/marina/test/InstructionStopper.java b/src/com/sun/vlsi/chips/marina/test/InstructionStopper.java
new file mode 100644 (file)
index 0000000..5c18ef7
--- /dev/null
@@ -0,0 +1,46 @@
+package com.sun.vlsi.chips.marina.test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.sun.async.test.BitVector;
+import com.sun.async.test.ChainControl;
+import com.sun.async.test.ChipModel;
+
+import edu.berkeley.fleet.api.Dock;
+import edu.berkeley.fleet.api.Instruction;
+import edu.berkeley.fleet.marina.MarinaFleet;
+
+import static com.sun.vlsi.chips.marina.test.Marina.INSTRUCTION_LENGTH;
+
+/**
+ * InstructionStopper is a scaffold that lets us create a 36 bit propperStopper
+ * by using a 52 bit propperStopper and throwing away the unused bits.
+ */
+public class InstructionStopper extends ProperStopper {
+
+    public InstructionStopper(String name,
+                              String propInst,
+                              String controlChain, String dataChain,
+                              String reportChain,
+                              ChainControls cc, ChipModel model,
+                              boolean clockHack,
+                              Indenter indenter) {
+        super(name, propInst, controlChain, dataChain, reportChain, cc, model, clockHack, indenter);
+    }
+
+    /** put one Instruction into InstructionStopper */
+    public void fill(Instruction inst) {
+        MarinaPacket mp = new MarinaPacket(inst);
+        MarinaTest.indenter.prln("  inserting instruction: " +
+                                 inst.toString().substring(inst.toString().indexOf(':')+1)
+                                 +"\n      "+mp);
+        super.fill(mp);
+    }
+
+    /* put a torpedo into the InstructionStopper */
+    public void fillTorpedo() {
+        MarinaTest.indenter.prln("  inserting torpedo");
+        super.fill(new MarinaPacket(MarinaPacket.null_word, true, MarinaPacket.null_path));
+    }
+}