Abstract:
A circuit and technique is described for adding boundary scan test capability to circuit boards and systems, thereby improving the ability to test and verify proper operation of such systems using nonintrusive methods. An integrated circuit consisting of a serial path of input/output buffers, an instruction register, and a serial test access port circuit is described. The integrated circuit can be coupled to a number of input and output signals, and the serial test bus is then used in conjunction with the test access port and instruction register circuitry to observe or control any or all of the signals present at the pins of the integrated circuit. Each pin may be programmed as an input or output for a particular operation. Because the integrated circuit is programmable and can be applied to any system, the need for design of special test hardware is eliminated, and the user may build in boundary scan capability into any arbitrary system. This is of particular importance when adding test capability to systems comprised of an array of off-the-shelf components, many of which do not have these capabilities.

Description:
This application is a continuation of application Ser. No. 08/177,784, filed Jan. 5, 1994 now abandoned; which is a continuation of application Ser. No. 07/711,490, filed Jun. 6, 1991, now abandoned. 
    
    
     (C) Copyright, *M* Texas Instruments Incorporated 1991. A portion of the disclosure of this patent document contains material which is subject to copyright and mask work protection. The copyright and mask work owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright and mask work rights whatsoever. 
     FIELD OF THE INVENTION 
     This invention relates generally to integrated circuits utilizing boundary scan testability technology and applications of boundary scan circuits and techniques in applications such as circuit board design using high density technologies like surface mount technology (SMT), application specific integrated circuits (ASICs), programmable integrated circuits and systems. 
     BACKGROUND OF THE INVENTION 
     It is often desirable to provide improved accessibility to specific areas of an integrated circuit or a group of integrated circuits installed in a surface mount technology (SMT) or other high density environment (TAB, PCB) that allows the user to test and verify proper operation of a particular IC or path without any modification of the hardware or additional physical connections to the circuits or to the system the circuits reside in. The test access hardware should not affect the normal operation of the circuits or create additional delays or performance problems, and should be done nonintrusively so that the individual integrated circuits and the system can be tested while installed in an operational environment. The need for this kind of testability access led to the development of boundary scan techniques which allow access to the pins of the integrated circuits without intrusive test hardware. The need to test integrated circuits manufactured by different vendors in a system environment further led to the development of a standard testability bus for boundary scan applications, the JTAG (Joint Test Action Group) standard bus. The JTAG bus is now governed by IEEE standard 1149.1. 
     A designer who wishes to build boundary scan testing into a circuit board, integrated circuit or system and use the JTAG bus must first implement the boundary scan path and configure it for the particular application or system. This task becomes particularly difficult when the designer intends to use memories or other off-the-shelf components which are not JTAG compatible. The high cost of designing hardware or a custom integrated circuit for a particular application, coupled with the amount of time required to design, test and fabricate such hardware or customized integrated circuits creates a need for a general purpose, universal, programmable integrated circuit device which can be used to implement and test boundary scan paths using the JTAG bus for any application. 
     Without limiting the scope of the invention, its background is described in connection with boundary scan techniques used to test and communicate with integrated circuit devices (ICs) not having built in boundary scan capabilities. Although the particular embodiment presupposes the use of the JTAG standard bus, alternative communication arrangements can be used, as will be obvious to one experienced in the art. 
     Heretofore, in this field, various boundary scan techniques have been used by system designers. However, each designer has had to implement a scan bus specifically designed for each application. The time and cost of designing, testing and manufacturing hardware or custom integrated circuits for each system is prohibitive. Further, the use of several different systems in one operating environment, each system having a different boundary scan methodology, results in reduced capability and creates a need for additional translation hardware or bus couplers which require additional design and test time and may reduce overall system performance. 
     SUMMARY OF THE INVENTION 
     Generally, and in one form of the invention, a programmable integrated circuit consisting of a plurality of input/output buffers each coupled to an I/O pin control circuit, the I/O pin control circuits being serially coupled to provide scan path access to the entire plurality of I/O pin control circuits and pins, a bypass circuit to provide a method for communicating to other programmable integrated circuits serially coupled without affecting the normal non-test operations in progress, an instruction decoding block which receives serial data and commands from a JTAG bus, decodes a set of instructions and in response controls the input/output buffers and bypass logic, and a JTAG Test Access Port circuit which couples the integrated circuit to a standard JTAG bus is described. 
     Each I/O pin (64 in the described implementation) provided by the device is independently programmable, so that the device can be used in test applications to drive and sense test vector data to or from the device under test. Each I/O pin has two associated boundary scan bits, to allow the output driver to be configured as either enabled or disabled and the logic level asserted to be either a logic 1 or logic 0 for each pin. A reset state where all drivers are configured in tri-state mode is provided to prevent clashes with the unit under test at power up or during initial programming. 
     The device architecture may also be embedded in application logic to provide testability functions in areas of otherwise low JTAG observability to improve testability. 
     Further embodiments disclosed herein involve using the boundary scan integrated circuit as part of a test fixture for testing integrated circuits or circuit boards. Multiple universal boundary scan driver/sensor ICs are serially interconnected until the required number of I/O pins is provided for connection to the device under test. This technique advantageously provides a method for rapidly constructing a test fixture for any device which is to be tested without additional hardware design or manufacturing overhead. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings: 
     FIG. 1 is a block diagram of the Boundary Scan Driver/Sensor Device; 
     FIG. 2 is a diagram of the I/O pin control circuitry; 
     FIG. 3 is a diagram of the bypass circuitry; 
     FIG. 4 is a diagram of the instruction decode circuitry; 
     FIG. 5 is a diagram of the TDO Select and Resync circuitry; 
     FIG. 6 is a diagram of the JTAG Test Access Port (TAP) circuitry; and 
     FIG. 7 is a block diagram of an application of the driver/sensor IC in a device test fixture. 
     Corresponding numerals and symbols in the different figures refer to corresponding parts, unless otherwise indicated. 
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     In FIG. 1, a diagram of an integrated circuit containing the boundary scan sensor/driver circuitry 1 is depicted. A plurality of I/O control circuits 3 is shown, each serially coupled to its nearest neighbors and each coupled to an I/O buffer 5 consisting of an input buffer, an output buffer with an enable line, and a pad. The output of the scan path leaves the highest ordered I/O control block (here, there are 64 by way of example, enumerated from 0 to 63) and is coupled to the Test Data Output (TDO) Select and Resync circuitry 11. 
     The JTAG bus is coupled to the JTAG Test Access Port (TAP) circuitry 13. The test data input signal from the JTAG bus, TDI, is coupled to the lowest ordered I/O control circuit 3, the Bypass circuitry 7, and the Instruction register circuitry 9. 
     In operation, the JTAG bus sends command and data messages by handshaking with the Boundary Scan Driver/Sensor IC on the TMS, TRST --   and TCK lines. Commands are sent as serial data on the TDI line and shifted into the Instruction register 9 for decoding. The reader is referred to the JTAG Bus Specification, IEEE standard 1149.1, for details and timing of the transmission of commands and data on the JTAG bus. 
     Once a command is shifted into the Instruction block 9 and decoded, the Boundary Scan Sensor IC executes the instruction to shift in data from the JTAG bus to the I/O control circuits 3, shift out captured data onto the JTAG bus by means of the TDO Select and Resync circuit 11, capture data present on the I/O lines into the I/O control circuits 3, or drive data onto the I/O lines by means of the I/O buffers 5. Although many enhancements are possible within the scope of this invention which will be obvious to the reader familiar with the art, these four operations are described in detail later herein by way of example. 
     FIG. 2 depicts the internal circuitry of the I/O control blocks and the I/O buffer circuitry. Each I/O control block consists of two flip-flop registers and two latches, the data register 15 and data latch 25 and the control register 17 and control latch 23. Additionally, the data and control registers each have an input mux, the data input mux 19 and the control input mux 21. The output of the control latch 23 is gated with the input signal TESTMODE at NAND gate 31, so that the output driver 27 is only enabled when TESTMODE is true and the output of the control latch 23 is true. The output driver 27 is coupled to the I/O terminal pad 29, and the input driver 33 provides a path for data supplied by the device under test back into the scan path via the data input mux 19. 
     The scan path contains two bits per I/O control block, one for data and one for control. To program a particular pin, the user determines for each test vector whether the pin is to be used as an output or an input, and for an output pin what logic value is to be asserted. These two bits are then shifted into the I/O control block data and control registers 15 and 17 respectively, by use of the DRSHIFT and SCANCK inputs provided by the Test Access Port circuitry in response to commands on the JTAG bus. The TD(N) scan input line is used to couple each I/O control block to the previous one in the scan path, the output of the data register 15 is coupled through the control input multiplexer 21 into the control register 17 and the output of control register 17 is coupled to the TD(N+1) scan output for coupling to the TD(N) input to the next adjacent I/O control block. Once the registers for each I/O control block have been configured properly by means of the scanning operation, the DRHOLD line will become active and those I/O control blocks configured as outputs will supply data from the output latch 25 to the output driver 27, and the control line signal will be provided by control latch 23, through NAND gate 31 to the output enable of the output driver 27. After the test vector has been asserted the DRHOLD line can be used to latch the control bit for the drivers while the next test vector is being scanned into the boundary scan path. 
     Data may also be captured as input data from the device under test through the input buffer 33, the input multiplexer 19 and into the data register 15 responsive to the SCANCK input. The scanning operation described above is then used to transmit the data captured onto the JTAG bus by means of the TDO Select and Resync block 11 and the TDO output pin (see FIG. 1). 
     FIG. 3 depicts the internal logic used in the JTAG bus required Bypass circuitry 7. The Bypass circuitry 7 consists of a 2-to-1 input multiplexer 35 coupled to a register 37, the output of which is coupled to a 2-to-1 output multiplexer 39. 
     In operation, the DRSHIFT line controls whether the TDI input is passed into the register 37 through the input multiplexer 35, and the SCANSEL input controls whether the registered data is passed from the register 37 onto the output signal BOR through the output multiplexer 39. When the boundary scan path through the I/O control blocks is in use, the SCANSEL input selects the TD(64) input for the output mux 39, when the Bypass circuit is active the SCANSEL input selects the output of register 37. The BOR signal is coupled to the TDO Select and Resync logic (See FIG. 1) for sourcing the TDO output pin. In this way, a Boundary Scan Driver/Sensor which is not to be used in the current JTAG operation may be bypassed, and the data coming in is shifted through register 37 and out onto the TDO pin for use by devices further along in the JTAG chain. 
     FIG. 4 depicts the Instruction Register 9 internal circuitry. The Instruction Register in the described preferred embodiment consists of two registers, 43 and 47, serially linked such that the bits supplied by the JTAG data line may be scanned in, two latches 49 and 51 such that the bits scanned in may be passed out as the TESTMODE and SCANSEL control lines, and two input multiplexers 41 and 45 such that the register can be loaded with the default instruction or the incoming instruction can be scanned in. Output IR(0) is coupled to the TDO Select and Resync circuit 11 such that the contents of the register can be read by means of scanning the bits out onto the TDO pin (See FIG. 1). 
     In operation, the JTAG Test Access Port circuitry 13 controls control lines IRHOLDZ and IRSHIFTZ when the Instruction Register 9 is programmed and used. The input multiplexers 41 and 45 respond to the IRSHIFTZ to enable the TDI serial data to be shifted into the Instruction Register flip-flops 41 and 45. The IRHOLDZ input is asserted to latch the last active instruction in latches 49 and 45. Once loaded, the instruction may be enabled by de-asserting the IRHOLDZ input to allow the new instruction in the registers to be pass through the latches 49 and 51. The new instruction data will then appear at the SCANSEL and TESTMODE outputs which control the logic in the I/O control blocks described above. 
     Because the Instruction register 9 is two bits wide, it will be readily apparent that there are four different instructions available based on the value of the IR bits 1 and 0. These instructions are EXTEST, (`00`), SAMPLE/PRELOAD (`01`), ASSERT &amp; BYPASS (`10`), and BYPASS (`11`). Each instruction will be described below (the reader should refer to FIG. 2 for details on the circuitry in the I/O Control block, FIG. 3 for the details on the circuitry in the Bypass block, and FIG. 5 for the details of the TDO Select and Resync block). 
     The EXTEST instruction results in both the SCANSEL and TESTMODE outputs being a logic 1. The SCANSEL output enables the SCANCK signal to the I/O Control blocks, so that the data registers inside the I/O Control Blocks will receive a clock and first sample the input signals and then shift out the sampled values while shifting in a new set of assertion and control bits. The TESTMODE signal, when 1, enables the I/O Control output buffers such that the pins of the device will be driven (if the corresponding output enable bit is also 1). 
     The SAMPLE/PRELOAD command results in the TESTMODE signal being 0, while the SCANSEL signal is a 1. The output buffers in the I/O Control blocks will again be tristated, while the SCANCK input to the registers in the I/O Control blocks will be enabled, so that the incoming data may be sampled, or the scan path through the I/O Control blocks may be operated to preload the scan path with the next test vector. 
     The ASSERT &amp; BYPASS command results in the TESTMODE signal being a logic 1, while the SCANSEL signal is a logic 0. The TESTMODE signal will enable the I/O Control blocks which are configured as output enabled drivers to assert the data onto the I/O pins, while the SCANSEL signal value of a logic zero will prevent the registers in the I/O Control blocks from being clocked, so that the values stored there will remain constant. The SCANSEL signal also selects the output of the Bypass Register as the source for the TDO block, so that if the DRSHIFTZ line becomes active during the ASSERT &amp; BYPASS command, the data on the TDO line will be the data shifting through the Bypass register. 
     The BYPASS command results in the TESTMODE signal being a logic 0, and the SCANSEL signal also being a logic 0. This results in the I/O Control blocks being held at the previous state, as the SCANCK signal is disabled and since the TESTMODE signal is low disabling the output buffers, the outputs are tri-stated. The SCANSEL signal being low enables the output of the Bypass register to appear on the TDO output pin. If a shift operation is begun by the TAP block, the data shifted in on the TDI input will be shifted out onto the TDO output, so that the part is not active in the current JTAG transaction. 
     The STRAPZ input is asserted by the JTAG TAP logic in response to a reset condition on the JTAG bus to provide the default command, BYPASS, at reset. 
     FIG. 5 depicts the Test Data Output (TDO) Select and Resync block circuitry. Input multiplexer 53 couples either the output signal from the Bypass register, BOR, or the output signal from the Instruction register, IR(0), to the register 55. Register 55 is clocked with the buffered signal TCKZ, which resynchronizes the operation with the JTAG bus clock, TCK. Output driver 57 is controlled by input TDOENAZ to assert the registered bit onto the JTAG bus for transmission to other devices as signal TDO on pad 59. 
     FIG. 6 depicts the internal circuitry of the JTAG Test Access Port (TAP) block. The JTAG Test Access Port is a standard part of the Texas Instrument ASIC library used for coupling a JTAG bus to an integrated circuit. The Test Access Port is a state machine implementing the JTAG protocol, and it supplies the control signals STRAPZ, TDOENAZ, SELECT, IRSHIFTZ, IRCK, IRHOLDZ, DRSHIFTZ, DRCK, and DRHOLDZ to the logic blocks described above. The Test Access Port standard cell is described in Appendix D-2 of the Texas Instruments databook entitled &#34;TSC500 Series, 1-um CMOS Standard Cells&#34;. This description is incorporated herein by reference. 
     In Table 1, various configurations of the Boundary Scan Driver/Sensor IC in different packaging and pinout configurations are described. Here, by way of example, a total of 64 I/O control circuits in a single IC is assumed, although larger configurations are possible without hardware modification beyond required fanout buffering for clock and control lines. Many other configurations are possible and within the scope of this invention, as will be apparent to those skilled in the art. The configurations described in Table 1 are merely illustrative and are not meant to limit the scope of the invention. 
     For example, line 1 of Table 1 describes a 28 pin PDIP package having 18 I/O control block circuits and I/O pins, five pins dedicated to the JTAG bus, two VCC pins and three Gnd pins. 
     
                       TABLE 1______________________________________Boundary Scan Driver/Sensor IC ConfigurationPACKAGE   PINS     I/O   JTAG     VCC  GND______________________________________PDIP      28       18    5        2    3PDIP      40       28    5        3    4PLCC      28       18    5        2    3PLCC      44       30    5        4    5PLCC      68       50    5        5    8PLCC      84       64    5        5    10PQFP      80       62    5        5    8PQFP      100      64    5        15   16PPGA      100      64    5        15   16______________________________________ 
    
     FIG. 7 depicts the use of the Boundary Scan Sensor/Driver IC&#39;s to implement a test fixture of any arbitrary board, system or IC built without JTAG bus capability. Test Control System 85 is a JTAG bus compatible controller which allows the user to communicate with the Boundary Scan ICs 87 using the JTAG bus. Unit under test 89 is the board, system or IC which is to be tested. 
     In designing a circuit board using parts which do not have JTAG capability, the designer may use as many of the Boundary Scan Sensor/Driver ICs as needed to couple the signals to be tested to a JTAG bus by serially interconnecting the parts into scan paths of the desired lengths as shown in FIG. 7. The JTAG bus may then be used to test and observe the data supplied by and used by these parts. The use of the Boundary Scan Sensor/Driver IC makes it possible to advantageously design a circuit board or system having advanced testability and observability while using existing, non-testable ICs without additional hardware design. 
     FIG. 7 depicts the use of several Driver/Sensor ICs to implement a JTAG test fixture for any unit for which testability is required, be it a single IC or circuit board or system. The user can create the test fixture simply by coupling multiple Driver/Sensor IC&#39;s together until a sufficient number of I/O pins is available, connecting the Boundary Driver IC I/Os to the Unit Under Test, and coupling the JTAG ports of the Boundary Scan Sensor/Driver ICs in parallel on a JTAG bus coupled to the Test Control System. This allows rapid design of a test fixture using JTAG without additional hardware complexity or design required. 
     A few preferred embodiments have been described in detail hereinabove. It is to be understood that the scope of the invention also comprehends embodiments different from those described, yet within the scope of the claims. 
     While this invention has been described with reference to illustrative embodiments, this description is not intended to be construed in a limiting sense. Various modifications and combinations of the illustrative embodiments, as well as other embodiments of the invention, will be apparent to persons skilled in the art upon reference to the description. It is therefore intended that the appended claims encompass any such modifications or embodiments.