!!!! 6 0 1 991697858 Vd998 ! $Log: <@(#) A.10.00 New library.> $ !----------------------------------------------------------------------- ! Copyright (c) Hewlett-Packard Co. 1996 ! ! All Rights Reserved. Reproduction, adaptation, or translation ! without prior written permission is prohibited, except as allowed ! under the copyright laws. ! !----------------------------------------------------------------------- ! ! Device : 74f777 ! Function : Triple bidirectional latched bus transceiver ! revision : B.01.00 ! safeguard : hi_oc_fttl ! Modifications : Modified for AwareTest xi ! warning "This library has not been verified with hardware." ! Manufacturer : PHILIPS ! Package : 20-Pin DIP ! Test Platform : HP3070 ! !----------------------------------------------------------------------- ! ! Additional Information. ! ! 1. Chip Marking: 74F777N ! FWR0583 ! 9609nA ! ! 2. Ordering Information: ! Part Number Package ! ! N74F777F 20-Pin DIP ! N74F777A 20-Pin PLCC ! !------------------------------------------------------------------------------ sequential vector cycle 500n receive delay 400n assign VCC to pins 20, 19 assign GND to pins 10, 14, 18 assign LEbar_I to pins 3, 2, 1 assign OEA_I to pins 8, 6, 4 assign OEBbar_I to pins 11, 12, 13 assign DataA_B to pins 9, 7, 5 assign D0a_b to pins 5 !AT Added for minimum pin test. assign D1a_b to pins 7 !AT Added for minimum pin test. assign D2a_b to pins 9 !AT Added for minimum pin test. assign DataB_B to pins 15, 16, 17 assign D0b_b to pins 17 !AT Added for minimum pin test. assign D1b_b to pins 16 !AT Added for minimum pin test. assign D2b_b to pins 15 !AT Added for minimum pin test. assign Disable1_pins to pins 4, 6, 8 assign Disable2_pins to pins 11, 12, 13 !****************************************************************************** family TTL power VCC, GND inputs LEbar_I, OEA_I, OEBbar_I bidirectional DataA_B, DataB_B bidirectional D0a_b, D1a_b, D2a_b !AT Added for minimum pin test. bidirectional D0b_b, D1b_b, D2b_b !AT Added for minimum pin test. set load on groups DataA_B, DataB_B to pull up disable DataA_B with Disable1_pins to "000" disable DataB_B with Disable2_pins to "111" ! !----------------------------------------------------------------------- ! vector Initialize_Inputs receive DataA_B receive DataB_B set DataA_B to "xxx" set DataB_B to "xxx" set LEbar_I to "111" set OEA_I to "000" set OEBbar_I to "111" end vector vector Keep drive DataA_B receive DataB_B set DataA_B to "kkk" set DataB_B to "xxx" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_receivA receive DataA_B drive DataB_B set DataA_B to "xxx" set DataB_B to "kkk" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector LEbar_I_000 initialize to Keep set LEbar_I to "000" end vector vector LEbar_I_010 initialize to Keep set LEbar_I to "010" end vector vector LEbar_I_101 initialize to Keep set LEbar_I to "101" end vector vector LEbar_I_111 initialize to Keep set LEbar_I to "111" end vector vector LEbar_I_000_B initialize to Keep_receivA set LEbar_I to "000" end vector vector LEbar_I_111_B initialize to Keep_receivA set LEbar_I to "111" end vector vector OEA_I_000 initialize to Keep_receivA set OEA_I to "000" end vector vector OEA_I_010 initialize to Keep_receivA set OEA_I to "010" end vector vector OEA_I_101 initialize to Keep_receivA set OEA_I to "101" end vector vector OEA_I_111 initialize to Keep_receivA set OEA_I to "111" end vector vector OEBbar_I_000 initialize to Keep set OEBbar_I to "000" end vector vector OEBbar_I_010 initialize to Keep set OEBbar_I to "010" end vector vector OEBbar_I_101 initialize to Keep set OEBbar_I to "101" end vector vector OEBbar_I_111 initialize to Keep set OEBbar_I to "111" end vector vector DataA_B_000_D initialize to Keep drive DataA_B set DataA_B to "000" end vector vector DataA_B_010_D initialize to Keep drive DataA_B set DataA_B to "010" end vector vector DataA_B_101_D initialize to Keep drive DataA_B set DataA_B to "101" end vector vector DataA_B_111_D initialize to Keep drive DataA_B set DataA_B to "111" end vector vector DataB_B_000_D initialize to Keep_receivA drive DataB_B set DataB_B to "000" end vector vector DataB_B_010_D initialize to Keep_receivA drive DataB_B set DataB_B to "010" end vector vector DataB_B_101_D initialize to Keep_receivA drive DataB_B set DataB_B to "101" end vector vector DataA_B_010_R initialize to Keep_receivA receive DataA_B set DataA_B to "010" end vector vector DataA_B_101_R initialize to Keep_receivA receive DataA_B set DataA_B to "101" end vector vector DataB_B_000_R initialize to Keep_receivA receive DataA_B set DataB_B to "000" end vector vector DataB_B_010_R initialize to Keep receive DataB_B set DataB_B to "010" end vector vector DataB_B_101_R initialize to Keep receive DataB_B set DataB_B to "101" end vector vector DataB_B_111_R initialize to Keep receive DataB_B set DataB_B to "111" 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 Initialize_Inputs_D0 receive D0a_b receive D0b_b set D0a_b to "x" set D0b_b to "x" set LEbar_I to "111" set OEA_I to "000" set OEBbar_I to "111" end vector vector Initialize_Inputs_D1 receive D1a_b receive D1b_b set D1a_b to "x" set D1b_b to "x" set LEbar_I to "111" set OEA_I to "000" set OEBbar_I to "111" end vector vector Initialize_Inputs_D2 receive D2a_b receive D2b_b set D2a_b to "x" set D2b_b to "x" set LEbar_I to "111" set OEA_I to "000" set OEBbar_I to "111" end vector vector Keep_D0 drive D0a_b receive D0b_b set D0a_b to "k" set D0b_b to "x" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_D1 drive D1a_b receive D1b_b set D1a_b to "k" set D1b_b to "x" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_D2 drive D2a_b receive D2b_b set D2a_b to "k" set D2b_b to "x" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_receiveA_D0 receive D0a_b drive D0b_b set D0a_b to "x" set D0b_b to "k" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_receiveA_D1 receive D1a_b drive D1b_b set D1a_b to "x" set D1b_b to "k" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector Keep_receiveA_D2 receive D2a_b drive D2b_b set D2a_b to "x" set D2b_b to "k" set LEbar_I to "kkk" set OEA_I to "kkk" set OEBbar_I to "kkk" end vector vector LEbar_I_000_D0 initialize to Keep_D0 set LEbar_I to "000" end vector vector LEbar_I_111_D0 initialize to Keep_D0 set LEbar_I to "111" end vector vector LEbar_I_000_D1 initialize to Keep_D1 set LEbar_I to "000" end vector vector LEbar_I_111_D1 initialize to Keep_D1 set LEbar_I to "111" end vector vector LEbar_I_000_D2 initialize to Keep_D2 set LEbar_I to "000" end vector vector LEbar_I_111_D2 initialize to Keep_D2 set LEbar_I to "111" end vector vector LEbar_I_000_B_D0 initialize to Keep_receiveA_D0 set LEbar_I to "000" end vector vector LEbar_I_111_B_D0 initialize to Keep_receiveA_D0 set LEbar_I to "111" end vector vector LEbar_I_000_B_D1 initialize to Keep_receiveA_D1 set LEbar_I to "000" end vector vector LEbar_I_111_B_D1 initialize to Keep_receiveA_D1 set LEbar_I to "111" end vector vector LEbar_I_000_B_D2 initialize to Keep_receiveA_D2 set LEbar_I to "000" end vector vector LEbar_I_111_B_D2 initialize to Keep_receiveA_D2 set LEbar_I to "111" end vector vector OEA_I_000_D0 initialize to Keep_receiveA_D0 set OEA_I to "000" end vector vector OEA_I_111_D0 initialize to Keep_receiveA_D0 set OEA_I to "111" end vector vector OEA_I_000_D1 initialize to Keep_receiveA_D1 set OEA_I to "000" end vector vector OEA_I_111_D1 initialize to Keep_receiveA_D1 set OEA_I to "111" end vector vector OEA_I_000_D2 initialize to Keep_receiveA_D2 set OEA_I to "000" end vector vector OEA_I_111_D2 initialize to Keep_receiveA_D2 set OEA_I to "111" end vector vector OEBbar_I_000_D0 initialize to Keep_D0 set OEBbar_I to "000" end vector vector OEBbar_I_111_D0 initialize to Keep_D0 set OEBbar_I to "111" end vector vector OEBbar_I_000_D1 initialize to Keep_D1 set OEBbar_I to "000" end vector vector OEBbar_I_111_D1 initialize to Keep_D1 set OEBbar_I to "111" end vector vector OEBbar_I_000_D2 initialize to Keep_D2 set OEBbar_I to "000" end vector vector OEBbar_I_111_D2 initialize to Keep_D2 set OEBbar_I to "111" end vector vector D0a_b_0_D initialize to Keep_D0 drive D0a_b set D0a_b to "0" end vector vector D0a_b_1_D initialize to Keep_D0 drive D0a_b set D0a_b to "1" end vector vector D1a_b_0_D initialize to Keep_D1 drive D1a_b set D1a_b to "0" end vector vector D1a_b_1_D initialize to Keep_D1 drive D1a_b set D1a_b to "1" end vector vector D2a_b_0_D initialize to Keep_D2 drive D2a_b set D2a_b to "0" end vector vector D2a_b_1_D initialize to Keep_D2 drive D2a_b set D2a_b to "1" end vector vector D0b_b_0_D initialize to Keep_receiveA_D0 drive D0b_b set D0b_b to "0" end vector vector D0b_b_1_D initialize to Keep_receiveA_D0 drive D0b_b set D0b_b to "1" end vector vector D1b_b_0_D initialize to Keep_receiveA_D1 drive D1b_b set D1b_b to "0" end vector vector D1b_b_1_D initialize to Keep_receiveA_D1 drive D1b_b set D1b_b to "1" end vector vector D2b_b_0_D initialize to Keep_receiveA_D2 drive D2b_b set D2b_b to "0" end vector vector D2b_b_1_D initialize to Keep_receiveA_D2 drive D2b_b set D2b_b to "1" end vector vector D0a_b_0_R initialize to Keep_receiveA_D0 receive D0a_b set D0a_b to "0" end vector vector D0a_b_1_R initialize to Keep_receiveA_D0 receive D0a_b set D0a_b to "1" end vector vector D1a_b_0_R initialize to Keep_receiveA_D1 receive D1a_b set D1a_b to "0" end vector vector D1a_b_1_R initialize to Keep_receiveA_D1 receive D1a_b set D1a_b to "1" end vector vector D2a_b_0_R initialize to Keep_receiveA_D2 receive D2a_b set D2a_b to "0" end vector vector D2a_b_1_R initialize to Keep_receiveA_D2 receive D2a_b set D2a_b to "1" end vector vector D0b_b_0_R initialize to Keep_D0 receive D0b_b set D0b_b to "0" end vector vector D0b_b_1_R initialize to Keep_D0 receive D0b_b set D0b_b to "1" end vector vector D1b_b_0_R initialize to Keep_D1 receive D1b_b set D1b_b to "0" end vector vector D1b_b_1_R initialize to Keep_D1 receive D1b_b set D1b_b to "1" end vector vector D2b_b_0_R initialize to Keep_D2 receive D2b_b set D2b_b to "0" end vector vector D2b_b_1_R initialize to Keep_D2 receive D2b_b set D2b_b to "1" end vector ! !----------------------------------------------------------------------- ! !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 D0a_b to D0b_b Test" execute Initialize_inputs_D0 execute D0a_b_0_D execute LEbar_I_000_D0 execute LEbar_I_111_D0 execute OEBbar_I_000_D0 execute D0b_b_0_R execute OEBbar_I_111_D0 execute D0a_b_1_D execute LEbar_I_000_D0 execute LEbar_I_111_D0 execute OEBbar_I_000_D0 execute D0b_b_1_R execute OEBbar_I_111_D0 end unit unit "awaretest D1a_b to D1b_b Test" execute Initialize_inputs_D1 execute D1a_b_0_D execute LEbar_I_000_D1 execute LEbar_I_111_D1 execute OEBbar_I_000_D1 execute D1b_b_0_R execute OEBbar_I_111_D1 execute D1a_b_1_D execute LEbar_I_000_D1 execute LEbar_I_111_D1 execute OEBbar_I_000_D1 execute D1b_b_1_R execute OEBbar_I_111_D1 end unit unit "awaretest D2a_b to D2b_b Test" execute Initialize_inputs_D2 execute D2a_b_0_D execute LEbar_I_000_D2 execute LEbar_I_111_D2 execute OEBbar_I_000_D2 execute D2b_b_0_R execute OEBbar_I_111_D2 execute D2a_b_1_D execute LEbar_I_000_D2 execute LEbar_I_111_D2 execute OEBbar_I_000_D2 execute D2b_b_1_R execute OEBbar_I_111_D2 end unit unit "awaretest D0b_b to D0a_b Test" execute Initialize_inputs_D0 execute D0b_b_0_D execute LEbar_I_000_B_D0 execute LEbar_I_111_B_D0 execute OEA_I_111_D0 execute D0a_b_0_R execute OEA_I_000_D0 execute D0b_b_1_D execute LEbar_I_000_B_D0 execute LEbar_I_111_B_D0 execute OEA_I_111_D0 execute D0a_b_1_R execute OEA_I_000_D0 end unit unit "awaretest D1b_b to D1a_b Test" execute Initialize_inputs_D1 execute D1b_b_0_D execute LEbar_I_000_B_D1 execute LEbar_I_111_B_D1 execute OEA_I_111_D1 execute D1a_b_0_R execute OEA_I_000_D1 execute D1b_b_1_D execute LEbar_I_000_B_D1 execute LEbar_I_111_B_D1 execute OEA_I_111_D1 execute D1a_b_1_R execute OEA_I_000_D1 end unit unit "awaretest D2b_b to D2a_b Test" execute Initialize_inputs_D2 execute D2b_b_0_D execute LEbar_I_000_B_D2 execute LEbar_I_111_B_D2 execute OEA_I_111_D2 execute D2a_b_0_R execute OEA_I_000_D2 execute D2b_b_1_D execute LEbar_I_000_B_D2 execute LEbar_I_111_B_D2 execute OEA_I_111_D2 execute D2a_b_1_R execute OEA_I_000_D2 end unit !********************************************************************* !TO TEST DATA LINES ! ! 1. Drive A0-A2 lines ! 2. Enable latch inputs ! 3. Enable outputs B0-B2 and check them. ! 4. Drive B0-B2 lines ! 5. Enable latch inputs ! 6. Enable outputs A0-A2 and check them. !******************************************************************** unit "Test1 : Data lines" execute Initialize_inputs execute DataA_B_101_D execute LEbar_I_000 execute LEbar_I_111 execute OEBbar_I_000 execute DataB_B_101_R execute OEBbar_I_111 execute DataA_B_010_D execute LEbar_I_000 execute LEbar_I_111 execute OEBbar_I_000 execute DataB_B_010_R execute OEBbar_I_111 execute DataB_B_101_D execute LEbar_I_000_B execute LEbar_I_111_B execute OEA_I_111 execute DataA_B_101_R execute OEA_I_000 execute DataB_B_010_D execute LEbar_I_000_B execute LEbar_I_111_B execute OEA_I_111 execute DataA_B_010_R execute OEA_I_000 end unit !***************************************************************************** ! TO TEST OUTPUT ENABLE LINES OF A0-A2, B0-B2 ! ! 1. Drive A0-A2 to low and lacth them. ! 2. Enable each B0-B2 lines and check them for low. ! 3. Drive B0-B2 to low and lacth them. ! 4. Enable each A0-A2 lines and check them for low. !***************************************************************************** unit "Test2 : OE lines" execute Initialize_inputs execute DataA_B_000_D execute LEbar_I_000 execute LEbar_I_111 execute OEBbar_I_101 execute DataB_B_101_R execute OEBbar_I_111 execute DataA_B_000_D execute LEbar_I_000 execute LEbar_I_111 execute OEBbar_I_010 execute DataB_B_010_R execute OEBbar_I_111 execute DataB_B_000_D execute LEbar_I_000_B execute LEbar_I_111_B execute OEA_I_010 execute DataA_B_101_R execute OEA_I_000 execute DataB_B_000_D execute LEbar_I_000_B execute LEbar_I_111_B execute OEA_I_101 execute DataA_B_010_R execute OEA_I_000 end unit !****************************************************************************** ! TO TEST LE* LINES ! ! 1. Drive A0-A2 lines low & check them on B0-B2 lines. ! 2. Drive each A0-A2 line & lacth them. ! 3. Check on B0-B2 lines respectively. !****************************************************************************** unit "Test3 : LE lines" execute Initialize_inputs execute DataA_B_000_D execute LEbar_I_000 execute LEbar_I_111 execute OEBbar_I_000 execute DataB_B_000_R execute OEBbar_I_111 execute DataA_B_111_D execute LEbar_I_101 execute LEbar_I_111 execute OEBbar_I_010 execute DataB_B_010_R execute OEBbar_I_111 execute DataA_B_101_D execute LEbar_I_010 execute LEbar_I_111 execute OEBbar_I_000 execute DataB_B_111_R execute OEBbar_I_111 end unit ! ! End of test !