!!!! 6 0 1 987108053 V11b4 ! Device : 6810 ! Function : Static RAM 3-state 128 x 8 ! revision : B.01.00 ! safeguard : med_out_mos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." sequential vector cycle 1000n receive delay 900n assign VCC to pins 24 assign GND to pins 1 assign Address to pins 17,18,19,20,21,22,23 assign Data to pins 9,8,7,6,5,4,3,2 assign Data_D0 to pins 2 !AT Added for minimum pin test. assign Data_D1 to pins 3 !AT Added for minimum pin test. assign Data_D2 to pins 4 !AT Added for minimum pin test. assign Data_D3 to pins 5 !AT Added for minimum pin test. assign Data_D4 to pins 6 !AT Added for minimum pin test. assign Data_D5 to pins 7 !AT Added for minimum pin test. assign Data_D6 to pins 8 !AT Added for minimum pin test. assign Data_D7 to pins 9 !AT Added for minimum pin test. assign Read_Write_bar to pins 16 assign Chip_select_0 to pins 10 assign Chip_select_1_bar to pins 11 assign Chip_select_2_bar to pins 12 assign Chip_select_3 to pins 13 assign Chip_select_4_bar to pins 14 assign Chip_select_5_bar to pins 15 assign Chip_selects to pins 15,14,13,12,11,10 family TTL power VCC, GND inputs Address, Read_Write_bar, Chip_select_0 inputs Chip_select_1_bar, Chip_select_2_bar, Chip_select_3 inputs Chip_select_4_bar, Chip_select_5_bar, Chip_selects bidirectional Data bidirectional Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test. bidirectional Data_D4, Data_D5, Data_D6, Data_D7 !AT Added for min. pin test. when Chip_selects is "1xxxxx" inactive Data when Chip_selects is "x1xxxx" inactive Data when Chip_selects is "xx0xxx" inactive Data when Chip_selects is "xxx1xx" inactive Data when Chip_selects is "xxxx1x" inactive Data when Chip_selects is "xxxxx0" inactive Data when Read_Write_bar is "0" inputs Data when Read_Write_bar is "1" outputs Data trace Data to Chip_selects,Address,Read_Write_bar disable Data with Chip_selects to "101001" disable Data with Chip_selects to "011001" disable Data with Chip_selects to "000001" disable Data with Chip_selects to "001101" disable Data with Chip_selects to "001011" disable Data with Chip_selects to "001000" disable Data with Read_Write_bar to "1" !*************************************************************** !*************************************************************** vector Address_memory set Chip_selects to "101001" set Read_Write_bar to "1" end vector vector Chip_selected set Address to "kkkkkkk" set Chip_selects to "001001" set Read_Write_bar to "k" end vector vector Chip_select_0_false set Address to "kkkkkkk" set Chip_selects to "001000" set Read_Write_bar to "k" end vector vector Chip_select_1_bar_false set Address to "kkkkkkk" set Chip_selects to "001011" set Read_Write_bar to "k" end vector vector Chip_select_2_bar_false set Address to "kkkkkkk" set Chip_selects to "001101" set Read_Write_bar to "k" end vector vector Chip_select_3_false set Address to "kkkkkkk" set Chip_selects to "000001" set Read_Write_bar to "k" end vector vector Chip_select_4_bar_false set Address to "kkkkkkk" set Chip_selects to "011001" set Read_Write_bar to "k" end vector vector Chip_select_5_bar_false set Address to "kkkkkkk" set Chip_selects to "101001" set Read_Write_bar to "k" end vector vector Input_Data set Address to "kkkkkkk" set Chip_selects to "kkkkkk" set Read_Write_bar to "0" end vector vector Write_completed drive Data set Address to "kkkkkkk" set Data to "kkkkkkkk" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector Output_Data set Address to "kkkkkkk" set Chip_selects to "kkkkkk" set Read_Write_bar to "1" end vector vector Data_In_00000000_CS_false drive Data set Data to "00000000" set Address to "kkkkkkk" set Chip_selects to "kkkkkk" set Read_Write_bar to "0" end vector vector Address_0000000 initialize to Address_memory set Address to "0000000" end vector vector Address_0000001 initialize to Address_memory set Address to "0000001" end vector vector Address_0000011 initialize to Address_memory set Address to "0000011" end vector vector Address_0000111 initialize to Address_memory set Address to "0000111" end vector vector Address_0001111 initialize to Address_memory set Address to "0001111" end vector vector Address_0011111 initialize to Address_memory set Address to "0011111" end vector vector Address_0111111 initialize to Address_memory set Address to "0111111" end vector vector Address_1111111 initialize to Address_memory set Address to "1111111" end vector vector Address_1111110 initialize to Address_memory set Address to "1111110" end vector vector Data_In_00000000 initialize to Input_Data drive Data set Data to "00000000" end vector vector Data_In_00000001 initialize to Input_Data drive Data set Data to "00000001" end vector vector Data_In_00000011 initialize to Input_Data drive Data set Data to "00000011" end vector vector Data_In_00000111 initialize to Input_Data drive Data set Data to "00000111" end vector vector Data_In_00001111 initialize to Input_Data drive Data set Data to "00001111" end vector vector Data_In_00011111 initialize to Input_Data drive Data set Data to "00011111" end vector vector Data_In_00111111 initialize to Input_Data drive Data set Data to "00111111" end vector vector Data_In_01111111 initialize to Input_Data drive Data set Data to "01111111" end vector vector Data_In_11111111 initialize to Input_Data drive Data set Data to "11111111" end vector vector Read_Data_00000000 initialize to Output_Data receive Data set Data to "00000000" end vector vector Read_Data_00000001 initialize to Output_Data receive Data set Data to "00000001" end vector vector Read_Data_00000011 initialize to Output_Data receive Data set Data to "00000011" end vector vector Read_Data_00000111 initialize to Output_Data receive Data set Data to "00000111" end vector vector Read_Data_00001111 initialize to Output_Data receive Data set Data to "00001111" end vector vector Read_Data_00011111 initialize to Output_Data receive Data set Data to "00011111" end vector vector Read_Data_00111111 initialize to Output_Data receive Data set Data to "00111111" end vector vector Read_Data_01111111 initialize to Output_Data receive Data set Data to "01111111" end vector vector Read_Data_11111111 initialize to Output_Data receive Data set Data to "11111111" 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 RWb_hi_D0 drive Data_D0 set Address to "kkkkkkk" set Data_D0 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D1 drive Data_D1 set Address to "kkkkkkk" set Data_D1 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D2 drive Data_D2 set Address to "kkkkkkk" set Data_D2 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D3 drive Data_D3 set Address to "kkkkkkk" set Data_D3 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D4 drive Data_D4 set Address to "kkkkkkk" set Data_D4 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D5 drive Data_D5 set Address to "kkkkkkk" set Data_D5 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D6 drive Data_D6 set Address to "kkkkkkk" set Data_D6 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector RWb_hi_D7 drive Data_D7 set Address to "kkkkkkk" set Data_D7 to "k" set Chip_selects to "1kkkkk" set Read_Write_bar to "1" end vector vector Data_In_D0_0 initialize to Input_Data drive Data_D0 set Data_D0 to "0" end vector vector Data_In_D0_1 initialize to Input_Data drive Data_D0 set Data_D0 to "1" end vector vector Data_In_D1_0 initialize to Input_Data drive Data_D1 set Data_D1 to "0" end vector vector Data_In_D1_1 initialize to Input_Data drive Data_D1 set Data_D1 to "1" end vector vector Data_In_D2_0 initialize to Input_Data drive Data_D2 set Data_D2 to "0" end vector vector Data_In_D2_1 initialize to Input_Data drive Data_D2 set Data_D2 to "1" end vector vector Data_In_D3_0 initialize to Input_Data drive Data_D3 set Data_D3 to "0" end vector vector Data_In_D3_1 initialize to Input_Data drive Data_D3 set Data_D3 to "1" end vector vector Data_In_D4_0 initialize to Input_Data drive Data_D4 set Data_D4 to "0" end vector vector Data_In_D4_1 initialize to Input_Data drive Data_D4 set Data_D4 to "1" end vector vector Data_In_D5_0 initialize to Input_Data drive Data_D5 set Data_D5 to "0" end vector vector Data_In_D5_1 initialize to Input_Data drive Data_D5 set Data_D5 to "1" end vector vector Data_In_D6_0 initialize to Input_Data drive Data_D6 set Data_D6 to "0" end vector vector Data_In_D6_1 initialize to Input_Data drive Data_D6 set Data_D6 to "1" end vector vector Data_In_D7_0 initialize to Input_Data drive Data_D7 set Data_D7 to "0" end vector vector Data_In_D7_1 initialize to Input_Data drive Data_D7 set Data_D7 to "1" end vector vector Read_Data_D0_0 initialize to Output_Data receive Data_D0 set Data_D0 to "0" end vector vector Read_Data_D0_1 initialize to Output_Data receive Data_D0 set Data_D0 to "1" end vector vector Read_Data_D1_0 initialize to Output_Data receive Data_D1 set Data_D1 to "0" end vector vector Read_Data_D1_1 initialize to Output_Data receive Data_D1 set Data_D1 to "1" end vector vector Read_Data_D2_0 initialize to Output_Data receive Data_D2 set Data_D2 to "0" end vector vector Read_Data_D2_1 initialize to Output_Data receive Data_D2 set Data_D2 to "1" end vector vector Read_Data_D3_0 initialize to Output_Data receive Data_D3 set Data_D3 to "0" end vector vector Read_Data_D3_1 initialize to Output_Data receive Data_D3 set Data_D3 to "1" end vector vector Read_Data_D4_0 initialize to Output_Data receive Data_D4 set Data_D4 to "0" end vector vector Read_Data_D4_1 initialize to Output_Data receive Data_D4 set Data_D4 to "1" end vector vector Read_Data_D5_0 initialize to Output_Data receive Data_D5 set Data_D5 to "0" end vector vector Read_Data_D5_1 initialize to Output_Data receive Data_D5 set Data_D5 to "1" end vector vector Read_Data_D6_0 initialize to Output_Data receive Data_D6 set Data_D6 to "0" end vector vector Read_Data_D6_1 initialize to Output_Data receive Data_D6 set Data_D6 to "1" end vector vector Read_Data_D7_0 initialize to Output_Data receive Data_D7 set Data_D7 to "0" end vector vector Read_Data_D7_1 initialize to Output_Data receive Data_D7 set Data_D7 to "1" end vector !***************************************************************************** !***************************************************************************** sub Write_Data (Address,Data) execute Address execute Chip_selected execute Data execute Write_completed end sub sub Read_Data (Address,Data) execute Address execute Chip_selected execute Data end sub !AT The following subroutines have been added for a minimum pins test. !AT Vectors in the subroutine "Write_Data" 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_Data" did not !AT require any modification as all references to the data bus are made !AT via a passed parameter (data). This reference can be modified in the !AT call statement. sub Write_Data_Dx (Address, Data_Dx, RWb_hi_Dx) execute Address execute Chip_selected execute Data_Dx execute RWb_hi_Dx 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 Write_Data_Dx (Address_0000000, Data_In_D0_0, RWb_hi_D0) call Read_Data (Address_0000000, Read_Data_D0_0) call Write_Data_Dx (Address_0000000, Data_In_D0_1, RWb_hi_D0) call Read_Data (Address_0000000, Read_Data_D0_1) end unit unit "awaretest D1 Test" call Write_Data_Dx (Address_0000000, Data_In_D1_0, RWb_hi_D1) call Read_Data (Address_0000000, Read_Data_D1_0) call Write_Data_Dx (Address_0000000, Data_In_D1_1, RWb_hi_D1) call Read_Data (Address_0000000, Read_Data_D1_1) end unit unit "awaretest D2 Test" call Write_Data_Dx (Address_0000000, Data_In_D2_0, RWb_hi_D2) call Read_Data (Address_0000000, Read_Data_D2_0) call Write_Data_Dx (Address_0000000, Data_In_D2_1, RWb_hi_D2) call Read_Data (Address_0000000, Read_Data_D2_1) end unit unit "awaretest D3 Test" call Write_Data_Dx (Address_0000000, Data_In_D3_0, RWb_hi_D3) call Read_Data (Address_0000000, Read_Data_D3_0) call Write_Data_Dx (Address_0000000, Data_In_D3_1, RWb_hi_D3) call Read_Data (Address_0000000, Read_Data_D3_1) end unit unit "awaretest D4 Test" call Write_Data_Dx (Address_0000000, Data_In_D4_0, RWb_hi_D4) call Read_Data (Address_0000000, Read_Data_D4_0) call Write_Data_Dx (Address_0000000, Data_In_D4_1, RWb_hi_D4) call Read_Data (Address_0000000, Read_Data_D4_1) end unit unit "awaretest D5 Test" call Write_Data_Dx (Address_0000000, Data_In_D5_0, RWb_hi_D5) call Read_Data (Address_0000000, Read_Data_D5_0) call Write_Data_Dx (Address_0000000, Data_In_D5_1, RWb_hi_D5) call Read_Data (Address_0000000, Read_Data_D5_1) end unit unit "awaretest D6 Test" call Write_Data_Dx (Address_0000000, Data_In_D6_0, RWb_hi_D6) call Read_Data (Address_0000000, Read_Data_D6_0) call Write_Data_Dx (Address_0000000, Data_In_D6_1, RWb_hi_D6) call Read_Data (Address_0000000, Read_Data_D6_1) end unit unit "awaretest D7 Test" call Write_Data_Dx (Address_0000000, Data_In_D7_0, RWb_hi_D7) call Read_Data (Address_0000000, Read_Data_D7_0) call Write_Data_Dx (Address_0000000, Data_In_D7_1, RWb_hi_D7) call Read_Data (Address_0000000, Read_Data_D7_1) end unit unit "RAM test" call Write_Data (Address_0000000, Data_In_00000000) call Write_Data (Address_0000001, Data_In_00000001) call Write_Data (Address_0000011, Data_In_00000011) call Write_Data (Address_0000111, Data_In_00000111) call Write_Data (Address_0001111, Data_In_00001111) call Write_Data (Address_0011111, Data_In_00011111) call Write_Data (Address_0111111, Data_In_00111111) call Write_Data (Address_1111111, Data_In_01111111) call Write_Data (Address_1111110, Data_In_11111111) call Read_Data (Address_0000000, Read_Data_00000000) call Read_Data (Address_0000001, Read_Data_00000001) call Read_Data (Address_0000011, Read_Data_00000011) call Read_Data (Address_0000111, Read_Data_00000111) call Read_Data (Address_0001111, Read_Data_00001111) call Read_Data (Address_0011111, Read_Data_00011111) call Read_Data (Address_0111111, Read_Data_00111111) call Read_Data (Address_1111111, Read_Data_01111111) call Read_Data (Address_1111110, Read_Data_11111111) end unit unit "Chip_select_0_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_0_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit unit "Chip_select_1_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_1_bar_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit unit "Chip_select_2_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_2_bar_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit unit "Chip_select_3_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_3_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit unit "Chip_select_4_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_4_bar_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit unit "Chip_select_5_false" call Write_Data (Address_0000000,Data_In_11111111) execute Address_0000000 execute Chip_select_5_bar_false execute Data_In_00000000_CS_false execute Write_Completed call Read_Data (Address_0000000,Read_Data_11111111) end unit ! End of test