From: Adam Megacz Date: Wed, 6 May 2009 18:50:36 +0000 (+0000) Subject: add Marina.dispatch(Instruction[]) and Marina.Ilc.toString() X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=b530d5ccfe0b5c4acd60aea96aa9cb72ca3283b0;p=fleet.git add Marina.dispatch(Instruction[]) and Marina.Ilc.toString() --- diff --git a/testCode/com/sun/vlsi/chips/marina/test/Marina.java b/testCode/com/sun/vlsi/chips/marina/test/Marina.java index ce76f93..12a0fdf 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/Marina.java +++ b/testCode/com/sun/vlsi/chips/marina/test/Marina.java @@ -81,6 +81,9 @@ public class Marina { public int getCount() { return value & 0x3f; } + public String toString() { + return "[ilc, count="+getCount()+", infinity="+getInfinity()+", done="+getDone()+"]"; + } } private final Indenter indenter; @@ -373,5 +376,16 @@ public class Marina { public void enableInstructionCounter(Boolean b) { instrIn.setGeneralPurposeOutput(b); } + + public void dispatch(Instruction[] instructions) { + enableInstructionSend(false); + enableInstructionRecirculate(true); + for(Instruction i : instructions) + instrIn.fill(i); + enableInstructionRecirculate(false); + enableInstructionSend(true); + instrIn.run(); + } + } diff --git a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java index 27f9522..af1e1d7 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java +++ b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java @@ -640,6 +640,8 @@ public class MarinaTest { List dItems; + prln("Setting OLC=1"); + marina.instrIn.fill(new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, 1)); prln("Setting ILC=1"); marina.instrIn.fill(new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, 1)); @@ -1768,6 +1770,8 @@ public class MarinaTest { int expected = torpedoable?1:0; dataItems = marina.data.drainMany(2); fatal(dataItems.size()!=expected, "Expected "+expected+" item to emerge but got: "+dataItems.size()+" data items"); + + fatal(!marina.getILC().getDone(), "Expected ilc=done, but got "+marina.getILC()); } adjustIndent(-2); @@ -1799,37 +1803,29 @@ public class MarinaTest { marina.instrIn.fill(new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,1)); // commenting the following four lines causes this test to pass - prln("disabling instruction send"); - marina.enableInstructionSend(false); - prln("enabling instruction recirculate"); - marina.enableInstructionRecirculate(true); prln("inserting: "+decr_amount+" olc-- instructions"); - for(int i=0; i=olc ? 0 : 1;