!!!!    6    0    1  986576265  V66fa                                         

! Device           : 4047
! 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   19,20
assign    GND                 to pins   10

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

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    Chip_select_bar     to pins   9
assign    Write_enable_bar    to pins   11
assign    Output_enable_bar   to pins   1
assign    Control             to pins   11,9,1

family    TTL

power          VCC, GND

inputs         Address, Chip_select_bar, Write_enable_bar, Output_enable_bar
inputs         Control

bidirectional  Data
bidirectional  Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test.

when     Chip_select_bar   is    "1"   inactive    Data
when     Control           is    "101" inactive    Data

trace   Data  to  Address, Chip_select_bar, Write_enable_bar
trace   Data  to  Control,Output_enable_bar

disable   Data      with Chip_select_bar     to   "1"
disable   Data      with Control             to   "101"

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

vector    Read_enable
     set  Address             to   "kkkkkkkkkk"
     set  Output_enable_bar   to   "0"
     set  Write_enable_bar    to   "1"
     set  Chip_select_bar     to   "0"
end vector

vector    Write_enable
     drive     Data
     set  Address             to   "kkkkkkkkkk"
     set  Chip_select_bar     to   "0"
     set  Write_enable_bar    to   "0"
end vector

vector    Disable
     set  Output_enable_bar   to   "1"
     set  Chip_select_bar     to   "1"
     set  Write_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_0000
     initialize to  Write_enable
     set Data       to   "0000"
end vector

vector    Data_write_0001
     initialize to  Write_enable
     set Data       to   "0001"
end vector

vector    Data_write_0011
     initialize to  Write_enable
     set Data       to   "0011"
end vector

vector    Data_write_0111
     initialize to  Write_enable
     set Data       to   "0111"
end vector

vector    Data_write_1111
     initialize to  Write_enable
     set Data       to   "1111"
end vector

vector    Data_write_1110
     initialize to  Write_enable
     set Data       to   "1110"
end vector

vector    Data_write_1100
     initialize to  Write_enable
     set Data       to   "1100"
end vector

vector    Data_write_1000
     initialize to  Write_enable
     set Data       to   "1000"
end vector

vector    Data_write_1010
     initialize to  Write_enable
     set Data       to   "1010"
end vector

vector    Data_write_0010
     initialize to  Write_enable
     set Data       to   "0010"
end vector

vector    Data_write_0110
     initialize to  Write_enable
     set Data       to   "0110"
end vector

vector    Data_write_0101
     initialize to  Write_enable
     set Data       to   "0101"
end vector

vector    Data_write_1101
     initialize to  Write_enable
     set Data       to   "1101"
end vector

vector    Data_write_1001
     initialize to  Write_enable
     set Data       to   "1001"
end vector

vector    Data_read_0000
     initialize to  Read_enable
     receive   Data
     set Data       to   "0000"
end vector

vector    Data_read_0001
     initialize to  Read_enable
     receive   Data
     set Data       to   "0001"
end vector

vector    Data_read_0011
     initialize to  Read_enable
     receive   Data
     set Data       to   "0011"
end vector

vector    Data_read_0111
     initialize to  Read_enable
     receive   Data
     set Data       to   "0111"
end vector

vector    Data_read_1111
     initialize to  Read_enable
     receive   Data
     set Data       to   "1111"
end vector

vector    Data_read_1110
     initialize to  Read_enable
     receive   Data
     set Data       to   "1110"
end vector

vector    Data_read_1100
     initialize to  Read_enable
     receive   Data
     set Data       to   "1100"
end vector

vector    Data_read_1000
     initialize to  Read_enable
     receive   Data
     set Data       to   "1000"
end vector

vector    Data_read_1010
     initialize to  Read_enable
     receive   Data
     set Data       to   "1010"
end vector

vector    Data_read_0010
     initialize to  Read_enable
     receive   Data
     set Data       to   "0010"
end vector

vector    Data_read_0110
     initialize to  Read_enable
     receive   Data
     set Data       to   "0110"
end vector

vector    Data_read_0101
     initialize to  Read_enable
     receive   Data
     set Data       to   "0101"
end vector

vector    Data_read_1101
     initialize to  Read_enable
     receive   Data
     set Data       to   "1101"
end vector

vector    Data_read_1001
     initialize to  Read_enable
     receive   Data
     set Data       to   "1001"
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
     drive     Data_D0
     set  Address             to   "kkkkkkkkkk"
     set  Chip_select_bar     to   "0"
     set  Write_enable_bar    to   "0"
end vector

vector    WEb_lo_D1
     drive     Data_D1
     set  Address             to   "kkkkkkkkkk"
     set  Chip_select_bar     to   "0"
     set  Write_enable_bar    to   "0"
end vector

vector    WEb_lo_D2
     drive     Data_D2
     set  Address             to   "kkkkkkkkkk"
     set  Chip_select_bar     to   "0"
     set  Write_enable_bar    to   "0"
end vector

vector    WEb_lo_D3
     drive     Data_D3
     set  Address             to   "kkkkkkkkkk"
     set  Chip_select_bar     to   "0"
     set  Write_enable_bar    to   "0"
end vector

vector    Data_write_D0_0
     initialize to  WEb_lo_D0
     set Data_D0              to   "0"
end vector

vector    Data_write_D0_1
     initialize to  WEb_lo_D0
     set Data_D0              to   "1"
end vector

vector    Data_write_D1_0
     initialize to  WEb_lo_D1
     set Data_D1              to   "0"
end vector

vector    Data_write_D1_1
     initialize to  WEb_lo_D1
     set Data_D1              to   "1"
end vector

vector    Data_write_D2_0
     initialize to  WEb_lo_D2
     set Data_D2              to   "0"
end vector

vector    Data_write_D2_1
     initialize to  WEb_lo_D2
     set Data_D2              to   "1"
end vector

vector    Data_write_D3_0
     initialize to  WEb_lo_D3
     set Data_D3              to   "0"
end vector

vector    Data_write_D3_1
     initialize to  WEb_lo_D3
     set Data_D3              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

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

sub  Write_data (Address, Data)
     execute   Address
     execute   Data
     execute   Disable
end sub

sub  Read_data (Address, Data)
     execute   Address
     execute   Data
     execute   Disable
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 (Address_0000000000, Data_write_D0_0)
     call Read_data (Address_0000000000, Data_read_D0_0)

     call Write_data (Address_0000000000, Data_write_D0_1)
     call Read_data (Address_0000000000, Data_read_D0_1)

end unit

unit   "awaretest D1 Test"

     call Write_data (Address_0000000000, Data_write_D1_0)
     call Read_data (Address_0000000000, Data_read_D1_0)

     call Write_data (Address_0000000000, Data_write_D1_1)
     call Read_data (Address_0000000000, Data_read_D1_1)

end unit

unit   "awaretest D2 Test"

     call Write_data (Address_0000000000, Data_write_D2_0)
     call Read_data (Address_0000000000, Data_read_D2_0)

     call Write_data (Address_0000000000, Data_write_D2_1)
     call Read_data (Address_0000000000, Data_read_D2_1)

end unit

unit   "awaretest D3 Test"

     call Write_data (Address_0000000000, Data_write_D3_0)
     call Read_data (Address_0000000000, Data_read_D3_0)

     call Write_data (Address_0000000000, Data_write_D3_1)
     call Read_data (Address_0000000000, Data_read_D3_1)

end unit



unit "RAM test"
     call Write_data (Address_0000000000, Data_write_0000)
     call Write_data (Address_0000000001, Data_write_0001)
     call Write_data (Address_0000000011, Data_write_0011)
     call Write_data (Address_0000000111, Data_write_0111)
     call Write_data (Address_0000001111, Data_write_1111)
     call Write_data (Address_0000011111, Data_write_1110)
     call Write_data (Address_0000111111, Data_write_1100)
     call Write_data (Address_0001111111, Data_write_1000)
     call Write_data (Address_0011111111, Data_write_1010)
     call Write_data (Address_0111111111, Data_write_0010)
     call Write_data (Address_1111111111, Data_write_0110)
     call Read_data (Address_0000000000, Data_read_0000)
     call Read_data (Address_0000000001, Data_read_0001)
     call Read_data (Address_0000000011, Data_read_0011)
     call Read_data (Address_0000000111, Data_read_0111)
     call Read_data (Address_0000001111, Data_read_1111)
     call Read_data (Address_0000011111, Data_read_1110)
     call Read_data (Address_0000111111, Data_read_1100)
     call Read_data (Address_0001111111, Data_read_1000)
     call Read_data (Address_0011111111, Data_read_1010)
     call Read_data (Address_0111111111, Data_read_0010)
     call Read_data (Address_1111111111, Data_read_0110)
     call Write_data (Address_0000000000, Data_write_1111)
     call Write_data (Address_0000000001, Data_write_1110)
     call Write_data (Address_0000000011, Data_write_1100)
     call Write_data (Address_0000000111, Data_write_1000)
     call Write_data (Address_0000001111, Data_write_0000)
     call Write_data (Address_0000011111, Data_write_0001)
     call Write_data (Address_0000111111, Data_write_0011)
     call Write_data (Address_0001111111, Data_write_0111)
     call Write_data (Address_0011111111, Data_write_0101)
     call Write_data (Address_0111111111, Data_write_1101)
     call Write_data (Address_1111111111, Data_write_1001)
     call Read_data (Address_0000000000, Data_read_1111)
     call Read_data (Address_0000000001, Data_read_1110)
     call Read_data (Address_0000000011, Data_read_1100)
     call Read_data (Address_0000000111, Data_read_1000)
     call Read_data (Address_0000001111, Data_read_0000)
     call Read_data (Address_0000011111, Data_read_0001)
     call Read_data (Address_0000111111, Data_read_0011)
     call Read_data (Address_0001111111, Data_read_0111)
     call Read_data (Address_0011111111, Data_read_0101)
     call Read_data (Address_0111111111, Data_read_1101)
     call Read_data (Address_1111111111, Data_read_1001)
end unit

!    End of test
