From: Adam Megacz Date: Mon, 4 May 2009 20:50:55 +0000 (+0000) Subject: new files from ivan, test updates X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d2c57c5c995cd4f885e127fcf13f879be8229e28;p=fleet.git new files from ivan, test updates --- diff --git a/testCode/com/sun/vlsi/chips/marina/test/Marina.java b/testCode/com/sun/vlsi/chips/marina/test/Marina.java index cdcd7a7..ce76f93 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/Marina.java +++ b/testCode/com/sun/vlsi/chips/marina/test/Marina.java @@ -165,13 +165,8 @@ public class Marina { vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.\\inLO["+i+"]", (i==1)?0:1); } - // pulse ilc[load] and olc[load] - vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.ilc_load_", 1); - vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.olc_load_", 1); vm.setNodeState("northFif@1.upDown8w@2.weakStag@22.addr1in2@0.fire", 1); model.waitNS(1000); - vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.ilc_load_", 0); - vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.olc_load_", 0); vm.setNodeState("northFif@1.upDown8w@2.weakStag@22.addr1in2@0.fire", 0); model.waitNS(1000); @@ -184,6 +179,13 @@ public class Marina { vm.setNodeState("sir[9]", 0); model.waitNS(1000); + // pulse ilc[load] and olc[load] + vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.ilc_load_", 1); + vm.setNodeState("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.olc_load_", 1); + model.waitNS(100); + vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.ilc_load_"); + vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.olc_load_"); + vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.flag_A__set_"); vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.flag_A__clr_"); vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.flag_B__set_"); @@ -202,13 +204,11 @@ public class Marina { vm.releaseNode("northFif@1.upDown8w@2.weakStag@22.ain["+(INDEX_OF_ADDRESS_BIT_COPIED_TO_C_FLAG_WHEN_DC_EQUALS_ZERO+1)+"]"); vm.releaseNode("northFif@1.upDown8w@2.weakStag@22.addr1in2@0.fire"); - vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.ilc_load_"); for(int i=1; i<=8; i++) { if (i!=7) vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.ilcMoveO@0.ilc@0.\\inLO["+i+"] "); } model.waitNS(1000); - vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.olc_load_"); for(int i=1; i<=6; i++) vm.releaseNode("outputDo@0.outM1Pre@0.outDockP@0.outDockC@0.olcWcont@0.olc@0.inLO["+i+"]"); diff --git a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java index f7bc75d..27f9522 100644 --- a/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java +++ b/testCode/com/sun/vlsi/chips/marina/test/MarinaTest.java @@ -112,6 +112,9 @@ public class MarinaTest { private CmdArgs cmdArgs; private PowerChannel corePowerSupply, padsPowerSupply; private VoltageReadable coreVoltmeter, voltmeterForCurrent; + + private ChainTest ctD, ctR, ctC; + private ChainControl ccD, ccR, ccC; //-------------------------- private methods ----------------------------- /** @return true if simulation. Return false if we're testing silicon. */ @@ -218,6 +221,9 @@ public class MarinaTest { return; } model = cmdArgs.useVerilog ? new VerilogModel() : new NanosimModel(); + + ((SimulationModel)model).setOptimizedDirectReadsWrites(true); + CYCLE_TIME_NS = cmdArgs.useVerilog ? (100*20) : 0.250; //tester = ((SimulationModel)model).createJtagTester("TCK", "TMS", "TRSTb", "TDI", "TDO"); @@ -230,7 +236,6 @@ public class MarinaTest { int khz = model instanceof VerilogModel ? 100000 : 1000000; - ChainControl ccD, ccR, ccC; ccD = new ChainControl(SCAN_CHAIN_XML, testerD, 1.8f, khz); ccR = new ChainControl(SCAN_CHAIN_XML, testerR, 1.8f, khz); ccC = new ChainControl(SCAN_CHAIN_XML, testerC, 1.8f, khz); @@ -238,51 +243,24 @@ public class MarinaTest { PowerChannel pc = new ManualPowerChannel("pc", false); - ChainTest ctD, ctR, ctC; ctD = new ChainTest(ccD, pc); ctR = new ChainTest(ccR, pc); ctC = new ChainTest(ccC, pc); - - if (model instanceof VerilogModel) { - VerilogModel vm = (VerilogModel)model; - vm.start("verilog", "marina.v", VerilogModel.DUMPVARS, !cmdArgs.jtagShift); - vm.setNodeState("sid[9]", 1); - vm.setNodeState("sic[9]", 1); - vm.setNodeState("sir[9]", 1); - model.waitNS(1000); - vm.setNodeState("sid[9]", 0); - vm.setNodeState("sic[9]", 0); - vm.setNodeState("sir[9]", 0); - model.waitNS(1000); - } else { - ((SimulationModel)model).start("nanosim -c cfg", netListName, 0, !cmdArgs.jtagShift); - System.out.println("**** vdd="+((NanosimModel)model).getVdd()); - } - - if (cmdArgs.testChains) { - prln("Testing control chain..."); - ctC.testOneChain(Marina.CONTROL_CHAIN, Infrastructure.SEVERITY_WARNING); - } - ccC.resetInBits(); - ccC.shift(Marina.CONTROL_CHAIN, false, true); - if (cmdArgs.testChains) { - prln("Testing data chain..."); - ctD.testOneChain(Marina.DATA_CHAIN, Infrastructure.SEVERITY_WARNING); - //ccD.resetInBits(); - //ccD.shift(Marina.DATA_CHAIN, false, true); - - prln("Testing report chain..."); - ctR.testOneChain(Marina.REPORT_CHAIN, Infrastructure.SEVERITY_WARNING); - //ccR.resetInBits(); - //ccR.shift(Marina.REPORT_CHAIN, false, true); - } ccs.addChain(Marina.DATA_CHAIN, ccD); ccs.addChain(Marina.REPORT_CHAIN, ccR); ccs.addChain(Marina.CONTROL_CHAIN, ccC); - + marina = new Marina(ccs, model, !cmdArgs.jtagShift, indenter); + if (model instanceof VerilogModel) + ((SimulationModel)model).start("verilog", "marina.v", VerilogModel.DUMPVARS, !cmdArgs.jtagShift); + else + ((SimulationModel)model).start("nanosim -c cfg", netListName, 0, !cmdArgs.jtagShift); + + ccC.resetInBits(); + ccC.shift(Marina.CONTROL_CHAIN, false, true); + doOneTest(cmdArgs.testNum); ((SimulationModel)model).finish(); @@ -303,11 +281,8 @@ public class MarinaTest { PowerChannel pc = new ManualPowerChannel("pc", false); ChainTest ct = new ChainTest(cc, pc); ct.testAllChains("marina", Infrastructure.SEVERITY_WARNING); - doOneTest(cmdArgs.testNum); - setUpSuppliesAndMeters(cmdArgs.station); - } /** In the absence of looping, the longest path through Infinity is 4 column delays */ @@ -453,6 +428,23 @@ public class MarinaTest { //========================================================================= // Put top level tests here + private void testChains(Marina marina) { + prln("Testing control chain..."); + ctC.testOneChain(Marina.CONTROL_CHAIN, Infrastructure.SEVERITY_WARNING); + ccC.resetInBits(); + ccC.shift(Marina.CONTROL_CHAIN, false, true); + + prln("Testing data chain..."); + ctD.testOneChain(Marina.DATA_CHAIN, Infrastructure.SEVERITY_WARNING); + //ccD.resetInBits(); + //ccD.shift(Marina.DATA_CHAIN, false, true); + + prln("Testing report chain..."); + ctR.testOneChain(Marina.REPORT_CHAIN, Infrastructure.SEVERITY_WARNING); + //ccR.resetInBits(); + //ccR.shift(Marina.REPORT_CHAIN, false, true); + } + private void testProperStoppers(Marina marina) { prln("Begin testProperStoppers"); adjustIndent(2); @@ -1235,7 +1227,6 @@ public class MarinaTest { false // tokenOut )); marina.instrIn.fill(new Instruction.Set(dock,Predicate.IgnoreFlagD, SET_FLAG, SET_FLAG)); - model.waitNS(64 * CYCLE_TIME_NS); prln("checking to confirm that A flag is cleared"); @@ -1247,6 +1238,7 @@ public class MarinaTest { for(int i=0; i