!!!!    6    0    1  986756931  V9009                                         

! Device           : 74c910
! Function         : Static RAM 3-state 64 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

vector cycle 1000n
receive delay 900n

assign    VCC            to pins   18
assign    GND            to pins   9

assign    Address        to pins   7,8,10,11,5,6

assign    Data_in        to pins   15,16,2,3
assign    Data_out       to pins   14,17,1,4

assign    Data_in_D0  to pins 3    !AT Added for minimum pin test.
assign    Data_in_D1  to pins 2    !AT Added for minimum pin test.
assign    Data_in_D2  to pins 16   !AT Added for minimum pin test.
assign    Data_in_D3  to pins 15   !AT Added for minimum pin test.

assign    Data_out_D0 to pins 4    !AT Added for minimum pin test.
assign    Data_out_D1 to pins 1    !AT Added for minimum pin test.
assign    Data_out_D2 to pins 17   !AT Added for minimum pin test.
assign    Data_out_D3 to pins 14   !AT Added for minimum pin test.

assign    Write_enable_bar      to pins   13
assign    Memory_enable_bar     to pins   12
assign    Output_disable        to pins   13,12

family    TTL

power     VCC, GND

inputs    Address, Data_in, Write_enable_bar, Memory_enable_bar
inputs Data_in_D0, Data_in_D1, Data_in_D2, Data_in_D3      !AT Added for min pin test.

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

when     Memory_enable_bar    is    "1"   inactive Data_out
when     Write_enable_bar     is    "0"   inactive Data_out

trace    Data_out to  Address,Data_in,Write_enable_bar,Memory_enable_bar

disable   Data_out  with  Output_disable    to   "00"
disable   Data_out  with  Output_disable    to   "01"
disable   Data_out  with  Output_disable    to   "11"

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

vector   Disable
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "1"
end vector

vector   Address_hold
     set  Address             to   "kkkkkk"
     set  Write_enable_bar    to   "k"
     set  Memory_enable_bar   to   "0"
end vector

vector   Write_enable_true
     set  Address             to   "kkkkkk"
     set  Data_in             to   "kkkk"
     set  Write_enable_bar    to   "0"
     set  Memory_enable_bar   to   "k"
end vector

vector   Write_enable_false
     set  Address             to   "kkkkkk"
     set  Data_in             to   "kkkk"
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "k"
end vector

vector   Address_000000
     initialize to  Disable
     set  Address   to   "000000"
end vector

vector   Address_000001
     initialize to  Disable
     set  Address   to   "000001"
end vector

vector   Address_000011
     initialize to  Disable
     set  Address   to   "000011"
end vector

vector   Address_000111
     initialize to  Disable
     set  Address   to   "000111"
end vector

vector   Address_001111
     initialize to  Disable
     set  Address   to   "001111"
end vector

vector   Address_011111
     initialize to  Disable
     set  Address   to   "011111"
end vector

vector   Address_111111
     initialize to  Disable
     set  Address   to   "111111"
end vector

vector  Data_write_0000
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "0000"
end vector

vector  Data_write_0001
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "0001"
end vector

vector  Data_write_0011
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "0011"
end vector

vector  Data_write_0111
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "0111"
end vector

vector  Data_write_1111
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "1111"
end vector

vector  Data_write_1010
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "1010"
end vector

vector  Data_write_0101
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in            to  "0101"
end vector

vector  Data_read_0000
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "0000"
end vector

vector  Data_read_0001
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "0001"
end vector

vector  Data_read_0011
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "0011"
end vector

vector  Data_read_0111
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "0111"
end vector

vector  Data_read_1111
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "1111"
end vector

vector  Data_read_1010
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "1010"
end vector

vector  Data_read_0101
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out           to  "0101"
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_lo_D0
     set  Address             to   "kkkkkk"
     set  Data_in_D0          to   "k"
     set  Write_enable_bar    to   "0"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_lo_D1
     set  Address             to   "kkkkkk"
     set  Data_in_D1          to   "k"
     set  Write_enable_bar    to   "0"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_lo_D2
     set  Address             to   "kkkkkk"
     set  Data_in_D2          to   "k"
     set  Write_enable_bar    to   "0"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_lo_D3
     set  Address             to   "kkkkkk"
     set  Data_in_D3          to   "k"
     set  Write_enable_bar    to   "0"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_hi_D0
     set  Address             to   "kkkkkk"
     set  Data_in_D0          to   "k"
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_hi_D1
     set  Address             to   "kkkkkk"
     set  Data_in_D1          to   "k"
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_hi_D2
     set  Address             to   "kkkkkk"
     set  Data_in_D2          to   "k"
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "k"
end vector

vector   WEb_hi_D3
     set  Address             to   "kkkkkk"
     set  Data_in_D3          to   "k"
     set  Write_enable_bar    to   "1"
     set  Memory_enable_bar   to   "k"
end vector

vector  Data_write_D0_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D0         to  "0"
end vector

vector  Data_write_D0_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D0         to  "1"
end vector

vector  Data_write_D1_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D1         to  "0"
end vector

vector  Data_write_D1_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D1         to  "1"
end vector

vector  Data_write_D2_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D2         to  "0"
end vector

vector  Data_write_D2_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D2         to  "1"
end vector

vector  Data_write_D3_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D3         to  "0"
end vector

vector  Data_write_D3_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_in_D3         to  "1"
end vector

vector  Data_read_D0_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D0        to  "0"
end vector

vector  Data_read_D0_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D0        to  "1"
end vector

vector  Data_read_D1_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D1        to  "0"
end vector

vector  Data_read_D1_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D1        to  "1"
end vector

vector  Data_read_D2_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D2        to  "0"
end vector

vector  Data_read_D2_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D2        to  "1"
end vector

vector  Data_read_D3_0
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D3        to  "0"
end vector

vector  Data_read_D3_1
     set Address            to  "kkkkkk"
     set Write_enable_bar   to  "k"
     set Memory_enable_bar  to  "k"
     set Data_out_D3        to  "1"
end vector


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

sub  Write_data (Address, Data)
     execute   Address
     execute   Address_hold
     execute   Data
     execute   Write_enable_true
     execute   Write_enable_false
end sub

sub  Read_data (Address, Data)
     execute   Address
     execute   Address_hold
     execute   Data
     execute   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, WEb_lo_Dx, WEb_hi_Dx)
     execute   Address
     execute   Address_hold
     execute   Data_Dx
     execute   WEb_lo_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_000000, Data_write_D0_0, WEb_lo_D0, WEb_hi_D0)
     call Read_data (Address_000000, Data_read_D0_0)

     call Write_data_Dx (Address_000000, Data_write_D0_1, WEb_lo_D0, WEb_hi_D0)
     call Read_data (Address_000000, Data_read_D0_1)

end unit

unit   "awaretest D1 Test"

     call Write_data_Dx (Address_000000, Data_write_D1_0, WEb_lo_D1, WEb_hi_D1)
     call Read_data (Address_000000, Data_read_D1_0)

     call Write_data_Dx (Address_000000, Data_write_D1_1, WEb_lo_D1, WEb_hi_D1)
     call Read_data (Address_000000, Data_read_D1_1)

end unit

unit   "awaretest D2 Test"

     call Write_data_Dx (Address_000000, Data_write_D2_0, WEb_lo_D2, WEb_hi_D2)
     call Read_data (Address_000000, Data_read_D2_0)

     call Write_data_Dx (Address_000000, Data_write_D2_1, WEb_lo_D2, WEb_hi_D2)
     call Read_data (Address_000000, Data_read_D2_1)

end unit

unit   "awaretest D3 Test"

     call Write_data_Dx (Address_000000, Data_write_D3_0, WEb_lo_D3, WEb_hi_D3)
     call Read_data (Address_000000, Data_read_D3_0)

     call Write_data_Dx (Address_000000, Data_write_D3_1, WEb_lo_D3, WEb_hi_D3)
     call Read_data (Address_000000, Data_read_D3_1)

end unit

unit "RAM test"
     call Write_data (Address_000000, Data_write_0000)
     call Write_data (Address_000001, Data_write_0001)
     call Write_data (Address_000011, Data_write_0011)
     call Write_data (Address_000111, Data_write_0111)
     call Write_data (Address_001111, Data_write_1111)
     call Write_data (Address_011111, Data_write_1010)
     call Write_data (Address_111111, Data_write_0101)
     call Read_data (Address_000000, Data_read_0000)
     call Read_data (Address_000001, Data_read_0001)
     call Read_data (Address_000011, Data_read_0011)
     call Read_data (Address_000111, Data_read_0111)
     call Read_data (Address_001111, Data_read_1111)
     call Read_data (Address_011111, Data_read_1010)
     call Read_data (Address_111111, Data_read_0101)
     call Write_data (Address_000000, Data_write_1111)
     call Read_data (Address_000000, Data_read_1111)
end unit

!    End of test
