//************************************************************************************** //MEMB1.TST //By B. Rosen and M. Thomson January 31, 1979 //Sub Test Program for D0 MEM Module //************************************************************************************** get "memb.d" //Edge pin and test connector signal busses available to this sub-test: //{StorEcIn: StorEcIn.0,StorEcIn.1, StorEcIn.2,StorEcIn.3,StorEcIn.4, StorEcIn.5,StorEcIn.6,StorEcIn.7} //************************************************************************************** //Test 1: Check assorted logic indicated by the sub-titles let Test1() be [ SpeakTest(1) //set initial conditions (see notes at end of MEMB.TEST) //Check for shorts in the tri-state signals accessed by new test clips //{t1bus1: MC2Next.4, MC2Next.5,MC2Next.6,preMC2Next.7, MC2TestSE,MC2TestDE,MC1Ftype.0, MC1Ftype.1,NewPipe,MC1Pipe.0, Refresh',Refresh'b,PStore12', EnInputParChk,MC2SE,MC2DE} //{Disablebus: Disablee2,Disableb9,Disablef14, Disableh2,DisableMC1,DisableMC2} //Verify the state of the tri-state disable terms WCompare({Disablebus},#37,1000) for i = 0 to 15 do [ {t1bus1} = 1 lshift i WCompare({t1bus1},1 lshift i,1001,i) ] //Test the f14 prom (page 19) let t1tab1 = table [ 0;2;2;1;2;1;1;2; 2;1;1;2;1;2;2;1; 2;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 2;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 2;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 1;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 2;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 1;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1; 1;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;2;1; 1;1;2;1;2;1;1;2; 1;1;1;1;1;1;1;2; 1;1;1;2;1;2;2;1 ] //{MC2SEDE: MC2SE,MC2DE} {MC2SEDE}=###; //disconnect tester drivers from the f14 prom outputs {Disablef14}=0; //enable the f14 prom outputs for this test for i = 0 to 255 do [ {StorEcIn}=i EClock() //ChkSyn[0:7]_(StorEcIn[0:7]=i) EClock() //CrctSyn[0:7]_(ChkSyn[0:7]=i) WCompare({MC2SEDE},t1tab1!i,1100,i) ] {Disablef14}=1; //disable the f14 prom outputs for next test //Check the MC2Next.7' and OFault' logic (page 20) //Check gates a and b of MC2Next.7'; check OFault' //(Gate a can only be partially checked since MC2LogSE is not tester-controllable) //Gate c is disqualified since MC2HoldIfSNE0=0 from SpeakTest {preMC2Next.7}=0; //disqualify gate d //{t1bus2: MC2TestSE, MC2SE,MC2TestDE,MC2DE} for i = 0 to 8 do [ {t1bus2}=i let sb = (#567 rshift i)&1 WCompare({MC2Next.7'},sb,1200,i) WCompare({OFault'},sb,1201,i) ] //Check gates c and d of MC2Next.7' //Gates a and b are rendered disqualified by the loop above {StorEcIn}=0; //Clear so that StorEcIn.7 can control SNE0 //{t1bus3: preMC2Next.7,MC2HoldIfSNE0,StorEcIn.7} for i = 0 to 4 do [ {t1bus3}=i EClock() //ChkSyn7_(StorEcIn.7=i[15]) EClock() //CrctSyn7_(ChkSyn7=i[15]) for SNE0_i[15] WCompare({MC2Next.7'},(7 rshift i)&1,1202,i) ] //Check the OValid' logic (page 20) //{t1bus4: preLoadOdata',MC2WriteCdat,MC2Next.4} for i = 0 to 8 do [ {t1bus4}=i EClock() //e2d ff _(preLoadOdata'=i[13]) EClock() //Odata_Cdat' _(e2d ff =i[13]) WCompare({Odata_Cdat'},i<