!!!! 6 0 1 986784339 Vdf58 ! Device : 14552 ! Function : Static RAM 3-state 64 x 4 ! revision : B.01.00 ! safeguard : standard_cmos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." vector cycle 6.5u receive delay 6.4u warning "Pull-ups are required to test high-impedance outputs." assign VCC to pins 24 assign GND to pins 12 assign Mode to pins 1 assign Strobe_bar to pins 2 assign Data_out to pins 9,7,5,3 assign Data_out_D0 to pins 3 !AT Added for minimum pin test. assign Data_out_D1 to pins 5 !AT Added for minimum pin test. assign Data_out_D2 to pins 7 !AT Added for minimum pin test. assign Data_out_D3 to pins 9 !AT Added for minimum pin test. assign Data_in to pins 10,8,6,4 assign Data_in_D0 to pins 4 !AT Added for minimum pin test. assign Data_in_D1 to pins 6 !AT Added for minimum pin test. assign Data_in_D2 to pins 8 !AT Added for minimum pin test. assign Data_in_D3 to pins 10 !AT Added for minimum pin test. assign Write_bar to pins 11 assign Address to pins 18,17,16,15,14,13 assign Three_state_bar to pins 19 assign Latch_bar to pins 20 assign Enable_bar to pins 21,22,23 assign Disables to pins 1,19 power VCC, GND family TTL inputs Mode, Strobe_bar, Data_in, Write_bar, Address, Three_state_bar inputs Latch_bar, Enable_bar, Disables inputs Data_in_D0, Data_in_D1, Data_in_D2, Data_in_D3 !AT Added for min pin test. outputs Data_out outputs Data_out_D0, Data_out_D1, Data_out_D2, Data_out_D3 !AT Added for min pin test. when Disables is "11" inactive Data_out trace Data_out to Mode, Strobe_bar, Data_in, Write_bar, Address trace Data_out to Latch_bar, Enable_bar, Disables,Three_state_bar disable Data_out with Disables to "11" !**************************************************************************** !**************************************************************************** vector AddressS_000000 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "000000" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_000001 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "000001" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_000011 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "000011" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_000111 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "000111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_001111 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "001111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_011111 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "011111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector AddressS_111111 set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Address to "111111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Strobe_true set Mode to "1" set Strobe_bar to "0" set Write_bar to "1" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Strobe_false set Mode to "1" set Strobe_bar to "1" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Read_0000 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "0000" end vector vector Read_0001 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "0001" end vector vector Read_0011 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "0011" end vector vector Read_0111 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "0111" end vector vector Read_1111 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "1111" end vector vector Read_1110 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "1110" end vector vector Read_1100 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out to "1100" end vector vector Chip_Enable_001 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "001" end vector vector Chip_Enable_010 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "010" end vector vector Chip_Enable_100 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "100" end vector vector AddressCE_000000 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "000000" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_000001 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "000001" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_000011 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "000011" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_000111 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "000111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_001111 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "001111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_011111 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "011111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector AddressCE_111111 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "111111" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "kkk" end vector vector Enable_000 set Mode to "0" set Strobe_bar to "0" set Write_bar to "1" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Latch_high set Latch_bar to "1" end vector vector T_high set Three_state_bar to "1" end vector vector Write_true set Mode to "0" set Strobe_bar to "0" set Data_in to "kkkk" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "001" end vector vector Write_0000 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "0000" end vector vector Write_0001 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "0001" end vector vector Write_0011 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "0011" end vector vector Write_0111 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "0111" end vector vector Write_1111 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "1111" end vector vector Write_1110 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "1110" end vector vector Write_1100 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in to "1100" end vector vector Write_keep set Mode to "1" set Strobe_bar to "1" set Data_in to "kkkk" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" 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 Read_D0_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D0 to "0" end vector vector Read_D0_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D0 to "1" end vector vector Read_D1_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D1 to "0" end vector vector Read_D1_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D1 to "1" end vector vector Read_D2_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D2 to "0" end vector vector Read_D2_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D2 to "1" end vector vector Read_D3_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D3 to "0" end vector vector Read_D3_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "1" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_out_D3 to "1" end vector vector Write_D0_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D0 to "0" end vector vector Write_D0_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D0 to "1" end vector vector Write_D1_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D1 to "0" end vector vector Write_D1_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D1 to "1" end vector vector Write_D2_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D2 to "0" end vector vector Write_D2_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D2 to "1" end vector vector Write_D3_0 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D3 to "0" end vector vector Write_D3_1 set Mode to "k" set Strobe_bar to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" set Data_in_D3 to "1" end vector vector Write_keep_D0 set Mode to "1" set Strobe_bar to "1" set Data_in_D0 to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Write_keep_D1 set Mode to "1" set Strobe_bar to "1" set Data_in_D1 to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Write_keep_D2 set Mode to "1" set Strobe_bar to "1" set Data_in_D2 to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector vector Write_keep_D3 set Mode to "1" set Strobe_bar to "1" set Data_in_D3 to "k" set Write_bar to "0" set Address to "kkkkkk" set Three_state_bar to "0" set Latch_bar to "0" set Enable_bar to "000" end vector !*************************************************************************** !*************************************************************************** sub ReadS (Address,Data) ! Read using Strobe execute Latch_high execute Address execute Strobe_true execute Strobe_true execute Strobe_false execute Strobe_false execute Data end sub sub ReadCE (Enable,Address,Data) ! Read using Chip Enable execute T_high execute Enable execute Address execute Enable_000 execute Enable_000 execute Enable_000 execute Enable_000 execute Data end sub sub WriteS (Address,Data) execute Strobe_false execute Address execute Strobe_true execute Data execute Write_keep execute Strobe_false end sub sub WriteCE (Enable,Address,Data) execute Enable execute Address execute Enable_000 execute Data execute Write_true execute Enable end sub !AT The following subroutines have been added for a minimum pins test. !AT Vectors in the subroutine "WriteS" 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 "ReadS" 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 WriteS_Dx (Address, Data_Dx, Write_keep_Dx) execute Strobe_false execute Address execute Strobe_true execute Data_Dx execute Write_keep_Dx execute Strobe_false 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 WriteS_Dx (AddressS_000000, Write_D0_0, Write_keep_D0) call ReadS (AddressS_000000, Read_D0_0) call WriteS_Dx (AddressS_000000, Write_D0_1, Write_keep_D0) call ReadS (AddressS_000000, Read_D0_1) end unit unit "awaretest D1 Test" call WriteS_Dx (AddressS_000000, Write_D1_0, Write_keep_D1) call ReadS (AddressS_000000, Read_D1_0) call WriteS_Dx (AddressS_000000, Write_D1_1, Write_keep_D1) call ReadS (AddressS_000000, Read_D1_1) end unit unit "awaretest D2 Test" call WriteS_Dx (AddressS_000000, Write_D2_0, Write_keep_D2) call ReadS (AddressS_000000, Read_D2_0) call WriteS_Dx (AddressS_000000, Write_D2_1, Write_keep_D2) call ReadS (AddressS_000000, Read_D2_1) end unit unit "awaretest D3 Test" call WriteS_Dx (AddressS_000000, Write_D3_0, Write_keep_D3) call ReadS (AddressS_000000, Read_D3_0) call WriteS_Dx (AddressS_000000, Write_D3_1, Write_keep_D3) call ReadS (AddressS_000000, Read_D3_1) end unit unit "Ram_test_using_strobe" ! initialize Ram call WriteS (AddressS_000000,Write_1111) call WriteS (AddressS_000001,Write_0000) call WriteS (AddressS_000011,Write_0000) call WriteS (AddressS_000111,Write_0000) call WriteS (AddressS_001111,Write_0000) call WriteS (AddressS_011111,Write_0000) call WriteS (AddressS_111111,Write_0000) ! write greycode to ram cells call WriteS (AddressS_000000,Write_0000) call WriteS (AddressS_000001,Write_0001) call WriteS (AddressS_000011,Write_0011) call WriteS (AddressS_000111,Write_0111) call WriteS (AddressS_001111,Write_1111) call WriteS (AddressS_011111,Write_1110) call WriteS (AddressS_111111,Write_1100) ! read greycode from ram cells call ReadS (AddressS_000000,Read_0000) call ReadS (AddressS_000001,Read_0001) call ReadS (AddressS_000011,Read_0011) call ReadS (AddressS_000111,Read_0111) call ReadS (AddressS_001111,Read_1111) call ReadS (AddressS_011111,Read_1110) call ReadS (AddressS_111111,Read_1100) end unit unit "Ram_test_using_Chip_Enable" ! initialize Ram call WriteCE (Chip_Enable_001,AddressCE_000000,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_000001,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_000011,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_000111,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_001111,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_011111,Write_0000) call WriteCE (Chip_Enable_001,AddressCE_111111,Write_0000) ! write greycode to ram cells call WriteCE (Chip_Enable_001,AddressCE_000000,Write_0000) call WriteCE (Chip_Enable_010,AddressCE_000001,Write_0001) call WriteCE (Chip_Enable_100,AddressCE_000011,Write_0011) call WriteCE (Chip_Enable_001,AddressCE_000111,Write_0111) call WriteCE (Chip_Enable_010,AddressCE_001111,Write_1111) call WriteCE (Chip_Enable_100,AddressCE_011111,Write_1110) call WriteCE (Chip_Enable_001,AddressCE_111111,Write_1100) ! read greycode from ram cells call ReadCE (Chip_Enable_001,AddressCE_000000,Read_0000) call ReadCE (Chip_Enable_010,AddressCE_000001,Read_0001) call ReadCE (Chip_Enable_100,AddressCE_000011,Read_0011) call ReadCE (Chip_Enable_001,AddressCE_000111,Read_0111) call ReadCE (Chip_Enable_010,AddressCE_001111,Read_1111) call ReadCE (Chip_Enable_100,AddressCE_011111,Read_1110) call ReadCE (Chip_Enable_001,AddressCE_111111,Read_1100) end unit ! End of test