!!!!    6    0    1  719842519   0000                                         

!-----------------------------------------------------------------------
!  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:        27c020
! Manufacturer:  AMD
! Description:   EPROM 256k * 8
! Package:       32 pin PLCC
! Test Platform: 3065,3070
! Safeguard:     standard_hcmos
!
!-----------------------------------------------------------------------
!
! 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   Chip_Enable_Bar         to pins  22
assign   Output_Enable_Bar       to pins  24
assign   Program                 to pins  31

family TTL

power VCC, GND

inputs Upper_Address_Bus
inputs Address_Bus, VPP, Chip_Enable_Bar, Output_Enable_Bar, Program
outputs Data_Bus

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

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

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

!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
!
