!!!!    6    0    1  991880089  V1560                                         

! Device           : 4031
! Function         : shift_register totem 64-bit_serial-in/out
! revision         : B.01.00
! safeguard        : standard_cmos
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

vector cycle 1u
receive delay 900n

assign  VDD         to pins 16
assign  VSS         to pins 8

assign  Data_in_1   to pins 15
assign  Data_in_2   to pins 1

assign  Output      to pins 6
assign  Output_bar  to pins 7
assign  Output_delayed  to pins 5
assign  Data_outputs    to pins 6,7,5
assign  D0              to pins 5          !AT Added for minimum pin test.
assign  D1              to pins 7          !AT Added for minimum pin test.
assign  D2              to pins 6          !AT Added for minimum pin test.

assign  Mode_input  to pins 10
assign  Clock_input to pins 2
assign  Clock_output    to pins 9

assign  NC           to pins 3,4,11,12,13,14

family  CMOS

power   VDD, VSS

inputs  Data_in_1, Data_in_2, Clock_input, Mode_input

outputs Output, Output_bar, Output_delayed
outputs Data_outputs, Clock_output
outputs D0, D1, D2              !AT Added for minimum pin test.

outputs limited to 2 at "0", 2 at "1"

nondigital NC

trace Output to  Data_in_1, Data_in_2, Clock_input, Mode_input
trace Output_bar to  Data_in_1, Data_in_2, Clock_input, Mode_input
trace Output_delayed to Data_in_1, Data_in_2, Clock_input, Mode_input

trace Clock_output   to  Clock_input

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

vector    Clock_high__1
     set  Mode_input          to "0"
     set  Data_in_1           to "k"
     set  Clock_output        to "1"
     set  Clock_input         to "1"
end vector

vector    Clock_high__2
     set  Mode_input          to "1"
     set  Data_in_2           to "k"
     set  Clock_output        to "1"
     set  Clock_input         to "1"
end vector

vector    Clock_high__serial
     set  Mode_input          to "k"
     set  Clock_output        to "1"
     set  Clock_input         to "1"
end vector

vector    Clock_low
     set  Mode_input          to "k"
     set  Clock_output        to "0"
     set  Clock_input         to "0"
end vector

vector    Data_1_high
     set  Mode_input          to "0"
     set  Clock_input         to "0"
     set  Data_in_1           to "1"
end vector

vector    Data_1_low
     set  Mode_input          to "0"
     set  Clock_input         to "0"
     set  Data_in_1           to "0"
end vector

vector    Data_2_high
     set  Mode_input          to "1"
     set  Clock_input         to "0"
     set  Data_in_2           to "1"
end vector

vector    Data_2_low
     set  Mode_input          to "1"
     set  Clock_input         to "0"
     set  Data_in_2           to "0"
end vector

vector    Outputs_010
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  Data_outputs        to "010"
end vector

vector    Outputs_101
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  Data_outputs        to "101"
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    Clk_high
     set  Clock_output        to "1"
     set  Clock_input         to "1"
end vector

vector    Clk_low
     set  Clock_output        to "0"
     set  Clock_input         to "0"
end vector

vector    Clock_high__1_AT
     set  Mode_input          to "0"
     set  Data_in_1           to "k"
     set  Clock_input         to "1"
end vector

vector    Clock_high__2_AT
     set  Mode_input          to "1"
     set  Data_in_2           to "k"
     set  Clock_input         to "1"
end vector

vector    Clock_high__serial_AT
     set  Mode_input          to "k"
     set  Clock_input         to "1"
end vector

vector    Clock_low_AT
     set  Mode_input          to "k"
     set  Clock_input         to "0"
end vector

vector    D0_0
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D0                  to "0"
end vector

vector    D0_1
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D0                  to "1"
end vector

vector    D1_0
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D1                  to "0"
end vector

vector    D1_1
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D1                  to "1"
end vector

vector    D2_0
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D2                  to "0"
end vector

vector    D2_1
     set  Mode_input          to "k"
     set  Clock_input         to "0"
     set  D2                  to "1"
end vector

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

sub  Clock_cycle (Clock_high)
     execute   Clock_high
     execute   Clock_low
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 Clock output Test"
     execute   Clk_low
     execute   Clk_high
end unit

unit "awaretest D0 Data 1 input Test"
     repeat    32 times
          execute   Data_1_high
          execute   Clock_high__1_AT
          execute   Clock_low_AT
          execute   Data_1_low
          execute   Clock_high__1_AT
          execute   Clock_low_AT
     end repeat
     execute   D0_1
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D0_0
end unit

unit "awaretest D1 Data 1 input Test"
     repeat    32 times
          execute   Data_1_high
          execute   Clock_high__1_AT
          execute   Clock_low_AT
          execute   Data_1_low
          execute   Clock_high__1_AT
          execute   Clock_low_AT
     end repeat
     execute   D1_0
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D1_1
end unit

unit "awaretest D2 Data 1 input Test"
     repeat    32 times
          execute   Data_1_high
          execute   Clock_high__1_AT
          execute   Clock_low_AT
          execute   Data_1_low
          execute   Clock_high__1_AT
          execute   Clock_low_AT
     end repeat
     execute   D2_1
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D2_0
end unit

unit "awaretest D0 Data 2 input Test"
     repeat    32 times
          execute   Data_2_high
          execute   Clock_high__2_AT
          execute   Clock_low_AT
          execute   Data_2_low
          execute   Clock_high__2_AT
          execute   Clock_low_AT
     end repeat
     execute   D0_1
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D0_0
end unit

unit "awaretest D1 Data 2 input Test"
     repeat    32 times
          execute   Data_2_high
          execute   Clock_high__2_AT
          execute   Clock_low_AT
          execute   Data_2_low
          execute   Clock_high__2_AT
          execute   Clock_low_AT
     end repeat
     execute   D1_0
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D1_1
end unit

unit "awaretest D2 Data 2 input Test"
     repeat    32 times
          execute   Data_2_high
          execute   Clock_high__2_AT
          execute   Clock_low_AT
          execute   Data_2_low
          execute   Clock_high__2_AT
          execute   Clock_low_AT
     end repeat
     execute   D2_1
     execute   Clock_high__serial_AT
     execute   Clock_low_AT
     execute   D2_0
end unit

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

unit "test Data 1 input"
     repeat    32 times
          execute   Data_1_high
          call      Clock_cycle (Clock_high__1)
          execute   Data_1_low
          call      Clock_cycle (Clock_high__1)
     end repeat
     execute   Outputs_101
     call      Clock_cycle (Clock_high__serial)
     execute   Outputs_010
     call      Clock_cycle (Clock_high__serial)
     execute   Outputs_101
end unit

unit "test Data 2 input"
     repeat    32 times
          execute   Data_2_high
          call      Clock_cycle (Clock_high__2)
          execute   Data_2_low
          call      Clock_cycle (Clock_high__2)
     end repeat
     execute   Outputs_101
     call      Clock_cycle (Clock_high__serial)
     execute   Outputs_010
     call      Clock_cycle (Clock_high__serial)
     execute   Outputs_101
end unit

!    End of test

