!!!! 6 0 1 987022829 Vfd36 ! Device : cxk54256 ! Function : 64k x 4 bit CMOS Static RAM ! revision : B.01.00 ! safeguard : high_out_hcmos ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." sequential vector cycle 400n receive delay 300n assign VCC to pins 24 assign GND to pins 12 assign Address to pins 23,22,21,20 assign Address to pins 19,18,10,9 assign Address to pins 8,7,6,5 assign Address to pins 4,3,2,1 assign Data to pins 14,15,16,17 assign Data_D0 to pins 17 !AT Added for minimum pin test. assign Data_D1 to pins 16 !AT Added for minimum pin test. assign Data_D2 to pins 15 !AT Added for minimum pin test. assign Data_D3 to pins 14 !AT Added for minimum pin test. assign Enables to pins 11,13 ! CE_bar,WE_bar family TTL power VCC, GND inputs Address, Enables bidirectional Data bidirectional Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test. format hexadecimal Address,Data disable Data with Enables to "1x" disable Data with Enables to "x0" when Enables is "1x" inactive Data when Enables is "x0" inactive Data trace Data to Address,Enables warning "This test requires pullups on pins 14,15,16,17 for the unit" warning "Test CE_bar" !********************************************************************** !**************** VECTOR SECTION **************************** !********************************************************************** vector Start drive Data set Data to "0" set Address to "0000" end vector vector Drive_Keep drive Data set Data to "k" set Address to "kkkk" set Enables to "kk" end vector vector Receive_Keep receive Data set Data to "x" set Address to "kkkk" set Enables to "kk" end vector vector Write_Enabled initialize to Drive_Keep set Enables to "00" end vector vector Read_Enabled initialize to Receive_Keep set Enables to "01" end vector vector Add_0000_W initialize to Drive_Keep set Address to "0000" end vector vector Add_0001_W initialize to Drive_Keep set Address to "0001" end vector vector Add_0002_W initialize to Drive_Keep set Address to "0002" end vector vector Add_0004_W initialize to Drive_Keep set Address to "0004" end vector vector Add_0008_W initialize to Drive_Keep set Address to "0008" end vector vector Add_0010_W initialize to Drive_Keep set Address to "0010" end vector vector Add_0020_W initialize to Drive_Keep set Address to "0020" end vector vector Add_0040_W initialize to Drive_Keep set Address to "0040" end vector vector Add_0080_W initialize to Drive_Keep set Address to "0080" end vector vector Add_0100_W initialize to Drive_Keep set Address to "0100" end vector vector Add_0200_W initialize to Drive_Keep set Address to "0200" end vector vector Add_0400_W initialize to Drive_Keep set Address to "0400" end vector vector Add_0800_W initialize to Drive_Keep set Address to "0800" end vector vector Add_1000_W initialize to Drive_Keep set Address to "1000" end vector vector Add_2000_W initialize to Drive_Keep set Address to "2000" end vector vector Add_4000_W initialize to Drive_Keep set Address to "4000" end vector vector Add_8000_W initialize to Drive_Keep set Address to "8000" end vector vector Add_0000_R initialize to Receive_Keep set Address to "0000" end vector vector Add_0001_R initialize to Receive_Keep set Address to "0001" end vector vector Add_0002_R initialize to Receive_Keep set Address to "0002" end vector vector Add_0004_R initialize to Receive_Keep set Address to "0004" end vector vector Add_0008_R initialize to Receive_Keep set Address to "0008" end vector vector Add_0010_R initialize to Receive_Keep set Address to "0010" end vector vector Add_0020_R initialize to Receive_Keep set Address to "0020" end vector vector Add_0040_R initialize to Receive_Keep set Address to "0040" end vector vector Add_0080_R initialize to Receive_Keep set Address to "0080" end vector vector Add_0100_R initialize to Receive_Keep set Address to "0100" end vector vector Add_0200_R initialize to Receive_Keep set Address to "0200" end vector vector Add_0400_R initialize to Receive_Keep set Address to "0400" end vector vector Add_0800_R initialize to Receive_Keep set Address to "0800" end vector vector Add_1000_R initialize to Receive_Keep set Address to "1000" end vector vector Add_2000_R initialize to Receive_Keep set Address to "2000" end vector vector Add_4000_R initialize to Receive_Keep set Address to "4000" end vector vector Add_8000_R initialize to Receive_Keep set Address to "8000" end vector vector Add_1111_W initialize to Drive_Keep set Address to "1111" end vector !************************************************************* vector Dat_0_W initialize to Drive_Keep set Data to "0" end vector vector Dat_1_W initialize to Drive_Keep set Data to "1" end vector vector Dat_2_W initialize to Drive_Keep set Data to "2" end vector vector Dat_3_W initialize to Drive_Keep set Data to "3" end vector vector Dat_4_W initialize to Drive_Keep set Data to "4" end vector vector Dat_5_W initialize to Drive_Keep set Data to "5" end vector vector Dat_6_W initialize to Drive_Keep set Data to "6" end vector vector Dat_7_W initialize to Drive_Keep set Data to "7" end vector vector Dat_8_W initialize to Drive_Keep set Data to "8" end vector vector Dat_9_W initialize to Drive_Keep set Data to "9" end vector vector Dat_A_W initialize to Drive_Keep set Data to "A" end vector vector Dat_B_W initialize to Drive_Keep set Data to "B" end vector vector Dat_C_W initialize to Drive_Keep set Data to "C" end vector vector Dat_D_W initialize to Drive_Keep set Data to "D" end vector vector Dat_E_W initialize to Drive_Keep set Data to "E" end vector vector Dat_F_W initialize to Drive_Keep set Data to "F" end vector vector Dat_0_R initialize to Receive_Keep set Data to "0" end vector vector Dat_1_R initialize to Receive_Keep set Data to "1" end vector vector Dat_2_R initialize to Receive_Keep set Data to "2" end vector vector Dat_3_R initialize to Receive_Keep set Data to "3" end vector vector Dat_4_R initialize to Receive_Keep set Data to "4" end vector vector Dat_5_R initialize to Receive_Keep set Data to "5" end vector vector Dat_6_R initialize to Receive_Keep set Data to "6" end vector vector Dat_7_R initialize to Receive_Keep set Data to "7" end vector vector Dat_8_R initialize to Receive_Keep set Data to "8" end vector vector Dat_9_R initialize to Receive_Keep set Data to "9" end vector vector Dat_A_R initialize to Receive_Keep set Data to "A" end vector vector Dat_B_R initialize to Receive_Keep set Data to "B" end vector vector Dat_C_R initialize to Receive_Keep set Data to "C" end vector vector Dat_D_R initialize to Receive_Keep set Data to "D" end vector vector Dat_E_R initialize to Receive_Keep set Data to "E" end vector vector Dat_F_R initialize to Receive_Keep set Data to "F" end vector vector CE_bar_high initialize to Receive_Keep set Enables to "11" end vector vector Disabled_Dat_F_R initialize to Receive_Keep set Enables to "11" set Data to "F" 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 Start_D0 drive Data_D0 set Data_D0 to "0" set Address to "0000" end vector vector Drive_Keep_D0 drive Data_D0 set Data_D0 to "k" set Address to "kkkk" set Enables to "kk" end vector vector Receive_Keep_D0 receive Data_D0 set Data_D0 to "x" set Address to "kkkk" set Enables to "kk" end vector vector Write_Enabled_D0 initialize to Drive_Keep_D0 set Enables to "00" end vector vector Read_Enabled_D0 initialize to Receive_Keep_D0 set Enables to "01" end vector vector Add_0000_W_D0 initialize to Drive_Keep_D0 set Address to "0000" end vector vector Add_0000_R_D0 initialize to Receive_Keep_D0 set Address to "0000" end vector vector Dat_0_W_D0 initialize to Drive_Keep_D0 set Data_D0 to "0" end vector vector Dat_1_W_D0 initialize to Drive_Keep_D0 set Data_D0 to "1" end vector vector Dat_0_R_D0 initialize to Receive_Keep_D0 set Data_D0 to "0" end vector vector Dat_1_R_D0 initialize to Receive_Keep_D0 set Data_D0 to "1" end vector vector Start_D1 drive Data_D1 set Data_D1 to "0" set Address to "0000" end vector vector Drive_Keep_D1 drive Data_D1 set Data_D1 to "k" set Address to "kkkk" set Enables to "kk" end vector vector Receive_Keep_D1 receive Data_D1 set Data_D1 to "x" set Address to "kkkk" set Enables to "kk" end vector vector Write_Enabled_D1 initialize to Drive_Keep_D1 set Enables to "00" end vector vector Read_Enabled_D1 initialize to Receive_Keep_D1 set Enables to "01" end vector vector Add_0000_W_D1 initialize to Drive_Keep_D1 set Address to "0000" end vector vector Add_0000_R_D1 initialize to Receive_Keep_D1 set Address to "0000" end vector vector Dat_0_W_D1 initialize to Drive_Keep_D1 set Data_D1 to "0" end vector vector Dat_1_W_D1 initialize to Drive_Keep_D1 set Data_D1 to "1" end vector vector Dat_0_R_D1 initialize to Receive_Keep_D1 set Data_D1 to "0" end vector vector Dat_1_R_D1 initialize to Receive_Keep_D1 set Data_D1 to "1" end vector vector Start_D2 drive Data_D2 set Data_D2 to "0" set Address to "0000" end vector vector Drive_Keep_D2 drive Data_D2 set Data_D2 to "k" set Address to "kkkk" set Enables to "kk" end vector vector Receive_Keep_D2 receive Data_D2 set Data_D2 to "x" set Address to "kkkk" set Enables to "kk" end vector vector Write_Enabled_D2 initialize to Drive_Keep_D2 set Enables to "00" end vector vector Read_Enabled_D2 initialize to Receive_Keep_D2 set Enables to "01" end vector vector Add_0000_W_D2 initialize to Drive_Keep_D2 set Address to "0000" end vector vector Add_0000_R_D2 initialize to Receive_Keep_D2 set Address to "0000" end vector vector Dat_0_W_D2 initialize to Drive_Keep_D2 set Data_D2 to "0" end vector vector Dat_1_W_D2 initialize to Drive_Keep_D2 set Data_D2 to "1" end vector vector Dat_0_R_D2 initialize to Receive_Keep_D2 set Data_D2 to "0" end vector vector Dat_1_R_D2 initialize to Receive_Keep_D2 set Data_D2 to "1" end vector vector Start_D3 drive Data_D3 set Data_D3 to "0" set Address to "0000" end vector vector Drive_Keep_D3 drive Data_D3 set Data_D3 to "k" set Address to "kkkk" set Enables to "kk" end vector vector Receive_Keep_D3 receive Data_D3 set Data_D3 to "x" set Address to "kkkk" set Enables to "kk" end vector vector Write_Enabled_D3 initialize to Drive_Keep_D3 set Enables to "00" end vector vector Read_Enabled_D3 initialize to Receive_Keep_D3 set Enables to "01" end vector vector Add_0000_W_D3 initialize to Drive_Keep_D3 set Address to "0000" end vector vector Add_0000_R_D3 initialize to Receive_Keep_D3 set Address to "0000" end vector vector Dat_0_W_D3 initialize to Drive_Keep_D3 set Data_D3 to "0" end vector vector Dat_1_W_D3 initialize to Drive_Keep_D3 set Data_D3 to "1" end vector vector Dat_0_R_D3 initialize to Receive_Keep_D3 set Data_D3 to "0" end vector vector Dat_1_R_D3 initialize to Receive_Keep_D3 set Data_D3 to "1" end vector !********************************************************************** !****************** SUBROUTINE SECTION ********************* !********************************************************************** sub Write(Add ,Dat) execute Write_Enabled execute Add execute Dat subend sub Read(Add ,Dat) execute Read_Enabled execute Add execute Dat subend !AT The following subroutines have been added for a minimum pins test. !AT Vectors in the subroutines reference the entire data bus. !AT Therefore this subroutine was copied and modified to reference only !AT a single pin of the data bus. sub Write_Dx (Add, Dat_Dx, Write_Enabled) execute Write_Enabled execute Add execute Dat_Dx end sub sub Read_Dx (Add, Dat_Dx, Read_Enabled) execute Read_Enabled execute Add execute Dat_Dx end sub !********************************************************************** !****************** UNIT SECTION ************************** !********************************************************************** !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" execute Start_D0 call Write_Dx (Add_0000_W_D0, Dat_0_W_D0, Write_Enabled_D0) call Read_Dx (Add_0000_R_D0, Dat_0_R_D0, Read_Enabled_D0) call Write_Dx (Add_0000_W_D0, Dat_1_W_D0, Write_Enabled_D0) call Read_Dx (Add_0000_R_D0, Dat_1_R_D0, Read_Enabled_D0) end unit unit "awaretest D1 Test" execute Start_D1 call Write_Dx (Add_0000_W_D1, Dat_0_W_D1, Write_Enabled_D1) call Read_Dx (Add_0000_R_D1, Dat_0_R_D1, Read_Enabled_D1) call Write_Dx (Add_0000_W_D1, Dat_1_W_D1, Write_Enabled_D1) call Read_Dx (Add_0000_R_D1, Dat_1_R_D1, Read_Enabled_D1) end unit unit "awaretest D2 Test" execute Start_D2 call Write_Dx (Add_0000_W_D2, Dat_0_W_D2, Write_Enabled_D2) call Read_Dx (Add_0000_R_D2, Dat_0_R_D2, Read_Enabled_D2) call Write_Dx (Add_0000_W_D2, Dat_1_W_D2, Write_Enabled_D2) call Read_Dx (Add_0000_R_D2, Dat_1_R_D2, Read_Enabled_D2) end unit unit "awaretest D3 Test" execute Start_D3 call Write_Dx (Add_0000_W_D3, Dat_0_W_D3, Write_Enabled_D3) call Read_Dx (Add_0000_R_D3, Dat_0_R_D3, Read_Enabled_D3) call Write_Dx (Add_0000_W_D3, Dat_1_W_D3, Write_Enabled_D3) call Read_Dx (Add_0000_R_D3, Dat_1_R_D3, Read_Enabled_D3) end unit unit "Main" execute Start call Write(Add_0000_W ,Dat_0_W) call Write(Add_0001_W ,Dat_5_W) call Write(Add_0002_W ,Dat_A_W) call Write(Add_0004_W ,Dat_9_W) call Write(Add_0008_W ,Dat_6_W) call Write(Add_0010_W ,Dat_5_W) call Write(Add_0020_W ,Dat_A_W) call Write(Add_0040_W ,Dat_9_W) call Write(Add_0080_W ,Dat_6_W) call Write(Add_0100_W ,Dat_5_W) call Write(Add_0200_W ,Dat_A_W) call Write(Add_0400_W ,Dat_9_W) call Write(Add_0800_W ,Dat_6_W) call Write(Add_1000_W ,Dat_5_W) call Write(Add_2000_W ,Dat_A_W) call Write(Add_4000_W ,Dat_9_W) call Write(Add_8000_W ,Dat_6_W) call Read (Add_0000_R ,Dat_0_R) call Write(Add_0000_W ,Dat_F_W) call Read (Add_0001_R ,Dat_5_R) call Write(Add_0001_W ,Dat_F_W) call Read (Add_0002_R ,Dat_A_R) call Write(Add_0002_W ,Dat_F_W) call Read (Add_0004_R ,Dat_9_R) call Write(Add_0004_W ,Dat_F_W) call Read (Add_0008_R ,Dat_6_R) call Write(Add_0008_W ,Dat_F_W) call Read (Add_0010_R ,Dat_5_R) call Write(Add_0010_W ,Dat_F_W) call Read (Add_0020_R ,Dat_A_R) call Write(Add_0020_W ,Dat_F_W) call Read (Add_0040_R ,Dat_9_R) call Write(Add_0040_W ,Dat_F_W) call Read (Add_0080_R ,Dat_6_R) call Write(Add_0080_W ,Dat_F_W) call Read (Add_0100_R ,Dat_5_R) call Write(Add_0100_W ,Dat_F_W) call Read (Add_0200_R ,Dat_A_R) call Write(Add_0200_W ,Dat_F_W) call Read (Add_0400_R ,Dat_9_R) call Write(Add_0400_W ,Dat_F_W) call Read (Add_0800_R ,Dat_6_R) call Write(Add_0800_W ,Dat_F_W) call Read (Add_1000_R ,Dat_5_R) call Write(Add_1000_W ,Dat_F_W) call Read (Add_2000_R ,Dat_A_R) call Write(Add_2000_W ,Dat_F_W) call Read (Add_4000_R ,Dat_9_R) call Write(Add_4000_W ,Dat_F_W) call Read (Add_8000_R ,Dat_6_R) call Write(Add_8000_W ,Dat_F_W) end unit unit "Test CE_bar" execute Start call Write(Add_0000_W ,Dat_0_W) call Write(Add_1111_W ,Dat_F_W) call Read(Add_0000_R ,Dat_0_R) execute Read_Enabled execute Add_0000_R execute CE_bar_high execute Dat_F_R end unit