!!!!    6    0    1  686082563  Vf6b8                                         
!b!
!IDT: High Performance CMOS Data Book, 1986
!safeguard is high_out_cmos

sequential

vector cycle   400n
receive delay  300n

assign VCC           to pins 28
assign GND           to pins 14

assign Address       to pins 1,26,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 WE_bar        to pins 27
assign CS_bar        to pins 20
assign OE_bar        to pins 22

!*************************************************************************
! Pin-out for 32-pin lcc package
!
!assign GND           to pins 16
!
!assign Address       to pins 2,30,3,27,24,28,29,4,5,6,7,8,9,10,11
!
!assign Data          to pins 22,21,20,19,18,15,14,13
!
!assign WE_bar        to pins 31
!assign CS_bar        to pins 23
!assign OE_bar        to pins 25
!
!assign NC            to pins 1,12,17,26
!
!nondigital           NC
!*************************************************************************

!*************************************************************************
! Pin-out for 28-pin lcc package
!
!assign GND           to pins 14
!
!assign Address       to pins 1,26,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 WE_bar        to pins 27
!assign CS_bar        to pins 20
!assign OE_bar        to pins 22
!
!*************************************************************************

family TTL

power           VCC,GND

inputs          Address,WE_bar,CS_bar,OE_bar
bidirectional   Data

format  hexadecimal Data

disable   Data  with  CS_bar   to "1"
disable   Data  with  OE_bar   to "1"

when  CS_bar is "1" inactive Data
when  OE_bar is "1" inactive Data

trace  Data  to Address,WE_bar,CS_bar,OE_bar

warning "Pull ups are required on the Data pins."

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

vector Keep_Drive
   drive Data
   set Data        to "kk"
   set Address     to "kkkkkkkkkkkkkkk"
   set CS_bar      to "k"
   set OE_bar      to "k"
   set WE_bar      to "k"
end vector

vector Setup
   drive Data
   set Data        to "00"
   set Address     to "000000000000000"
   set CS_bar      to "0"
   set OE_bar      to "0"
   set WE_bar      to "1"
end vector

vector Setup_CS_bar_high
   initialize to Setup
   set CS_bar      to "1"
end vector

vector WE_bar_high
   initialize to Keep_Drive
   set WE_bar        to "1"
end vector

vector WE_bar_low
   initialize to Keep_Drive
   set WE_bar        to "0"
end vector

vector CS_bar_high
   initialize to Keep_Drive
   set CS_bar        to "1"
end vector

vector CS_bar_low
   initialize to Keep_Drive
   set CS_bar        to "0"
end vector

vector OE_bar_high
   initialize to Keep_Drive
   set OE_bar        to "1"
end vector

vector OE_bar_low
   initialize to Keep_Drive
   set OE_bar        to "0"
end vector

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

vector Add_100000000000000
   initialize to Keep_Drive
   set Address       to "100000000000000"
end vector

vector Add_000000000000000
   initialize to Keep_Drive
   set Address       to "000000000000000"
end vector

vector Add_010000000000000
   initialize to Keep_Drive
   set Address       to "010000000000000"
end vector

vector Add_001000000000000
   initialize to Keep_Drive
   set Address       to "001000000000000"
end vector

vector Add_000100000000000
   initialize to Keep_Drive
   set Address       to "000100000000000"
end vector

vector Add_000010000000000
   initialize to Keep_Drive
   set Address       to "000010000000000"
end vector

vector Add_000001000000000
   initialize to Keep_Drive
   set Address       to "000001000000000"
end vector

vector Add_000000100000000
   initialize to Keep_Drive
   set Address       to "000000100000000"
end vector

vector Add_000000010000000
   initialize to Keep_Drive
   set Address       to "000000010000000"
end vector

vector Add_000000001000000
   initialize to Keep_Drive
   set Address       to "000000001000000"
end vector

vector Add_000000000100000
   initialize to Keep_Drive
   set Address       to "000000000100000"
end vector

vector Add_000000000010000
   initialize to Keep_Drive
   set Address       to "000000000010000"
end vector

vector Add_000000000001000
   initialize to Keep_Drive
   set Address       to "000000000001000"
end vector

vector Add_000000000000100
   initialize to Keep_Drive
   set Address       to "000000000000100"
end vector

vector Add_000000000000010
   initialize to Keep_Drive
   set Address       to "000000000000010"
end vector

vector Add_000000000000001
   initialize to Keep_Drive
   set Address       to "000000000000001"
end vector

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

vector Dat_FF_W
   initialize to Keep_Drive
   set Data          to "FF"
end vector

vector Dat_00_W
   initialize to Keep_Drive
   set Data          to "00"
end vector

vector Dat_01_W
   initialize to Keep_Drive
   set Data          to "01"
end vector

vector Dat_02_W
   initialize to Keep_Drive
   set Data          to "02"
end vector

vector Dat_04_W
   initialize to Keep_Drive
   set Data          to "04"
end vector

vector Dat_08_W
   initialize to Keep_Drive
   set Data          to "08"
end vector

vector Dat_10_W
   initialize to Keep_Drive
   set Data          to "10"
end vector

vector Dat_20_W
   initialize to Keep_Drive
   set Data          to "20"
end vector

vector Dat_40_W
   initialize to Keep_Drive
   set Data          to "40"
end vector

vector Dat_80_W
   initialize to Keep_Drive
   set Data          to "80"
end vector

vector Dat_55_W
   initialize to Keep_Drive
   set Data          to "55"
end vector

vector Dat_AA_W
   initialize to Keep_Drive
   set Data          to "AA"
end vector

vector Dat_11_W
   initialize to Keep_Drive
   set Data          to "11"
end vector

vector Dat_12_W
   initialize to Keep_Drive
   set Data          to "12"
end vector

vector Dat_14_W
   initialize to Keep_Drive
   set Data          to "14"
end vector

vector Dat_18_W
   initialize to Keep_Drive
   set Data          to "18"
end vector

vector Dat_21_W
   initialize to Keep_Drive
   set Data          to "21"
end vector

vector Dat_22_W
   initialize to Keep_Drive
   set Data          to "22"
end vector

vector Dat_24_W
   initialize to Keep_Drive
   set Data          to "24"
end vector

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

vector Dat_00_R
   initialize to Keep_Drive
   receive Data
   set Data          to "00"
end vector

vector Dat_FF_R
   initialize to Keep_Drive
   receive Data
   set Data          to "FF"
end vector

vector Dat_01_R
   initialize to Keep_Drive
   receive Data
   set Data          to "01"
end vector

vector Dat_02_R
   initialize to Keep_Drive
   receive Data
   set Data          to "02"
end vector

vector Dat_04_R
   initialize to Keep_Drive
   receive Data
   set Data          to "04"
end vector

vector Dat_08_R
   initialize to Keep_Drive
   receive Data
   set Data          to "08"
end vector

vector Dat_10_R
   initialize to Keep_Drive
   receive Data
   set Data          to "10"
end vector

vector Dat_20_R
   initialize to Keep_Drive
   receive Data
   set Data          to "20"
end vector

vector Dat_40_R
   initialize to Keep_Drive
   receive Data
   set Data          to "40"
end vector

vector Dat_80_R
   initialize to Keep_Drive
   receive Data
   set Data          to "80"
end vector

vector Dat_55_R
   initialize to Keep_Drive
   receive Data
   set Data          to "55"
end vector

vector Dat_AA_R
   initialize to Keep_Drive
   receive Data
   set Data          to "AA"
end vector

vector Dat_11_R
   initialize to Keep_Drive
   receive Data
   set Data          to "11"
end vector

vector Dat_12_R
   initialize to Keep_Drive
   receive Data
   set Data          to "12"
end vector

vector Dat_14_R
   initialize to Keep_Drive
   receive Data
   set Data          to "14"
end vector

vector Dat_18_R
   initialize to Keep_Drive
   receive Data
   set Data          to "18"
end vector

vector Dat_21_R
   initialize to Keep_Drive
   receive Data
   set Data          to "21"
end vector

vector Dat_22_R
   initialize to Keep_Drive
   receive Data
   set Data          to "22"
end vector

vector Dat_24_R
   initialize to Keep_Drive
   receive Data
   set Data          to "24"
end vector

vector Dat_xx_R
   initialize to Keep_Drive
   receive Data
   set Data          to "xx"
end vector

!*********************************************************************t
!****************  SUBROUTINE  SECTION     ****************************
!**********************************************************************

sub Write(Add,Dat)

   execute Add
   execute Dat
   execute WE_bar_low
   execute WE_bar_high

end sub

sub Read (Add,Dat)

   execute Add
   execute Dat_xx_R
   execute Dat

end sub

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


unit "Test Address and Data Pins"

   execute Setup

call Write(Add_000000000000000,Dat_00_W)
call Write(Add_100000000000000,Dat_01_W)
call Write(Add_010000000000000,Dat_02_W)
call Write(Add_001000000000000,Dat_04_W)
call Write(Add_000100000000000,Dat_08_W)
call Write(Add_000010000000000,Dat_10_W)
call Write(Add_000001000000000,Dat_20_W)
call Write(Add_000000100000000,Dat_40_W)
call Write(Add_000000010000000,Dat_80_W)
call Write(Add_000000001000000,Dat_11_W)
call Write(Add_000000000100000,Dat_12_W)
call Write(Add_000000000010000,Dat_14_W)
call Write(Add_000000000001000,Dat_18_W)
call Write(Add_000000000000100,Dat_21_W)
call Write(Add_000000000000010,Dat_22_W)
call Write(Add_000000000000001,Dat_24_W)

call Read(Add_000000000000000,Dat_00_R)
call Read(Add_100000000000000,Dat_01_R)
call Read(Add_010000000000000,Dat_02_R)
call Read(Add_001000000000000,Dat_04_R)
call Read(Add_000100000000000,Dat_08_R)
call Read(Add_000010000000000,Dat_10_R)
call Read(Add_000001000000000,Dat_20_R)
call Read(Add_000000100000000,Dat_40_R)
call Read(Add_000000010000000,Dat_80_R)
call Read(Add_000000001000000,Dat_11_R)
call Read(Add_000000000100000,Dat_12_R)
call Read(Add_000000000010000,Dat_14_R)
call Read(Add_000000000001000,Dat_18_R)
call Read(Add_000000000000100,Dat_21_R)
call Read(Add_000000000000010,Dat_22_R)
call Read(Add_000000000000001,Dat_24_R)

end unit

unit "Test OE_bar"

   execute Setup

call Write(Add_000000000000000,Dat_00_W)
call Read(Add_000000000000000,Dat_00_R)

   execute OE_bar_high

call Read(Add_000000000000000,Dat_FF_R)

   execute OE_bar_low

call Read(Add_000000000000000,Dat_00_R)

end unit

unit disable test "Test CS_bar"

  execute Setup_CS_bar_high

call Write(Add_000000000000100,Dat_21_W)
call Write(Add_000000000000010,Dat_22_W)
call Write(Add_000000000000001,Dat_24_W)

call Read(Add_000000000000100,Dat_21_R)
call Read(Add_000000000000010,Dat_22_R)
call Read(Add_000000000000001,Dat_24_R)

end unit
