!!!!    6    0    1  986571412  Vd23c                                         

! Device           : 9130
! Function         : Static RAM 3-state 1k x 4
! revision         : B.01.00
! safeguard        : med_out_mos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

assign    VCC            to pins   22
assign    GND            to pins   11

assign    Address        to pins   4,3,2,1,16,17,18,19,20,21

assign    Data           to pins   8,7,6,5
assign    Data_D0        to pins   5    !AT Added for minimum pin test.
assign    Data_D1        to pins   6    !AT Added for minimum pin test.
assign    Data_D2        to pins   7    !AT Added for minimum pin test.
assign    Data_D3        to pins   8    !AT Added for minimum pin test.

assign    Write_enable_bar      to pins   15
assign    Chip_select_bar       to pins   14
assign    Chip_enable           to pins   12
assign    Output_enable         to pins   13
assign    Output_disable        to pins   9
assign    Memory_status         to pins   10

family    TTL

power     VCC, GND

inputs    Address, Write_enable_bar, Chip_select_bar
inputs    Chip_enable, Output_enable, Output_disable

outputs   Memory_status

bidirectional  Data
bidirectional  Data_D0, Data_D1, Data_D2, Data_D3 !AT Added for min. pin test.

disable   Data   with Output_enable         to   "0"
disable   Data   with Output_disable        to   "1"

when Output_enable is "0" inactive Data
when Output_disable is "1" inactive Data
when  Write_enable_bar  is "1"   outputs  Data
when  Write_enable_bar  is "0"   inputs   Data

trace Data to Address, Write_enable_bar, Chip_select_bar
trace Data to Chip_enable, Output_enable, Output_disable

trace Memory_status to Address, Write_enable_bar, Chip_select_bar
trace Memory_status to Chip_enable, Output_enable, Output_disable
!***************************************************************
!***************************************************************

vector   Read_disable
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "1"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Write_disable
          drive  Data
     set  Data               to  "kkkk"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Chip_select
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "0"
     set  Output_enable      to  "0"
     set  Output_disable     to  "0"
     set  Write_enable_bar   to  "1"
end vector

vector   Chip_select_false
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "0"
     set  Write_enable_bar   to  "1"
end vector

vector   Memory_status_0
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
     set  Memory_status      to  "0"
end vector

vector   Memory_status_1
          drive  Data
     set  Data               to  "kkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
     set  Memory_status      to  "1"
end vector

vector   Chip_enabled
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "1"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Chip_enable_false
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Write_enable
          drive  Data
     set  Data               to  "kkkk"
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Data_Valid_In
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "0"
end vector

vector   Data_Valid_Out
     set  Chip_enable        to  "1"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "1"
     set  Output_disable     to  "0"
     set  Write_enable_bar   to  "k"
end vector

vector   Address_0000000000
     initialize to Chip_select
     set  Address     to "0000000000"
end vector

vector   Address_0000000001
     initialize to Chip_select
     set  Address     to "0000000001"
end vector

vector   Address_0000000011
     initialize to Chip_select
     set  Address     to "0000000011"
end vector

vector   Address_0000000111
     initialize to Chip_select
     set  Address     to "0000000111"
end vector

vector   Address_0000001111
     initialize to Chip_select
     set  Address     to "0000001111"
end vector

vector   Address_0000011111
     initialize to Chip_select
     set  Address     to "0000011111"
end vector

vector   Address_0000111111
     initialize to Chip_select
     set  Address     to "0000111111"
end vector

vector   Address_0001111111
     initialize to Chip_select
     set  Address     to "0001111111"
end vector

vector   Address_0011111111
     initialize to Chip_select
     set  Address     to "0011111111"
end vector

vector   Address_0111111111
     initialize to Chip_select
     set  Address     to "0111111111"
end vector

vector   Address_1111111111
     initialize to Chip_select
     set  Address     to "1111111111"
end vector

vector   Data_In_0000
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0000"
end vector

vector   Data_In_0001
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0001"
end vector

vector   Data_In_0011
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0011"
end vector

vector   Data_In_0111
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0111"
end vector

vector   Data_In_1111
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "1111"
end vector

vector   Data_In_1110
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "1110"
end vector

vector   Data_In_1100
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "1100"
end vector

vector   Data_In_1000
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "1000"
end vector

vector   Data_In_1010
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "1010"
end vector

vector   Data_In_0101
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0101"
end vector

vector   Data_In_0010
     initialize to Data_Valid_In
          drive  Data
     set  Data            to "0010"
end vector

vector   Read_Data_0000
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0000"
end vector

vector   Read_Data_0001
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0001"
end vector

vector   Read_Data_0011
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0011"
end vector

vector   Read_Data_0111
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0111"
end vector

vector   Read_Data_1111
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "1111"
end vector

vector   Read_Data_1110
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "1110"
end vector

vector   Read_Data_1100
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "1100"
end vector

vector   Read_Data_1000
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "1000"
end vector

vector   Read_Data_1010
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "1010"
end vector

vector   Read_Data_0101
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0101"
end vector

vector   Read_Data_0010
     initialize to Data_Valid_Out
          receive  Data
     set  Data            to "0010"
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_d_D0
          drive  Data_D0
     set  Data_D0            to  "k"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Write_d_D1
          drive  Data_D1
     set  Data_D1            to  "k"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Write_d_D2
          drive  Data_D2
     set  Data_D2            to  "k"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Write_d_D3
          drive  Data_D3
     set  Data_D3            to  "k"
     set  Chip_enable        to  "0"
     set  Chip_select_bar    to  "1"
     set  Output_enable      to  "0"
     set  Output_disable     to  "1"
     set  Write_enable_bar   to  "1"
end vector

vector   Write_en_D0
          drive  Data_D0
     set  Data_D0            to  "k"
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Write_en_D1
          drive  Data_D1
     set  Data_D1            to  "k"
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Write_en_D2
          drive  Data_D2
     set  Data_D2            to  "k"
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

vector   Write_en_D3
          drive  Data_D3
     set  Data_D3            to  "k"
     set  Address            to  "kkkkkkkkkk"
     set  Chip_enable        to  "k"
     set  Chip_select_bar    to  "k"
     set  Output_enable      to  "k"
     set  Output_disable     to  "k"
     set  Write_enable_bar   to  "k"
end vector

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

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

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

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

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

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

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

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

vector   Read_Data_D0_0
     initialize to Data_Valid_Out
          receive  Data_D0
     set  Data_D0         to "0"
end vector

vector   Read_Data_D0_1
     initialize to Data_Valid_Out
          receive  Data_D0
     set  Data_D0         to "1"
end vector

vector   Read_Data_D1_0
     initialize to Data_Valid_Out
          receive  Data_D1
     set  Data_D1         to "0"
end vector

vector   Read_Data_D1_1
     initialize to Data_Valid_Out
          receive  Data_D1
     set  Data_D1         to "1"
end vector

vector   Read_Data_D2_0
     initialize to Data_Valid_Out
          receive  Data_D2
     set  Data_D2         to "0"
end vector

vector   Read_Data_D2_1
     initialize to Data_Valid_Out
          receive  Data_D2
     set  Data_D2         to "1"
end vector

vector   Read_Data_D3_0
     initialize to Data_Valid_Out
          receive  Data_D3
     set  Data_D3         to "0"
end vector

vector   Read_Data_D3_1
     initialize to Data_Valid_Out
          receive  Data_D3
     set  Data_D3         to "1"
end vector

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

sub  Write_Data (Address,Data)
      execute     Address
      execute     Chip_enabled
      execute     Data
      execute     Write_enable
      execute     Write_disable
end sub

sub  Read_Data (Address,Data)
      execute     Address
      execute     Chip_enabled
      execute     Data
      execute     Read_disable
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_In_Dx, Write_en_Dx, Write_d_Dx)
      execute     Address
      execute     Chip_enabled
      execute     Data_In_Dx
      execute     Write_en_Dx
      execute     Write_d_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_0000000000, Data_In_D0_0, Write_en_D0, Write_d_D0)
  call Read_data (Address_0000000000, Read_data_D0_0)

  call Write_data_Dx (Address_0000000000, Data_In_D0_1, Write_en_D0, Write_d_D0)
  call Read_data (Address_0000000000, Read_data_D0_1)

end unit

unit   "awaretest D1 Test"

  call Write_data_Dx (Address_0000000000, Data_In_D1_0, Write_en_D1, Write_d_D1)
  call Read_data (Address_0000000000, Read_data_D1_0)

  call Write_data_Dx (Address_0000000000, Data_In_D1_1, Write_en_D1, Write_d_D1)
  call Read_data (Address_0000000000, Read_data_D1_1)

end unit

unit   "awaretest D2 Test"

  call Write_data_Dx (Address_0000000000, Data_In_D2_0, Write_en_D2, Write_d_D2)
  call Read_data (Address_0000000000, Read_data_D2_0)

  call Write_data_Dx (Address_0000000000, Data_In_D2_1, Write_en_D2, Write_d_D2)
  call Read_data (Address_0000000000, Read_data_D2_1)

end unit

unit   "awaretest D3 Test"

  call Write_data_Dx (Address_0000000000, Data_In_D3_0, Write_en_D3, Write_d_D3)
  call Read_data (Address_0000000000, Read_data_D3_0)

  call Write_data_Dx (Address_0000000000, Data_In_D3_1, Write_en_D3, Write_d_D3)
  call Read_data (Address_0000000000, Read_data_D3_1)

end unit

unit "RAM test"
     call Write_data (Address_0000000000, Data_In_0000)
     call Write_data (Address_0000000001, Data_In_0001)
     call Write_data (Address_0000000011, Data_In_0011)
     call Write_data (Address_0000000111, Data_In_0111)
     call Write_data (Address_0000001111, Data_In_1111)
     call Write_data (Address_0000011111, Data_In_1110)
     call Write_data (Address_0000111111, Data_In_1100)
     call Write_data (Address_0001111111, Data_In_1000)
     call Write_data (Address_0011111111, Data_In_1010)
     call Write_data (Address_0111111111, Data_In_0101)
     call Write_data (Address_1111111111, Data_In_0010)
     call Read_data (Address_0000000000, Read_data_0000)
     call Read_data (Address_0000000001, Read_data_0001)
     call Read_data (Address_0000000011, Read_data_0011)
     call Read_data (Address_0000000111, Read_data_0111)
     call Read_data (Address_0000001111, Read_data_1111)
     call Read_data (Address_0000011111, Read_data_1110)
     call Read_data (Address_0000111111, Read_data_1100)
     call Read_data (Address_0001111111, Read_data_1000)
     call Read_data (Address_0011111111, Read_data_1010)
     call Read_data (Address_0111111111, Read_data_0101)
     call Read_data (Address_1111111111, Read_data_0010)
end unit

unit "Chip_select_false"
     call Write_data (Address_0000000000, Data_In_1111)
     execute Address_0000000000
     execute Chip_select_false
     execute Chip_enabled
     execute Data_In_0000
     execute Write_enable
     execute Write_disable
     call Read_data (Address_0000000000, Read_data_1111)
end unit

unit "Chip_enable_false"
     call Write_data (Address_0000000000, Data_In_1111)
     execute Address_0000000000
     execute Chip_enable_false
     execute Data_In_0000
     execute Write_enable
     execute Write_disable
     call Read_data (Address_0000000000, Read_data_1111)
end unit

unit "Memory_status"
     execute Address_0000000000
     execute Chip_enabled
     execute Data_In_1111
     execute Memory_status_1
     execute Write_enable
     execute Write_disable
     execute Memory_status_0
     call Read_data (Address_0000000000, Read_data_1111)
end unit

!    End of test
