!!!!    6    0    1  986772545  V2959                                         

! Device           : 8128
! Function         : Static RAM 3-state 2k x 8
! revision         : B.01.00
! safeguard        : low_out_mos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

vector cycle  1.0u
receive delay 900n

!warning "Pull-ups are required to test high-impedance outputs."

assign    VCC            to pins   24
assign    GND            to pins   12

assign    Address        to pins   19,22,23,1,2,3,4,5
assign    Address        to pins   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    CEbar          to pins   18
assign    WEbar          to pins   21
assign    OEbar          to pins   20

family    TTL

power          VCC, GND

inputs         Address, CEbar,WEbar,OEbar

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.

set load on groups Data      to pull up

disable   Data      with CEbar      to "1"
disable   Data      with OEbar      to "1"

when OEbar is "1" inactive Data
when CEbar is "1" inactive Data
when WEbar is "1" outputs Data
when WEbar is "0" inputs Data

trace Data to Address, CEbar,WEbar,OEbar
!***************************************************************
!***************************************************************

vector   Setup
   drive Data
   set   Data           to "00000000"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Hold_ctrl
   set   CEbar          to "k"
   set   OEbar          to "k"
   set   WEbar          to "k"
end   vector

vector   CEbar_false
   set   CEbar          to "1"
   set   OEbar          to "0"
   set   WEbar          to "1"
end   vector

vector   OEbar_false
   set   CEbar          to "0"
   set   OEbar          to "1"
   set   WEbar          to "1"
end   vector

vector    Hold_ctrl_Read
   set  Address       to   "kkkkkkkkkkk"
   set  CEbar         to   "k"
   set  WEbar         to   "k"
   set  OEbar         to   "k"
end vector

vector    Hold_ctrl_Write
   set  Address       to   "kkkkkkkkkkk"
   set  CEbar         to   "k"
   set  WEbar         to   "k"
   set  OEbar         to   "k"
end vector

vector   Read_enable
   set   Address     to    "kkkkkkkkkkk"
   set   CEbar       to    "k"
   set   WEbar       to    "1"
   set   OEbar       to    "k"
end   vector

vector   Write_enable
   set   Address     to    "kkkkkkkkkkk"
   set   CEbar       to    "k"
   set   WEbar       to    "0"
   set   OEbar       to    "k"
end   vector

vector    Address_00000000000
   initialize     to   Hold_ctrl
   set  Address   to   "00000000000"
end vector

vector    Address_00000000001
   initialize     to   Hold_ctrl
   set  Address   to   "00000000001"
end vector

vector    Address_00000000011
   initialize     to   Hold_ctrl
   set  Address   to   "00000000011"
end vector

vector    Address_00000000111
   initialize     to   Hold_ctrl
   set  Address   to   "00000000111"
end vector

vector    Address_00000001111
   initialize     to   Hold_ctrl
   set  Address   to   "00000001111"
end vector

vector    Address_00000011111
   initialize     to   Hold_ctrl
   set  Address   to   "00000011111"
end vector

vector    Address_00000111111
   initialize     to   Hold_ctrl
   set  Address   to   "00000111111"
end vector

vector    Address_00001111111
   initialize     to   Hold_ctrl
   set  Address   to   "00001111111"
end vector

vector    Address_00011111111
   initialize     to   Hold_ctrl
   set  Address   to   "00011111111"
end vector

vector    Address_00111111111
   initialize     to   Hold_ctrl
   set  Address   to   "00111111111"
end vector

vector    Address_01111111111
   initialize     to   Hold_ctrl
   set  Address   to   "01111111111"
end vector

vector    Address_11111111111
   initialize     to   Hold_ctrl
   set  Address   to   "11111111111"
end vector

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

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

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

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

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

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

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

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

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

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

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

vector    Data_write_11110000
   initialize to  Hold_ctrl_Write
   drive    Data
   set Data to   "11110000"
end vector

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

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

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

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

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

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

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

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

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

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

vector    Data_read_01010101
   initialize to  Hold_ctrl_Read
   receive Data
   set Data to   "01010101"
end vector

vector    Data_read_11110000
   initialize to  Hold_ctrl_Read
   receive Data
   set Data to   "11110000"
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   Setup_D0
   drive Data_D0
   set   Data_D0        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D1
   drive Data_D1
   set   Data_D1        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D2
   drive Data_D2
   set   Data_D2        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D3
   drive Data_D3
   set   Data_D3        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D4
   drive Data_D4
   set   Data_D4        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D5
   drive Data_D5
   set   Data_D5        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D6
   drive Data_D6
   set   Data_D6        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

vector   Setup_D7
   drive Data_D7
   set   Data_D7        to "0"
   set   CEbar          to "0"
   set   OEbar          to "0"
   set   WEbar          to "1"
end vector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

sub  Read_data (Address, Data)
   execute   Address
   execute   Read_enable
   execute   Data
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"

   execute  Setup_D0
   call Write_data (Address_00000000000, Data_write_D0_0)
   execute  Setup_D0
   call Read_data (Address_00000000000, Data_read_D0_0)

   execute  Setup_D0
   call Write_data (Address_00000000000, Data_write_D0_1)
   execute  Setup_D0
   call Read_data (Address_00000000000, Data_read_D0_1)

end unit

unit   "awaretest D1 Test"

   execute  Setup_D1
   call Write_data (Address_00000000000, Data_write_D1_0)
   execute  Setup_D1
   call Read_data (Address_00000000000, Data_read_D1_0)

   execute  Setup_D1
   call Write_data (Address_00000000000, Data_write_D1_1)
   execute  Setup_D1
   call Read_data (Address_00000000000, Data_read_D1_1)

end unit

unit   "awaretest D2 Test"

   execute  Setup_D2
   call Write_data (Address_00000000000, Data_write_D2_0)
   execute  Setup_D2
   call Read_data (Address_00000000000, Data_read_D2_0)

   execute  Setup_D2
   call Write_data (Address_00000000000, Data_write_D2_1)
   execute  Setup_D2
   call Read_data (Address_00000000000, Data_read_D2_1)

end unit

unit   "awaretest D3 Test"

   execute  Setup_D3
   call Write_data (Address_00000000000, Data_write_D3_0)
   execute  Setup_D3
   call Read_data (Address_00000000000, Data_read_D3_0)

   execute  Setup_D3
   call Write_data (Address_00000000000, Data_write_D3_1)
   execute  Setup_D3
   call Read_data (Address_00000000000, Data_read_D3_1)

end unit

unit   "awaretest D4 Test"

   execute  Setup_D4
   call Write_data (Address_00000000000, Data_write_D4_0)
   execute  Setup_D4
   call Read_data (Address_00000000000, Data_read_D4_0)

   execute  Setup_D4
   call Write_data (Address_00000000000, Data_write_D4_1)
   execute  Setup_D4
   call Read_data (Address_00000000000, Data_read_D4_1)

end unit

unit   "awaretest D5 Test"

   execute  Setup_D5
   call Write_data (Address_00000000000, Data_write_D5_0)
   execute  Setup_D5
   call Read_data (Address_00000000000, Data_read_D5_0)

   execute  Setup_D5
   call Write_data (Address_00000000000, Data_write_D5_1)
   execute  Setup_D5
   call Read_data (Address_00000000000, Data_read_D5_1)

end unit

unit   "awaretest D6 Test"

   execute  Setup_D6
   call Write_data (Address_00000000000, Data_write_D6_0)
   execute  Setup_D6
   call Read_data (Address_00000000000, Data_read_D6_0)

   execute  Setup_D6
   call Write_data (Address_00000000000, Data_write_D6_1)
   execute  Setup_D6
   call Read_data (Address_00000000000, Data_read_D6_1)

end unit

unit   "awaretest D7 Test"

   execute  Setup_D7
   call Write_data (Address_00000000000, Data_write_D7_0)
   execute  Setup_D7
   call Read_data (Address_00000000000, Data_read_D7_0)

   execute  Setup_D7
   call Write_data (Address_00000000000, Data_write_D7_1)
   execute  Setup_D7
   call Read_data (Address_00000000000, Data_read_D7_1)

end unit

unit "RAM test"
   execute  Setup
   call Write_data (Address_00000000000, Data_write_00000000)
   call Write_data (Address_00000000001, Data_write_00000001)
   call Write_data (Address_00000000011, Data_write_00000011)
   call Write_data (Address_00000000111, Data_write_00000111)
   call Write_data (Address_00000001111, Data_write_00001111)
   call Write_data (Address_00000011111, Data_write_00011111)
   call Write_data (Address_00000111111, Data_write_00111111)
   call Write_data (Address_00001111111, Data_write_01111111)
   call Write_data (Address_00011111111, Data_write_11111111)
   call Write_data (Address_00111111111, Data_write_01010101)
   call Write_data (Address_01111111111, Data_write_10101010)
   call Write_data (Address_11111111111, Data_write_11110000)

   execute  Setup

   call Read_data (Address_00000000000, Data_read_00000000)
   call Read_data (Address_00000000001, Data_read_00000001)
   call Read_data (Address_00000000011, Data_read_00000011)
   call Read_data (Address_00000000111, Data_read_00000111)
   call Read_data (Address_00000001111, Data_read_00001111)
   call Read_data (Address_00000011111, Data_read_00011111)
   call Read_data (Address_00000111111, Data_read_00111111)
   call Read_data (Address_00001111111, Data_read_01111111)
   call Read_data (Address_00011111111, Data_read_11111111)
   call Read_data (Address_00111111111, Data_read_01010101)
   call Read_data (Address_01111111111, Data_read_10101010)
   call Read_data (Address_11111111111, Data_read_11110000)
end unit

unit "test chip enable"
   execute  Setup
   call     Write_data (Address_00000001111,Data_write_01010101)
   execute  CEbar_false
   execute  Address_00000001111
   execute  Read_enable

!     If pull_ups added, uncomment this line
!  execute  Data_read_11111111

!     Else, if pull-downs, uncomment this line
!  execute  Data_read_00000000
end   unit

unit "test outputs enable"
   execute  Setup
   call     Write_data (Address_00000001111,Data_write_01010101)
   execute  OEbar_false
   execute  Address_00000001111
   execute  Read_enable
   execute  Data_read_11111111
end   unit




!    End of test




