proper decoding of kessels OLC scan
authorAdam Megacz <adam.megacz@sun.com>
Fri, 29 May 2009 06:30:53 +0000 (06:30 +0000)
committerAdam Megacz <adam.megacz@sun.com>
Fri, 29 May 2009 06:30:53 +0000 (06:30 +0000)
testCode/com/sun/vlsi/chips/marina/test/Marina.java

index e91f8a9..158e6df 100644 (file)
@@ -275,15 +275,18 @@ public class Marina {
     /** Get the 6 bit outer loop counter. */
     public int getOLC() {
         shiftReport(true, false);
-        BitVector odd = cc.getOutBits(REPORT_CHAIN+"."+OLC_PATH_ODD).bitReverse().not();
-        BitVector even = cc.getOutBits(REPORT_CHAIN+"."+OLC_PATH_EVEN).bitReverse().not();
+        BitVector odd = cc.getOutBits(REPORT_CHAIN+"."+OLC_PATH_ODD).bitReverse();
+        BitVector even = cc.getOutBits(REPORT_CHAIN+"."+OLC_PATH_EVEN).bitReverse();
+        if (!kesselsCounter) {
+            odd = odd.not();
+            even = even.not();
+        }
         BitVector bv = new BitVector(6, "olc");
         for(int i=0; i<3; i++) {
             bv.set(i*2,   odd.get(i));
             bv.set(i*2+1, even.get(i));
         }
-        int ret = (int)bv.toLong();
-        return kesselsCounter ? (64-ret) : ret;
+        return (int)bv.toLong();
     }
     /** Get the 7 bit inner loop counter. The MSB is the zero bit.
      * The low order 6 bits are the count */
@@ -334,6 +337,7 @@ public class Marina {
     }
     /** Fill the "North" Fifo ring */
     public void fillNorthProperStopper(MarinaPacket mp) {
+        prln("inserting into north: " + mp);
         this.data.fill(mp.toSingleBitVector());
     }
     /** Enable the transmission of instructions from the instruction