!!!!    6    0    1  986505287  Vb59f                                         

! Device           : 6533
! Function         : Static RAM 3-state 1k 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   22
assign    GND            to pins   11

assign    Address        to pins   4,3,2,1,16,17,18,19,20,21

assign    Data           to pins   8,7,6,5
assign    Data_D0        to pins   5    !AT Added for minimum pin test.
assign    Data_D1        to pins   6    !AT Added for minimum pin test.
assign    Data_D2        to pins   7    !AT Added for minimum pin test.
assign    Data_D3        to pins   8    !AT Added for minimum pin test.

assign    Write_enable_bar      to pins   15
assign    Chip_select_bar       to pins   14
assign    Chip_enable_bar       to pins   12
assign    Output_enable         to pins   13
assign    Output_enable_bar     to pins   9
assign    Memory_status         to pins   10

family    TTL

power     VCC, GND

inputs    Address, Write_enable_bar, Chip_select_bar
inputs    Chip_enable_bar, Output_enable, Output_enable_bar

outputs   Memory_status

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  Output_enable     is "0"   inactive Data
when  Output_enable_bar is "1"   inactive Data
when  Chip_select_bar   is "1"   inactive Data
when  Chip_enable_bar   is "1"   inactive Data

trace    Data  to  Address, Write_enable_bar, Chip_select_bar
trace    Data  to  Chip_enable_bar, Output_enable, Output_enable_bar

disable   Data   with Output_enable         to   "0"
disable   Data   with Output_enable_bar     to   "1"

set load on groups Data to pull up
!***************************************************************
!***************************************************************

vector   Memory_disabled
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "1"
     set  Output_enable       to  "1"
     set  Output_enable_bar   to  "1"
     set  Write_enable_bar    to  "1"
end vector

vector   Chip_enabled
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "0"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Chip_enable_false
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Write_enabled
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "0"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "0"
end vector

vector   Data_written
          drive  Data
     set  Data                to  "kkkk"
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "1"
end vector

vector   Write_completed
          drive  Data
     set  Data                to  "kkkk"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Output_enabled
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "0"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "0"
     set  Write_enable_bar    to  "k"
end vector

vector   Output_valid
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "0"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "0"
     set  Write_enable_bar    to  "k"
end vector

vector   Data_In_0000_CS_false
          drive  Data
     set  Data                to  "0000"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "1"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "0"
end vector

vector   Address_0000000000
     initialize to Memory_disabled
     set  Address     to "0000000000"
end vector

vector   Address_0000000001
     initialize to Memory_disabled
     set  Address     to "0000000001"
end vector

vector   Address_0000000011
     initialize to Memory_disabled
     set  Address     to "0000000011"
end vector

vector   Address_0000000111
     initialize to Memory_disabled
     set  Address     to "0000000111"
end vector

vector   Address_0000001111
     initialize to Memory_disabled
     set  Address     to "0000001111"
end vector

vector   Address_0000011111
     initialize to Memory_disabled
     set  Address     to "0000011111"
end vector

vector   Address_0000111111
     initialize to Memory_disabled
     set  Address     to "0000111111"
end vector

vector   Address_0001111111
     initialize to Memory_disabled
     set  Address     to "0001111111"
end vector

vector   Address_0011111111
     initialize to Memory_disabled
     set  Address     to "0011111111"
end vector

vector   Address_0111111111
     initialize to Memory_disabled
     set  Address     to "0111111111"
end vector

vector   Address_1111111111
     initialize to Memory_disabled
     set  Address     to "1111111111"
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_0111
     initialize to Write_enabled
          drive  Data
     set  Data            to "0111"
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_1100
     initialize to Write_enabled
          drive  Data
     set  Data            to "1100"
end vector

vector   Data_In_1000
     initialize to Write_enabled
          drive  Data
     set  Data            to "1000"
end vector

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

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

vector   Data_In_0010
     initialize to Write_enabled
          drive  Data
     set  Data            to "0010"
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_0111
     initialize to Output_valid
          receive  Data
     set  Data            to "0111"
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_1100
     initialize to Output_valid
          receive  Data
     set  Data            to "1100"
end vector

vector   Read_Data_1000
     initialize to Output_valid
          receive  Data
     set  Data            to "1000"
end vector

vector   Read_Data_1010
     initialize to Output_valid
          receive  Data
     set  Data            to "1010"
end vector

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

vector   Read_Data_0010
     initialize to Output_valid
          receive  Data
     set  Data            to "0010"
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_w_D0
          drive  Data_D0
     set  Data_D0             to  "k"
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_w_D1
          drive  Data_D1
     set  Data_D1             to  "k"
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_w_D2
          drive  Data_D2
     set  Data_D2             to  "k"
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "1"
end vector

vector   Data_w_D3
          drive  Data_D3
     set  Data_D3             to  "k"
     set  Address             to  "kkkkkkkkkk"
     set  Chip_enable_bar     to  "k"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "1"
end vector

vector   Write_c_D0
          drive  Data_D0
     set  Data_D0             to  "k"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Write_c_D1
          drive  Data_D1
     set  Data_D1             to  "k"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Write_c_D2
          drive  Data_D2
     set  Data_D2             to  "k"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
end vector

vector   Write_c_D3
          drive  Data_D3
     set  Data_D3             to  "k"
     set  Chip_enable_bar     to  "1"
     set  Chip_select_bar     to  "k"
     set  Output_enable       to  "k"
     set  Output_enable_bar   to  "k"
     set  Write_enable_bar    to  "k"
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
      execute     Write_completed
end sub

sub  Read_Data (Address,Data)
      execute     Address
      execute     Chip_enabled
      execute     Output_enabled
      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_w_Dx, Write_c_Dx)
      execute     Address
      execute     Chip_enabled
      execute     Data_Dx
      execute     Data_w_Dx
      execute     Write_c_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_0000000000, Data_In_D0_0, Data_w_D0, Write_c_D0)
    call Read_data (Address_0000000000, Read_data_D0_0)

    call Write_data_Dx (Address_0000000000, Data_In_D0_1, Data_w_D0, Write_c_D0)
    call Read_data (Address_0000000000, Read_data_D0_1)

end unit

unit   "awaretest D1 Test"

    call Write_data_Dx (Address_0000000000, Data_In_D1_0, Data_w_D1, Write_c_D1)
    call Read_data (Address_0000000000, Read_data_D1_0)

    call Write_data_Dx (Address_0000000000, Data_In_D1_1, Data_w_D1, Write_c_D1)
    call Read_data (Address_0000000000, Read_data_D1_1)

end unit

unit   "awaretest D2 Test"

    call Write_data_Dx (Address_0000000000, Data_In_D2_0, Data_w_D2, Write_c_D2)
    call Read_data (Address_0000000000, Read_data_D2_0)

    call Write_data_Dx (Address_0000000000, Data_In_D2_1, Data_w_D2, Write_c_D2)
    call Read_data (Address_0000000000, Read_data_D2_1)

end unit

unit   "awaretest D3 Test"

    call Write_data_Dx (Address_0000000000, Data_In_D3_0, Data_w_D3, Write_c_D3)
    call Read_data (Address_0000000000, Read_data_D3_0)

    call Write_data_Dx (Address_0000000000, Data_In_D3_1, Data_w_D3, Write_c_D3)
    call Read_data (Address_0000000000, Read_data_D3_1)

end unit

unit "RAM test"
     call Write_data (Address_0000000000, Data_In_0000)
     call Write_data (Address_0000000001, Data_In_0001)
     call Write_data (Address_0000000011, Data_In_0011)
     call Write_data (Address_0000000111, Data_In_0111)
     call Write_data (Address_0000001111, Data_In_1111)
     call Write_data (Address_0000011111, Data_In_1110)
     call Write_data (Address_0000111111, Data_In_1100)
     call Write_data (Address_0001111111, Data_In_1000)
     call Write_data (Address_0011111111, Data_In_1010)
     call Write_data (Address_0111111111, Data_In_0101)
     call Write_data (Address_1111111111, Data_In_0010)
     call Read_data (Address_0000000000, Read_data_0000)
     call Read_data (Address_0000000001, Read_data_0001)
     call Read_data (Address_0000000011, Read_data_0011)
     call Read_data (Address_0000000111, Read_data_0111)
     call Read_data (Address_0000001111, Read_data_1111)
     call Read_data (Address_0000011111, Read_data_1110)
     call Read_data (Address_0000111111, Read_data_1100)
     call Read_data (Address_0001111111, Read_data_1000)
     call Read_data (Address_0011111111, Read_data_1010)
     call Read_data (Address_0111111111, Read_data_0101)
     call Read_data (Address_1111111111, Read_data_0010)
end unit


unit "Chip_select_false"
      call  Write_Data (Address_0000000000,Data_In_1111)
      execute  Address_0000000000
      execute  Chip_enabled
      execute  Data_In_0000_CS_false
      execute  Data_written
      execute  Write_Completed
      call  Read_Data (Address_0000000000,Read_Data_1111)
end unit

unit "Chip_enabled_false"
      call  Write_Data (Address_0000000000,Data_In_1111)
      execute  Address_0000000000
      execute  Chip_enable_false
      execute  Data_In_0000
      execute  Data_written
      execute  Write_Completed
      call  Read_Data (Address_0000000000,Read_Data_1111)
end unit

!    End of test
