!!!! 6 0 1 986759887 V03dd ! Device : 4118 ! Function : Static RAM 3-state 1k 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 assign VCC to pins 24 assign GND to pins 12 assign Address to pins 22,23,1,2,3,4,5,6,7,8 assign Data to pins 17,16,15,14,13,11,10,9 assign Data_D0 to pins 9 !AT Added for minimum pin test. assign Data_D1 to pins 10 !AT Added for minimum pin test. assign Data_D2 to pins 11 !AT Added for minimum pin test. assign Data_D3 to pins 13 !AT Added for minimum pin test. assign Data_D4 to pins 14 !AT Added for minimum pin test. assign Data_D5 to pins 15 !AT Added for minimum pin test. assign Data_D6 to pins 16 !AT Added for minimum pin test. assign Data_D7 to pins 17 !AT Added for minimum pin test. assign Chip_enable_bar to pins 18 assign Write_enable_bar to pins 21 assign Output_enable_bar to pins 20 assign Latch_bar to pins 19 family TTL power VCC, GND inputs Address, Write_enable_bar, Chip_enable_bar inputs Output_enable_bar, Latch_bar 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 Write_enable_bar is "0" inputs Data when Write_enable_bar is "1" outputs Data when Output_enable_bar is "1" inactive Data trace Data to Address, Write_enable_bar, Chip_enable_bar trace Data to Output_enable_bar, Latch_bar outputs limited to 4 at "0", 4 at "1" disable Data with Write_enable_bar to "0" disable Data with Output_enable_bar to "1" !*************************************************************** !*************************************************************** vector Disable set Write_enable_bar to "1" set Chip_enable_bar to "1" set Output_enable_bar to "1" set Latch_bar to "1" end vector vector Chip_enable_true set Address to "kkkkkkkkkk" set Write_enable_bar to "k" set Chip_enable_bar to "0" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Write_enable set Address to "kkkkkkkkkk" set Write_enable_bar to "0" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Latch_bar_true set Address to "kkkkkkkkkk" set Write_enable_bar to "k" set Chip_enable_bar to "k" set Output_enable_bar to "0" set Latch_bar to "0" end vector vector Write_enable_true set Address to "kkkkkkkkkk" set Write_enable_bar to "0" set Chip_enable_bar to "k" set Output_enable_bar to "0" set Latch_bar to "k" end vector vector Write_enable_false drive Data set Data to "kkkkkkkk" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Chip_enable_false drive Data set Data to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Read_enable set Address to "kkkkkkkkkk" set Write_enable_bar to "k" set Chip_enable_bar to "0" set Output_enable_bar to "0" set Latch_bar to "k" end vector vector Read_disable set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "1" set Latch_bar to "k" end vector vector Address_0000000000 initialize to Disable set Address to "0000000000" end vector vector Address_0000000001 initialize to Disable set Address to "0000000001" end vector vector Address_0000000011 initialize to Disable set Address to "0000000011" end vector vector Address_0000000111 initialize to Disable set Address to "0000000111" end vector vector Address_0000001111 initialize to Disable set Address to "0000001111" end vector vector Address_0000011111 initialize to Disable set Address to "0000011111" end vector vector Address_0000111111 initialize to Disable set Address to "0000111111" end vector vector Address_0001111111 initialize to Disable set Address to "0001111111" end vector vector Address_0011111111 initialize to Disable set Address to "0011111111" end vector vector Address_0111111111 initialize to Disable set Address to "0111111111" end vector vector Address_1111111111 initialize to Disable set Address to "1111111111" end vector vector Address_1111111111_latched set Address to "1111111111" set Write_enable_bar to "k" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Data_write_00000000 initialize to Write_enable drive Data set Data to "00000000" end vector vector Data_write_00000001 initialize to Write_enable drive Data set Data to "00000001" end vector vector Data_write_00000011 initialize to Write_enable drive Data set Data to "00000011" end vector vector Data_write_00000111 initialize to Write_enable drive Data set Data to "00000111" end vector vector Data_write_00001111 initialize to Write_enable drive Data set Data to "00001111" end vector vector Data_write_00011111 initialize to Write_enable drive Data set Data to "00011111" end vector vector Data_write_00111111 initialize to Write_enable drive Data set Data to "00111111" end vector vector Data_write_01111111 initialize to Write_enable drive Data set Data to "01111111" end vector vector Data_write_11111111 initialize to Write_enable drive Data set Data to "11111111" end vector vector Data_write_10101010 initialize to Write_enable drive Data set Data to "10101010" end vector vector Data_write_01010101 initialize to Write_enable drive Data set Data to "01010101" end vector vector Data_write_11111111_CE_false drive Data set Address to "kkkkkkkkkk" set Write_enable_bar to "0" set Chip_enable_bar to "k" set Output_enable_bar to "0" set Latch_bar to "k" set Data to "11111111" end vector vector Data_read_00000000 initialize to Read_enable receive Data set Data to "00000000" end vector vector Data_read_00000001 initialize to Read_enable receive Data set Data to "00000001" end vector vector Data_read_00000011 initialize to Read_enable receive Data set Data to "00000011" end vector vector Data_read_00000111 initialize to Read_enable receive Data set Data to "00000111" end vector vector Data_read_00001111 initialize to Read_enable receive Data set Data to "00001111" end vector vector Data_read_00011111 initialize to Read_enable receive Data set Data to "00011111" end vector vector Data_read_00111111 initialize to Read_enable receive Data set Data to "00111111" end vector vector Data_read_01111111 initialize to Read_enable receive Data set Data to "01111111" end vector vector Data_read_11111111 initialize to Read_enable receive Data set Data to "11111111" end vector vector Data_read_10101010 initialize to Read_enable receive Data set Data to "10101010" end vector vector Data_read_01010101 initialize to Read_enable receive Data set Data to "01010101" end vector vector Data_read_00000000_Latched receive Data set Write_enable_bar to "1" set Chip_enable_bar to "0" set Output_enable_bar to "0" set Latch_bar to "k" set Data to "00000000" 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 WEb_hi_D0 drive Data_D0 set Data_D0 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D1 drive Data_D1 set Data_D1 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D2 drive Data_D2 set Data_D2 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D3 drive Data_D3 set Data_D3 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D4 drive Data_D4 set Data_D4 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D5 drive Data_D5 set Data_D5 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D6 drive Data_D6 set Data_D6 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector WEb_hi_D7 drive Data_D7 set Data_D7 to "k" set Write_enable_bar to "1" set Chip_enable_bar to "k" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D0 drive Data_D0 set Data_D0 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D1 drive Data_D1 set Data_D1 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D2 drive Data_D2 set Data_D2 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D3 drive Data_D3 set Data_D3 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D4 drive Data_D4 set Data_D4 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D5 drive Data_D5 set Data_D5 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D6 drive Data_D6 set Data_D6 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector CEb_hi_D7 drive Data_D7 set Data_D7 to "k" set Write_enable_bar to "k" set Chip_enable_bar to "1" set Output_enable_bar to "k" set Latch_bar to "k" end vector vector Data_write_D0_0 initialize to WEb_hi_D0 drive Data_D0 set Data_D0 to "0" end vector vector Data_write_D0_1 initialize to WEb_hi_D0 drive Data_D0 set Data_D0 to "1" end vector vector Data_write_D1_0 initialize to WEb_hi_D1 drive Data_D1 set Data_D1 to "0" end vector vector Data_write_D1_1 initialize to WEb_hi_D1 drive Data_D1 set Data_D1 to "1" end vector vector Data_write_D2_0 initialize to WEb_hi_D2 drive Data_D2 set Data_D2 to "0" end vector vector Data_write_D2_1 initialize to WEb_hi_D2 drive Data_D2 set Data_D2 to "1" end vector vector Data_write_D3_0 initialize to WEb_hi_D3 drive Data_D3 set Data_D3 to "0" end vector vector Data_write_D3_1 initialize to WEb_hi_D3 drive Data_D3 set Data_D3 to "1" end vector vector Data_write_D4_0 initialize to WEb_hi_D4 drive Data_D4 set Data_D4 to "0" end vector vector Data_write_D4_1 initialize to WEb_hi_D4 drive Data_D4 set Data_D4 to "1" end vector vector Data_write_D5_0 initialize to WEb_hi_D5 drive Data_D5 set Data_D5 to "0" end vector vector Data_write_D5_1 initialize to WEb_hi_D5 drive Data_D5 set Data_D5 to "1" end vector vector Data_write_D6_0 initialize to WEb_hi_D6 drive Data_D6 set Data_D6 to "0" end vector vector Data_write_D6_1 initialize to WEb_hi_D6 drive Data_D6 set Data_D6 to "1" end vector vector Data_write_D7_0 initialize to WEb_hi_D7 drive Data_D7 set Data_D7 to "0" end vector vector Data_write_D7_1 initialize to WEb_hi_D7 drive Data_D7 set Data_D7 to "1" end vector vector Data_read_D0_0 initialize to Read_enable receive Data_D0 set Data_D0 to "0" end vector vector Data_read_D0_1 initialize to Read_enable receive Data_D0 set Data_D0 to "1" end vector vector Data_read_D1_0 initialize to Read_enable receive Data_D1 set Data_D1 to "0" end vector vector Data_read_D1_1 initialize to Read_enable receive Data_D1 set Data_D1 to "1" end vector vector Data_read_D2_0 initialize to Read_enable receive Data_D2 set Data_D2 to "0" end vector vector Data_read_D2_1 initialize to Read_enable receive Data_D2 set Data_D2 to "1" end vector vector Data_read_D3_0 initialize to Read_enable receive Data_D3 set Data_D3 to "0" end vector vector Data_read_D3_1 initialize to Read_enable receive Data_D3 set Data_D3 to "1" end vector vector Data_read_D4_0 initialize to Read_enable receive Data_D4 set Data_D4 to "0" end vector vector Data_read_D4_1 initialize to Read_enable receive Data_D4 set Data_D4 to "1" end vector vector Data_read_D5_0 initialize to Read_enable receive Data_D5 set Data_D5 to "0" end vector vector Data_read_D5_1 initialize to Read_enable receive Data_D5 set Data_D5 to "1" end vector vector Data_read_D6_0 initialize to Read_enable receive Data_D6 set Data_D6 to "0" end vector vector Data_read_D6_1 initialize to Read_enable receive Data_D6 set Data_D6 to "1" end vector vector Data_read_D7_0 initialize to Read_enable receive Data_D7 set Data_D7 to "0" end vector vector Data_read_D7_1 initialize to Read_enable receive Data_D7 set Data_D7 to "1" end vector !*************************************************************** !*************************************************************** sub Write_data (Address, Data) execute Address execute Chip_enable_true execute Data execute Chip_enable_false execute Write_enable_false end sub sub Read_data (Address, Data) execute Address execute Data execute Read_disable 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, CEb_hi_Dx, WEb_hi_Dx) execute Address execute Chip_enable_true execute Data_Dx execute CEb_hi_Dx execute WEb_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_0000000000, Data_write_D0_0, CEb_hi_D0, WEb_hi_D0) call Read_data (Address_0000000000, Data_read_D0_0) call Write_data_Dx (Address_0000000000, Data_write_D0_1, CEb_hi_D0, WEb_hi_D0) call Read_data (Address_0000000000, Data_read_D0_1) end unit unit "awaretest D1 Test" call Write_data_Dx (Address_0000000000, Data_write_D1_0, CEb_hi_D1, WEb_hi_D1) call Read_data (Address_0000000000, Data_read_D1_0) call Write_data_Dx (Address_0000000000, Data_write_D1_1, CEb_hi_D1, WEb_hi_D1) call Read_data (Address_0000000000, Data_read_D1_1) end unit unit "awaretest D2 Test" call Write_data_Dx (Address_0000000000, Data_write_D2_0, CEb_hi_D2, WEb_hi_D2) call Read_data (Address_0000000000, Data_read_D2_0) call Write_data_Dx (Address_0000000000, Data_write_D2_1, CEb_hi_D2, WEb_hi_D2) call Read_data (Address_0000000000, Data_read_D2_1) end unit unit "awaretest D3 Test" call Write_data_Dx (Address_0000000000, Data_write_D3_0, CEb_hi_D3, WEb_hi_D3) call Read_data (Address_0000000000, Data_read_D3_0) call Write_data_Dx (Address_0000000000, Data_write_D3_1, CEb_hi_D3, WEb_hi_D3) call Read_data (Address_0000000000, Data_read_D3_1) end unit unit "awaretest D4 Test" call Write_data_Dx (Address_0000000000, Data_write_D4_0, CEb_hi_D4, WEb_hi_D4) call Read_data (Address_0000000000, Data_read_D4_0) call Write_data_Dx (Address_0000000000, Data_write_D4_1, CEb_hi_D4, WEb_hi_D4) call Read_data (Address_0000000000, Data_read_D4_1) end unit unit "awaretest D5 Test" call Write_data_Dx (Address_0000000000, Data_write_D5_0, CEb_hi_D5, WEb_hi_D5) call Read_data (Address_0000000000, Data_read_D5_0) call Write_data_Dx (Address_0000000000, Data_write_D5_1, CEb_hi_D5, WEb_hi_D5) call Read_data (Address_0000000000, Data_read_D5_1) end unit unit "awaretest D6 Test" call Write_data_Dx (Address_0000000000, Data_write_D6_0, CEb_hi_D6, WEb_hi_D6) call Read_data (Address_0000000000, Data_read_D6_0) call Write_data_Dx (Address_0000000000, Data_write_D6_1, CEb_hi_D6, WEb_hi_D6) call Read_data (Address_0000000000, Data_read_D6_1) end unit unit "awaretest D7 Test" call Write_data_Dx (Address_0000000000, Data_write_D7_0, CEb_hi_D7, WEb_hi_D7) call Read_data (Address_0000000000, Data_read_D7_0) call Write_data_Dx (Address_0000000000, Data_write_D7_1, CEb_hi_D7, WEb_hi_D7) call Read_data (Address_0000000000, Data_read_D7_1) end unit ! Write cycle: Output_enable_bar, Latch_bar are held high ! Read cycle: Write_enable_bar, Latch_bar are held high unit "Test RAM Latch_bar_high" call Write_data (Address_0000000000, Data_write_00000000) call Write_data (Address_0000000001, Data_write_00000001) call Write_data (Address_0000000011, Data_write_00000011) call Write_data (Address_0000000111, Data_write_00000111) call Write_data (Address_0000001111, Data_write_00001111) call Write_data (Address_0000011111, Data_write_00011111) call Write_data (Address_0000111111, Data_write_00111111) call Write_data (Address_0001111111, Data_write_01111111) call Write_data (Address_0011111111, Data_write_11111111) call Write_data (Address_0111111111, Data_write_10101010) call Write_data (Address_1111111111, Data_write_01010101) call Read_data (Address_0000000000, Data_read_00000000) call Read_data (Address_0000000001, Data_read_00000001) call Read_data (Address_0000000011, Data_read_00000011) call Read_data (Address_0000000111, Data_read_00000111) call Read_data (Address_0000001111, Data_read_00001111) call Read_data (Address_0000011111, Data_read_00011111) call Read_data (Address_0000111111, Data_read_00111111) call Read_data (Address_0001111111, Data_read_01111111) call Read_data (Address_0011111111, Data_read_11111111) call Read_data (Address_0111111111, Data_read_10101010) call Read_data (Address_1111111111, Data_read_01010101) end unit ! Write_enable held high unit "Test Latch_bar_true" call Write_data (Address_0000000000, Data_write_00000000) call Write_data (Address_1111111111, Data_write_01010101) call Read_data (Address_0000000000, Data_read_00000000) call Read_data (Address_1111111111, Data_read_01010101) execute Address_0000000000 execute Chip_enable_true execute Latch_bar_true execute Address_1111111111_Latched execute Data_read_00000000_Latched execute Read_disable end unit ! Latch_bar held high unit "Test Write_enable_true" call Write_data (Address_0000000000, Data_write_00000000) call Write_data (Address_1111111111, Data_write_01010101) call Read_data (Address_0000000000, Data_read_00000000) call Read_data (Address_1111111111, Data_read_01010101) execute Address_0000000000 execute Chip_enable_true execute Write_enable_true execute Address_1111111111_Latched execute Data_read_00000000_Latched execute Read_disable end unit unit "Test Chip_enable_false" call Write_data (Address_0000000000, Data_write_00000000) execute Address_0000000000 execute Chip_enable_false execute Data_write_11111111_CE_false execute Write_enable_false call Read_data (Address_0000000000, Data_read_00000000) end unit ! End of test