!!!! 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