add MarinaTest.expectNorthFifoAtLeast()
[fleet.git] / marina / testCode / com / sun / vlsi / chips / marina / test / MarinaTest.java
index 9a5df19..6531a91 100644 (file)
@@ -222,10 +222,12 @@ public class MarinaTest {
         ((SimulationModel)model).setOptimizedDirectReadsWrites(true);
 
         CYCLE_TIME_NS = cmdArgs.useVerilog ? (100*20) : 0.250;
-        int khz   = model instanceof VerilogModel ?  100000 : 1000000;
+        int khz   = model instanceof VerilogModel ? 100000 : cmdArgs.jtagShift ? 20000 : 1000000;
 
+        prln("constructing jtag controller");
         JtagTester tester = ((SimulationModel)model).createJtagTester("TCK", "TMS", "TRSTb", "TDI", "TDO");
         tester.printInfo = false;
+
         ChainControls ccs = new ChainControls();
         PowerChannel pc = new ManualPowerChannel("pc", false);
         /*
@@ -252,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);
@@ -885,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   */
@@ -952,6 +968,13 @@ 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<BitVector> dataItems = marina.data.drainMany(num);
+        fatal(dataItems.size()<num,
+              "Expected at least "+num+
+              " data items to emerge but got only: "+dataItems.size());
+    }
     private void expectTokensNoMoreThan(int num) {
         int x = marina.getNumTokens();
         List<BitVector> dataItems = marina.data.drainMany(num+1);