!!!!    6    0    1  986760460  Va063                                         

! Device           : 4801
! Function         : Static RAM 3-state 1k x 8
! 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."

!         VSS            to pin    12   GND

assign    VCC            to pins   24
assign    GND            to pins   12

assign    Address        to pins   22,23,1,2,3,4,5,6,7,8

assign    Data           to pins   17,16,15,14,13,11,10,9
assign    Data_D0        to pins   9    !AT Added for minimum pin test.
assign    Data_D1        to pins   10   !AT Added for minimum pin test.
assign    Data_D2        to pins   11   !AT Added for minimum pin test.
assign    Data_D3        to pins   13   !AT Added for minimum pin test.
assign    Data_D4        to pins   14   !AT Added for minimum pin test.
assign    Data_D5        to pins   15   !AT Added for minimum pin test.
assign    Data_D6        to pins   16   !AT Added for minimum pin test.
assign    Data_D7        to pins   17   !AT Added for minimum pin test.

assign    Chip_enable_bar       to pins   18
assign    Write_enable_bar      to pins   21
assign    Output_enable_bar     to pins   20
assign    No_Connection         to pins   19    ! Unused pin

family    TTL

power     VCC, GND

inputs    Address, Write_enable_bar, Chip_enable_bar
inputs    Output_enable_bar

bidirectional  Data
bidirectional  Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test.
bidirectional  Data_D4, Data_D5, Data_D6, Data_D7 !AT Added for min. pin test.

nondigital No_connection

when  Output_enable_bar    is    "1"   inactive Data
when  Chip_enable_bar      is    "1"   inactive Data
when  Write_enable_bar     is    "1"   inputs   Data
when  Write_enable_bar     is    "0"   outputs  Data

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

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

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

vector    Disable
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "1"
end vector

vector    Chip_enable_true
     set  Address             to   "kkkkkkkkkk"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "k"
end vector

vector    Write_enable
     set  Address             to   "kkkkkkkkkk"
     set  Write_enable_bar    to   "0"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    Write_enable_true
     set  Address             to   "kkkkkkkkkk"
     set  Write_enable_bar    to   "0"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "0"
end vector

vector    Write_enable_false
     drive  Data
     set  Data                to   "kkkkkkkk"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    Chip_enable_false
     drive  Data
     set  Data                to   "kkkkkkkk"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    Read_enable
     set  Address             to   "kkkkkkkkkk"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
end vector

vector    Read_disable
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "1"
end vector

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

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

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

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

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

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

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

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

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

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

vector    Address_1111111111
     initialize to  Disable
     set  Address   to   "1111111111"
end vector

vector    Data_write_00000000
     initialize to  Write_enable
     drive  Data
     set Data       to   "00000000"
end vector

vector    Data_write_00000001
     initialize to  Write_enable
     drive  Data
     set Data       to   "00000001"
end vector

vector    Data_write_00000011
     initialize to  Write_enable
     drive  Data
     set Data       to   "00000011"
end vector

vector    Data_write_00000111
     initialize to  Write_enable
     drive  Data
     set Data       to   "00000111"
end vector

vector    Data_write_00001111
     initialize to  Write_enable
     drive  Data
     set Data       to   "00001111"
end vector

vector    Data_write_00011111
     initialize to  Write_enable
     drive  Data
     set Data       to   "00011111"
end vector

vector    Data_write_00111111
     initialize to  Write_enable
     drive  Data
     set Data       to   "00111111"
end vector

vector    Data_write_01111111
     initialize to  Write_enable
     drive  Data
     set Data       to   "01111111"
end vector

vector    Data_write_11111111
     initialize to  Write_enable
     drive  Data
     set Data       to   "11111111"
end vector

vector    Data_write_10101010
     initialize to  Write_enable
     drive  Data
     set Data       to   "10101010"
end vector

vector    Data_write_01010101
     initialize to  Write_enable
     drive  Data
     set Data       to   "01010101"
end vector

vector    Data_write_11111111_CE_false
     drive  Data
     set Address           to  "kkkkkkkkkk"
     set Write_enable_bar  to  "0"
     set Chip_enable_bar   to  "k"
     set Output_enable_bar to  "0"
     set Data              to  "11111111"
end vector

vector    Data_read_00000000
     initialize to  Read_enable
     receive  Data
     set Data       to   "00000000"
end vector

vector    Data_read_00000001
     initialize to  Read_enable
     receive  Data
     set Data       to   "00000001"
end vector

vector    Data_read_00000011
     initialize to  Read_enable
     receive  Data
     set Data       to   "00000011"
end vector

vector    Data_read_00000111
     initialize to  Read_enable
     receive  Data
     set Data       to   "00000111"
end vector

vector    Data_read_00001111
     initialize to  Read_enable
     receive  Data
     set Data       to   "00001111"
end vector

vector    Data_read_00011111
     initialize to  Read_enable
     receive  Data
     set Data       to   "00011111"
end vector

vector    Data_read_00111111
     initialize to  Read_enable
     receive  Data
     set Data       to   "00111111"
end vector

vector    Data_read_01111111
     initialize to  Read_enable
     receive  Data
     set Data       to   "01111111"
end vector

vector    Data_read_11111111
     initialize to  Read_enable
     receive  Data
     set Data       to   "11111111"
end vector

vector    Data_read_10101010
     initialize to  Read_enable
     receive  Data
     set Data       to   "10101010"
end vector

vector    Data_read_01010101
     initialize to  Read_enable
     receive  Data
     set Data       to   "01010101"
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    WEb_hi_D0
     drive  Data_D0
     set  Data_D0             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D1
     drive  Data_D1
     set  Data_D1             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D2
     drive  Data_D2
     set  Data_D2             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D3
     drive  Data_D3
     set  Data_D3             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D4
     drive  Data_D4
     set  Data_D4             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D5
     drive  Data_D5
     set  Data_D5             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D6
     drive  Data_D6
     set  Data_D6             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    WEb_hi_D7
     drive  Data_D7
     set  Data_D7             to   "k"
     set  Write_enable_bar    to   "1"
     set  Chip_enable_bar     to   "k"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D0
     drive  Data_D0
     set  Data_D0             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D1
     drive  Data_D1
     set  Data_D1             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D2
     drive  Data_D2
     set  Data_D2             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D3
     drive  Data_D3
     set  Data_D3             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D4
     drive  Data_D4
     set  Data_D4             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D5
     drive  Data_D5
     set  Data_D5             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D6
     drive  Data_D6
     set  Data_D6             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    CEb_hi_D7
     drive  Data_D7
     set  Data_D7             to   "k"
     set  Write_enable_bar    to   "k"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "k"
end vector

vector    Data_write_D0_0
     initialize to  WEb_hi_D0
     drive  Data_D0
     set Data_D0    to   "0"
end vector

vector    Data_write_D0_1
     initialize to  WEb_hi_D0
     drive  Data_D0
     set Data_D0    to   "1"
end vector

vector    Data_write_D1_0
     initialize to  WEb_hi_D1
     drive  Data_D1
     set Data_D1    to   "0"
end vector

vector    Data_write_D1_1
     initialize to  WEb_hi_D1
     drive  Data_D1
     set Data_D1    to   "1"
end vector

vector    Data_write_D2_0
     initialize to  WEb_hi_D2
     drive  Data_D2
     set Data_D2    to   "0"
end vector

vector    Data_write_D2_1
     initialize to  WEb_hi_D2
     drive  Data_D2
     set Data_D2    to   "1"
end vector

vector    Data_write_D3_0
     initialize to  WEb_hi_D3
     drive  Data_D3
     set Data_D3    to   "0"
end vector

vector    Data_write_D3_1
     initialize to  WEb_hi_D3
     drive  Data_D3
     set Data_D3    to   "1"
end vector

vector    Data_write_D4_0
     initialize to  WEb_hi_D4
     drive  Data_D4
     set Data_D4    to   "0"
end vector

vector    Data_write_D4_1
     initialize to  WEb_hi_D4
     drive  Data_D4
     set Data_D4    to   "1"
end vector

vector    Data_write_D5_0
     initialize to  WEb_hi_D5
     drive  Data_D5
     set Data_D5    to   "0"
end vector

vector    Data_write_D5_1
     initialize to  WEb_hi_D5
     drive  Data_D5
     set Data_D5    to   "1"
end vector

vector    Data_write_D6_0
     initialize to  WEb_hi_D6
     drive  Data_D6
     set Data_D6    to   "0"
end vector

vector    Data_write_D6_1
     initialize to  WEb_hi_D6
     drive  Data_D6
     set Data_D6    to   "1"
end vector

vector    Data_write_D7_0
     initialize to  WEb_hi_D7
     drive  Data_D7
     set Data_D7    to   "0"
end vector

vector    Data_write_D7_1
     initialize to  WEb_hi_D7
     drive  Data_D7
     set Data_D7    to   "1"
end vector

vector    Data_read_D0_0
     initialize to  Read_enable
     receive  Data_D0
     set Data_D0    to   "0"
end vector

vector    Data_read_D0_1
     initialize to  Read_enable
     receive  Data_D0
     set Data_D0    to   "1"
end vector

vector    Data_read_D1_0
     initialize to  Read_enable
     receive  Data_D1
     set Data_D1    to   "0"
end vector

vector    Data_read_D1_1
     initialize to  Read_enable
     receive  Data_D1
     set Data_D1    to   "1"
end vector

vector    Data_read_D2_0
     initialize to  Read_enable
     receive  Data_D2
     set Data_D2    to   "0"
end vector

vector    Data_read_D2_1
     initialize to  Read_enable
     receive  Data_D2
     set Data_D2    to   "1"
end vector

vector    Data_read_D3_0
     initialize to  Read_enable
     receive  Data_D3
     set Data_D3    to   "0"
end vector

vector    Data_read_D3_1
     initialize to  Read_enable
     receive  Data_D3
     set Data_D3    to   "1"
end vector

vector    Data_read_D4_0
     initialize to  Read_enable
     receive  Data_D4
     set Data_D4    to   "0"
end vector

vector    Data_read_D4_1
     initialize to  Read_enable
     receive  Data_D4
     set Data_D4    to   "1"
end vector

vector    Data_read_D5_0
     initialize to  Read_enable
     receive  Data_D5
     set Data_D5    to   "0"
end vector

vector    Data_read_D5_1
     initialize to  Read_enable
     receive  Data_D5
     set Data_D5    to   "1"
end vector

vector    Data_read_D6_0
     initialize to  Read_enable
     receive  Data_D6
     set Data_D6    to   "0"
end vector

vector    Data_read_D6_1
     initialize to  Read_enable
     receive  Data_D6
     set Data_D6    to   "1"
end vector

vector    Data_read_D7_0
     initialize to  Read_enable
     receive  Data_D7
     set Data_D7    to   "0"
end vector

vector    Data_read_D7_1
     initialize to  Read_enable
     receive  Data_D7
     set Data_D7    to   "1"
end vector

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

sub  Write_data (Address, Data)
     execute   Address
     execute   Chip_enable_true
     execute   Data
     execute   Chip_enable_false
     execute   Write_enable_false
end sub

sub  Read_data (Address, Data)
     execute   Address
     execute   Data
     execute   Read_disable
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, CEb_hi_Dx, WEb_hi_Dx)
     execute   Address
     execute   Chip_enable_true
     execute   Data_Dx
     execute   CEb_hi_Dx
     execute   WEb_hi_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_write_D0_0, CEb_hi_D0, WEb_hi_D0)
  call Read_data (Address_0000000000, Data_read_D0_0)

  call Write_data_Dx (Address_0000000000, Data_write_D0_1, CEb_hi_D0, WEb_hi_D0)
  call Read_data (Address_0000000000, Data_read_D0_1)

end unit

unit   "awaretest D1 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D1_0, CEb_hi_D1, WEb_hi_D1)
  call Read_data (Address_0000000000, Data_read_D1_0)

  call Write_data_Dx (Address_0000000000, Data_write_D1_1, CEb_hi_D1, WEb_hi_D1)
  call Read_data (Address_0000000000, Data_read_D1_1)

end unit

unit   "awaretest D2 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D2_0, CEb_hi_D2, WEb_hi_D2)
  call Read_data (Address_0000000000, Data_read_D2_0)

  call Write_data_Dx (Address_0000000000, Data_write_D2_1, CEb_hi_D2, WEb_hi_D2)
  call Read_data (Address_0000000000, Data_read_D2_1)

end unit

unit   "awaretest D3 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D3_0, CEb_hi_D3, WEb_hi_D3)
  call Read_data (Address_0000000000, Data_read_D3_0)

  call Write_data_Dx (Address_0000000000, Data_write_D3_1, CEb_hi_D3, WEb_hi_D3)
  call Read_data (Address_0000000000, Data_read_D3_1)

end unit

unit   "awaretest D4 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D4_0, CEb_hi_D4, WEb_hi_D4)
  call Read_data (Address_0000000000, Data_read_D4_0)

  call Write_data_Dx (Address_0000000000, Data_write_D4_1, CEb_hi_D4, WEb_hi_D4)
  call Read_data (Address_0000000000, Data_read_D4_1)

end unit

unit   "awaretest D5 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D5_0, CEb_hi_D5, WEb_hi_D5)
  call Read_data (Address_0000000000, Data_read_D5_0)

  call Write_data_Dx (Address_0000000000, Data_write_D5_1, CEb_hi_D5, WEb_hi_D5)
  call Read_data (Address_0000000000, Data_read_D5_1)

end unit

unit   "awaretest D6 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D6_0, CEb_hi_D6, WEb_hi_D6)
  call Read_data (Address_0000000000, Data_read_D6_0)

  call Write_data_Dx (Address_0000000000, Data_write_D6_1, CEb_hi_D6, WEb_hi_D6)
  call Read_data (Address_0000000000, Data_read_D6_1)

end unit

unit   "awaretest D7 Test"

  call Write_data_Dx (Address_0000000000, Data_write_D7_0, CEb_hi_D7, WEb_hi_D7)
  call Read_data (Address_0000000000, Data_read_D7_0)

  call Write_data_Dx (Address_0000000000, Data_write_D7_1, CEb_hi_D7, WEb_hi_D7)
  call Read_data (Address_0000000000, Data_read_D7_1)

end unit

unit "Test RAM"
     call Write_data (Address_0000000000, Data_write_00000000)
     call Write_data (Address_0000000001, Data_write_00000001)
     call Write_data (Address_0000000011, Data_write_00000011)
     call Write_data (Address_0000000111, Data_write_00000111)
     call Write_data (Address_0000001111, Data_write_00001111)
     call Write_data (Address_0000011111, Data_write_00011111)
     call Write_data (Address_0000111111, Data_write_00111111)
     call Write_data (Address_0001111111, Data_write_01111111)
     call Write_data (Address_0011111111, Data_write_11111111)
     call Write_data (Address_0111111111, Data_write_10101010)
     call Write_data (Address_1111111111, Data_write_01010101)
     call Read_data (Address_0000000000, Data_read_00000000)
     call Read_data (Address_0000000001, Data_read_00000001)
     call Read_data (Address_0000000011, Data_read_00000011)
     call Read_data (Address_0000000111, Data_read_00000111)
     call Read_data (Address_0000001111, Data_read_00001111)
     call Read_data (Address_0000011111, Data_read_00011111)
     call Read_data (Address_0000111111, Data_read_00111111)
     call Read_data (Address_0001111111, Data_read_01111111)
     call Read_data (Address_0011111111, Data_read_11111111)
     call Read_data (Address_0111111111, Data_read_10101010)
     call Read_data (Address_1111111111, Data_read_01010101)
end unit



unit "Test  Chip_enable"
     call Write_data (Address_0000000000, Data_write_00000000)
     execute   Address_0000000000
     execute   Chip_enable_false
     execute   Data_write_11111111_CE_false
     execute   Write_enable_false
     call Read_data (Address_0000000000, Data_read_00000000)
end unit

!    End of test
