//************************************************************************************** //MEMA4.TST //By B. Rosen and M. Thomson October 18, 1978 //Sub Test Program for D0 MEM Module // Test 6001 was changed to correct for errors caused by rev.-Gb multiwire boards August 14,1080 // Test 6001 used to fail when drive was = 7,17, or 27 // Test 6007 was changed to correct for errors caused by rev.-Gb multiwire boards August 14,1080 // Test 6007 used to fail when the drive was = 2 //************************************************************************************** get "mema.d" //Edge pin and test connector signal busses available to this sub-test: //{CrctSyn: CrctSyn0,CrctSyn1, CrctSyn2,CrctSyn3,CrctSyn4, CrctSyn5,CrctSyn6,CrctSyn7} //{StorEcIn: StorEcIn.0,StorEcIn.1, StorEcIn.2,StorEcIn.3,StorEcIn.4, StorEcIn.5,StorEcIn.6,StorEcIn.7} //************************************************************************************** //Test 6: Test most of the combinational logic that supports MC1 // Test most of the logic on page 18 // Test MC2WillGetR logic on page 20 // Test MC1Next.7' logic on page 16 let Test6() be [ SpeakTest(6) //set initial conditions (see notes at end of MEMA.TEST) //NOTE: SpeakTest initialized the following edge-pin and test-clip signals used in this test: // Signals set to logic 1 // MC1StartMC2,MC2Hold',MC2NeedsR',MemInst-a // Signals set to logic 0 // Cycle0Feed',MC1TestH4Par,MC2HoldIfSNE0,MC2NeedsRIfSNE0,PAbort,PreloadMC1' // Intermediate signals derived from the above: // LDisableMC1'=1, LoadType'=0, MC2HasR'=1, MC2NotReady=0, MC2SynReady=1, // MC2WillGetR=0, SNE0=0, TypeLoaded=1 //Each sub-test restores the signals it uses to their initial states, except where noted //Check states of observable control signals set up by SpeakTest //{t6bus1: AdvancePipe',LoadAd', MC2WillGetR,Abort',LDisableMC1'} WCompare({t6bus1},3,6000) //see notes above for input signals //Check the LoadType' logic via TypeLoaded and gate a of LoadAd' (pages 18,20) //Gate c of LoadAd' is disqualified by MC1StartMC2'=0 //Gate a terms of LoadAd' (other than TypeLoad) remain =1 //{t6bus2: MC2NeedsR', PreloadMC1',MemInst-a,Cycle0Feed'} let t6001sb = table [ 1;1;1;1;1;1;1;0; 1;1;1;1;1;1;1;0; 1;1;1;1;1;1;1;0; 1;1;1;1;1;1;1;0; ] for i = 0 to 30 do //check all cases where LoadType'=1 [ {MC2NeedsR'} = i<#13 //MC2SynReady should = i[15]' WCompare({LoadAd'},(#175777 rshift i)&1,6015,i) //gate a ] {PAbort}=0; {MC2HoldIfSNE0}=0; //restore to normal //Check gates a and c of MC1Next.7' (page 16) //{t6bus7: MC1TestFault,preMC1Next.7,MC1NeedsR, MC2NeedsR',MC1TestQWO,QWO} for i = 0 to 14 do [ {t6bus7}=i; //MC1TestFault_(i[10]=0) to disqualify gate d //preMC1Next.7_(i[11]=0) to disqualify gate b //MC1NeedsR_i[12] //MC2WillGetR_i[13]' (controlled by MC2NeedsR' - page 20) //MC1TestQWO_i[14] //QWO_i[15] (emerges =0 from loop) WCompare({MC1Next.7'},(#70167 rshift i)&1,6016,i) //gates a and c ] ]