!!!!    6    0    1  990117970  V3d5f                                         

! Device           : am92128
! Function         : PROM 16k 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

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

!Note CS_CSbar_NC is programmable, therefore may have to be changed from
!     the assumed, which is a high to select the chip.

vector cycle 600n
receive delay 500n

assign    VCC       to pins   28
assign    GND       to pins   14

assign    Address   to pins   26,2,23,21,24,25
assign    Address   to pins   3,4,5,6,7,8,9,10

assign    Output    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_enable_bar     to pins   20
assign    Output_enable_bar   to pins   22
assign    CS_CSbar_NC         to pins   27
assign    NC                  to pins   1

family    TTL

power     VCC, GND

inputs    Address, Chip_enable_bar, Output_enable_bar, CS_CSbar_NC

outputs   Output
outputs   Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for minimum pin test.
outputs   Data_D4, Data_D5, Data_D6, Data_D7 !AT Added for minimum pin test.

nondigital  NC

disable   Output    with Chip_enable_bar     to   "1"
disable   Output    with Output_enable_bar   to   "1"

when Chip_enable_bar is "1" inactive Output
when Output_enable_bar is "1" inactive Output

trace Output to Address, Chip_enable_bar, Output_enable_bar, CS_CSbar_NC

set load on groups  Output  to pull up

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

vector  Address_counter
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Output              to   "00000000"
     upcounter         Address
end vector

vector  Address_counter_2
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "11111111111111"
     set  Output              to   "00000000"
     downcounter         Address
end vector

vector  Read_deselected
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "1"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Output              to   "11111111"
end vector

vector  Read_disabled
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "1"
     set  Address             to   "00000000000000"
     set  Output              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  Address_Counter_D0
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D0             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D1
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D1             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D2
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D2             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D3
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D3             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D4
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D4             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D5
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D5             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D6
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D6             to   "0"
     upcounter         Address
end vector

vector  Address_Counter_D7
     set  CS_CSbar_NC         to   "1"
     set  Chip_enable_bar     to   "0"
     set  Output_enable_bar   to   "0"
     set  Address             to   "00000000000000"
     set  Data_D7             to   "0"
     upcounter         Address
end vector

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

!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"
     preset counter    Address_Counter_D0     compress
     repeat  255   times
              count    Address_Counter_D0     compress
     end repeat
end unit

unit "awaretest D1 Test"
     preset counter    Address_Counter_D1     compress
     repeat  255   times
              count    Address_Counter_D1     compress
     end repeat
end unit

unit "awaretest D2 Test"
     preset counter    Address_Counter_D2     compress
     repeat  255   times
              count    Address_Counter_D2     compress
     end repeat
end unit

unit "awaretest D3 Test"
     preset counter    Address_Counter_D3     compress
     repeat  255   times
              count    Address_Counter_D3     compress
     end repeat
end unit

unit "awaretest D4 Test"
     preset counter    Address_Counter_D4     compress
     repeat  255   times
              count    Address_Counter_D4     compress
     end repeat
end unit

unit "awaretest D5 Test"
     preset counter    Address_Counter_D5     compress
     repeat  255   times
              count    Address_Counter_D5     compress
     end repeat
end unit

unit "awaretest D6 Test"
     preset counter    Address_Counter_D6     compress
     repeat  255   times
              count    Address_Counter_D6     compress
     end repeat
end unit

unit "awaretest D7 Test"
     preset counter    Address_Counter_D7     compress
     repeat  255   times
              count    Address_Counter_D7     compress
     end repeat
end unit

!  The data in the first 512 addresses and in the last 512 addresses
!  are compressed and the result is compared with that learned from
!  a known good device.  More of the data can be tested by increasing
!  the value of the loop counters, which also increases test time.
!  Setting the repeat loops to 8191 causes data from all addresses
!  to be compressed, but results in a test time of almost 20ms.

warning "CE_CEbar_NC (pin 27) is assumed to be high for the chip to"
warning "selected, if this is not true the test must be modified."

unit "Compress data"
     preset counter  Address_counter     compress
     repeat  511  times
          count      Address_counter     compress
     end repeat

     preset counter  Address_counter_2   compress
     repeat  511  times
          count      Address_counter_2   compress
     end repeat
end unit

!  If PULL-UPS exist on the outputs AND the data in the first
!  address is NOT all 1's, the following unit can be included
!  to verify that Chip_enable_bar is not stuck-at-0.

 unit "Deselect"
      execute  Read_deselected
 end unit

!  If PULL-UPS exist on the outputs AND the data in the first
!  address is NOT all 1's, the following unit can be included
!  to verify that Output_enable_bar is not stuck-at-0.

 unit "Disable"
      execute  Read_disabled
 end unit

!    End of test

