!!!!    6    0    1  990120412  V413c                                         

!-----------------------------------------------------------------------
!  Copyright (c) Hewlett-Packard Co. 1992
!
!  All Rights Reserved.  Reproduction, adaptation, or translation
!  without prior written permission is prohibited, except as allowed
!  under the copyright laws.
!
!-----------------------------------------------------------------------
!
! Device           : 28f020
! Function         : EPROM 256k * 8
! revision         : B.01.00
! safeguard        : standard_hcmos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."
!
!-----------------------------------------------------------------------
!
! Additional Comments:
!
!-----------------------------------------------------------------------

sequential

assign   VCC                     to pins  32
assign   GND                     to pins  16

assign   VPP                     to pins   1

assign   Upper_Address_Bus       to pins  30,  2
assign   Address_Bus             to pins   3, 29, 28,  4, 25, 23, 26, 27
assign   Address_Bus             to pins   5,  6,  7,  8,  9, 10, 11, 12

assign   Data_Bus                to pins  21, 20, 19, 18, 17, 15, 14, 13
assign   Data_D0                 to pins  13   !AT Added for minimum pin test.
assign   Data_D1                 to pins  14   !AT Added for minimum pin test.
assign   Data_D2                 to pins  15   !AT Added for minimum pin test.
assign   Data_D3                 to pins  17   !AT Added for minimum pin test.
assign   Data_D4                 to pins  18   !AT Added for minimum pin test.
assign   Data_D5                 to pins  19   !AT Added for minimum pin test.
assign   Data_D6                 to pins  20   !AT Added for minimum pin test.
assign   Data_D7                 to pins  21   !AT Added for minimum pin test.

assign   Chip_Enable_Bar         to pins  22
assign   Output_Enable_Bar       to pins  24
assign   Write_Enable_Bar        to pins  31

family TTL

power VCC, GND

inputs Upper_Address_Bus
inputs Address_Bus, VPP, Chip_Enable_Bar, Output_Enable_Bar, Write_Enable_Bar
outputs Data_Bus
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.

format hexadecimal Address_Bus, Data_Bus

disable Data_Bus with Output_Enable_Bar  to "1"
disable Data_Bus with Chip_Enable_Bar    to "1"

when Output_Enable_Bar is "1" inactive Data_Bus
when Chip_Enable_Bar is "1"   inactive Data_Bus

trace Data_Bus to Address_Bus, Chip_Enable_Bar
trace Data_Bus to Output_Enable_Bar, Write_Enable_Bar

warning "This test requires pullups on pins 19,18,17,16,15,13,12,11"
warning "which are the data lines.  The only unit that needs pullups"
warning "to run is the very last which checks for a high-z outputs."
warning "This test does not test pins 1 or 31. These are the "
warning "electrical erase and write enable control pins.     "

!**********************************************************************
!****************     VECTOR   SECTION     ****************************
!**********************************************************************

vector  Keep
   set   Chip_Enable_Bar      to "k"
   set   Output_Enable_Bar    to "k"
   set   Upper_Address_Bus    to "kk"
   set   Address_Bus          to "kkkk"
end vector

vector  Chip_enabled
   set   Chip_Enable_Bar      to "0"
   set   Output_Enable_Bar    to "0"
end vector

vector  Count_Address_Up
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "00"
   set   Address_Bus          to "0000"
   upcounter   Address_Bus
end vector

vector  Count_Address_down
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "11"
   set   Address_Bus          to "ffff"
   downcounter Address_Bus
end vector

vector  Address_Pattern_15555
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "01"
   set   Address_Bus          to "5555"
   set   Data_Bus             to "00"
end vector

vector  Address_Pattern_2AAAA
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "10"
   set   Address_Bus          to "AAAA"
   set   Data_Bus             to "00"
end vector

vector  Address_Pattern_02492
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "00"
   set   Address_Bus          to "2492"
   set   Data_Bus             to "00"
end vector

vector  Address_Pattern_04924
   initialize                 to Chip_enabled
   set   Upper_Address_Bus    to "00"
   set   Address_Bus          to "4924"
   set   Data_Bus             to "00"
end vector

vector  Chip_enable_hi
   initialize                 to Keep
   set   Chip_Enable_Bar      to "1"
end vector

vector  Output_enable_low
   initialize                 to Keep
   set   Output_Enable_Bar    to "0"
end vector

vector  Chip_enable_low
   initialize                 to Keep
   set   Chip_Enable_Bar      to "0"
end vector

vector  Output_enable_hi
   initialize                 to Keep
   set   Output_Enable_Bar    to "1"
end vector

vector  Test_address
   initialize                 to Keep
   set   Upper_Address_Bus    to "00"
   set   Address_Bus          to "0000"
end vector

vector  Data_outputs
   initialize                 to Keep
   set   Data_Bus             to "00"
end vector

vector  Data_FF
   initialize                 to Keep
   set   Data_Bus             to "FF"
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_outputs_D0
   initialize                 to Keep
   set   Data_D0              to "0"
end vector

vector  Data_outputs_D1
   initialize                 to Keep
   set   Data_D1              to "0"
end vector

vector  Data_outputs_D2
   initialize                 to Keep
   set   Data_D2              to "0"
end vector

vector  Data_outputs_D3
   initialize                 to Keep
   set   Data_D3              to "0"
end vector

vector  Data_outputs_D4
   initialize                 to Keep
   set   Data_D4              to "0"
end vector

vector  Data_outputs_D5
   initialize                 to Keep
   set   Data_D5              to "0"
end vector

vector  Data_outputs_D6
   initialize                 to Keep
   set   Data_D6              to "0"
end vector

vector  Data_outputs_D7
   initialize                 to Keep
   set   Data_D7              to "0"
end vector

!**********************************************************************
!******************    UNIT    SECTION       **************************
!**********************************************************************

!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  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D0 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D1 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D1 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D2 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D2 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D3 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D3 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D4 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D4 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D5 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D5 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D6 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D6 compress
      count    Count_Address_up
   end repeat

end unit

unit "awaretest D7 Test"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs_D7 compress
      count    Count_Address_up
   end repeat

end unit

!This test checks the upper and lower 256 addresses.

unit  "Count up"

   execute  Chip_enabled
   preset counter Count_Address_up
   repeat   256 times
      execute  Data_outputs compress
      count    Count_Address_up
   end repeat

end unit

unit  "Preset Addresses"

   execute  Address_Pattern_15555 compress   !This unit toggles consecutive
   execute  Address_Pattern_2AAAA compress   !address pins, as well as pins with
   execute  Address_Pattern_02492 compress   !one and two pins between them.
   execute  Address_Pattern_04924 compress

end unit

unit  "Count down"

   execute  Chip_enabled
   preset counter Count_Address_down
   repeat   256 times
      execute  Data_outputs compress
      count    Count_Address_down
   end repeat

end unit

!This unit requires pullups on the 8 data lines.
!This unit requires that the address "00000"
!contains data that is not all 1's.
unit  "Test data lines"

   execute  Test_address
   execute  Chip_enable_hi
   execute  Output_enable_low
   execute  Data_FF

   execute  Test_address
   execute  Chip_enable_low
   execute  Output_enable_hi
   execute  Data_FF

end unit

!
!  End of test
!
