X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=marina%2FtestCode%2Fcom%2Fsun%2Fvlsi%2Fchips%2Fmarina%2Ftest%2FMarinaTest.java;h=f26bf5adc7c3032225bb56195d31db82d32d7de2;hb=3aae53e90db07b0cffc979cbb572d7840a05cbc4;hp=8f2156f1a1299b57ee600ad7b09e30cdc8fff64d;hpb=b1ccdbab38d0c60a084df048883a41d8ac6e97f0;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 8f2156f..f26bf5a 100644 --- a/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java +++ b/marina/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java @@ -254,6 +254,7 @@ public class MarinaTest { */ cc = new ChainControl(SCAN_CHAIN_XML, tester, 1.8f, khz); + cc.noTestSeverity = Infrastructure.SEVERITY_NOMESSAGE; ct = new ChainTest(cc, pc); ccs.addChain(Marina.DATA_CHAIN, cc); ccs.addChain(Marina.REPORT_CHAIN, cc); @@ -887,6 +888,19 @@ public class MarinaTest { false /* tokenOut */ ); + private static final Instruction SEND_DATA_IF_D_SET = + new Instruction.Move(dock, + Predicate.FlagD, /* predicate */ + false, /* torpedoable */ + null_path, /* path */ + false, /* tokenIn */ + false, /* dataIn */ + false, /* latchData */ + false, /* latchPath */ + true, /* dataOut */ + false /* tokenOut */ + ); + private static final Instruction TORPEDOABLE_RECV_DATA = new Instruction.Move(dock, Predicate.IgnoreFlagD, /* predicate */ @@ -954,18 +968,25 @@ public class MarinaTest { "Expected exactly "+num+ " data items to emerge but got at least: "+dataItems.size()); } + private void expectNorthFifoAtLeast(int num) { + model.waitNS(128 * CYCLE_TIME_NS); + List dataItems = marina.data.drainMany(num); + fatal(dataItems.size() dataItems = marina.data.drainMany(num+1); fatal(x>num, "Expected no more than "+num+ - " data items to emerge but got at least: "+x); + " tokens to emerge but got at least: "+x); } private void expectTokensExactly(int num) { int x = marina.getNumTokens(); fatal(x!=num, "Expected exactly "+num+ - " data items to emerge but got at least: "+x); + " tokens but got at least: "+x); } private void testFlagDRecomputationTime(Marina marina) { @@ -1081,12 +1102,10 @@ public class MarinaTest { new Instruction.Set(dock,Predicate.IgnoreFlagD,SetDest.InnerLoopCounter,1), SEND_DATA, }); - dataItems = marina.data.drainMany(1); - fatal(dataItems.size()!=0, "Expected exactly no data items to emerge but got at least: "+dataItems.size()); - marina.instrIn.fill(new Instruction.Tail(dock)); - BitVector bv = marina.data.drain(); - fatal(bv==null, "Expected at least one data item to emerge but got none"); + expectNorthFifoExactly(0); + marina.instrIn.fill(new Instruction.Tail(dock)); + expectNorthFifoAtLeast(1); adjustIndent(-2); prln("End testHeadWaitsForTail");