From: rkao Date: Tue, 4 Nov 2008 16:55:45 +0000 (+0000) Subject: Try testing OLC X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=307ac4f771b809d8dba3953132dc7cf365573a91;p=fleet.git Try testing OLC --- diff --git a/testCode/com/sun/vlsi/chips/marina/test/Counter.java b/testCode/com/sun/vlsi/chips/marina/test/Counter.java index 96e2f1f..ebba300 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/Counter.java +++ b/testCode/com/sun/vlsi/chips/marina/test/Counter.java @@ -1,5 +1,4 @@ package com.sun.vlsi.chips.marina.test; -import com.sun.async.test.BitVector; import com.sun.async.test.ChainControl; diff --git a/testCode/com/sun/vlsi/chips/marina/test/InstructionStopper.java b/testCode/com/sun/vlsi/chips/marina/test/InstructionStopper.java index 4d714a0..5353dc7 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/InstructionStopper.java +++ b/testCode/com/sun/vlsi/chips/marina/test/InstructionStopper.java @@ -51,4 +51,10 @@ public class InstructionStopper extends ProperStopper { public String formatDataTokAddr(BitVector dta) { return formatDecodedInstr(dta); } + /** Take the Berkeley BitVector */ + public void fill(edu.berkeley.fleet.api.BitVector instr) { + BitVector bitVector = new BitVector(INSTR_SZ, "instr"); + for(int i=0; i din = new ArrayList(); - BitVector count = new BitVector(37,"count"); - BitVector one = new BitVector(37, "one"); + BitVector count = new BitVector(36,"count"); + BitVector one = new BitVector(36, "one"); count.setFromLong(0); one.setFromLong(1); for (int i=0; i<3; i++) { @@ -355,10 +358,8 @@ public class MarinaTest { prln("Begin sendToken"); adjustIndent(2); - MarinaFleet marina = new MarinaFleet(); - Dock dock = marina.getOnlyInputDock(); Instruction sendTokenInstruction = - new Instruction.Move(dock, + new Instruction.Move(DOCK, true, /* requeueing */ Predicate.IgnoreOLC, /* predicate */ false, /* torpedoable */ @@ -371,13 +372,11 @@ public class MarinaTest { true /* tokenOut */ ); edu.berkeley.fleet.api.BitVector bits = - marina.encodeInstruction(dock, /* dispatch dock -- irrelevant for MARINA */ + MARINA.encodeInstruction(DOCK, /* dispatch dock -- irrelevant for MARINA */ sendTokenInstruction); - BitVector bitVector = new BitVector(INSTR_SZ, "instr"); - for(int i=0; i> i; + prln("inOlc="+inOlc); + inDock.instrIn.fill(MARINA.encodeInstruction(DOCK, new + Instruction.Set(DOCK,Instruction.Set.SetDest.InnerLoopCounter, inOlc))); + int outOlc = inDock.getOLC(); + fatal(outOlc!=inOlc, "walkOneOLC: got="+outOlc+" expected="+inOlc); + } + adjustIndent(-2); + prln("End walkOneOLC"); + } private void doOneTest(int testNum) { prln("MarinaTest: performing test: "+testNum); design.masterClear(tester); @@ -410,6 +423,7 @@ public class MarinaTest { case 2: sendInstructions((IsolatedInDock)design); break; case 3: sendToken((IsolatedInDock)design); break; case 4: getCtrsFlags((IsolatedInDock)design); break; + case 5: walkOneOLC((IsolatedInDock)design); break; default: fatal(true, "Test number: "+testNum+" doesn't exist."); break; diff --git a/testCode/sml2008-am01.pdf b/testCode/sml2008-am01.pdf new file mode 100644 index 0000000..e16c0fc Binary files /dev/null and b/testCode/sml2008-am01.pdf differ