!!!! 6 0 1 986857782 V8d34 ! Device : nmc4864 ! Function : Static RAM 3-state 8k 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 28 assign GND to pins 14 assign Address to pins 2,23,21,24,25,3,4,5,6,7,8,9,10 assign Data to pins 19,18,17,16,15,13,12,11 assign Data_D0 to pins 11 !AT Added for minimum pin test. assign Data_D1 to pins 12 !AT Added for minimum pin test. assign Data_D2 to pins 13 !AT Added for minimum pin test. assign Data_D3 to pins 15 !AT Added for minimum pin test. assign Data_D4 to pins 16 !AT Added for minimum pin test. assign Data_D5 to pins 17 !AT Added for minimum pin test. assign Data_D6 to pins 18 !AT Added for minimum pin test. assign Data_D7 to pins 19 !AT Added for minimum pin test. assign Chip_select_bar to pins 20 assign Address_enable_bar to pins 26 assign Read_strobe_bar to pins 22 assign Write_strobe_bar to pins 27 assign Refresh_bar to pins 1 family TTL power VCC, GND inputs Address, Chip_select_bar, Address_enable_bar inputs Read_strobe_bar, Write_strobe_bar, Refresh_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 Chip_select_bar is "1" inactive Data when Read_strobe_bar is "0" outputs Data when Write_strobe_bar is "1" inputs Data trace Data to Address, Chip_select_bar, Address_enable_bar trace Data to Read_strobe_bar, Write_strobe_bar, Refresh_bar disable Data with Chip_select_bar to "1" !*************************************************************** !*************************************************************** vector Read_strobe_bar_high set Read_strobe_bar to "1" end vector vector Read_strobe_bar_low set Read_strobe_bar to "0" end vector vector Disable set Write_strobe_bar to "1" set Chip_select_bar to "1" set Address_enable_bar to "1" set Read_strobe_bar to "1" end vector vector Chip_selected set Address to "kkkkkkkkkkkkk" set Write_strobe_bar to "k" set Chip_select_bar to "0" set Address_enable_bar to "k" set Read_strobe_bar to "k" end vector vector Chip_select_false set Address to "kkkkkkkkkkkkk" set Write_strobe_bar to "k" set Chip_select_bar to "1" set Address_enable_bar to "k" set Read_strobe_bar to "k" end vector vector Address_latched set Address to "kkkkkkkkkkkkk" set Write_strobe_bar to "k" set Chip_select_bar to "k" set Address_enable_bar to "0" set Read_strobe_bar to "k" end vector vector Write_strobe_bar_lo set Write_strobe_bar to "0" set Chip_select_bar to "k" set Address_enable_bar to "k" set Read_strobe_bar to "k" end vector vector Write_strobe_bar_hi set Write_strobe_bar to "1" set Chip_select_bar to "k" set Address_enable_bar to "k" set Read_strobe_bar to "k" end vector vector Data_Output set Write_strobe_bar to "k" set Chip_select_bar to "k" set Address_enable_bar to "k" set Read_strobe_bar to "0" end vector vector Address_0000000000000 initialize to Disable set Address to "0000000000000" end vector vector Address_0000000000001 initialize to Disable set Address to "0000000000001" end vector vector Address_0000000000011 initialize to Disable set Address to "0000000000011" end vector vector Address_0000000000111 initialize to Disable set Address to "0000000000111" end vector vector Address_0000000001111 initialize to Disable set Address to "0000000001111" end vector vector Address_0000000011111 initialize to Disable set Address to "0000000011111" end vector vector Address_0000000111111 initialize to Disable set Address to "0000000111111" end vector vector Address_0000001111111 initialize to Disable set Address to "0000001111111" end vector vector Address_0000011111111 initialize to Disable set Address to "0000011111111" end vector vector Address_0000111111111 initialize to Disable set Address to "0000111111111" end vector vector Address_0001111111111 initialize to Disable set Address to "0001111111111" end vector vector Address_0011111111111 initialize to Disable set Address to "0011111111111" end vector vector Address_0111111111111 initialize to Disable set Address to "0111111111111" end vector vector Address_1111111111111 initialize to Disable set Address to "1111111111111" end vector vector Data_write_00000000 initialize to Write_strobe_bar_lo drive Data set Data to "00000000" end vector vector Data_write_00000001 initialize to Write_strobe_bar_lo drive Data set Data to "00000001" end vector vector Data_write_00000011 initialize to Write_strobe_bar_lo drive Data set Data to "00000001" end vector vector Data_write_00000111 initialize to Write_strobe_bar_lo drive Data set Data to "00000111" end vector vector Data_write_00001111 initialize to Write_strobe_bar_lo drive Data set Data to "00001111" end vector vector Data_write_00011111 initialize to Write_strobe_bar_lo drive Data set Data to "00011111" end vector vector Data_write_00111111 initialize to Write_strobe_bar_lo drive Data set Data to "00111111" end vector vector Data_write_01111111 initialize to Write_strobe_bar_lo drive Data set Data to "01111111" end vector vector Data_write_11111111 initialize to Write_strobe_bar_lo drive Data set Data to "11111111" end vector vector Data_write_10101010 initialize to Write_strobe_bar_lo drive Data set Data to "10101010" end vector vector Data_write_01010101 initialize to Write_strobe_bar_lo drive Data set Data to "01010101" end vector vector Data_write_11110000 initialize to Write_strobe_bar_lo drive Data set Data to "11110000" end vector vector Data_write_11001100 initialize to Write_strobe_bar_lo drive Data set Data to "11001100" end vector vector Data_write_00110011 initialize to Write_strobe_bar_lo drive Data set Data to "00110011" end vector vector Data_read_00000000 initialize to Data_Output receive Data set Data to "00000000" end vector vector Data_read_00000001 initialize to Data_Output receive Data set Data to "00000001" end vector vector Data_read_00000011 initialize to Data_Output receive Data set Data to "00000011" end vector vector Data_read_00000111 initialize to Data_Output receive Data set Data to "00000111" end vector vector Data_read_00001111 initialize to Data_Output receive Data set Data to "00001111" end vector vector Data_read_00011111 initialize to Data_Output receive Data set Data to "00011111" end vector vector Data_read_00111111 initialize to Data_Output receive Data set Data to "00111111" end vector vector Data_read_01111111 initialize to Data_Output receive Data set Data to "01111111" end vector vector Data_read_11111111 initialize to Data_Output receive Data set Data to "11111111" end vector vector Data_read_10101010 initialize to Data_Output receive Data set Data to "10101010" end vector vector Data_read_01010101 initialize to Data_Output receive Data set Data to "01010101" end vector vector Data_read_11110000 initialize to Data_Output receive Data set Data to "11110000" end vector vector Data_read_11001100 initialize to Data_Output receive Data set Data to "11001100" end vector vector Data_read_00110011 initialize to Data_Output receive Data set Data to "00110011" 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 Data_write_D0_0 initialize to Write_strobe_bar_lo drive Data_D0 set Data_D0 to "0" end vector vector Data_write_D0_1 initialize to Write_strobe_bar_lo drive Data_D0 set Data_D0 to "1" end vector vector Data_write_D1_0 initialize to Write_strobe_bar_lo drive Data_D1 set Data_D1 to "0" end vector vector Data_write_D1_1 initialize to Write_strobe_bar_lo drive Data_D1 set Data_D1 to "1" end vector vector Data_write_D2_0 initialize to Write_strobe_bar_lo drive Data_D2 set Data_D2 to "0" end vector vector Data_write_D2_1 initialize to Write_strobe_bar_lo drive Data_D2 set Data_D2 to "1" end vector vector Data_write_D3_0 initialize to Write_strobe_bar_lo drive Data_D3 set Data_D3 to "0" end vector vector Data_write_D3_1 initialize to Write_strobe_bar_lo drive Data_D3 set Data_D3 to "1" end vector vector Data_write_D4_0 initialize to Write_strobe_bar_lo drive Data_D4 set Data_D4 to "0" end vector vector Data_write_D4_1 initialize to Write_strobe_bar_lo drive Data_D4 set Data_D4 to "1" end vector vector Data_write_D5_0 initialize to Write_strobe_bar_lo drive Data_D5 set Data_D5 to "0" end vector vector Data_write_D5_1 initialize to Write_strobe_bar_lo drive Data_D5 set Data_D5 to "1" end vector vector Data_write_D6_0 initialize to Write_strobe_bar_lo drive Data_D6 set Data_D6 to "0" end vector vector Data_write_D6_1 initialize to Write_strobe_bar_lo drive Data_D6 set Data_D6 to "1" end vector vector Data_write_D7_0 initialize to Write_strobe_bar_lo drive Data_D7 set Data_D7 to "0" end vector vector Data_write_D7_1 initialize to Write_strobe_bar_lo drive Data_D7 set Data_D7 to "1" end vector vector Data_read_D0_0 initialize to Data_Output receive Data_D0 set Data_D0 to "0" end vector vector Data_read_D0_1 initialize to Data_Output receive Data_D0 set Data_D0 to "1" end vector vector Data_read_D1_0 initialize to Data_Output receive Data_D1 set Data_D1 to "0" end vector vector Data_read_D1_1 initialize to Data_Output receive Data_D1 set Data_D1 to "1" end vector vector Data_read_D2_0 initialize to Data_Output receive Data_D2 set Data_D2 to "0" end vector vector Data_read_D2_1 initialize to Data_Output receive Data_D2 set Data_D2 to "1" end vector vector Data_read_D3_0 initialize to Data_Output receive Data_D3 set Data_D3 to "0" end vector vector Data_read_D3_1 initialize to Data_Output receive Data_D3 set Data_D3 to "1" end vector vector Data_read_D4_0 initialize to Data_Output receive Data_D4 set Data_D4 to "0" end vector vector Data_read_D4_1 initialize to Data_Output receive Data_D4 set Data_D4 to "1" end vector vector Data_read_D5_0 initialize to Data_Output receive Data_D5 set Data_D5 to "0" end vector vector Data_read_D5_1 initialize to Data_Output receive Data_D5 set Data_D5 to "1" end vector vector Data_read_D6_0 initialize to Data_Output receive Data_D6 set Data_D6 to "0" end vector vector Data_read_D6_1 initialize to Data_Output receive Data_D6 set Data_D6 to "1" end vector vector Data_read_D7_0 initialize to Data_Output receive Data_D7 set Data_D7 to "0" end vector vector Data_read_D7_1 initialize to Data_Output receive Data_D7 set Data_D7 to "1" end vector !*************************************************************** !*************************************************************** sub Write_data (Address, Data) execute Address execute Chip_selected execute Address_latched execute Data execute Write_strobe_bar_hi end sub sub Read_data (Address, Data) execute Address execute Chip_selected execute Address_latched execute Data end sub !*************************************************************** unit "Refresh_cycle" repeat 128 times execute Read_strobe_bar_high execute Read_strobe_bar_low end repeat end unit !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 (Address_0000000000000, Data_write_D0_0) call Read_data (Address_0000000000000, Data_read_D0_0) call Write_data (Address_0000000000000, Data_write_D0_1) call Read_data (Address_0000000000000, Data_read_D0_1) end unit unit "awaretest D1 Test" call Write_data (Address_0000000000000, Data_write_D1_0) call Read_data (Address_0000000000000, Data_read_D1_0) call Write_data (Address_0000000000000, Data_write_D1_1) call Read_data (Address_0000000000000, Data_read_D1_1) end unit unit "awaretest D2 Test" call Write_data (Address_0000000000000, Data_write_D2_0) call Read_data (Address_0000000000000, Data_read_D2_0) call Write_data (Address_0000000000000, Data_write_D2_1) call Read_data (Address_0000000000000, Data_read_D2_1) end unit unit "awaretest D3 Test" call Write_data (Address_0000000000000, Data_write_D3_0) call Read_data (Address_0000000000000, Data_read_D3_0) call Write_data (Address_0000000000000, Data_write_D3_1) call Read_data (Address_0000000000000, Data_read_D3_1) end unit unit "awaretest D4 Test" call Write_data (Address_0000000000000, Data_write_D4_0) call Read_data (Address_0000000000000, Data_read_D4_0) call Write_data (Address_0000000000000, Data_write_D4_1) call Read_data (Address_0000000000000, Data_read_D4_1) end unit unit "awaretest D5 Test" call Write_data (Address_0000000000000, Data_write_D5_0) call Read_data (Address_0000000000000, Data_read_D5_0) call Write_data (Address_0000000000000, Data_write_D5_1) call Read_data (Address_0000000000000, Data_read_D5_1) end unit unit "awaretest D6 Test" call Write_data (Address_0000000000000, Data_write_D6_0) call Read_data (Address_0000000000000, Data_read_D6_0) call Write_data (Address_0000000000000, Data_write_D6_1) call Read_data (Address_0000000000000, Data_read_D6_1) end unit unit "awaretest D7 Test" call Write_data (Address_0000000000000, Data_write_D7_0) call Read_data (Address_0000000000000, Data_read_D7_0) call Write_data (Address_0000000000000, Data_write_D7_1) call Read_data (Address_0000000000000, Data_read_D7_1) end unit unit "RAM test" call Write_data (Address_0000000000000, Data_write_00000000) call Write_data (Address_0000000000001, Data_write_00000001) call Write_data (Address_0000000000011, Data_write_00000011) call Write_data (Address_0000000000111, Data_write_00000111) call Write_data (Address_0000000001111, Data_write_00001111) call Write_data (Address_0000000011111, Data_write_00011111) call Write_data (Address_0000000111111, Data_write_00111111) call Write_data (Address_0000001111111, Data_write_01111111) call Write_data (Address_0000011111111, Data_write_11111111) call Write_data (Address_0000111111111, Data_write_10101010) call Write_data (Address_0001111111111, Data_write_01010101) call Write_data (Address_0011111111111, Data_write_11110000) call Write_data (Address_0111111111111, Data_write_11001100) call Write_data (Address_1111111111111, Data_write_00110011) call Read_data (Address_0000000000000, Data_read_00000000) call Read_data (Address_0000000000001, Data_read_00000001) call Read_data (Address_0000000000011, Data_read_00000011) call Read_data (Address_0000000000111, Data_read_00000111) call Read_data (Address_0000000001111, Data_read_00001111) call Read_data (Address_0000000011111, Data_read_00011111) call Read_data (Address_0000000111111, Data_read_00111111) call Read_data (Address_0000001111111, Data_read_01111111) call Read_data (Address_0000011111111, Data_read_11111111) call Read_data (Address_0000111111111, Data_read_10101010) call Read_data (Address_0001111111111, Data_read_01010101) call Read_data (Address_0011111111111, Data_read_11110000) call Read_data (Address_0111111111111, Data_read_11001100) call Read_data (Address_1111111111111, Data_read_00110011) end unit unit "Test Chip_select_false" call Write_data (Address_0000000000000, Data_write_00000000) execute Address_0000000000000 execute Chip_select_false execute Address_latched execute Data_write_11111111 call Read_data (Address_0000000000000, Data_read_00000000) end unit ! End of test