!!!!    6    0    1  987108169  Ve870                                         

! Device           : 1824c
! Function         : Static RAM 3-state 32 word x 8 bit
! revision         : B.01.00
! safeguard        : med_out_mos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

vector cycle 1000n
receive delay 900n

assign       VCC             to pins           18                ! VDD
assign       GND             to pins           9                 ! VSS

assign       Address_bus     to pins           1,2,3,4,5
assign       Data_bus        to pins           6,7,8,10,11,12,13,14
assign       Data_D0         to pins   14   !AT Added for minimum pin test.
assign       Data_D1         to pins   13   !AT Added for minimum pin test.
assign       Data_D2         to pins   12   !AT Added for minimum pin test.
assign       Data_D3         to pins   11   !AT Added for minimum pin test.
assign       Data_D4         to pins   10   !AT Added for minimum pin test.
assign       Data_D5         to pins   8    !AT Added for minimum pin test.
assign       Data_D6         to pins   7    !AT Added for minimum pin test.
assign       Data_D7         to pins   6    !AT Added for minimum pin test.

assign       Chip_Select_bar to pins           15
assign       Read_bar        to pins           16
assign       Write_bar       to pins           17
assign       DISABLE         to pins           15,16,17

family       TTL

power        VCC, GND

inputs       Address_bus, Chip_Select_bar, Read_bar, Write_bar, DISABLE

bidirectional       Data_bus
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     Write_bar   is "0"   inputs   Data_bus
when     Read_bar    is "0"   outputs  Data_bus

when     DISABLE  is "1XX" inactive    Data_bus
when     DISABLE  is "011" inactive    Data_bus
when     DISABLE  is "010" inactive    Data_bus

trace    Data_bus to   Address_bus, Chip_Select_bar
trace    Data_bus to   Read_bar, Write_bar, DISABLE

disable      Data_bus   with   DISABLE    to   "1XX"
disable      Data_bus   with   DISABLE    to   "011"
disable      Data_bus   with   DISABLE    to   "010"


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

vector       Disable_chip
set     Chip_Select_bar      to         "1"
set     Read_bar             to         "1"
set     Write_bar            to         "1"
end vector

vector       Write_enable
set     Chip_Select_bar      to         "0"
set     Read_bar             to         "1"
set     Write_bar            to         "0"
set     Address_bus          to         "kkkkk"
end vector

vector       Read_enable_1
set     Chip_Select_bar      to         "1"
set     Read_bar             to         "0"
set     Write_bar            to         "1"
set     Address_bus          to         "kkkkk"
end vector

vector       Read_enable_2
set     Chip_Select_bar      to         "0"
set     Read_bar             to         "0"
set     Write_bar            to         "1"
set     Address_bus          to         "kkkkk"
end vector

vector       Write_disable
initialize to Disable_chip
drive Data_bus
set     Address_bus          to         "kkkkk"
set     Data_bus             to         "kkkkkkkk"
end vector

vector       Chip_Select_false
drive Data_bus
set     Chip_Select_bar      to         "1"
set     Read_bar             to         "1"
set     Write_bar            to         "0"
set     Address_bus          to         "kkkkk"
set     Data_bus             to         "00000000"
end vector

vector       Write_false
drive Data_bus
set     Chip_Select_bar      to         "0"
set     Read_bar             to         "1"
set     Write_bar            to         "1"
set     Address_bus          to         "kkkkk"
set     Data_bus             to         "00000000"
end vector

vector       Read_bar_Override
drive Data_bus
set     Chip_Select_bar      to         "0"
set     Read_bar             to         "0"
set     Write_bar            to         "0"
set     Address_bus          to         "00000"
set     Data_bus             to         "00000000"
end vector

vector       Address_00000
initialize to Disable_chip
set     Address_bus          to         "00000"
end vector

vector       Address_00001
initialize to Disable_chip
set     Address_bus          to         "00001"
end vector

vector       Address_00011
initialize to Disable_chip
set     Address_bus          to         "00011"
end vector

vector       Address_00111
initialize to Disable_chip
set     Address_bus          to         "00111"
end vector

vector       Address_01111
initialize to Disable_chip
set     Address_bus          to         "01111"
end vector

vector       Address_11111
initialize to Disable_chip
set     Address_bus          to         "11111"
end vector

vector       Address_11110
initialize to Disable_chip
set     Address_bus          to         "11110"
end vector

vector       Address_11100
initialize to Disable_chip
set     Address_bus          to         "11100"
end vector

vector       Address_11000
initialize to Disable_chip
set     Address_bus          to         "11000"
end vector

vector       Data_In_00000000
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00000000"
end vector

vector       Data_In_00000001
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00000001"
end vector

vector       Data_In_00000011
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00000011"
end vector

vector       Data_In_00000111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00000111"
end vector

vector       Data_In_00001111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00001111"
end vector


vector       Data_In_00011111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00011111"
end vector

vector       Data_In_00111111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "00111111"
end vector

vector       Data_In_01111111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "01111111"
end vector

vector       Data_In_11111111
initialize to Write_enable
drive Data_bus
set     Data_bus             to         "11111111"
end vector

vector       Data_Out_00000000
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00000000"
end vector

vector       Data_Out_00000001
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00000001"
end vector

vector       Data_Out_00000011
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00000011"
end vector

vector       Data_Out_00000111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00000111"
end vector

vector       Data_Out_00001111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00001111"
end vector

vector       Data_Out_00011111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00011111"
end vector

vector       Data_Out_00111111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "00111111"
end vector

vector       Data_Out_01111111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             to         "01111111"
end vector

vector       Data_Out_11111111
initialize to Read_enable_2
receive Data_bus
set     Data_bus             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       Write_disable_D0
initialize to Disable_chip
drive Data_D0
set     Address_bus          to         "kkkkk"
set     Data_D0              to         "k"
end vector

vector       Write_disable_D1
initialize to Disable_chip
drive Data_D1
set     Address_bus          to         "kkkkk"
set     Data_D1              to         "k"
end vector

vector       Write_disable_D2
initialize to Disable_chip
drive Data_D2
set     Address_bus          to         "kkkkk"
set     Data_D2              to         "k"
end vector

vector       Write_disable_D3
initialize to Disable_chip
drive Data_D3
set     Address_bus          to         "kkkkk"
set     Data_D3              to         "k"
end vector

vector       Write_disable_D4
initialize to Disable_chip
drive Data_D4
set     Address_bus          to         "kkkkk"
set     Data_D4              to         "k"
end vector

vector       Write_disable_D5
initialize to Disable_chip
drive Data_D5
set     Address_bus          to         "kkkkk"
set     Data_D5              to         "k"
end vector

vector       Write_disable_D6
initialize to Disable_chip
drive Data_D6
set     Address_bus          to         "kkkkk"
set     Data_D6              to         "k"
end vector

vector       Write_disable_D7
initialize to Disable_chip
drive Data_D7
set     Address_bus          to         "kkkkk"
set     Data_D7              to         "k"
end vector

vector       Data_In_D0_0
initialize to Write_enable
drive Data_D0
set     Data_D0              to         "0"
end vector

vector       Data_In_D0_1
initialize to Write_enable
drive Data_D0
set     Data_D0              to         "1"
end vector

vector       Data_In_D1_0
initialize to Write_enable
drive Data_D1
set     Data_D1              to         "0"
end vector

vector       Data_In_D1_1
initialize to Write_enable
drive Data_D1
set     Data_D1              to         "1"
end vector

vector       Data_In_D2_0
initialize to Write_enable
drive Data_D2
set     Data_D2              to         "0"
end vector

vector       Data_In_D2_1
initialize to Write_enable
drive Data_D2
set     Data_D2              to         "1"
end vector

vector       Data_In_D3_0
initialize to Write_enable
drive Data_D3
set     Data_D3              to         "0"
end vector

vector       Data_In_D3_1
initialize to Write_enable
drive Data_D3
set     Data_D3              to         "1"
end vector

vector       Data_In_D4_0
initialize to Write_enable
drive Data_D4
set     Data_D4              to         "0"
end vector

vector       Data_In_D4_1
initialize to Write_enable
drive Data_D4
set     Data_D4              to         "1"
end vector

vector       Data_In_D5_0
initialize to Write_enable
drive Data_D5
set     Data_D5              to         "0"
end vector

vector       Data_In_D5_1
initialize to Write_enable
drive Data_D5
set     Data_D5              to         "1"
end vector

vector       Data_In_D6_0
initialize to Write_enable
drive Data_D6
set     Data_D6              to         "0"
end vector

vector       Data_In_D6_1
initialize to Write_enable
drive Data_D6
set     Data_D6              to         "1"
end vector

vector       Data_In_D7_0
initialize to Write_enable
drive Data_D7
set     Data_D7              to         "0"
end vector

vector       Data_In_D7_1
initialize to Write_enable
drive Data_D7
set     Data_D7              to         "1"
end vector

vector       Data_Out_D0_0
initialize to Read_enable_2
receive Data_D0
set     Data_D0              to         "0"
end vector

vector       Data_Out_D0_1
initialize to Read_enable_2
receive Data_D0
set     Data_D0              to         "1"
end vector

vector       Data_Out_D1_0
initialize to Read_enable_2
receive Data_D1
set     Data_D1              to         "0"
end vector

vector       Data_Out_D1_1
initialize to Read_enable_2
receive Data_D1
set     Data_D1              to         "1"
end vector

vector       Data_Out_D2_0
initialize to Read_enable_2
receive Data_D2
set     Data_D2              to         "0"
end vector

vector       Data_Out_D2_1
initialize to Read_enable_2
receive Data_D2
set     Data_D2              to         "1"
end vector

vector       Data_Out_D3_0
initialize to Read_enable_2
receive Data_D3
set     Data_D3              to         "0"
end vector

vector       Data_Out_D3_1
initialize to Read_enable_2
receive Data_D3
set     Data_D3              to         "1"
end vector

vector       Data_Out_D4_0
initialize to Read_enable_2
receive Data_D4
set     Data_D4              to         "0"
end vector

vector       Data_Out_D4_1
initialize to Read_enable_2
receive Data_D4
set     Data_D4              to         "1"
end vector

vector       Data_Out_D5_0
initialize to Read_enable_2
receive Data_D5
set     Data_D5              to         "0"
end vector

vector       Data_Out_D5_1
initialize to Read_enable_2
receive Data_D5
set     Data_D5              to         "1"
end vector

vector       Data_Out_D6_0
initialize to Read_enable_2
receive Data_D6
set     Data_D6              to         "0"
end vector

vector       Data_Out_D6_1
initialize to Read_enable_2
receive Data_D6
set     Data_D6              to         "1"
end vector

vector       Data_Out_D7_0
initialize to Read_enable_2
receive Data_D7
set     Data_D7              to         "0"
end vector

vector       Data_Out_D7_1
initialize to Read_enable_2
receive Data_D7
set     Data_D7              to         "1"
end vector

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

!     "Ram_Test" tests I/O pins for proper operation using a graycode pattern
!      for both addresses and data.
!     "Test_Chip_Select_bar" tests for proper operation of the Chip Select pi
!     "Test_Write_bar" tests for proper operation of the MWR_bar pin
!     "Test_Read_bar_Override" tests the MRD_bar pin to insure that it over-
!      rides the MWR_bar_true state



sub          Write_Data (Address,Data)
execute              Address
execute              Data
execute              Write_Disable
end sub

sub          Read_Data (Address,Data)
execute              Address
execute              Read_enable_1
execute              Data
end sub

!AT The following subroutines have been added for a minimum pins test.
!AT Vectors in the subroutine "Write_data" reference the entire data bus.
!AT Therefore this subroutine was copied and modified to reference only
!AT a single pin of the data bus. The subroutine "Read_data" did not
!AT require any modification as all references to the data bus are made
!AT via a passed parameter (data). This reference can be modified in the
!AT call statement.

sub  Write_data_Dx (Address, Data_Dx, Write_Disable_Dx)
execute              Address
execute              Data_Dx
execute              Write_Disable_Dx
end sub

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

!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_Dx (Address_00000,Data_In_D0_0, Write_Disable_D0)
call           Read_Data (Address_00000,Data_Out_D0_0)

call           Write_Data_Dx (Address_00000,Data_In_D0_1, Write_Disable_D0)
call           Read_Data (Address_00000,Data_Out_D0_1)

end unit

unit   "awaretest D1 Test"

call           Write_Data_Dx (Address_00000,Data_In_D1_0, Write_Disable_D1)
call           Read_Data (Address_00000,Data_Out_D1_0)

call           Write_Data_Dx (Address_00000,Data_In_D1_1, Write_Disable_D1)
call           Read_Data (Address_00000,Data_Out_D1_1)

end unit

unit   "awaretest D2 Test"

call           Write_Data_Dx (Address_00000,Data_In_D2_0, Write_Disable_D2)
call           Read_Data (Address_00000,Data_Out_D2_0)

call           Write_Data_Dx (Address_00000,Data_In_D2_1, Write_Disable_D2)
call           Read_Data (Address_00000,Data_Out_D2_1)

end unit

unit   "awaretest D3 Test"

call           Write_Data_Dx (Address_00000,Data_In_D3_0, Write_Disable_D3)
call           Read_Data (Address_00000,Data_Out_D3_0)

call           Write_Data_Dx (Address_00000,Data_In_D3_1, Write_Disable_D3)
call           Read_Data (Address_00000,Data_Out_D3_1)

end unit

unit   "awaretest D4 Test"

call           Write_Data_Dx (Address_00000,Data_In_D4_0, Write_Disable_D4)
call           Read_Data (Address_00000,Data_Out_D4_0)

call           Write_Data_Dx (Address_00000,Data_In_D4_1, Write_Disable_D4)
call           Read_Data (Address_00000,Data_Out_D4_1)

end unit

unit   "awaretest D5 Test"

call           Write_Data_Dx (Address_00000,Data_In_D5_0, Write_Disable_D5)
call           Read_Data (Address_00000,Data_Out_D5_0)

call           Write_Data_Dx (Address_00000,Data_In_D5_1, Write_Disable_D5)
call           Read_Data (Address_00000,Data_Out_D5_1)

end unit

unit   "awaretest D6 Test"

call           Write_Data_Dx (Address_00000,Data_In_D6_0, Write_Disable_D6)
call           Read_Data (Address_00000,Data_Out_D6_0)

call           Write_Data_Dx (Address_00000,Data_In_D6_1, Write_Disable_D6)
call           Read_Data (Address_00000,Data_Out_D6_1)

end unit

unit   "awaretest D7 Test"

call           Write_Data_Dx (Address_00000,Data_In_D7_0, Write_Disable_D7)
call           Read_Data (Address_00000,Data_Out_D7_0)

call           Write_Data_Dx (Address_00000,Data_In_D7_1, Write_Disable_D7)
call           Read_Data (Address_00000,Data_Out_D7_1)

end unit

unit    "Ram_Test"
call           Write_Data (Address_00000,Data_In_00000000)
call           Write_Data (Address_00001,Data_In_00000001)
call           Write_Data (Address_00011,Data_In_00000011)
call           Write_Data (Address_00111,Data_In_00000111)
call           Write_Data (Address_01111,Data_In_00001111)
call           Write_Data (Address_11111,Data_In_00011111)
call           Write_Data (Address_11110,Data_In_00111111)
call           Write_Data (Address_11100,Data_In_01111111)
call           Write_Data (Address_11000,Data_In_11111111)
call           Read_Data (Address_00000,Data_Out_00000000)
call           Read_Data (Address_00001,Data_Out_00000001)
call           Read_Data (Address_00011,Data_Out_00000011)
call           Read_Data (Address_00111,Data_Out_00000111)
call           Read_Data (Address_01111,Data_Out_00001111)
call           Read_Data (Address_11111,Data_Out_00011111)
call           Read_Data (Address_11110,Data_Out_00111111)
call           Read_Data (Address_11100,Data_Out_01111111)
call           Read_Data (Address_11000,Data_Out_11111111)
end unit

unit      "Test_Chip_Select_bar"
call           Write_Data (Address_00000,Data_In_11111111)
execute        Address_00000
execute        Chip_Select_false
execute        Write_Disable
call           Read_Data (Address_00000,Data_Out_11111111)
end unit

unit     "Test_Write_bar"
call           Write_Data (Address_00000,Data_In_11111111)
execute        Address_00000
execute        Write_false
execute        Write_Disable
call           Read_Data (Address_00000,Data_Out_11111111)
end unit

unit     "Test_Read_bar_Override"
call           Write_Data (Address_00000,Data_In_11111111)
execute        Address_00000
execute        Read_bar_Override
execute        Write_Disable
call           Read_Data (Address_00000,Data_Out_11111111)
end unit


!     End of test


