!!!!    6    0    1  987108134  Vaeb0                                         

! Device           : 1823c
! Function         : Static RAM 3-state 128 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

assign    VCC            to pins   24                          !  VDD
assign    GND            to pins   12                          !  VSS

assign    Address        to pins   17,18,19,20,21,22,23

assign    Data           to pins   8,7,6,5,4,3,2,1
assign    Data_D0        to pins   1    !AT Added for minimum pin test.
assign    Data_D1        to pins   2    !AT Added for minimum pin test.
assign    Data_D2        to pins   3    !AT Added for minimum pin test.
assign    Data_D3        to pins   4    !AT Added for minimum pin test.
assign    Data_D4        to pins   5    !AT Added for minimum pin test.
assign    Data_D5        to pins   6    !AT Added for minimum pin test.
assign    Data_D6        to pins   7    !AT Added for minimum pin test.
assign    Data_D7        to pins   8    !AT Added for minimum pin test.

assign    Chip_select_1         to pins   9
assign    Chip_select_4         to pins   13
assign    Chip_select_2_bar     to pins   10
assign    Chip_select_3_bar     to pins   11
assign    Chip_select_5_bar     to pins   14
assign    Chip_selects          to pins   9,10,11,13,14    !  CS_1_2_3_4_5

assign    Write_bar             to pins   16
assign    Read_bar              to pins   15

family    TTL

power     VCC, GND

inputs    Address, Write_bar, Read_bar
inputs    Chip_selects, Chip_select_1, Chip_select_4
inputs    Chip_select_2_bar, Chip_select_3_bar
inputs    Chip_select_5_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.

when   Write_bar  is "0"   inputs   Data
when   Read_bar   is "0"   outputs  Data

when   Chip_select_1     is "0"  inactive    Data
when   Chip_select_2_bar is "1"  inactive    Data
when   Chip_select_3_bar is "1"  inactive    Data
when   Chip_select_4     is "0"  inactive    Data
when   Chip_select_5_bar is "1"  inactive    Data

trace Data to  Address, Write_bar, Read_bar
trace Data to  Chip_selects, Chip_select_1, Chip_select_4
trace Data to  Chip_select_2_bar, Chip_select_3_bar
trace Data to  Chip_select_5_bar

disable   Data      with Chip_select_1         to   "0"
disable   Data      with Chip_select_2_bar     to   "1"
disable   Data      with Chip_select_3_bar     to   "1"
disable   Data      with Chip_select_4         to   "0"
disable   Data      with Chip_select_5_bar     to   "1"

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

vector    Disable
     set  Read_bar            to   "1"
     set  Write_bar           to   "1"
     set  Chip_selects        to   "01101"
end vector

vector    Chip_selects_true
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "10010"
end vector

vector    Write_true
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false
     drive Data
     set  Address             to   "kkkkkkk"
     set  Data                to   "kkkkkkkk"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Chip_Select_1_false
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "00010"
end vector

vector    Chip_Select_2_false
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "11010"
end vector

vector    Chip_Select_3_false
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "10110"
end vector

vector    Chip_Select_4_false
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "10000"
end vector

vector    Chip_Select_5_false
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "0"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "10011"
end vector

vector    Read_true
     set  Address             to   "kkkkkkk"
     set  Write_bar           to   "1"
     set  Read_bar            to   "0"
     set  Chip_selects        to   "10010"
end vector

vector    Address_0000000
     initialize to  Disable
     set  Address   to   "0000000"
end vector

vector    Address_0000001
     initialize to  Disable
     set  Address   to   "0000001"
end vector

vector    Address_0000011
     initialize to  Disable
     set  Address   to   "0000011"
end vector

vector    Address_0000111
     initialize to  Disable
     set  Address   to   "0000111"
end vector

vector    Address_0001111
     initialize to  Disable
     set  Address   to   "0001111"
end vector

vector    Address_0011111
     initialize to  Disable
     set  Address   to   "0011111"
end vector

vector    Address_0111111
     initialize to  Disable
     set  Address   to   "0111111"
end vector

vector    Address_1111111
     initialize to  Disable
     set  Address   to   "1111111"
end vector

vector    Address_1111110
     initialize to  Disable
     set  Address   to   "1111110"
end vector

vector    Data_write_00000000_W_false
     drive  Data
     set Address      to   "kkkkkkk"
     set Write_bar    to   "1"
     set Read_bar     to   "1"
     set Chip_selects to   "kkkkk"
     set Data         to   "00000000"
end vector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

vector    Data_read_11111111
     initialize to  Read_true
     receive   Data
     set Data       to   "11111111"
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    Write_false_D0
     drive Data_D0
     set  Address             to   "kkkkkkk"
     set  Data_D0             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D1
     drive Data_D1
     set  Address             to   "kkkkkkk"
     set  Data_D1             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D2
     drive Data_D2
     set  Address             to   "kkkkkkk"
     set  Data_D2             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D3
     drive Data_D3
     set  Address             to   "kkkkkkk"
     set  Data_D3             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D4
     drive Data_D4
     set  Address             to   "kkkkkkk"
     set  Data_D4             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D5
     drive Data_D5
     set  Address             to   "kkkkkkk"
     set  Data_D5             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D6
     drive Data_D6
     set  Address             to   "kkkkkkk"
     set  Data_D6             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

vector    Write_false_D7
     drive Data_D7
     set  Address             to   "kkkkkkk"
     set  Data_D7             to   "k"
     set  Write_bar           to   "1"
     set  Read_bar            to   "1"
     set  Chip_selects        to   "kkkkk"
end vector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub  Write_data (Address, Data)
     execute   Address
     execute   Chip_selects_true
     execute   Write_true
     execute   Data
     execute   Write_false
end sub

sub  Read_data (Address, Data)
     execute   Address
     execute   Read_true
     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, Write_false_Dx)
     execute   Address
     execute   Chip_selects_true
     execute   Write_true
     execute   Data_Dx
     execute   Write_false_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_0000000, Data_write_D0_0, Write_false_D0)
     call Read_data (Address_0000000, Data_read_D0_0)

     call Write_data_Dx (Address_0000000, Data_write_D0_1, Write_false_D0)
     call Read_data (Address_0000000, Data_read_D0_1)

end unit

unit   "awaretest D1 Test"

     call Write_data_Dx (Address_0000000, Data_write_D1_0, Write_false_D1)
     call Read_data (Address_0000000, Data_read_D1_0)

     call Write_data_Dx (Address_0000000, Data_write_D1_1, Write_false_D1)
     call Read_data (Address_0000000, Data_read_D1_1)

end unit

unit   "awaretest D2 Test"

     call Write_data_Dx (Address_0000000, Data_write_D2_0, Write_false_D2)
     call Read_data (Address_0000000, Data_read_D2_0)

     call Write_data_Dx (Address_0000000, Data_write_D2_1, Write_false_D2)
     call Read_data (Address_0000000, Data_read_D2_1)

end unit

unit   "awaretest D3 Test"

     call Write_data_Dx (Address_0000000, Data_write_D3_0, Write_false_D3)
     call Read_data (Address_0000000, Data_read_D3_0)

     call Write_data_Dx (Address_0000000, Data_write_D3_1, Write_false_D3)
     call Read_data (Address_0000000, Data_read_D3_1)

end unit

unit   "awaretest D4 Test"

     call Write_data_Dx (Address_0000000, Data_write_D4_0, Write_false_D4)
     call Read_data (Address_0000000, Data_read_D4_0)

     call Write_data_Dx (Address_0000000, Data_write_D4_1, Write_false_D4)
     call Read_data (Address_0000000, Data_read_D4_1)

end unit

unit   "awaretest D5 Test"

     call Write_data_Dx (Address_0000000, Data_write_D5_0, Write_false_D5)
     call Read_data (Address_0000000, Data_read_D5_0)

     call Write_data_Dx (Address_0000000, Data_write_D5_1, Write_false_D5)
     call Read_data (Address_0000000, Data_read_D5_1)

end unit

unit   "awaretest D6 Test"

     call Write_data_Dx (Address_0000000, Data_write_D6_0, Write_false_D6)
     call Read_data (Address_0000000, Data_read_D6_0)

     call Write_data_Dx (Address_0000000, Data_write_D6_1, Write_false_D6)
     call Read_data (Address_0000000, Data_read_D6_1)

end unit

unit   "awaretest D7 Test"

     call Write_data_Dx (Address_0000000, Data_write_D7_0, Write_false_D7)
     call Read_data (Address_0000000, Data_read_D7_0)

     call Write_data_Dx (Address_0000000, Data_write_D7_1, Write_false_D7)
     call Read_data (Address_0000000, Data_read_D7_1)

end unit

unit "RAM test"
     call Write_data (Address_0000000, Data_write_00000000)
     call Write_data (Address_0000001, Data_write_00000001)
     call Write_data (Address_0000011, Data_write_00000011)
     call Write_data (Address_0000111, Data_write_00000111)
     call Write_data (Address_0001111, Data_write_00001111)
     call Write_data (Address_0011111, Data_write_00011111)
     call Write_data (Address_0111111, Data_write_00111111)
     call Write_data (Address_1111111, Data_write_01111111)
     call Write_data (Address_1111110, Data_write_11111111)
     call Read_data (Address_0000000, Data_read_00000000)
     call Read_data (Address_0000011, Data_read_00000001)
     call Read_data (Address_0000011, Data_read_00000011)
     call Read_data (Address_0000111, Data_read_00000111)
     call Read_data (Address_0001111, Data_read_00001111)
     call Read_data (Address_0011111, Data_read_00011111)
     call Read_data (Address_0111111, Data_read_00111111)
     call Read_data (Address_1111111, Data_read_01111111)
     call Read_data (Address_1111110, Data_read_11111111)
     execute   Disable
end unit

unit "Test Chip_select_1"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_select_1_false
     execute Data_write_00000000
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

unit "Test Chip_select_2"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_select_2_false
     execute Data_write_00000000
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

unit "Test Chip_select_3"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_select_3_false
     execute Data_write_00000000
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

unit "Test Chip_select_4"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_select_4_false
     execute Data_write_00000000
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

unit "Test Chip_select_5"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_select_5_false
     execute Data_write_00000000
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

unit "Test Write_bar"
     call Write_data (Address_0000000, Data_write_11111111)
     execute Address_0000000
     execute Chip_selects_true
     execute Data_write_00000000_W_false
     execute Write_false
     call Read_data (Address_0000000, Data_read_11111111)
end unit

