!!!!    6    0    1  986857782  V8d34                                         

! Device           : nmc4864
! Function         : Static RAM 3-state 8k 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   28
assign    GND            to pins   14

assign    Address        to pins   2,23,21,24,25,3,4,5,6,7,8,9,10
assign    Data           to pins   19,18,17,16,15,13,12,11
assign    Data_D0        to pins   11   !AT Added for minimum pin test.
assign    Data_D1        to pins   12   !AT Added for minimum pin test.
assign    Data_D2        to pins   13   !AT Added for minimum pin test.
assign    Data_D3        to pins   15   !AT Added for minimum pin test.
assign    Data_D4        to pins   16   !AT Added for minimum pin test.
assign    Data_D5        to pins   17   !AT Added for minimum pin test.
assign    Data_D6        to pins   18   !AT Added for minimum pin test.
assign    Data_D7        to pins   19   !AT Added for minimum pin test.

assign    Chip_select_bar       to pins   20
assign    Address_enable_bar    to pins   26
assign    Read_strobe_bar       to pins   22
assign    Write_strobe_bar      to pins   27
assign    Refresh_bar           to pins   1

family    TTL

power     VCC, GND

inputs    Address, Chip_select_bar, Address_enable_bar
inputs    Read_strobe_bar, Write_strobe_bar, Refresh_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  Chip_select_bar   is "1"   inactive    Data
when  Read_strobe_bar   is "0"   outputs     Data
when  Write_strobe_bar  is "1"   inputs      Data

trace  Data  to  Address, Chip_select_bar, Address_enable_bar
trace  Data  to  Read_strobe_bar, Write_strobe_bar, Refresh_bar

disable   Data  with  Chip_select_bar    to   "1"

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

 vector   Read_strobe_bar_high
      set  Read_strobe_bar      to   "1"
 end vector

 vector   Read_strobe_bar_low
      set  Read_strobe_bar      to   "0"
 end vector

 vector   Disable
      set  Write_strobe_bar     to   "1"
      set  Chip_select_bar      to   "1"
      set  Address_enable_bar   to   "1"
      set  Read_strobe_bar      to   "1"
 end vector

 vector   Chip_selected
      set  Address              to   "kkkkkkkkkkkkk"
      set  Write_strobe_bar     to   "k"
      set  Chip_select_bar      to   "0"
      set  Address_enable_bar   to   "k"
      set  Read_strobe_bar      to   "k"
 end vector

 vector   Chip_select_false
      set  Address              to   "kkkkkkkkkkkkk"
      set  Write_strobe_bar     to   "k"
      set  Chip_select_bar      to   "1"
      set  Address_enable_bar   to   "k"
      set  Read_strobe_bar      to   "k"
 end vector

 vector   Address_latched
      set  Address              to   "kkkkkkkkkkkkk"
      set  Write_strobe_bar     to   "k"
      set  Chip_select_bar      to   "k"
      set  Address_enable_bar   to   "0"
      set  Read_strobe_bar      to   "k"
 end vector

 vector   Write_strobe_bar_lo
      set  Write_strobe_bar     to   "0"
      set  Chip_select_bar      to   "k"
      set  Address_enable_bar   to   "k"
      set  Read_strobe_bar      to   "k"
 end vector

 vector   Write_strobe_bar_hi
      set  Write_strobe_bar     to   "1"
      set  Chip_select_bar      to   "k"
      set  Address_enable_bar   to   "k"
      set  Read_strobe_bar      to   "k"
 end vector

 vector   Data_Output
      set  Write_strobe_bar     to   "k"
      set  Chip_select_bar      to   "k"
      set  Address_enable_bar   to   "k"
      set  Read_strobe_bar      to   "0"
 end vector

 vector   Address_0000000000000
      initialize  to     Disable
      set  Address       to  "0000000000000"
 end vector

 vector   Address_0000000000001
      initialize  to     Disable
      set  Address       to  "0000000000001"
 end vector

 vector   Address_0000000000011
      initialize  to     Disable
      set  Address       to  "0000000000011"
 end vector

 vector   Address_0000000000111
      initialize  to     Disable
      set  Address       to  "0000000000111"
 end vector

 vector   Address_0000000001111
      initialize  to     Disable
      set  Address       to  "0000000001111"
 end vector

 vector   Address_0000000011111
      initialize  to     Disable
      set  Address       to  "0000000011111"
 end vector

 vector   Address_0000000111111
      initialize  to     Disable
      set  Address       to  "0000000111111"
 end vector

 vector   Address_0000001111111
      initialize  to     Disable
      set  Address       to  "0000001111111"
 end vector

 vector   Address_0000011111111
      initialize  to     Disable
      set  Address       to  "0000011111111"
 end vector

 vector   Address_0000111111111
      initialize  to     Disable
      set  Address       to  "0000111111111"
 end vector

 vector   Address_0001111111111
      initialize  to     Disable
      set  Address       to  "0001111111111"
 end vector

 vector   Address_0011111111111
      initialize  to     Disable
      set  Address       to  "0011111111111"
 end vector

 vector   Address_0111111111111
      initialize  to     Disable
      set  Address       to  "0111111111111"
 end vector

 vector   Address_1111111111111
      initialize  to     Disable
      set  Address       to  "1111111111111"
 end vector

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

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

 vector   Data_write_00000011
      initialize to  Write_strobe_bar_lo
      drive  Data
      set Data       to   "00000001"
 end vector

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

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

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

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

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

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

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

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

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

 vector   Data_write_11001100
      initialize to  Write_strobe_bar_lo
      drive  Data
      set Data       to   "11001100"
 end vector

 vector   Data_write_00110011
      initialize to  Write_strobe_bar_lo
      drive  Data
      set Data       to   "00110011"
 end vector

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

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

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

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

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

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

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

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

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

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

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

 vector   Data_read_11110000
      initialize to  Data_Output
      receive  Data
      set Data       to   "11110000"
 end vector

 vector   Data_read_11001100
      initialize to  Data_Output
      receive  Data
      set Data       to   "11001100"
 end vector

 vector   Data_read_00110011
      initialize to  Data_Output
      receive  Data
      set Data       to   "00110011"
 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   Data_write_D0_0
      initialize to  Write_strobe_bar_lo
      drive  Data_D0
      set Data_D0    to   "0"
 end vector

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 sub  Write_data (Address, Data)
      execute  Address
      execute  Chip_selected
      execute  Address_latched
      execute  Data
      execute  Write_strobe_bar_hi
 end sub

 sub  Read_data (Address, Data)
      execute  Address
      execute  Chip_selected
      execute  Address_latched
      execute  Data
 end sub

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

unit  "Refresh_cycle"
      repeat    128 times
       execute  Read_strobe_bar_high
       execute  Read_strobe_bar_low
      end repeat
end unit

!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_0000000000000, Data_write_D0_0)
      call Read_data (Address_0000000000000, Data_read_D0_0)

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

end unit

unit   "awaretest D1 Test"

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

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

end unit

unit   "awaretest D2 Test"

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

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

end unit

unit   "awaretest D3 Test"

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

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

end unit

unit   "awaretest D4 Test"

      call Write_data (Address_0000000000000, Data_write_D4_0)
      call Read_data (Address_0000000000000, Data_read_D4_0)

      call Write_data (Address_0000000000000, Data_write_D4_1)
      call Read_data (Address_0000000000000, Data_read_D4_1)

end unit

unit   "awaretest D5 Test"

      call Write_data (Address_0000000000000, Data_write_D5_0)
      call Read_data (Address_0000000000000, Data_read_D5_0)

      call Write_data (Address_0000000000000, Data_write_D5_1)
      call Read_data (Address_0000000000000, Data_read_D5_1)

end unit

unit   "awaretest D6 Test"

      call Write_data (Address_0000000000000, Data_write_D6_0)
      call Read_data (Address_0000000000000, Data_read_D6_0)

      call Write_data (Address_0000000000000, Data_write_D6_1)
      call Read_data (Address_0000000000000, Data_read_D6_1)

end unit

unit   "awaretest D7 Test"

      call Write_data (Address_0000000000000, Data_write_D7_0)
      call Read_data (Address_0000000000000, Data_read_D7_0)

      call Write_data (Address_0000000000000, Data_write_D7_1)
      call Read_data (Address_0000000000000, Data_read_D7_1)

end unit

 unit "RAM test"
      call Write_data (Address_0000000000000, Data_write_00000000)
      call Write_data (Address_0000000000001, Data_write_00000001)
      call Write_data (Address_0000000000011, Data_write_00000011)
      call Write_data (Address_0000000000111, Data_write_00000111)
      call Write_data (Address_0000000001111, Data_write_00001111)
      call Write_data (Address_0000000011111, Data_write_00011111)
      call Write_data (Address_0000000111111, Data_write_00111111)
      call Write_data (Address_0000001111111, Data_write_01111111)
      call Write_data (Address_0000011111111, Data_write_11111111)
      call Write_data (Address_0000111111111, Data_write_10101010)
      call Write_data (Address_0001111111111, Data_write_01010101)
      call Write_data (Address_0011111111111, Data_write_11110000)
      call Write_data (Address_0111111111111, Data_write_11001100)
      call Write_data (Address_1111111111111, Data_write_00110011)
      call Read_data (Address_0000000000000, Data_read_00000000)
      call Read_data (Address_0000000000001, Data_read_00000001)
      call Read_data (Address_0000000000011, Data_read_00000011)
      call Read_data (Address_0000000000111, Data_read_00000111)
      call Read_data (Address_0000000001111, Data_read_00001111)
      call Read_data (Address_0000000011111, Data_read_00011111)
      call Read_data (Address_0000000111111, Data_read_00111111)
      call Read_data (Address_0000001111111, Data_read_01111111)
      call Read_data (Address_0000011111111, Data_read_11111111)
      call Read_data (Address_0000111111111, Data_read_10101010)
      call Read_data (Address_0001111111111, Data_read_01010101)
      call Read_data (Address_0011111111111, Data_read_11110000)
      call Read_data (Address_0111111111111, Data_read_11001100)
      call Read_data (Address_1111111111111, Data_read_00110011)
 end unit

 unit "Test Chip_select_false"
      call Write_data (Address_0000000000000, Data_write_00000000)
      execute Address_0000000000000
      execute Chip_select_false
      execute Address_latched
      execute Data_write_11111111
      call Read_data (Address_0000000000000, Data_read_00000000)
 end unit

 !    End of test
