!!!!    6    0    1  992022013  V8506                                         

! Device           : 4094
! Function         : Shift_Storage_Register 3_State 8_Bit
! revision         : B.01.00
! safeguard        : standard_cmos
! Modifications    : No modifications. This test is compatible for AwareTest xi
!

sequential

warning "Pull-ups are required to test high-impedance outputs."

vector cycle 1.34u
receive delay 1.24u

assign VDD           to pins 16
assign VSS           to pins  8

assign Clock         to pins 3
assign Data          to pins 2
assign Strobe        to pins 1
assign Enable        to pins 15
assign Output_1      to pins 4
assign Output_2      to pins 5
assign Output_3      to pins 6
assign Output_4      to pins 7
assign Output_5      to pins 14
assign Output_6      to pins 13
assign Output_7      to pins 12
assign Output_8      to pins 11
assign Output_S      to pins 9
assign Output_S_Prime to pins 10
assign Tri_State     to pins 4,5,6,7,14,13,12,11

power  VDD,  VSS
family  CMOS

inputs Clock, Data, Strobe, Enable
outputs Output_1, Output_2, Output_3, Output_4, Output_5, Output_6
outputs Output_7, Output_8, Output_S, Output_S_Prime
outputs Tri_State

disable Tri_State     with   Enable  to "0"

when Enable  is  "0" inactive  Tri_State

trace Output_1  to   Clock, Data, Strobe, Enable
trace Output_2  to   Clock, Data, Strobe, Enable
trace Output_3  to   Clock, Data, Strobe, Enable
trace Output_4  to   Clock, Data, Strobe, Enable
trace Output_5  to   Clock, Data, Strobe, Enable
trace Output_6  to   Clock, Data, Strobe, Enable
trace Output_7  to   Clock, Data, Strobe, Enable
trace Output_8  to   Clock, Data, Strobe, Enable
trace Output_S_Prime  to   Clock, Data
trace Output_S        to   Clock, Data

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

vector Clock_Low
     set Clock       to "0"
     set Data        to "K"
     set Strobe      to "K"
     set Enable      to "1"
end vector

vector Clock_High
     set Clock       to "1"
     set Data        to "K"
     set Strobe      to "K"
     set Enable      to "1"
end vector

vector Data_Low
     set Enable      to "1"
     set Data        to "0"
     set Clock       to "0"
end vector

vector Data_High
     set Enable      to "1"
     set Data        to "1"
     set Clock       to "0"
end vector

vector Toggle_Data
     set Strobe      to "K"
     set Clock       to "0"
     set Enable      to "1"
     set Data        to "T"
end vector

vector Strobe_Low
     set Enable      to "1"
     set Data        to "K"
     set Strobe      to "0"
     set Clock       to "0"
end vector

vector Strobe_High
     set Enable      to "1"
     set Data        to "K"
     set Strobe      to "1"
     set Clock       to "0"
end vector

vector Output_1_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_1    to "0"
end vector

vector Output_1_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_1    to "1"
end vector

vector Output_2_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_2    to "0"
end vector

vector Output_2_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_2    to "1"
end vector

vector Output_3_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_3    to "0"
end vector

vector Output_3_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_3    to "1"
end vector

vector Output_4_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_4    to "0"
end vector

vector Output_4_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_4    to "1"
end vector

vector Output_5_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_5    to "0"
end vector

vector Output_5_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_5    to "1"
end vector

vector Output_6_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_6    to "0"
end vector

vector Output_6_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_6    to "1"
end vector

vector Output_7_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_7    to "0"
end vector

vector Output_7_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_7    to "1"
end vector

vector Output_8_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_8    to "0"
end vector

vector Output_8_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_8    to "1"
end vector

vector Output_S_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_S    to "0"
end vector

vector Output_S_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_S    to "1"
end vector

vector Output_S_Prime_Low
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_S_Prime to "0"
end vector

vector Output_S_Prime_High
     set Enable      to "1"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Output_S_Prime to "1"
end vector

vector Outputs_Tri_Stated
     set Enable      to "0"
     set Clock       to "0"
     set Strobe      to "K"
     set Data        to "K"
     set Tri_State   to "11111111"
end vector

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

unit "Output 1 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_1_Low      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 2 times
          execute Clock_High
          execute Clock_Low
          execute Output_1_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_1_High     exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 2 times
          execute Clock_High
          execute Clock_Low
          execute Output_1_High
     end repeat
end unit

unit "Output 2 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_2_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 3 times
          execute Clock_High
          execute Clock_Low
          execute Output_2_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_2_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 3 times
          execute Clock_High
          execute Clock_Low
          execute Output_2_High
     end repeat
end unit

unit "Output 3 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_3_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 4 times
          execute Clock_High
          execute Clock_Low
          execute Output_3_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_3_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 4 times
          execute Clock_High
          execute Clock_Low
          execute Output_3_High
     end repeat
end unit

unit "Output 4 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_4_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 5 times
          execute Clock_High
          execute Clock_Low
          execute Output_4_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_4_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 5 times
          execute Clock_High
          execute Clock_Low
          execute Output_4_High
     end repeat
end unit

unit "Output 5 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_5_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 6 times
          execute Clock_High
          execute Clock_Low
          execute Output_5_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_5_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 6 times
          execute Clock_High
          execute Clock_Low
          execute Output_5_High
     end repeat
end unit

unit "Output 6 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_6_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 7 times
          execute Clock_High
          execute Clock_Low
          execute Output_6_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_6_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 7 times
          execute Clock_High
          execute Clock_Low
          execute Output_6_High
     end repeat
end unit

unit "Output 7 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_7_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 8 times
          execute Clock_High
          execute Clock_Low
          execute Output_7_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_7_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 8 times
          execute Clock_High
          execute Clock_Low
          execute Output_7_High
     end repeat
end unit

unit "Output 8 test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_8_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 9 times
          execute Clock_High
          execute Clock_Low
          execute Output_8_Low
     end repeat

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_8_High      exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     repeat 9 times
          execute Clock_High
          execute Clock_Low
          execute Output_8_High
     end repeat
end unit

unit "Output S test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_S_Low       exit if pass
     end homingloop
     execute Toggle_Data

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_S_High      exit if pass
     end homingloop
end unit

unit "Output S_Prime test"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_S_Prime_Low       exit if pass
     end homingloop
     execute Toggle_Data

     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_S_Prime_High      exit if pass
     end homingloop
end unit

unit "Outputs Tri-Stated"
     execute Data_Low
     homingloop      10 times
          execute Strobe_High
          execute Clock_High
          execute Clock_Low
          execute Output_1_Low       exit if pass
     end homingloop
     execute Strobe_Low
     execute Toggle_Data
     execute Outputs_Tri_Stated
end unit

!    End of Test






