!!!!    6    0    1  986800857  V758f                                         

! Device           : 2168
! Function         : Static RAM 3-state 4k 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

assign    VCC            to pins   20
assign    GND            to pins   10

assign    Address        to pins   16,17,18,19,1,2,3,4,8,7,6,5

assign    Data           to pins   12,13,14,15
assign    Data_D0        to pins   15   !AT Added for minimum pin test.
assign    Data_D1        to pins   14   !AT Added for minimum pin test.
assign    Data_D2        to pins   13   !AT Added for minimum pin test.
assign    Data_D3        to pins   12   !AT Added for minimum pin test.

assign    Write_enable_bar      to pins   11
assign    Chip_enable_bar       to pins   9

family    TTL

power     VCC, GND

inputs    Address, Write_enable_bar, Chip_enable_bar

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_bar     is    "1"   inactive Data

trace     Data  to  Address, Write_enable_bar, Chip_enable_bar

disable   Data   with   Write_enable_bar     to   "0"
disable   Data   with   Chip_enable_bar      to   "1"

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

vector   Memory_disabled
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Chip_enabled
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "0"
     set  Write_enable_bar    to  "k"
end vector

vector   Chip_enable_false
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "k"
end vector

vector   Write_enabled
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Write_enable_bar    to  "0"
end vector

vector   Data_written
          drive  Data
     set  Data                to  "kkkk"
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Output_valid
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "0"
     set  Write_enable_bar    to  "k"
end vector


vector   Address_000000000000
     initialize to Memory_disabled
     set  Address     to "000000000000"
end vector

vector   Address_000000000001
     initialize to Memory_disabled
     set  Address     to "000000000001"
end vector

vector   Address_000000000011
     initialize to Memory_disabled
     set  Address     to "000000000011"
end vector

vector   Address_000000000111
     initialize to Memory_disabled
     set  Address     to "000000000111"
end vector

vector   Address_000000001111
     initialize to Memory_disabled
     set  Address     to "000000001111"
end vector

vector   Address_000000011111
     initialize to Memory_disabled
     set  Address     to "000000011111"
end vector

vector   Address_000000111111
     initialize to Memory_disabled
     set  Address     to "000000111111"
end vector

vector   Address_000001111111
     initialize to Memory_disabled
     set  Address     to "000001111111"
end vector

vector   Address_000011111111
     initialize to Memory_disabled
     set  Address     to "000011111111"
end vector

vector   Address_000111111111
     initialize to Memory_disabled
     set  Address     to "000111111111"
end vector

vector   Address_001111111111
     initialize to Memory_disabled
     set  Address     to "001111111111"
end vector

vector   Address_011111111111
     initialize to Memory_disabled
     set  Address     to "011111111111"
end vector

vector   Address_111111111111
     initialize to Memory_disabled
     set  Address     to "111111111111"
end vector

vector   Data_In_0000
     initialize to Write_enabled
          drive  Data
     set  Data            to "0000"
end vector

vector   Data_In_0001
     initialize to Write_enabled
          drive  Data
     set  Data            to "0001"
end vector

vector   Data_In_0011
     initialize to Write_enabled
          drive  Data
     set  Data            to "0011"
end vector

vector   Data_In_0010
     initialize to Write_enabled
          drive  Data
     set  Data            to "0010"
end vector

vector   Data_In_0110
     initialize to Write_enabled
          drive  Data
     set  Data            to "0110"
end vector

vector   Data_In_0111
     initialize to Write_enabled
          drive  Data
     set  Data            to "0111"
end vector

vector   Data_In_0101
     initialize to Write_enabled
          drive  Data
     set  Data            to "0101"
end vector

vector   Data_In_0100
     initialize to Write_enabled
          drive  Data
     set  Data            to "0100"
end vector

vector   Data_In_1100
     initialize to Write_enabled
          drive  Data
     set  Data            to "1100"
end vector

vector   Data_In_1101
     initialize to Write_enabled
          drive  Data
     set  Data            to "1101"
end vector

vector   Data_In_1111
     initialize to Write_enabled
          drive  Data
     set  Data            to "1111"
end vector

vector   Data_In_1110
     initialize to Write_enabled
          drive  Data
     set  Data            to "1110"
end vector

vector   Data_In_1010
     initialize to Write_enabled
          drive  Data
     set  Data            to "1010"
end vector

vector   Read_Data_0000
     initialize to Output_valid
          receive  Data
     set  Data            to "0000"
end vector

vector   Read_Data_0001
     initialize to Output_valid
          receive  Data
     set  Data            to "0001"
end vector

vector   Read_Data_0011
     initialize to Output_valid
          receive  Data
     set  Data            to "0011"
end vector

vector   Read_Data_0010
     initialize to Output_valid
          receive  Data
     set  Data            to "0010"
end vector

vector   Read_Data_0110
     initialize to Output_valid
          receive  Data
     set  Data            to "0110"
end vector

vector   Read_Data_0111
     initialize to Output_valid
          receive  Data
     set  Data            to "0111"
end vector

vector   Read_Data_0101
     initialize to Output_valid
          receive  Data
     set  Data            to "0101"
end vector

vector   Read_Data_0100
     initialize to Output_valid
          receive  Data
     set  Data            to "0100"
end vector

vector   Read_Data_1100
     initialize to Output_valid
          receive  Data
     set  Data            to "1100"
end vector

vector   Read_Data_1101
     initialize to Output_valid
          receive  Data
     set  Data            to "1101"
end vector

vector   Read_Data_1111
     initialize to Output_valid
          receive  Data
     set  Data            to "1111"
end vector

vector   Read_Data_1110
     initialize to Output_valid
          receive  Data
     set  Data            to "1110"
end vector

vector   Read_Data_1010
     initialize to Output_valid
          receive  Data
     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_written_D0
          drive  Data_D0
     set  Data_D0             to  "k"
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_written_D1
          drive  Data_D1
     set  Data_D1             to  "k"
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_written_D2
          drive  Data_D2
     set  Data_D2             to  "k"
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_written_D3
          drive  Data_D3
     set  Data_D3             to  "k"
     set  Address             to  "kkkkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_In_D0_0
     initialize to Write_enabled
          drive  Data_D0
     set  Data_D0         to "0"
end vector

vector   Data_In_D0_1
     initialize to Write_enabled
          drive  Data_D0
     set  Data_D0         to "1"
end vector

vector   Data_In_D1_0
     initialize to Write_enabled
          drive  Data_D1
     set  Data_D1         to "0"
end vector

vector   Data_In_D1_1
     initialize to Write_enabled
          drive  Data_D1
     set  Data_D1         to "1"
end vector

vector   Data_In_D2_0
     initialize to Write_enabled
          drive  Data_D2
     set  Data_D2         to "0"
end vector

vector   Data_In_D2_1
     initialize to Write_enabled
          drive  Data_D2
     set  Data_D2         to "1"
end vector

vector   Data_In_D3_0
     initialize to Write_enabled
          drive  Data_D3
     set  Data_D3         to "0"
end vector

vector   Data_In_D3_1
     initialize to Write_enabled
          drive  Data_D3
     set  Data_D3         to "1"
end vector

vector   Read_Data_D0_0
     initialize to Output_valid
          receive  Data_D0
     set  Data_D0         to "0"
end vector

vector   Read_Data_D0_1
     initialize to Output_valid
          receive  Data_D0
     set  Data_D0         to "1"
end vector

vector   Read_Data_D1_0
     initialize to Output_valid
          receive  Data_D1
     set  Data_D1         to "0"
end vector

vector   Read_Data_D1_1
     initialize to Output_valid
          receive  Data_D1
     set  Data_D1         to "1"
end vector

vector   Read_Data_D2_0
     initialize to Output_valid
          receive  Data_D2
     set  Data_D2         to "0"
end vector

vector   Read_Data_D2_1
     initialize to Output_valid
          receive  Data_D2
     set  Data_D2         to "1"
end vector

vector   Read_Data_D3_0
     initialize to Output_valid
          receive  Data_D3
     set  Data_D3         to "0"
end vector

vector   Read_Data_D3_1
     initialize to Output_valid
          receive  Data_D3
     set  Data_D3         to "1"
end vector

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

sub  Write_Data (Address,Data)
      execute     Address
      execute     Chip_enabled
      execute     Data
      execute     Data_written
end sub

sub  Read_Data (Address,Data)
      execute     Address
      execute     Data
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, Data_written_Dx)
      execute     Address
      execute     Chip_enabled
      execute     Data_Dx
      execute     Data_written_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_000000000000, Data_In_D0_0, Data_written_D0)
     call Read_data (Address_000000000000, Read_data_D0_0)

     call Write_data_Dx (Address_000000000000, Data_In_D0_1, Data_written_D0)
     call Read_data (Address_000000000000, Read_data_D0_1)

end unit

unit   "awaretest D1 Test"

     call Write_data_Dx (Address_000000000000, Data_In_D1_0, Data_written_D1)
     call Read_data (Address_000000000000, Read_data_D1_0)

     call Write_data_Dx (Address_000000000000, Data_In_D1_1, Data_written_D1)
     call Read_data (Address_000000000000, Read_data_D1_1)

end unit

unit   "awaretest D2 Test"

     call Write_data_Dx (Address_000000000000, Data_In_D2_0, Data_written_D2)
     call Read_data (Address_000000000000, Read_data_D2_0)

     call Write_data_Dx (Address_000000000000, Data_In_D2_1, Data_written_D2)
     call Read_data (Address_000000000000, Read_data_D2_1)

end unit

unit   "awaretest D3 Test"

     call Write_data_Dx (Address_000000000000, Data_In_D3_0, Data_written_D3)
     call Read_data (Address_000000000000, Read_data_D3_0)

     call Write_data_Dx (Address_000000000000, Data_In_D3_1, Data_written_D3)
     call Read_data (Address_000000000000, Read_data_D3_1)

end unit


unit "RAM test"
     call Write_data (Address_000000000000, Data_In_0000)
     call Write_data (Address_000000000001, Data_In_0001)
     call Write_data (Address_000000000011, Data_In_0011)
     call Write_data (Address_000000000111, Data_In_0010)
     call Write_data (Address_000000001111, Data_In_0110)
     call Write_data (Address_000000011111, Data_In_0111)
     call Write_data (Address_000000111111, Data_In_0101)
     call Write_data (Address_000001111111, Data_In_0100)
     call Write_data (Address_000011111111, Data_In_1100)
     call Write_data (Address_000111111111, Data_In_1101)
     call Write_data (Address_001111111111, Data_In_1111)
     call Write_data (Address_011111111111, Data_In_1110)
     call Write_data (Address_111111111111, Data_In_1010)
     call Read_data (Address_000000000000, Read_data_0000)
     call Read_data (Address_000000000001, Read_data_0001)
     call Read_data (Address_000000000011, Read_data_0011)
     call Read_data (Address_000000000111, Read_data_0010)
     call Read_data (Address_000000001111, Read_data_0110)
     call Read_data (Address_000000011111, Read_data_0111)
     call Read_data (Address_000000111111, Read_data_0101)
     call Read_data (Address_000001111111, Read_data_0100)
     call Read_data (Address_000011111111, Read_data_1100)
     call Read_data (Address_000111111111, Read_data_1101)
     call Read_data (Address_001111111111, Read_data_1111)
     call Read_data (Address_011111111111, Read_data_1110)
     call Read_data (Address_111111111111, Read_data_1010)
end unit

unit "Chip_enable_false"
      call  Write_Data (Address_000000000000,Data_In_1111)
      execute  Address_000000000000
      execute  Chip_enable_false
      execute  Data_In_0000
      execute  Data_written
      call  Read_Data (Address_000000000000,Read_Data_1111)
end unit

!    End of test
