update dc bit in test 3012
authorAdam Megacz <adam.megacz@sun.com>
Wed, 10 Dec 2008 16:44:31 +0000 (16:44 +0000)
committerAdam Megacz <adam.megacz@sun.com>
Wed, 10 Dec 2008 16:44:31 +0000 (16:44 +0000)
testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java

index cd9bf19..c4a528c 100644 (file)
@@ -1248,6 +1248,45 @@ public class MarinaTest {
        prln("End recvData");           
     }
 
+    /*
+    private void testRecvAndSendWalkingOne(Marina marina) {
+       prln("Begin testRecvAndSendWalkingOne");
+       adjustIndent(2);
+
+        // FIXME
+        marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, CLEAR_FLAG, CLEAR_FLAG));
+        marina.instrIn.fill(new Instruction.Move(DOCK,
+                                                 false,                /* requeueing  */
+                                                 Predicate.IgnoreOLC,   /* predicate   */
+                                                 true,                  /* torpedoable */
+                                                 null,                  /* path        */
+                                                 false,                 /* tokenIn     */
+                                                 true,                  /* dataIn      */
+                                                 false,                 /* latchData   */
+                                                 false,                 /* latchPath   */
+                                                 false,                 /* dataOut     */
+                                                 false                  /* tokenOut    */
+                                                 ));
+        marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, SET_FLAG, SET_FLAG));
+
+        prln("checking to confirm that A flag is cleared");
+        fatal(marina.getFlagA(), "bad A flag: "+marina.getFlagA());
+        
+        prln("inserting data item in north fifo ring");
+        BitVector data = new BitVector(37, "empty");
+        BitVector addr = new BitVector(14, "empty");
+        for(int i=0; i<data.getNumBits(); i++) data.set(i, false);
+        for(int i=0; i<addr.getNumBits(); i++) addr.set(i, false);
+        marina.fillNorthProperStopper(new MarinaPacket(data, false, addr));
+
+        prln("checking to see if A flag got set");
+        fatal(!marina.getFlagA(), "bad A flag: "+marina.getFlagA());
+
+       adjustIndent(-2);
+       prln("End testRecvAndSendWalkingOne");          
+    }
+*/
+
 
     private void setOlcFromDataLatch(Marina marina) {
        prln("Begin setOlcFromDataLatch");
@@ -1412,8 +1451,13 @@ public class MarinaTest {
        prln("Begin testFlagC");
        adjustIndent(2);
 
-        // addr[0] == sigS
-        // addr[13] == sigA
+        // Russell says:
+        // addr[14] == sigS
+        // addr[1]  == sigA
+        //
+        // Adam says:
+        // Dc=1 => sigS is copied into C-flag
+        // Dc=0 => sigA is copied into C-flag
        
         for(boolean dc : new boolean[] { false, true }) {
             for(boolean c_flag : new boolean[] { true, false, true }) {
@@ -1425,7 +1469,7 @@ public class MarinaTest {
                 for(int i=0; i<data.getNumBits(); i++) data.set(i, false);
                 for(int i=0; i<addr.getNumBits(); i++) addr.set(i, false);
 
-                int whichbit = dc ? 0 : 13;
+                int whichbit = dc ? 13 : 0;
                 prln("setting addr["+whichbit+"] to "+(c_flag?"1":"0"));
                 addr.set(whichbit, c_flag);
 
@@ -1940,6 +1984,7 @@ public class MarinaTest {
                 case 3021: recvPath(marina); break;
                 case 3022: testILC(marina); break;
                 case 3023: testTorpedoOnAnInfiniteNop(marina); break;
+                    //case 3024: testRecvAndSendWalkingOne(marina); break;
                 case 3025: testOlcDecrementAtHighSpeed(marina); break;
 
                default: