!!!!    6    0    1  986331063  Vf5ce                                         

! Device           : 74ls189
! Function         : Static RAM 3-state 16 x 4
! revision         : B.01.00
! safeguard        : high_out_lsttl
! 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 16
assign   GND              to pins 8

assign   Address          to pins 13,14,15,1
assign   Data_Inputs      to pins 12,10,6,4
assign   Data_Bar_Outputs to pins 11,9,7,5
assign   Chip_Select_Bar  to pins 2
assign   Write_Enable_Bar to pins 3
assign   Write_and_Select to pins 2,3

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 10   !AT Added for minimum pin test.
assign  Data_in_D3  to pins 12   !AT Added for minimum pin test.

assign  Data_out_D0 to pins 5    !AT Added for minimum pin test.
assign  Data_out_D1 to pins 7    !AT Added for minimum pin test.
assign  Data_out_D2 to pins 9    !AT Added for minimum pin test.
assign  Data_out_D3 to pins 11   !AT Added for minimum pin test.

power    VCC, GND

family   TTL

inputs   Address, Data_Inputs, Chip_Select_Bar, Write_Enable_Bar
inputs Data_in_D0, Data_in_D1, Data_in_D2, Data_in_D3      !AT Added for min pin test.

outputs  Data_Bar_Outputs
outputs Data_out_D0, Data_out_D1, Data_out_D2, Data_out_D3 !AT Added for min pin test.

when  Chip_Select_Bar   is "1"   inactive Data_Bar_Outputs
when  Write_Enable_Bar  is "0"   inactive Data_Bar_Outputs

trace Data_Bar_Outputs  to Address,Data_Inputs,Chip_Select_Bar,Write_Enable_Bar

disable Data_Bar_Outputs  with  Chip_Select_Bar  to "1"
disable Data_Bar_Outputs  with  Write_and_Select  to "00"

!**********************************************************************
!**********************************************************************

vector  Address_0000__Data_Input_0000
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Inputs       to "0000"
end vector

vector  Address_0000__Output_Bar_1111
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Bar_Outputs  to "1111"
end vector

vector  Address_0001__Data_Input_0001
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0001"
   set   Data_Inputs       to "0001"
end vector

vector  Address_0001__Output_Bar_1110
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0001"
   set   Data_Bar_Outputs  to "1110"
end vector

vector  Address_0011__Data_Input_0011
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0011"
   set   Data_Inputs       to "0011"
end vector

vector  Address_0011__Output_Bar_1100
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0011"
   set   Data_Bar_Outputs  to "1100"
end vector

vector  Address_0111__Data_Input_0111
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0111"
   set   Data_Inputs       to "0111"
end vector

vector  Address_0111__Output_Bar_1000
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0111"
   set   Data_Bar_Outputs  to "1000"
end vector

vector  Address_1111__Data_Input_1111
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "1111"
   set   Data_Inputs       to "1111"
end vector

vector  Address_1111__Output_Bar_0000
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "1111"
   set   Data_Bar_Outputs  to "0000"
end vector

vector  Disable_Write
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "KKKK"
   set   Data_Inputs       to "KKKK"
end vector

vector  Enable_Write
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "0"
   set   Address           to "KKKK"
   set   Data_Inputs       to "KKKK"
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  Address_0000_In_D0_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D0        to "0"
end vector

vector  Address_0000_In_D0_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D0        to "1"
end vector

vector  Address_0000_In_D1_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D1        to "0"
end vector

vector  Address_0000_In_D1_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D1        to "1"
end vector

vector  Address_0000_In_D2_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D2        to "0"
end vector

vector  Address_0000_In_D2_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D2        to "1"
end vector

vector  Address_0000_In_D3_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D3        to "0"
end vector

vector  Address_0000_In_D3_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_In_D3        to "1"
end vector

vector  Address_0000_Out_D0_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D0       to "1"
end vector

vector  Address_0000_Out_D0_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D0       to "0"
end vector

vector  Address_0000_Out_D1_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D1       to "1"
end vector

vector  Address_0000_Out_D1_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D1       to "0"
end vector

vector  Address_0000_Out_D2_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D2       to "1"
end vector

vector  Address_0000_Out_D2_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D2       to "0"
end vector

vector  Address_0000_Out_D3_1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D3       to "1"
end vector

vector  Address_0000_Out_D3_0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "0000"
   set   Data_Out_D3       to "0"
end vector

vector  Disable_Write_D0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "KKKK"
   set   Data_In_D0        to "K"
end vector

vector  Disable_Write_D1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "KKKK"
   set   Data_In_D1        to "K"
end vector

vector  Disable_Write_D2
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "KKKK"
   set   Data_In_D2        to "K"
end vector

vector  Disable_Write_D3
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "1"
   set   Address           to "KKKK"
   set   Data_In_D3        to "K"
end vector

vector  Enable_Write_D0
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "0"
   set   Address           to "KKKK"
   set   Data_In_D0        to "K"
end vector

vector  Enable_Write_D1
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "0"
   set   Address           to "KKKK"
   set   Data_In_D1        to "K"
end vector

vector  Enable_Write_D2
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "0"
   set   Address           to "KKKK"
   set   Data_In_D2        to "K"
end vector

vector  Enable_Write_D3
   set   Chip_Select_Bar   to "0"
   set   Write_Enable_Bar  to "0"
   set   Address           to "KKKK"
   set   Data_In_D3        to "K"
end vector

!**********************************************************************

!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  Address_0000_In_D0_0
   execute  Enable_Write_D0
   execute  Disable_Write_D0
   execute  Address_0000_Out_D0_1

   execute  Address_0000_In_D0_1
   execute  Enable_Write_D0
   execute  Disable_Write_D0
   execute  Address_0000_Out_D0_0
end unit

unit   "awaretest D1 Test"
   execute  Address_0000_In_D1_0
   execute  Enable_Write_D1
   execute  Disable_Write_D1
   execute  Address_0000_Out_D1_1

   execute  Address_0000_In_D1_1
   execute  Enable_Write_D1
   execute  Disable_Write_D1
   execute  Address_0000_Out_D1_0
end unit

unit   "awaretest D2 Test"
   execute  Address_0000_In_D2_0
   execute  Enable_Write_D2
   execute  Disable_Write_D2
   execute  Address_0000_Out_D2_1

   execute  Address_0000_In_D2_1
   execute  Enable_Write_D2
   execute  Disable_Write_D2
   execute  Address_0000_Out_D2_0
end unit

unit   "awaretest D3 Test"
   execute  Address_0000_In_D3_0
   execute  Enable_Write_D3
   execute  Disable_Write_D3
   execute  Address_0000_Out_D3_1

   execute  Address_0000_In_D3_1
   execute  Enable_Write_D3
   execute  Disable_Write_D3
   execute  Address_0000_Out_D3_0
end unit

!    This test will detect pin faults.

unit  "RAM test"
   execute  Address_0000__Data_Input_0000
   execute  Enable_Write
   execute  Disable_Write

   execute  Address_0001__Data_Input_0001
   execute  Enable_Write
   execute  Disable_Write

   execute  Address_0011__Data_Input_0011
   execute  Enable_Write
   execute  Disable_Write

   execute  Address_0111__Data_Input_0111
   execute  Enable_Write
   execute  Disable_Write

   execute  Address_1111__Data_Input_1111
   execute  Enable_Write
   execute  Disable_Write

   execute  Address_0000__Output_Bar_1111
   execute  Address_0001__Output_Bar_1110
   execute  Address_0011__Output_Bar_1100
   execute  Address_0111__Output_Bar_1000
   execute  Address_1111__Output_Bar_0000
end unit

!    End of Test
