!!!! 6 0 1 987107435 Ve459 ! Device : 41264 ! Function : 64k X 4 Dual Port Graphics Buffer ! revision : B.01.00 ! safeguard : med_out_mos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." vector cycle 600n receive delay 500n assign VCC to pins 12 ! Note: Power connections are opposite assign GND to pins 24 ! from most IC's! assign RAS_bar to pins 8 assign CAS_bar to pins 18 assign WB_WE_bar to pins 7 assign Address to pins 13, 9, 10, 11, 14, 15, 16, 17 assign Data to pins 20, 19, 6, 5 assign Data_D0 to pins 5 !AT Added for minimum pin test. assign Data_D1 to pins 6 !AT Added for minimum pin test. assign Data_D2 to pins 19 !AT Added for minimum pin test. assign Data_D3 to pins 20 !AT Added for minimum pin test. assign DT_OE_bar to pins 4 assign SC to pins 1 assign SOE_bar to pins 21 assign Serial_Out to pins 23, 22, 3, 2 assign Serial_D0 to pins 2 !AT Added for minimum pin test. assign Serial_D1 to pins 3 !AT Added for minimum pin test. assign Serial_D2 to pins 22 !AT Added for minimum pin test. assign Serial_D3 to pins 23 !AT Added for minimum pin test. family TTL power VCC, GND format hexadecimal Data, Serial_Out inputs WB_WE_bar, RAS_bar, CAS_bar, Address, SC, SOE_bar, DT_OE_bar outputs Serial_Out bidirectional Data bidirectional Data_D0,Data_D1,Data_D2,Data_D3 !AT Added for minimum pin test. outputs Serial_D0,Serial_D1,Serial_D2,Serial_D3 !AT Added for minimum pin test. disable Data with DT_OE_bar to "1" disable Data with WB_WE_bar to "0" disable Data with CAS_bar to "1" disable Serial_Out with SOE_bar to "1" when WB_WE_bar is "0" inputs Data when WB_WE_bar is "1" outputs Data when SOE_bar is "1" inactive Serial_Out trace Data to RAS_bar, CAS_bar, WB_WE_bar, DT_OE_bar, Address trace Serial_Out to Ras_bar, Cas_bar, WB_WE_bar, DT_OE_bar, Address trace Serial_Out to Data, SC, SOE_bar !***************************************************************** !***************************************************************** vector Initialize set Address to "00000000" set RAS_bar to "1" set CAS_bar to "1" set WB_WE_bar to "1" set DT_OE_bar to "1" set SC to "0" set SOE_bar to "1" end vector vector Keep_Control set Address to "kkkkkkkk" set RAS_bar to "k" set CAS_bar to "k" set WB_WE_bar to "k" set DT_OE_bar to "k" set SC to "k" set SOE_bar to "k" end vector vector RAS_false initialize to Keep_Control set RAS_bar to "1" end vector vector RAS_true initialize to Keep_Control set RAS_bar to "0" end vector vector CAS_true initialize to Keep_Control set CAS_bar to "0" end vector vector Write initialize to Keep_Control drive Data set Data to "k" set WB_WE_bar to "0" end vector vector DT_true initialize to Keep_Control set DT_OE_bar to "0" end vector vector DT_false initialize to Keep_Control set DT_OE_bar to "1" end vector vector End_Cycle initialize to Keep_Control set RAS_bar to "1" set CAS_bar to "1" set WB_WE_bar to "1" set DT_OE_bar to "1" end vector vector SC_toggle initialize to Keep_Control set SC to "t" end vector vector SOE_true initialize to Keep_Control set SOE_bar to "0" end vector ! ! Address Vectors ! vector Address_00000000 initialize to Keep_Control set Address to "00000000" end vector vector Address_00000001 initialize to Keep_Control set Address to "00000001" end vector vector Address_00000010 initialize to Keep_Control set Address to "00000010" end vector vector Address_00000100 initialize to Keep_Control set Address to "00000100" end vector vector Address_00001000 initialize to Keep_Control set Address to "00001000" end vector vector Address_00010000 initialize to Keep_Control set Address to "00010000" end vector vector Address_00100000 initialize to Keep_Control set Address to "00100000" end vector vector Address_01000000 initialize to Keep_Control set Address to "01000000" end vector vector Address_10000000 initialize to Keep_Control set Address to "10000000" end vector ! ! Data Vectors ! vector Data_5_drive initialize to Keep_Control drive Data set Data to "5" end vector vector Data_A_drive initialize to Keep_Control drive Data set Data to "A" end vector vector Data_5_rcv initialize to Keep_Control receive Data set DT_OE_bar to "0" set Data to "5" end vector vector Data_A_rcv initialize to Keep_Control receive Data set DT_OE_bar to "0" set Data to "A" end vector vector Data_5_rcv_OE_false initialize to Keep_Control receive Data set DT_OE_bar to "1" set Data to "5" end vector vector Data_A_rcv_OE_false initialize to Keep_Control receive Data set DT_OE_bar to "1" set Data to "A" end vector vector Serial_Out_5 initialize to Keep_Control set Serial_Out to "5" end vector vector Serial_Out_A initialize to Keep_Control set Serial_Out to "A" end vector !AT The following vectors have been added for a minimum pins test. Any !AT vectors that references the data bus was copied and modified to reference !AT only a single pin of the data bus. vector Write_D0 initialize to Keep_Control drive Data_D0 set Data_D0 to "k" set WB_WE_bar to "0" end vector vector Data_D0_0_drive initialize to Keep_Control drive Data_D0 set Data_D0 to "0" end vector vector Data_D0_1_drive initialize to Keep_Control drive Data_D0 set Data_D0 to "1" end vector vector Data_D0_0_rcv initialize to Keep_Control receive Data_D0 set DT_OE_bar to "0" set Data_D0 to "0" end vector vector Data_D0_1_rcv initialize to Keep_Control receive Data_D0 set DT_OE_bar to "0" set Data_D0 to "1" end vector vector Write_D1 initialize to Keep_Control drive Data_D1 set Data_D1 to "k" set WB_WE_bar to "0" end vector vector Data_D1_0_drive initialize to Keep_Control drive Data_D1 set Data_D1 to "0" end vector vector Data_D1_1_drive initialize to Keep_Control drive Data_D1 set Data_D1 to "1" end vector vector Data_D1_0_rcv initialize to Keep_Control receive Data_D1 set DT_OE_bar to "0" set Data_D1 to "0" end vector vector Data_D1_1_rcv initialize to Keep_Control receive Data_D1 set DT_OE_bar to "0" set Data_D1 to "1" end vector vector Write_D2 initialize to Keep_Control drive Data_D2 set Data_D2 to "k" set WB_WE_bar to "0" end vector vector Data_D2_0_drive initialize to Keep_Control drive Data_D2 set Data_D2 to "0" end vector vector Data_D2_1_drive initialize to Keep_Control drive Data_D2 set Data_D2 to "1" end vector vector Data_D2_0_rcv initialize to Keep_Control receive Data_D2 set DT_OE_bar to "0" set Data_D2 to "0" end vector vector Data_D2_1_rcv initialize to Keep_Control receive Data_D2 set DT_OE_bar to "0" set Data_D2 to "1" end vector vector Write_D3 initialize to Keep_Control drive Data_D3 set Data_D3 to "k" set WB_WE_bar to "0" end vector vector Data_D3_0_drive initialize to Keep_Control drive Data_D3 set Data_D3 to "0" end vector vector Data_D3_1_drive initialize to Keep_Control drive Data_D3 set Data_D3 to "1" end vector vector Data_D3_0_rcv initialize to Keep_Control receive Data_D3 set DT_OE_bar to "0" set Data_D3 to "0" end vector vector Data_D3_1_rcv initialize to Keep_Control receive Data_D3 set DT_OE_bar to "0" set Data_D3 to "1" end vector !*************************************************************** !*************************************************************** sub Set_Up ! 8 ras cycles execute Initialize repeat 8 times execute RAS_true execute RAS_false end repeat end sub sub Read_cycle (Address, Data) execute Address execute RAS_true execute CAS_true execute Data execute End_Cycle end sub sub Write_cycle (Address, Data) execute Address execute RAS_true execute CAS_true execute Data execute Write execute End_Cycle end sub sub Write_cycle_2 (RAS_Add, CAS_Add, Data) execute RAS_Add execute RAS_true execute CAS_Add execute CAS_true execute Data execute Write execute End_Cycle end sub sub Data_Transfer (Address) execute Address execute DT_true execute RAS_true execute CAS_true execute DT_false execute End_Cycle end sub !AT The following subroutines have been added for a minimum pins test. !AT Vectors in the subroutine "Write_cycle" reference the entire data bus. !AT Therefore this subroutine was copied and modified to reference only !AT a single pin of the data bus. The subroutine "Read" did not !AT require any modification as all references to the data bus are made !AT via a passed parameter (Read_cycle). This reference can be modified in the !AT call statement. sub Write_cycle_Dx (Address, Data_Dx, Write_Dx) execute Address execute RAS_true execute CAS_true execute Data_Dx execute Write_Dx execute End_Cycle end sub !**************************************************************** !AT The following AwareTest units have been added for minimum pins tests. Each !AT unit tests a separate data pin starting with D0. unit "awaretest D0 Test" call Set_Up call Write_cycle_Dx (Address_00000000, Data_D0_0_drive, Write_D0) call Read_cycle (Address_00000000, Data_D0_0_rcv) call Write_cycle_Dx (Address_00000000, Data_D0_1_drive, Write_D0) call Read_cycle (Address_00000000, Data_D0_1_rcv) end unit unit "awaretest D1 Test" call Set_Up call Write_cycle_Dx (Address_00000000, Data_D1_0_drive, Write_D1) call Read_cycle (Address_00000000, Data_D1_0_rcv) call Write_cycle_Dx (Address_00000000, Data_D1_1_drive, Write_D1) call Read_cycle (Address_00000000, Data_D1_1_rcv) end unit unit "awaretest D2 Test" call Set_Up call Write_cycle_Dx (Address_00000000, Data_D2_0_drive, Write_D2) call Read_cycle (Address_00000000, Data_D2_0_rcv) call Write_cycle_Dx (Address_00000000, Data_D2_1_drive, Write_D2) call Read_cycle (Address_00000000, Data_D2_1_rcv) end unit unit "awaretest D3 Test" call Set_Up call Write_cycle_Dx (Address_00000000, Data_D3_0_drive, Write_D3) call Read_cycle (Address_00000000, Data_D3_0_rcv) call Write_cycle_Dx (Address_00000000, Data_D3_1_drive, Write_D3) call Read_cycle (Address_00000000, Data_D3_1_rcv) end unit unit "Random Access Port Test" call Set_Up call Write_cycle (Address_00000000, Data_5_drive) call Write_cycle (Address_00000001, Data_5_drive) call Write_cycle (Address_00000010, Data_5_drive) call Write_cycle (Address_00000100, Data_5_drive) call Write_cycle (Address_00001000, Data_5_drive) call Write_cycle (Address_00010000, Data_5_drive) call Write_cycle (Address_00100000, Data_5_drive) call Write_cycle (Address_01000000, Data_5_drive) call Write_cycle (Address_10000000, Data_5_drive) call Read_cycle (Address_00000000, Data_5_rcv) call Write_cycle (Address_00000000, Data_A_drive) call Read_cycle (Address_00000001, Data_5_rcv) call Write_cycle (Address_00000001, Data_A_drive) call Read_cycle (Address_00000010, Data_5_rcv) call Write_cycle (Address_00000010, Data_A_drive) call Read_cycle (Address_00000100, Data_5_rcv) call Write_cycle (Address_00000100, Data_A_drive) call Read_cycle (Address_00001000, Data_5_rcv) call Write_cycle (Address_00001000, Data_A_drive) call Read_cycle (Address_00010000, Data_5_rcv) call Write_cycle (Address_00010000, Data_A_drive) call Read_cycle (Address_00100000, Data_5_rcv) call Write_cycle (Address_00100000, Data_A_drive) call Read_cycle (Address_01000000, Data_5_rcv) call Write_cycle (Address_01000000, Data_A_drive) call Read_cycle (Address_10000000, Data_5_rcv) call Write_cycle (Address_10000000, Data_A_drive) call Read_cycle (Address_00000000, Data_A_rcv) call Read_cycle (Address_00000001, Data_A_rcv) call Read_cycle (Address_00000010, Data_A_rcv) call Read_cycle (Address_00000100, Data_A_rcv) call Read_cycle (Address_00001000, Data_A_rcv) call Read_cycle (Address_00010000, Data_A_rcv) call Read_cycle (Address_00100000, Data_A_rcv) call Read_cycle (Address_01000000, Data_A_rcv) call Read_cycle (Address_10000000, Data_A_rcv) end unit unit "Serial Port Test" call Set_Up call Write_cycle_2 (Address_00000000, Address_00000000, Data_5_drive) call Write_cycle_2 (Address_00000000, Address_00000001, Data_A_drive) call Data_Transfer (Address_00000000) execute SOE_true execute SC_toggle execute SC_toggle execute Serial_Out_5 execute SC_toggle execute SC_toggle execute Serial_Out_A end unit unit disable test "Test OE_bar" call Set_Up call Write_cycle (Address_00000000, Data_5_drive) call Read_cycle (Address_00000000, Data_5_rcv_OE_false) call Write_cycle (Address_00000000, Data_A_drive) call Read_cycle (Address_00000000, Data_A_rcv_OE_false) end unit unit disable test "Test SOE_bar" call Set_Up call Write_cycle_2 (Address_00000000, Address_00000000, Data_5_drive) call Write_cycle_2 (Address_00000000, Address_00000001, Data_A_drive) call Data_Transfer (Address_00000000) execute SC_toggle execute SC_toggle execute Serial_Out_5 execute SC_toggle execute SC_toggle execute Serial_Out_A end unit ! ! End of test !