X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=marina%2FtestCode%2Fcom%2Fsun%2Fvlsi%2Fchips%2Fmarina%2Ftest%2FMarinaTest.java;h=798dd4ede84e17f4a73edf908132a87a430bbb85;hb=4e2267ecd1a414ca53c2471a741cb4d5a99755ca;hp=25a58fbb88415c3c4699e94764110ce06d8462d4;hpb=f6a55e8ecd62c4a25619e0f69a9fc085f93b7413;p=fleet.git diff --git a/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java b/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java index 25a58fb..798dd4e 100644 --- a/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java +++ b/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java @@ -817,6 +817,41 @@ public class MarinaTest { adjustIndent(-2); prln("End countOlc"); } + private void loadEveryValueOLC(Marina marina) { + adjustIndent(2); + for (int i=0; i<(1<<6); i++) { + + if (marina.kesselsCounter) { + System.out.println("master-clearing..."); + // master clear on each iteration; otherwise we'd need to "run down" the olc + marina.masterClear(); + marina.enableInstructionSend(true); + } + + int inOlc = i; + marina.fillSouthProperStopper(new Instruction[] { + + // to ensure that instruction is bubble-limited + RECV_DATA, + + // the Set-OLC instruction + new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.OuterLoopCounter, inOlc), + + // put a Set-ILC instruction right behind it with inverted bits to be sure we're + // not capturing the instruction-latch value too late in the cycle + new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter, (inOlc ^ (~(-1<<6)))), + + }); + + model.waitNS(128 * CYCLE_TIME_NS); + marina.fillNorthProperStopper(); + model.waitNS(128 * CYCLE_TIME_NS); + + expectOlc(inOlc); + prln("loadEveryValueOLC: "+inOlc+" checks out"); + } + adjustIndent(-2); + } private void saturateInstructionFifo(Marina marina, Instruction instruction, int quantity, boolean expect_it_to_jam_up) { prln("Inserting "+quantity+" copies of \"" + instruction + "\"");