!!!! 6 0 1 986417816 V613d ! Device : 2111 ! Function : Static RAM 3-state 256 x 4 ! revision : B.01.00 ! safeguard : med_out_mos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." sequential warning "Pull-ups are required to test high-impedance outputs." assign VCC to pins 18 assign GND to pins 8 assign Address to pins 7,6,5,17,1,2,3,4 assign Data to pins 14,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 14 !AT Added for minimum pin test. assign Chip_enable_1_bar to pins 15 assign Chip_enable_2_bar to pins 10 assign Chip_enables to pins 15,10 assign Output_disable to pins 9 assign Write_enable_bar to pins 16 family TTL power VCC, GND inputs Address, Write_enable_bar, Output_disable inputs Chip_enable_1_bar, Chip_enable_2_bar, Chip_enables bidirectional Data bidirectional Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test. when Write_enable_bar is "0" inputs Data when Write_enable_bar is "1" outputs Data when Chip_enable_1_bar is "1" inactive Data when Chip_enable_2_bar is "1" inactive Data when Output_disable is "1" inactive Data trace Data to Address, Write_enable_bar, Output_disable trace Data to Chip_enable_1_bar, Chip_enable_2_bar, Chip_enables disable Data with Chip_enable_1_bar to "1" disable Data with Chip_enable_2_bar to "1" disable Data with Output_disable to "1" !*************************************************************** !*************************************************************** vector Disable set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "1" end vector vector Write_enable_bar_true drive Data set Address to "kkkkkkkk" set Data to "kkkk" set Write_enable_bar to "0" set Chip_enables to "kk" set Output_disable to "k" end vector vector Write_enable_bar_false drive Data set Address to "kkkkkkkk" set Data to "kkkk" set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "k" end vector vector Chip_enable drive Data set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" end vector vector Chip_enable_1_false drive Data set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "10" set Output_disable to "1" end vector vector Chip_enable_2_false drive Data set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "01" set Output_disable to "1" end vector vector Read_enable receive Data set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" end vector vector Address_00000000 initialize to Disable set Address to "00000000" end vector vector Address_00000001 initialize to Disable set Address to "00000001" end vector vector Address_00000011 initialize to Disable set Address to "00000011" end vector vector Address_00000111 initialize to Disable set Address to "00000111" end vector vector Address_00001111 initialize to Disable set Address to "00001111" end vector vector Address_00011111 initialize to Disable set Address to "00011111" end vector vector Address_00111111 initialize to Disable set Address to "00111111" end vector vector Address_01111111 initialize to Disable set Address to "01111111" end vector vector Address_11111111 initialize to Disable set Address to "11111111" end vector vector Data_write_0000 initialize to Chip_enable set Data to "0000" end vector vector Data_write_0001 initialize to Chip_enable set Data to "0001" end vector vector Data_write_0011 initialize to Chip_enable set Data to "0011" end vector vector Data_write_0111 initialize to Chip_enable set Data to "0111" end vector vector Data_write_1111 initialize to Chip_enable set Data to "1111" end vector vector Data_write_1110 initialize to Chip_enable set Data to "1110" end vector vector Data_write_1100 initialize to Chip_enable set Data to "1100" end vector vector Data_write_1000 initialize to Chip_enable set Data to "1000" end vector vector Data_write_1010 initialize to Chip_enable set Data to "1010" end vector vector Data_write_0000_disabled drive Data set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "kk" set Output_disable to "k" set Data to "0000" end vector vector Data_read_0000 initialize to Read_enable set Data to "0000" end vector vector Data_read_0001 initialize to Read_enable set Data to "0001" end vector vector Data_read_0011 initialize to Read_enable set Data to "0011" end vector vector Data_read_0111 initialize to Read_enable set Data to "0111" end vector vector Data_read_1111 initialize to Read_enable set Data to "1111" end vector vector Data_read_1110 initialize to Read_enable set Data to "1110" end vector vector Data_read_1100 initialize to Read_enable set Data to "1100" end vector vector Data_read_1000 initialize to Read_enable set Data to "1000" end vector vector Data_read_1010 initialize to Read_enable set Data to "1010" 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 drive Data_D0 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D0 to "0" end vector vector Data_write_D0_1 drive Data_D0 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D0 to "1" end vector vector Data_write_D1_0 drive Data_D1 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D1 to "0" end vector vector Data_write_D1_1 drive Data_D1 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D1 to "1" end vector vector Data_write_D2_0 drive Data_D2 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D2 to "0" end vector vector Data_write_D2_1 drive Data_D2 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D2 to "1" end vector vector Data_write_D3_0 drive Data_D3 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D3 to "0" end vector vector Data_write_D3_1 drive Data_D3 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "1" set Data_D3 to "1" end vector vector Data_read_D0_0 receive Data_D0 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D0 to "0" end vector vector Data_read_D0_1 receive Data_D0 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D0 to "1" end vector vector Data_read_D1_0 receive Data_D1 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D1 to "0" end vector vector Data_read_D1_1 receive Data_D1 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D1 to "1" end vector vector Data_read_D2_0 receive Data_D2 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D2 to "0" end vector vector Data_read_D2_1 receive Data_D2 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D2 to "1" end vector vector Data_read_D3_0 receive Data_D3 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D3 to "0" end vector vector Data_read_D3_1 receive Data_D3 set Address to "kkkkkkkk" set Write_enable_bar to "k" set Chip_enables to "00" set Output_disable to "0" set Data_D3 to "1" end vector vector WEb_lo_D0 drive Data_D0 set Address to "kkkkkkkk" set Data_D0 to "k" set Write_enable_bar to "0" set Chip_enables to "kk" set Output_disable to "k" end vector vector WEb_lo_D1 drive Data_D1 set Address to "kkkkkkkk" set Data_D1 to "k" set Write_enable_bar to "0" set Chip_enables to "kk" set Output_disable to "k" end vector vector WEb_lo_D2 drive Data_D2 set Address to "kkkkkkkk" set Data_D2 to "k" set Write_enable_bar to "0" set Chip_enables to "kk" set Output_disable to "k" end vector vector WEb_lo_D3 drive Data_D3 set Address to "kkkkkkkk" set Data_D3 to "k" set Write_enable_bar to "0" set Chip_enables to "kk" set Output_disable to "k" end vector vector WEb_hi_D0 drive Data_D0 set Address to "kkkkkkkk" set Data_D0 to "k" set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "k" end vector vector WEb_hi_D1 drive Data_D1 set Address to "kkkkkkkk" set Data_D1 to "k" set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "k" end vector vector WEb_hi_D2 drive Data_D2 set Address to "kkkkkkkk" set Data_D2 to "k" set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "k" end vector vector WEb_hi_D3 drive Data_D3 set Address to "kkkkkkkk" set Data_D3 to "k" set Write_enable_bar to "1" set Chip_enables to "10" set Output_disable to "k" end vector !*************************************************************** !*************************************************************** sub Write_data (Address, Data) execute Address execute Data execute Write_enable_bar_true execute Write_enable_bar_false end sub sub Read_data (Address, Data) execute Address execute Data execute 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, WEb_bar_true_Dx, WEb_bar_false_Dx) execute Address execute Data_Dx execute WEb_bar_true_Dx execute WEb_bar_false_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_00000000, Data_write_D0_0, WEb_lo_D0, WEb_hi_D0) call Read_data (Address_00000000, Data_read_D0_0) call Write_data_Dx (Address_00000000, Data_write_D0_1, WEb_lo_D0, WEb_hi_D0) call Read_data (Address_00000000, Data_read_D0_1) end unit unit "awaretest D1 Test" call Write_data_Dx (Address_00000000, Data_write_D1_0, WEb_lo_D1, WEb_hi_D1) call Read_data (Address_00000000, Data_read_D1_0) call Write_data_Dx (Address_00000000, Data_write_D1_1, WEb_lo_D1, WEb_hi_D1) call Read_data (Address_00000000, Data_read_D1_1) end unit unit "awaretest D2 Test" call Write_data_Dx (Address_00000000, Data_write_D2_0, WEb_lo_D2, WEb_hi_D2) call Read_data (Address_00000000, Data_read_D2_0) call Write_data_Dx (Address_00000000, Data_write_D2_1, WEb_lo_D2, WEb_hi_D2) call Read_data (Address_00000000, Data_read_D2_1) end unit unit "awaretest D3 Test" call Write_data_Dx (Address_00000000, Data_write_D3_0, WEb_lo_D3, WEb_hi_D3) call Read_data (Address_00000000, Data_read_D3_0) call Write_data_Dx (Address_00000000, Data_write_D3_1, WEb_lo_D3, WEb_hi_D3) call Read_data (Address_00000000, Data_read_D3_1) end unit ! There are two active_low Chip_enable lines only Chip_enable_1 ! is used to disable in the 2111 ram test. The Chip_enable_2 ! can be used if necessary by changing the set Chip_enable (spec) ! in the vector Disable in the vector definition section. unit "RAM test" call Write_data (Address_00000000, Data_write_1111) call Write_data (Address_00000001, Data_write_1110) call Write_data (Address_00000011, Data_write_1100) call Write_data (Address_00000111, Data_write_1000) call Write_data (Address_00001111, Data_write_1010) call Write_data (Address_00011111, Data_write_0000) call Write_data (Address_00111111, Data_write_0001) call Write_data (Address_01111111, Data_write_0011) call Write_data (Address_11111111, Data_write_0111) call Read_data (Address_00000000, Data_read_1111) call Read_data (Address_00000001, Data_read_1110) call Read_data (Address_00000011, Data_read_1100) call Read_data (Address_00000111, Data_read_1000) call Read_data (Address_00001111, Data_read_1010) call Read_data (Address_00011111, Data_read_0000) call Read_data (Address_00111111, Data_read_0001) call Read_data (Address_01111111, Data_read_0011) call Read_data (Address_11111111, Data_read_0111) end unit unit "Test Chip_enable_1_false" call Write_data (Address_00000000, Data_write_1111) execute Address_00000000 execute Chip_enable_1_false execute Data_write_0000_disabled execute Write_enable_bar_true execute Write_enable_bar_false call Read_data (Address_00000000, Data_read_1111) end unit unit "Test Chip_enable_2_false" call Write_data (Address_00000000, Data_write_1111) execute Address_00000000 execute Chip_enable_2_false execute Data_write_0000_disabled execute Write_enable_bar_true execute Write_enable_bar_false call Read_data (Address_00000000, Data_read_1111) end unit ! End of test