From 42fce307577559a6df427df9cca5f3f99710eb3d Mon Sep 17 00:00:00 2001 From: Adam Megacz Date: Tue, 3 Mar 2009 20:38:35 +0000 Subject: [PATCH] update MarinaTest to work with new encoder --- .../com/sun/vlsi/chips/marina/test/MarinaTest.java | 140 ++++++++++---------- 1 file changed, 70 insertions(+), 70 deletions(-) diff --git a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java index 84c08ee..3264b27 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java +++ b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java @@ -452,7 +452,7 @@ public class MarinaTest { marina.instrIn.fill( new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -478,7 +478,7 @@ public class MarinaTest { prln("ILC=1"); marina.instrIn.fill( - new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 1)); + new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); getCtrsFlags(marina); @@ -486,7 +486,7 @@ public class MarinaTest { marina.instrIn.fill( new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -514,7 +514,7 @@ public class MarinaTest { prln("ILC=\\infty"); marina.instrIn.fill( - new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter,SetSource.Infinity)); + new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,SetSource.Infinity)); getCtrsFlags(marina); @@ -536,7 +536,7 @@ public class MarinaTest { private void setOLC(Marina marina, int olc) { // ugly hack, to be removed when we fix the zero-detect circuit for(int i=0; i<2; i++) { - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, olc)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, olc)); } } @@ -546,7 +546,7 @@ public class MarinaTest { List toks; - Predicate only_if_olc_zero = Predicate.OLCZero; + Predicate only_if_olc_zero = Predicate.FlagD; Predicate only_if_olc_nonzero = Predicate.Default; for(int olc : new int[] { 1, 0 }) { @@ -597,7 +597,7 @@ public class MarinaTest { for(boolean flag_a : new boolean[] { false, true }) { for(boolean flag_b : new boolean[] { false, true }) { prln("Setting flags, a="+flag_a+" b="+flag_b); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, flag_a ? Instruction.Set.FlagFunction.ONE : Instruction.Set.FlagFunction.ZERO, @@ -618,7 +618,7 @@ public class MarinaTest { prln("Attempting send data with a="+flag_a+", b="+flag_b+", predicate="+predicate.getClass().getName()); adjustIndent(2); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 1)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); marina.instrIn.fill(new Instruction.Move(DOCK, false, /* requeueing */ predicate, /* predicate */ @@ -675,7 +675,7 @@ public class MarinaTest { int inOlc = 0x20 >> i; prln("Set inOlc="+inOlc); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, inOlc)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, inOlc)); int outOlc = marina.getOLC(); fatal(outOlc!=inOlc, "walkOneOLC: got="+outOlc+" expected="+inOlc); } @@ -691,7 +691,7 @@ public class MarinaTest { prln("inIlc="+inIlc); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, inIlc)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, inIlc)); Ilc ilc = marina.getILC(); int outIlc = ilc.getCount(); @@ -704,7 +704,7 @@ public class MarinaTest { } prln("Now test the infinity bit"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, SetSource.Infinity)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, SetSource.Infinity)); Ilc ilc = marina.getILC(); fatal(!ilc.getInfinity(), "bad Infinity bit: false"); adjustIndent(-2); @@ -717,7 +717,7 @@ public class MarinaTest { prln("Set ILC=63"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, maxIlc)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, maxIlc)); int ilc = marina.getILC().getCount(); fatal(ilc!=maxIlc, "bad ILC count: "+ilc+" expected: "+maxIlc); @@ -726,7 +726,7 @@ public class MarinaTest { marina.instrIn.fill( new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -754,13 +754,13 @@ public class MarinaTest { adjustIndent(2); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, maxOlc)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, maxOlc)); for (int i=maxOlc; i>=0; i--) { prln("OLC should be: "+i); int olc = marina.getOLC(); fatal(olc!=i, "bad OLC: "+olc+" expected: "+i); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, SetSource.Decrement)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, SetSource.Decrement)); } adjustIndent(-2); @@ -790,7 +790,7 @@ public class MarinaTest { private static final Instruction NOP = new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -804,7 +804,7 @@ public class MarinaTest { private static final Instruction REQUEUEING_NOP = new Instruction.Move(DOCK, true, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -818,7 +818,7 @@ public class MarinaTest { private static final Instruction SEND_DATA = new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -832,7 +832,7 @@ public class MarinaTest { private static final Instruction RECV_DATA = new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -846,7 +846,7 @@ public class MarinaTest { private static final Instruction SEND_TOKEN = new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -860,7 +860,7 @@ public class MarinaTest { private static final Instruction RECV_TOKEN = new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ true, /* tokenIn */ @@ -874,7 +874,7 @@ public class MarinaTest { private static final Instruction REQUEUEING_SEND_DATA = new Instruction.Move(DOCK, true, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ false, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -932,7 +932,7 @@ public class MarinaTest { prln("Executing Set OLC="+olc_value); setOLC(marina, olc_value); prln("Executing Set ILC=1"); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 1)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); // verify state0 "EPI->ring" and 0->1 transition prln("Executing Send Data (requeueable); this will cause 0->1 transition and be discarded"); @@ -942,13 +942,13 @@ public class MarinaTest { // verify state1 "EPI->ring" prln("Executing Set ILC=1; this will be recirculated"); - marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 1)); + marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); prln("Executing Send Data; this will be recirculated"); marina.instrIn.fill(REQUEUEING_SEND_DATA); prln("Executing Set OLC--; this will be recirculated"); - marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreOLC,SetDest.OuterLoopCounter,SetSource.Decrement)); + marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter,SetSource.Decrement)); // verify state1 "OD waits" dataItems = marina.data.drainMany(2); @@ -1008,7 +1008,7 @@ public class MarinaTest { setOLC(marina, olc_value); prln("Executing Set ILC=1"); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 1)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); // insert many non-requeueing "send data item" instructions; // this will let us single-step the execution point by @@ -1027,7 +1027,7 @@ public class MarinaTest { marina.instrIn.fill(REQUEUEING_SEND_DATA); prln("Inserting [Rq] Set OLC--; this will be recirculated"); - marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreOLC,SetDest.OuterLoopCounter,SetSource.Decrement)); + marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter,SetSource.Decrement)); // insert the tail, which will cause the 0->2 transition prln("Inserting Tail"); @@ -1092,7 +1092,7 @@ public class MarinaTest { } prln("inserting instruction: [Rq] Set ILC=1"); - marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreOLC,SetDest.InnerLoopCounter,1)); + marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,1)); prln("inserting instruction: [Rq] Send Data"); marina.instrIn.fill(REQUEUEING_SEND_DATA); @@ -1122,7 +1122,7 @@ public class MarinaTest { setOLC(marina, 63); prln("inserting instruction: Set ILC=1"); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter,1)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,1)); // if you uncomment this, then the NOP will be dropped and the test will pass //prln("inserting instruction: [Rq] Nop; this will cause 0->1 transition and possibly be discarded"); @@ -1132,7 +1132,7 @@ public class MarinaTest { marina.instrIn.fill(REQUEUEING_SEND_DATA); prln("inserting instruction: [Rq] Set ILC=1"); - marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreOLC,SetDest.InnerLoopCounter,1)); + marina.instrIn.fill(new Instruction.Set(DOCK,true,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,1)); prln("inserting instruction: Tail"); marina.instrIn.fill(new Instruction.Tail(DOCK)); @@ -1170,7 +1170,7 @@ public class MarinaTest { prln((b?"Setting":"Clearing")+" flags"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC, + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, b ? one : zero, b ? one : zero )); @@ -1205,7 +1205,7 @@ public class MarinaTest { // set A,B flags to a_state and b_state marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC, + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, a_state ? one : zero, b_state ? one : zero )); @@ -1225,7 +1225,7 @@ public class MarinaTest { if (c_input!=null) func = func.add(c_input); Instruction inst = new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC, + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, !which ? func : zero.add(Predicate.FlagA), which ? func : zero.add(Predicate.FlagB) ); @@ -1249,10 +1249,10 @@ public class MarinaTest { prln("Begin recvData"); adjustIndent(2); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, CLEAR_FLAG, CLEAR_FLAG)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, CLEAR_FLAG, CLEAR_FLAG)); marina.instrIn.fill(new Instruction.Move(DOCK, false, /* requeueing */ - Predicate.IgnoreOLC, /* predicate */ + Predicate.IgnoreFlagD, /* predicate */ true, /* torpedoable */ null, /* path */ false, /* tokenIn */ @@ -1262,7 +1262,7 @@ public class MarinaTest { false, /* dataOut */ false /* tokenOut */ )); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, SET_FLAG, SET_FLAG)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, SET_FLAG, SET_FLAG)); prln("checking to confirm that A flag is cleared"); fatal(marina.getFlagA(), "bad A flag: "+marina.getFlagA()); @@ -1308,7 +1308,7 @@ public class MarinaTest { marina.instrIn.fill(new Instruction.Move(DOCK, false, // requeueing - Predicate.IgnoreOLC, // predicate + Predicate.IgnoreFlagD, // predicate true, // torpedoable null, // path false, // tokenIn @@ -1347,7 +1347,7 @@ public class MarinaTest { marina.fillNorthProperStopper(new MarinaPacket(data, false, addr)); marina.instrIn.fill(RECV_DATA); - marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter,SetSource.DataLatch)); + marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter,SetSource.DataLatch)); int olc = marina.getOLC(); fatal(olc != (1<> i; prln("Set ILC=0"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 0)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 0)); prln("Then immediately set ILC="+notZero); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, notZero)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, notZero)); prln("Verify ILC using scan chain"); Ilc ilc = marina.getILC(); @@ -1878,11 +1878,11 @@ public class MarinaTest { prln("Set ILC="+notZero); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, notZero)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, notZero)); prln("Then immediately set ILC=0"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.InnerLoopCounter, 0)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 0)); prln("Verify ILC using scan chain"); ilc = marina.getILC(); @@ -1904,17 +1904,17 @@ public class MarinaTest { prln("Set A=0, B=0"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC, CLEAR_FLAG, CLEAR_FLAG)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD, CLEAR_FLAG, CLEAR_FLAG)); for (int i=0; i<6; i++) { int notZero = 32 >> i; prln("Set OLC=0"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, 0)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, 0)); prln("Then immediately set OLC="+notZero); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, notZero)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, notZero)); prln("Verify OLC count using scan chain"); int outOlc = marina.getOLC(); @@ -1923,16 +1923,16 @@ public class MarinaTest { prln("Verify OLC zero bit using predication"); prln("if (OLC==0) {A=1; B=1;} // should not get executed"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.OLCZero, SET_FLAG, SET_FLAG)); + Instruction.Set(DOCK,false,Predicate.FlagD, SET_FLAG, SET_FLAG)); fatal(marina.getFlagA(), "bad A flag. expected: false"); prln("Set OLC="+notZero); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, notZero)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, notZero)); prln("Then immediately set OLC=0"); marina.instrIn.fill(new - Instruction.Set(DOCK,false,Predicate.IgnoreOLC,SetDest.OuterLoopCounter, 0)); + Instruction.Set(DOCK,false,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, 0)); prln("Verify OLC count using scan chain"); outOlc = marina.getOLC(); -- 1.7.10.4