Abstract:
Scan chains to support debugging and manufacturing test modes for integrated circuit chips are made adaptable. Scan chains may be configured either in a multiple scan chain JTAG mode or in a multiple independent and parallel scan chain mode. The configuration transition between the scan modes is made by private instructions implemented in a JTAG controller, which supports the IEEE 1149.1 standard.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application relates to copending applications Ser. No. 08/699,303 filed Aug. 19, 1996, entitled &#34;METHODS AND APPARATUS FOR PROCESSING VIDEO DATA&#34;, by Reader et al., Ser. No. 08/733,817, filed Oct. 18, 1996, now U.S. Pat. No. 5,793,776 issued Aug. 11, 1998, entitled &#34;STRUCTURE AND METHOD FOR SDRAM DYNAMIC SELF REFRESH ENTRY AND EXIT USING JTAG&#34;, by Qureshi and Baeg, and Ser. No. 08/733,908, filed Oct. 18, 1996, now U.S. Pat. No. 5,805,608 issued Sep. 8, 1998, entitled &#34;CLOCK GENERATION FOR TESTING OF INTEGRATED CIRCUITS&#34;, by Baeg and Yu, all owned by the assignee of this application and incorporated herein by reference. 
    
    
     COPYRIGHT NOTICE 
     A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright 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 rights whatsoever. 
     BACKGROUND OF THE INVENTION 
     A recent development in integrated circuit testing is the use of the JTAG (Joint Test Action Group) test port for in situ testing of integrated circuit chips mounted on a circuit board. The JTAG standard has been adopted by the Institute of Electrical and Electronics Engineers and is now defined as IEEE Standard 1149.1, IEEE Standard Test Access Port and Boundary-Scan Architecture, which is incorporated herein by reference. The IEEE Standard 1149.1 is explained in C. M. Maunder and R. E. Tulloss, &#34;Test Access Port and Boundary-Scan Architecture&#34; (IEEE Computer Society Press, 1990) which is also incorporated herein by reference. 
     In the JTAG scheme, a four (or optional five) signal Test Access Port (TAP) is added to each chip or grouping of chips on a board. The TAP includes four inputs: a test clock (TCK), a test mode select (TMS), a test data in (TDI), and an optional test reset (TRSTN). In addition, there is one output, a test data output (TDO). TDI and TDO are daisy-chained from chip to chip, whereas TCK and TMS are broadcast. 
     The TCK input is independent of the system clocks for the chip so that test operations can be synchronized between different chips. JTAG testing may be used to test suitably configured integrated circuits to verify operability. The operation of the test logic is controlled by the sequence of signals applied at the TMS input. The TDI and TDO are serial data input and output, respectively while TRSTN input is used to intitialize a chip or circuit to a known state. The features in the JTAG Standard provide for accessing any type of scan elements serially without requiring any more pins than the five JTAG pins, TCK, TMS, TDI, and TRSTN. This results in a single long scan chain for a chip. 
     SUMMARY OF INVENTION 
     For chip debugging purposes during prototype development it is advantageous to have multiple scan chains instead of one single long chain for a chip. The scan chains not selected do not change their state with multiple scan chains. Having a selectable scan chain for one or more functional blocks provides a number of advantages. The advantages include: allowing for debugging to be focused on functional blocks; preventing design errors in scan chain construction from affecting scan chains in other functional blocks; reducing scan time operation by focusing on functional blocks; and avoiding a change in the configuration of the functional blocks which are not being scanned while allowing changes in the functional block to be scanned. 
     However, multiple scan chains in the JTAG environment do not provide much benefit when manufacturing test time becomes important. This is because in the JTAG environment, only one scan chain may be selected at any one time for testing. Hence, the multiple scan chains connected between TDI and TDO are equivalent to a single chain insofar as scan shift time is concerned, scan values need to be shifted to every scan element in a chip. 
     In accordance with this invention, one can scan either a single selected scan chain for use in a JTAG environment for integrated circuit chip debugging purposes or all the scan chains simultaneously in parallel. 
     In the manufacturing test mode, one can combine several scan chains into a single scan chain to reduce the number of inputs that provide data to all scan chains in parallel. In accordance with this invention, some integrated circuit chip pins are reconfigured in manufacturing test mode to act as input ports for the scan chains and some of the chip pins are reconfigured to act as output ports for the scan chains. 
     During manufacturing test mode, nonoverlapping clock signals to scan data in and out of the parallel scan chains are provided in one embodiment by a pair of dedicated chip input ports. For multiple scan chains in a JTAG environment, nonoverlapping clocks are derived from a JTAG TCK clock. 
     In accordance with this invention, an integrated circuit chip may be debugged using multiple scan chains in a JTAG environment and undergo manufacturing tests after being reconfigured for multiple parallel scan chain operation. Multiple parallel scan chain operation offers reductions in manufacturing test time. 
     By implementing scan chains in an adaptable way, the benefits for chip debugging in both a JTAG environment and manufacturing test environment can be achieved at a low design cost. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram of an integrated circuit having test circuitry in accordance with this invention. 
     FIG. 2A shows the data paths for test circuitry single internal scan mode and multiple internal scan mode. 
     FIG. 2B is a circuit diagram illustrating a clock/data multiplexer of the circuit of FIG. 1. 
     FIG. 3 illustrates modes that can be entered via JTAG instructions in the circuit of FIG. 1. 
     FIG. 4 is a block diagram of testing circuitry according to the present invention. 
     FIG. 5 is a block diagram of hardware test environment for the circuit of FIG. 1 
     FIGS. 6 and 7 illustrate test schemes in accordance with the present invention. 
    
    
     DETAILED DESCRIPTION OF INVENTION 
     FIG. 1 is a block diagram of an integrated circuit (IC) 110. IC 110 includes testing circuitry to facilitate the integrated circuit testing. In some embodiments, the integrated circuit chip is a Multimedia Signal Processor (MSP™) developed at Samsung Semiconductor, Inc. of San Jose Calif. That processor is described in U.S. patent application Ser. No. 08/699,303 filed Aug. 19, 1996 by C. Reader et al. and entitled &#34;Methods and Apparatus for Processing Video Data&#34;. That patent application is incorporated herein by reference. The MSP testing circuitry is described in detail in Appendices A-B herein. In particular, Appendix B includes Verilog code for the testing circuitry. 
     The testing circuitry includes test control circuit 120 (FIG. 1). Circuit 120 can function as a control circuit for boundary scan testing in accordance with the JTAG standard. 
     In addition to boundary scan testing, test control circuit 120 is suitable for internal testing as defined below. 
     IC 110 includes 5 pins defined by the JTAG standard that are connected to circuit 120. Those pins are TCK (test clock input), TMS (test mode select input), TDI (test data input), TDO (test data output), and TRST --  N (test reset input, active low). The clock input on pin TCK is used not only during the JTAG boundary scan testing, but also for internal testing. In particular, the pin TCK provides scan clock signals for scanning data in and out of internal scan chains 151-167. Each chain includes a shift register built of LSSD (level sensitive scan design) latches. LSSD latches are described, for example, in M. Abramovici et al., &#34;Digital Systems Testing and Testable Design&#34; (1990) hereby incorporated herein by reference. Some embodiments of IC 110 include more than 17 scan chains or fewer than 17 scan chains. For one MSP embodiment, the 17 scan chains, and the respective MSP function blocks incorporating these chains, are shown in Appendix A, Table 2 as chains 1-17. (Chain 18 is the MSP boundary scan chain. Chain 19 is the boundary chain of the ARM processor embedded in the MSP.) Each internal chain 151-167 in Table 2 is a JTAG test data register which can be selected by a respective JTAG private instruction listed in Table 5 of Appendix A. 
     FIG. 2A shows an embodiment in accordance with this invention of the data paths in single internal scan mode and in multiple internal scan mode for integrated circuit testing. FIG. 2A does not show the paths for the clock signals needed to scan data into and out of the internal scan registers. The clock signals are shown in FIG. 1 and the details of the clocking for one scan chain are shown in FIG. 2B. In single internal scan mode, one of 17 internal scan registers 151-167 is selected to take scan input from the TDI port on JTAG Controller 101. When single internal scan mode is selected, multiplexers 241-257 will be set to select leads 202-218, respectively, coming from JTAG Controller 101. Outputs of multiplexers 241-257 are coupled to scan registers 151-167, respectively. During single internal scan mode, the selected one of scan registers 151-167 is coupled to the JTAG TDO port. Hence, a selected scan register is placed between the JTAG TDI and TDO ports during single internal scan mode and a scan is performed by JTAG Controller 101. 
     In one embodiment in accordance with this invention, multiple internal scan mode is selected by the JTAG custom instruction code 110100(34) described in Table 6 of Appendix A. When the multiple internal scan mode instruction is decoded, JTAG Controller 101 asserts signal mult --  n on lead 240 to multiplexers 241-257 to select inputs 221-237 of the multiplexers. After the multiple internal scan mode has been selected, JTAG Controller 101 is not used, remaining in state RunTest/Idle. In multiple internal scan mode, scan mode signal mult --  scan --  mode is connected to bidirectional pin &#34;AD04 --  MT3&#34; to toggle in and out of scan mode. This signal is used by the functional blocks to be scanned but not the scan chains. In accordance with this invention, pins on the chip will be switched to provide access to inputs 221-237 of multiplexers 241-257, allowing parallel access to the internal scan registers. 
     In the multiple internal scan operation, inputs 221-237 receive data from MSP pins 130. In normal (non-testing) operation, MSP pins 130 are bidirectional pins. See Appendix A, Section 1.6.5. For example, in one embodiment, 10 bidirectional pins 130 on a chip are configured as input ports while 10 other bidirectional pins 132 are configured as output ports. The pins selected for input and output during multiple internal scan mode are pins connected to slow logic in normal (as opposed to test) mode so that the added delay caused by the introduction of a multiplexer to select normal or test mode at each of the selected bidirectional pins does not create timing problems during normal mode. Because the number of pins on the chip available for multiple internal scan mode is limited to 10 pins in one embodiment while the number of scan registers is 17 in single scan mode, scan registers 151-167 are reconfigured in multiple internal scan mode as shown in FIG. 2A and described in Table 1. Note that the numbers in Table 1 refer to the figure numbers in FIG. 2A. 
     
                       TABLE 1______________________________________                    Output to PinInput from Pin           fromto Reconfigured        Reconfigured                    ReconfiguredRegister     Register    Register______________________________________221          151 + 152   290223          153 + 154   291225          155         292226          156 + 157 + 158                    293229          159         294230          160 + 162   296231          161         295233          163 + 165   297234          164 + 166   298237          167         299______________________________________ 
    
     Reconfiguration allows access to all 17 scan registers using 10 bidirectional pins 130 available for input during multiple internal scan mode. Parallel output from the reconfigured registers during multiple internal scan mode is available to 10 bidirectional output pins 132 on IC 110. 
     Each one of internal scan chains 151-167 receives non-overlapping scan clocks sca --  x, scb --  x for scanning test data. In a &#34;single internal scan&#34; operation, only one of chains 151-167 is scanned. The respective clocks sca, scb are derived from the TCK clock as described below. Some testing environments provide good control over the TCK and, therefore, good control is provided over the clocks sca, scb. In particular, the TCK frequency is well controlled, and TCK can be started or stopped at any time. See, for example, the testing environment described in Section 1.11 in Appendix A. Therefore, clocks sca, scb are also well controlled in the single scan operation. 
     IC 110 also has a multiple internal scan mode in which all the chains 151-167 are scanned simultaneously. This mode is suitable for manufacturing, when a number of standard tests need to be run quickly. In this mode, clocks sca, scb are derived from non-overlapping clocks provided on test clock input pins TCA, TCB. TCA and TCB are dedicated test clock input pins in some embodiments. Using separate test clock pins TCA, TCB provides well controlled clocks sca, scb and also simplifies interface between IC 110 and existing manufacturing test equipment such as Schlumberger ITS 9000. Separate clock pins TCA, TCB, also facilitate use of ATPG (Automatic Test Pattern Generator) software such as Sunrise™ which is ATPG software available from ViewLogic of San Jose, Calif. 
     During testing, function blocks that include chains 151-167 may be clocked to simulate normal operation. The function blocks are clocked by clocks CLKOUTs both when normal operation is simulated during testing and when normal operation actually takes place. During testing, the clocks CLKOUT&#39;s can be derived from the TCK clock. Alternatively, these clocks can be derived from normal system clocks CLKINs provided on inputs 140 and used for normal operation. Deriving CLKOUTs from TCK allows one to have good control over CLKOUTs. In some embodiments the clocks CLKINs are free running (and hence not well controlled). 
     In some tests, clocks CLKOUTs are taken from test clocks mult --  clk1, mult --  clk2 on respective pins AD05 --  MT5, AD04 --  MT4. In normal mode these pins are bidirectional pins used for other purposes. 
     The TCK clock is provided to JTAG block 126 to control the operation of the JTAG circuitry as known in the art. TCK is also connected to clock generator 117. Clock generator 117 generates from the TCK clock two non-overlapping clocks jsca, jscb having the same frequency as TCK. Clock/data multiplexer 141 receives the clocks jsca, jscb and also receives the clock signals psca, pscb from respective test clock pins TCA, TCB. In some manufacturing tests, clocks psca, pscb are non-overlapping clocks having equal frequencies. 
     In the single internal scan operation, multiplexer 141 provides clocks jsca, jscb on respective outputs sca --  x, scb --  x of one of internal scan chains 151-167 selected by JTAG block 126. The remaining clocks sca --  i, scb --  i are held low (at VSS). In the multiple scan operation, multiplexer 141 provides the clocks psca, pscb on respective outputs sca --  x, scb --  x to all internal scan chains 151-167. 
     Multiplexer 141 is controlled by signals INSS from JTAG block 126. 
     Clocks jsca, jscb are also provided to clock generator 174. Clock generator 174 also receives: 1) normal mode clocks from inputs 140; 2) clock mult --  clk 1 from pin AD05 --  MT5; and 3) clock mult --  clk2 from pin AD04 --  MT4. In the normal operation, clock generator 174 generates CLKOUTs from the normal clocks 140. In non-scan test operations (for example, in BIST), clock generator 174 generates the output clocks CLKOUTs from normal clocks 140, scan clocks jsca, jscb, and/or clocks mult --  clk1, mult --  clk2. Clock generator 174 is controlled by signals from JTAG block 126. 
     Clock/data multiplexer 141 includes separate multiplexer 241 (FIG. 2B), corresponding to each of multiplexers 241-257 in FIG. 2A, for each one of internal scan chains 151-167. In multiplexer 241, data output si --  x is the output of multiplexer 310. The data inputs D0, D1 of multiplexer 310 received respective signals psi --  x, jsi. Signal jsi is a data signal received from pin TDI via line 106 (FIG. 1) in the single internal scan mode. Input psi --  x receives data in multiple internal scan operation from one of pins 130 or from a scan output of another one of chains 151-167. (As described above, in the multiple internal scan mode several chains can be combined into a single chain.) The select input S of multiplexer 310 is connected to input mult --  n of multiplexer 241. In the signal names, suffix &#34; --  n&#34; indicates that the signal is active low. Signal mult --  n is asserted (driven low) by block 126 to indicate the multiple internal scan mode. 
     The scan operation in the multiple internal scan mode is indicated by a signal &#34;mult --  scan --  mode&#34; on the MSP pin AD03 --  MT3 (not shown) which is a bidirectional pin in normal operation. See appendix A, Table 14. When mult --  n is asserted (low), mult --  scan --  mode is asserted to configure function blocks for the scan operation. 
     When the input S of multiplexer 310 is low, multiplexer 310 selects its input D0, that is, psi --  x. When the select signal S is high, multiplexer 310 selects D1 (jsi). 
     Signal mult --  n is connected to select inputs S of multiplexers 314, 318. When mult --  n is low, multiplexer 314 selects input psca connected to pin TCA (FIG. 1), and MUX 318 selects pscb connected to TCB. When mult --  n is high, MUX 314 selects input jsca from clock generator 160, and multiplexer 318 selects input jscb from clock generator 117. 
     The output of multiplexer 314 is connected to input D1 of multiplexer 322. The output of multiplexer 318 is connected to input D1 of multiplexer 326. Multiplexers 314, 318, 322, 326 are identical to multiplexer 310. The output of multiplexer 322 provides signal sca --  x. The output of multiplexer 326 provides signal scb --  x. 
     The inputs D0 of multiplexers 322, 326 are connected to VSS. 
     The select input S of multiplexer 322 is connected to the output of OR gate 330. Gate 330 ORs the outputs of OR gate 334 and NOR gate 338. One of the two inputs of gate 334 is connected to the output of inverter 348 whose input is connected to input mult --  n. The other input of gate 334 is connected to the output of inverter 352 whose input is connected to a system reset signal mrst --  n. 
     One of the two inputs of NOR gate 338 is connected to input bist --  cnt of multiplexer 241. The other input of NOR gate 338 is connected to the output of NAND gate 356. One of the two inputs of gate 356 receives signal shiftdr from JTAG block 126. Signal shiftdr is a standard JTAG signal indicating that the JTAG controller is in state Shift --  DR. See the aforementioned book &#34;The Test Access Port and Boundary-Scan Architecture&#34;, page 41 (FIGS. 4-8). The other input of gate 356 is connected to input dr --  x. 
     The select input S of multiplexer 326 is connected to the output of OR gate 360. One of the two inputs of gate 360 is connected to the output of OR gate 334. The other input of gate 360 is connected to the output of NOR gate 364. One of the two inputs of gate 364 is connected to input bist --  cnt. The other input of gate 364 is connected to the output of NOR gate 368. The two inputs of gate 368 are connected to respectively inputs dr --  x, corsdr. 
     Inputs mrst --  n, mult --  n, shiftdr, dr --  x, corsdr, bist --  cnt are the outputs of JTAG block 126. Input mrst --  n receives a system reset signal. During normal operation or testing, this signal is high. 
     Signal mult --  n is generated by JTAG instruction decoder 142. This signal is asserted when JTAG controller 101 receives a multiple scan chain instruction (a private instruction described in Appendix A, Table 6) and the controller is in the Run-Test/Idle state. When mult --  n is low, multiplexers 322, 326 select their inputs D1, and the clocks on TCA, TCB are provided to outputs sca --  x, scb --  x. 
     When mult --  n is high, the inputs D1 of multiplexers 322, 326 receive respective signals jsca, jscb. The select inputs S of multiplexers 322, 326 receive signals depending on signals shiftdr, dr --  x, corsdr, and bist --  cnt. Signal bist --  cnt generated by JTAG instruction decoder 142 is high when JTAG controller 101 receives instruction BIST or GBIST shown in Appendix A, Table 9, or any of the instructions in Table 7, or the last instruction &#34;ARM7 intest/BIST&#34; in Table 4. These are private instructions for BIST. The high bist --  cnt causes multiplexers 322, 326 to provide the clock signals jsca, jscb on respective outputs sca --  x, scb --  x. 
     Signal corsdr is driven high by JTAG block 126 in the JTAG controller states Shift-DR and Capture-DR. Signal dr --  x is driven high by JTAG block 126 when the corresponding one of chains 151-167 is selected as a test data register by JTAG controller 101. When dr --  x is high, it enables multiplexers 322, 326 to select respectively jsca, jscb when the respective signal shiftdr, corsdr is high. Thus when dr --  x is high, the respective chain of chains 151-167 can be scanned or can capture data in the single scan mode. 
     The embodiments described above and in the appendices below do not limit the invention. In some embodiments, the invention is implemented using CMOS technology, but other technologies are used in other embodiments. The invention is defined by the claims below. ##SPC1##