!!!!    6    0    1  990130098  V9176                                         

! Device           : 74S226
! Function         : Bus_Transceiver 3_State parallel_4_Bit
! revision         : B.01.00
! safeguard        : standard_lsttl
! Modifications    : Modified for AwareTest xi
!
  warning           "This library has not been verified with hardware."

sequential

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

assign VCC                to pins 16
assign GND                to pins 8

assign Bus_A              to pins 6,5,4,3
assign Bus_A_D0           to pins 3
assign Bus_A_D1           to pins 4
assign Bus_A_D2           to pins 5
assign Bus_A_D3           to pins 6

assign Bus_A_Control      to pins 7

assign Bus_B              to pins 10,11,12,13
assign Bus_B_D0           to pins 13
assign Bus_B_D1           to pins 12
assign Bus_B_D2           to pins 11
assign Bus_B_D3           to pins 10

assign Bus_B_Control      to pins 9

assign Strobe_AB          to pins 15
assign Strobe_BA          to pins 1
assign Select             to pins 14,2

power  VCC,  GND

family  TTL

inputs Bus_A_Control, Bus_B_Control, Strobe_AB, Strobe_BA, Select
bidirectional Bus_A, Bus_B
bidirectional Bus_A_D0,Bus_A_D1,Bus_A_D2,Bus_A_D3!AT Added for minimum pin test.
bidirectional Bus_B_D0,Bus_B_D1,Bus_B_D2,Bus_B_D3!AT Added for minimum pin test.

set load on groups Bus_A, Bus_B      to pull up

when  Bus_A_Control is "0" inactive Bus_A
when  Bus_B_Control is "0" inactive Bus_B

when  Select is "00" inputs   Bus_B
when  Select is "00" outputs  Bus_A

when  Select is "01" outputs  Bus_A,Bus_B

when  Select is "10" inputs   Bus_A
when  Select is "10" outputs  Bus_B

when  Select is "11" inputs   Bus_A,Bus_B

trace Bus_A to Select,Bus_A_Control,Bus_B,Strobe_BA
trace Bus_B to Select,Bus_B_Control,Bus_A,Strobe_AB

disable  Bus_A   with  Bus_A_Control  to  "0"
disable  Bus_B   with  Bus_B_Control  to  "0"

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



vector  Pass_A_to_B__0000
     drive Bus_A
     receive Bus_B
     set Bus_A            to "0000"
     set Bus_B            to "0000"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__1111
     drive Bus_A
     receive  Bus_B
     set Bus_A            to "1111"
     set Bus_B            to "1111"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector Pass_B_to_A__0000
     drive Bus_B
     receive Bus_A
     set Bus_A            to "0000"
     set Bus_B            to "0000"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__1111
     drive Bus_B
     receive Bus_A
     set Bus_A            to "1111"
     set Bus_B            to "1111"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Latch_A_Data
     drive Bus_A
     set Bus_A            to "KKKK"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector Read_from_B__1111
     drive Bus_A
     receive Bus_B
     set Bus_A            to "KKKK"
     set Bus_B            to "1111"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "1"
end vector

vector Read_from_B__0000
     drive Bus_A
     receive Bus_B
     set Bus_A            to "KKKK"
     set Bus_B            to "0000"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "1"
end vector

vector  Change_A_Data__0000
     drive Bus_A
     set Bus_A            to "0000"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Select           to "10"
     set Strobe_AB        to "1"
end vector

vector  Change_A_Data__1111
     drive Bus_A
     set Bus_A            to "1111"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Select           to "10"
     set Strobe_AB        to "1"
end vector

vector Latch_B_Data
     drive Bus_B
     set Bus_B            to "KKKK"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Read_from_A__1111
     drive Bus_B
     receive Bus_A
     set Bus_A            to "1111"
     set Bus_B            to "KKKK"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "1"
end vector

vector Read_from_A__0000
     drive Bus_B
     receive Bus_A
     set Bus_A            to "0000"
     set Bus_B            to "KKKK"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "1"
end vector

vector  Change_B_Data__0000
     drive Bus_B
     set Bus_B            to "0000"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Select           to "00"
     set Strobe_BA        to "1"
end vector

vector  Change_B_Data__1111
     drive Bus_B
     set Bus_B            to "1111"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Select           to "00"
     set Strobe_BA        to "1"
end vector

vector  Set_AB_to_1010__0101
     drive Bus_A
     drive Bus_B
     set Bus_A            to "1010"
     set Bus_B            to "0101"
     set Select           to "00"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "0"
     set Strobe_AB        to "1"
     set Strobe_Ba        to "1"
end vector

vector Latch_AB_Data
     drive Bus_A
     drive Bus_B
     set Bus_A            to "KKKK"
     set Bus_B            to "KKKK"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "0"
     set Select           to "11"
     set Strobe_AB        to "1"
     set Strobe_BA        to "1"
end vector

vector   Read_from_AB_1010__0101
     receive Bus_A
     receive Bus_B
     set Bus_A            to "1010"
     set Bus_B            to "0101"
     set Select           to "01"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "0"
     set Strobe_AB        to "1"
     set Strobe_BA        to "1"
end vector

!AT The following vectors have been added for a minimum pins test. Any
!AT vectors that references the A or B bus was copied and modified to reference
!AT only a single pin of the bus.

vector  Pass_A_to_B__D0_0
     drive Bus_A_D0
     receive Bus_B_D0
     set Bus_A_D0         to "0"
     set Bus_B_D0         to "0"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D1_0
     drive Bus_A_D1
     receive Bus_B_D1
     set Bus_A_D1         to "0"
     set Bus_B_D1         to "0"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D2_0
     drive Bus_A_D2
     receive Bus_B_D2
     set Bus_A_D2         to "0"
     set Bus_B_D2         to "0"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D3_0
     drive Bus_A_D3
     receive Bus_B_D3
     set Bus_A_D3         to "0"
     set Bus_B_D3         to "0"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D0_1
     drive Bus_A_D0
     receive  Bus_B_D0
     set Bus_A_D0         to "1"
     set Bus_B_D0         to "1"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D1_1
     drive Bus_A_D1
     receive  Bus_B_D1
     set Bus_A_D1         to "1"
     set Bus_B_D1         to "1"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D2_1
     drive Bus_A_D2
     receive  Bus_B_D2
     set Bus_A_D2         to "1"
     set Bus_B_D2         to "1"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector  Pass_A_to_B__D3_1
     drive Bus_A_D3
     receive  Bus_B_D3
     set Bus_A_D3         to "1"
     set Bus_B_D3         to "1"
     set Select           to "10"
     set Bus_A_Control    to "0"
     set Bus_B_Control    to "1"
     set Strobe_AB        to "0"
end vector

vector Pass_B_to_A__D0_0
     drive Bus_B_D0
     receive Bus_A_D0
     set Bus_A_D0         to "0"
     set Bus_B_D0         to "0"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D1_0
     drive Bus_B_D1
     receive Bus_A_D1
     set Bus_A_D1         to "0"
     set Bus_B_D1         to "0"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D2_0
     drive Bus_B_D2
     receive Bus_A_D2
     set Bus_A_D2         to "0"
     set Bus_B_D2         to "0"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D3_0
     drive Bus_B_D3
     receive Bus_A_D3
     set Bus_A_D3         to "0"
     set Bus_B_D3         to "0"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D0_1
     drive Bus_B_D0
     receive Bus_A_D0
     set Bus_A_D0         to "1"
     set Bus_B_D0         to "1"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D1_1
     drive Bus_B_D1
     receive Bus_A_D1
     set Bus_A_D1         to "1"
     set Bus_B_D1         to "1"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D2_1
     drive Bus_B_D2
     receive Bus_A_D2
     set Bus_A_D2         to "1"
     set Bus_B_D2         to "1"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

vector Pass_B_to_A__D3_1
     drive Bus_B_D3
     receive Bus_A_D3
     set Bus_A_D3         to "1"
     set Bus_B_D3         to "1"
     set Select           to "00"
     set Bus_A_Control    to "1"
     set Bus_B_Control    to "0"
     set Strobe_BA        to "0"
end vector

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

!AT The following AwareTest units have been added for minimum pins tests. Each
!AT unit tests a separate output pin starting with Y0.

unit  "awaretest A to B D0 Test"

     execute Pass_A_to_B__D0_0
     execute Pass_A_to_B__D0_1

end unit

unit  "awaretest A to B D1 Test"

     execute Pass_A_to_B__D1_0
     execute Pass_A_to_B__D1_1

end unit

unit  "awaretest A to B D2 Test"

     execute Pass_A_to_B__D2_0
     execute Pass_A_to_B__D2_1

end unit

unit  "awaretest A to B D3 Test"

     execute Pass_A_to_B__D3_0
     execute Pass_A_to_B__D3_1

end unit

unit  "awaretest B to A D0 Test"

     execute Pass_B_to_A__D0_0
     execute Pass_B_to_A__D0_1

end unit

unit  "awaretest B to A D1 Test"

     execute Pass_B_to_A__D1_0
     execute Pass_B_to_A__D1_1

end unit

unit  "awaretest B to A D2 Test"

     execute Pass_B_to_A__D2_0
     execute Pass_B_to_A__D2_1

end unit

unit  "awaretest B to A D3 Test"

     execute Pass_B_to_A__D3_0
     execute Pass_B_to_A__D3_1

end unit


unit   "Tranceiver test"

     execute Pass_A_to_B__0000
     execute Pass_A_to_B__1111

     execute Latch_A_Data
     execute Read_from_B__1111
     execute Change_A_Data__0000
     execute Read_from_B__1111

     execute Latch_A_Data
     execute Read_from_B__0000
     execute Change_A_Data__1111
     execute Read_from_B__0000

     execute Pass_B_to_A__0000
     execute Pass_B_to_A__1111

     execute Latch_B_Data
     execute Read_from_A__1111
     execute Change_B_Data__0000
     execute Read_from_A__1111

     execute Latch_B_Data
     execute Read_from_A__0000
     execute Change_B_Data__1111
     execute Read_from_A__0000

     execute Set_AB_to_1010__0101
     execute Latch_AB_Data
     execute Read_from_AB_1010__0101

end unit


