Increase data transfer throughput by enabling dynamic JTAG test mode entry and sharing of all JTAG pins

09772376 · 2017-09-26

Assignee

Inventors

Cpc classification

International classification

Abstract

An integrated circuit with functional circuitry and testing circuitry, the testing circuitry having a state machine operable in a plurality of different states. The integrated circuit also has a pin for receiving a signal, wherein the state machine is operable to transition between states in response to a change in level of the signal. Circuitry couples the signal of the pin, in a first level, to the state machine in a first time period for causing the state machine to enter a predetermined state, and circuitry maintains the signal in the first level to the state machine in a second time period for maintaining the state machine in the predetermined state. Also during the second time period, circuitry couples data received at the pin to a destination circuit other than the state machine, wherein the destination circuit is operable to perform plural successive scan tests using data from the pin without a power on reset of the functional circuitry.

Claims

1. An integrated circuit, comprising: functional circuitry; testing circuitry, comprising a state machine operable in a plurality of different states; a pin for receiving a signal, wherein the state machine is operable to transition between states in response to a change in level of the signal; circuitry for coupling the signal, in a first level, from the pin to the state machine in a first time period for causing the state machine to enter a predetermined state; circuitry for maintaining the signal in the first level to the state machine in a second time period for maintaining the state machine in the predetermined state; and circuitry for coupling data received at the pin, during the second time period, to a destination circuit other than the state machine, wherein the destination circuit is operable to perform plural successive scan tests using data from the pin without a power on reset of the functional circuitry.

2. The integrated circuit of claim 1 wherein the pin for receiving a signal comprises a pin for receiving a JTAG TMS pin.

3. The integrated circuit of claim 1 wherein the pin for receiving a signal comprises a pin for receiving a JTAG TRST pin.

4. The integrated circuit of claim 1 wherein, during the second time period, the data at the pin comprises test data.

5. The integrated circuit of claim 4 and further comprising a scan chain comprising a plurality of registers, wherein each register in the plurality of registers is connected to a respective pin on the integrated circuit, and wherein during the second time period the destination comprises testing circuitry other than the scan chain.

6. The integrated circuit of claim 1 wherein each scan in the plural successive scan tests is selected from a group consisting of PBIST, DC Parametric Tests, Flash Test, eFuse Test, and Boundary Scan Test.

7. The integrated circuit of claim 1 wherein the circuitry for coupling the signal and the circuitry for maintaining the signal are responsive to a scan enable signal.

8. The integrated circuit of claim 1 wherein the circuitry for coupling the signal and the circuitry for maintaining the signal are responsive to Channel Mask Load Enable signal.

9. The integrated circuit of claim 1 wherein the circuitry for coupling the signal and the circuitry for maintaining the signal are responsive to a scan enable signal and to a Channel Mask Load Enable signal.

10. The integrated circuit of claim 1 wherein the pin comprises one pin in a total number of pins for the integrated circuit not exceeding 8 pins.

11. The integrated circuit of claim 1 wherein the pin comprises one pin in a total number of pins for the integrated circuit not exceeding 16 pins.

12. The integrated circuit of claim 1 wherein the pin comprises one pin in a total number of pins for the integrated circuit not exceeding 32 pins.

13. The integrated circuit of claim 1 wherein the pin comprises a first pin, and further comprising a second pin for receiving a JTAG signal, the second pin shared between JTAG signaling and test data.

14. The integrated circuit of claim 1 wherein the pin comprises a first pin, and further comprising a plurality of additional pins, wherein each pin in the plurality of pins is for receiving a respective JTAG signal and is shared between JTAG signaling and test data.

15. The integrated circuit of claim 1 wherein the state machine comprises a JTAG state machine.

16. A method of operating an integrated circuit comprising functional circuitry and testing circuitry, the testing circuitry comprising a state machine operable in a plurality of different states, the method comprising: receiving a signal at a pin, wherein the state machine is operable to transition between states in response to a change in level of the signal; coupling the signal, in a first level, from the pin to the state machine in a first time period for causing the state machine to enter a predetermined state; maintaining the signal in the first level to the state machine in a second time period for maintaining the state machine in the predetermined state; and coupling data received at the pin, during the second time period, to a destination circuit other than the state machine, wherein the destination circuit is operable to perform plural successive scan tests using data from the pin without a power on reset of the functional circuitry.

17. The method of claim 16 wherein the pin comprises a pin for receiving a JTAG TMS pin.

18. The method of claim 16 wherein the pin comprises a pin for receiving a JTAG TRST pin.

19. The method of claim 16 wherein, during the second time period, the data at the pin comprises test data.

20. The method of claim 16 wherein the step of coupling the signal and the step of maintaining the signal are responsive to at least one of a scan enable signal and to a Channel Mask Load Enable signal.

Description

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

(1) FIG. 1 illustrates an electrical block diagram of an IC 10 having a boundary scan architecture according to the prior art.

(2) FIG. 2 illustrates an electrical block diagram of an IC 100 according to a preferred embodiment.

(3) FIG. 3 illustrates an electrical block diagram of a pin share circuit for allowing the TMS pin to be shared for finite state machine and scan circuit data.

(4) FIG. 4 illustrates a flowchart of a preferred embodiment method of operation of the pin share circuit of FIG. 3.

(5) FIG. 5 illustrates an electrical block diagram of an alternative preferred embodiment pin share circuit for allowing the TMS pin to be shared for finite state machine and scan circuit data.

(6) FIG. 6 illustrates an electrical block diagram of an alternative preferred embodiment pin share circuit for allowing the TRST pin to be shared for finite state machine and scan circuit data.

DETAILED DESCRIPTION OF EMBODIMENTS

(7) FIG. 1 was described in the above background of the Invention section of this document, and the reader is assumed familiar with that discussion.

(8) FIG. 2 illustrates an electrical block diagram of an IC 100 according to a preferred embodiment. By way of introduction, IC 100 includes various functional blocks comparable to those described earlier in connection with FIG. 1, where, for sake of ease in understanding, those blocks in FIG. 2 are numbered by adding 100 to the reference number of FIG. 1. Thus, in connection with processing JTAG signals and IC functionality, IC 100 includes a TAP controller 112, functional circuitry (or core) 114, an instruction register 116, a bypass register 118, and an ID register 120, each of which in general is known in the art, with the exception of additional aspects relating in part to the preferred embodiment additions, described below.

(9) IC 100 also includes a scan circuit 122. Scan circuit 122 represents additional circuitry embedded in the IC for testing beyond the boundary testing available via the scan chain register consisting of cells C.sub.5 through C.sub.15. For example, scan circuit 122 may include one or more additional scan chains, where each such chain comprises a number of cells (e.g., flip flops) into which data may be shifted, with such data then executed via functional circuitry 114 (including logic, memories, or other functions therein), and then the result stored back into respective cells and shifted out, either onboard of IC 100 or externally, for analysis as to whether the result represents proper operation of the tested functional circuitry. Further in this regard, scan circuit 122 may include decompression circuitry for decompressing input test data (sometimes referred to as test vectors) and then writing the decompressed input test data to a scan chain, and likewise compression circuitry for compressing output test data that results in each scan chain after the test execution cycle(s), where the compressed data is then output for analysis. Other on-board testing circuitry also may be included by one skilled in the art in scan circuit 122. In any event, however, and of note with respect to the preferred embodiment, scan circuit 122 may receive inputs that correspond to one or both of the JTAG TMS and TRST signals, that is, test data may be provided for such scan testing via either or both of pins P.sub.1 and P.sub.2. Further in this regard, IC 100 also includes a pin share circuit 124, which is connected to pins P.sub.1 and P.sub.2, for receiving the JTAG TMS and TRST signals, respectively. As further detailed below, pin share circuit 124 can pass through either or both of the TMS and TRST signals to scan circuit 122, thereby allowing those signals during certain periods to provide test data for scan testing, while at the same time scan circuit 122 also provides JTAG counterpart signals, shown as TMS' and TRST′, to TAP controller 112, which are received and processed in lieu of the actual TMS and TRST signals, that is, the states of these TMS' and TRST′ counterpart signals provide JTAG compliance (e.g., with IEEE 1194.1) as received by the JTAG state machine, while at the same time the JTAG TMS and TRST pins may input test data to scan circuit 120. Lastly, note that various other of the pins on IC 100 also may provide test data to scan circuit 120 as is known in the art, but such connections are neither shown nor detailed so as to simplify and focus the discussion to preferred embodiment aspects relating to the TMS and TRST signals, and the pins corresponding to those signals.

(10) FIG. 3 illustrates greater detail in an electrical block diagram of pin share circuit 124 from FIG. 2, in connection with the TMS signal. The TMS signal is connected to an input 130. Input 130 is connected to an input 132.sub.0 of a multiplexer 132, an input 134.sub.0 of a multiplexer 134, and an 136.sub.1 of a multiplexer 136—note that for these multiplexers, as well as others described in this document, the subscript on an input is the state of the control signal that will select the corresponding input. For example, for multiplexer 132, it is controlled by an automatic test pattern generation (ATPG) signal, whereby if ATPG=0, then input 132.sub.0 of multiplexer 132 is selected for output by the multiplexer, whereas if ATPG=1, then input 132.sub.1 of multiplexer 132 is selected for output by the multiplexer. The remaining connections to multiplexers 132, 134, and 136 are now described. An input 132.sub.1 of multiplexer 132 is connected to the output of multiplexer 134, and the output of multiplexer 132 provides the TMS' signal to TAP controller 112 and, more particularly, to the finite state machine (FSM) 112.sub.FSM of the controller. The input 134.sub.1 of multiplexer 134 is connected to ground, and the control signal for multiplexer 134 is a ScanEn (i.e., scan enable) signal, which may be provided either internally or externally with respect to IC 100, and ScanEn is enabled during certain testing steps, as further described later. The control signal for multiplexer 136 is also the ScanEn signal, and the output of multiplexer 136 is connected to provide the TMS data from pin 130 onward to scan circuit 122. The input 136.sub.0 of multiplexer 136 is shown as receiving a logical “don't care” signal (shown as x), for in this embodiment when ScanEn=0, any information provided to scan circuit 122 is not relevant, as scanning in that circuit during that time is not occurring.

(11) The operation of pin share circuit 124 of FIG. 3 is now described in connection with a method 200 of operation shown by way of a flowchart in FIG. 4. Method 200 is shown to begin with a start step 202, followed by a PoR step 204, such as may occur when IC 100 is first enabled. Following PoR step 204, IC 100 begins a JTAG mode step 206, if commenced such as by various techniques known in the art. For example, in devices having dedicated JTAG pins, one manner of entering JTAG mode is holding TMS high and pulsing TCK five times. As another example, in devices having some shared JTAG pins, the device may include an additional pin (e.g., a TEST) pin that may be asserted in a manner so as to enter step 206. In any event, following step 206 is a step 208, which determines whether the JTAG mode is to perform a scan type test, as may indicated by an additional bit or bits in the programmable core data register. If step 208 is answered in the affirmative, method 200 continues to step 210, whereas if step 208 is answered in the negative, method 200 continues to step 212.

(12) In step 210, a TMS signal of 0 configures the type of scan mode, that is, from the known JTAG state machine, an update of the Data/Instruction register with a value of TMS=0 configures the FSM to the run test idle state of the scan mode. Also during step 210, ATPG mode is asserted.

(13) Step 214 represents a preferred embodiment additional step that, as will be shown, facilitates the use of the TMS pin (e.g., pin P.sub.2 in FIG. 2) to be shared, that is, in some instances to control the TAP controller FSM and in others to be used for providing scan data, where additional selectivity as between these two options is accomplished by an additional signal, which in a preferred embodiment is the ScanEn signal. Specifically, in the preferred embodiment, when it is desired during testing to share the TMS pin to provide scan data, then ScanEn is set to one, or is used as already set to one given the nature of the intended testing mode, as a control in pin share circuit 124 so as to allow this result. In contrast, when the state at the TMS pin is to govern FSM 112.sub.FSM, then ScanEn is set to zero. Thus, step 214 represents a conditional step to evaluate the value of ScanEn, which based on the two options listed above, directs control accordingly. Thus, if ScanEn=1, method 200 continues from step 214 to step 216, whereas if Scan=0, method 200 returns from step 214 to step 208.

(14) In step 216, having been reached because ScanEn=1, pin share circuit 124 of FIG. 2 operates to provide a signal TMS′, thereby maintaining the immediately-preceding signal value from the value of TMS at pin P.sub.2, to hold FSM 112.sub.FSM in its Run-Idle/Test state, while concurrently allowing the value(s) of TMS at pin P.sub.2 to be directed to a destination on IC 200 other than the FSM, that is, so that pin P.sub.2 can provide data during this time for some other purpose, such as for scan data. Specifically, returning to FIG. 3, with ScanEn=1, then multiplexer 134 selects the ground (i.e., logical 0) at its input 134.sub.1, and outputs that logical 0 to input 132.sub.1 of multiplexer 132; further, because ATPG=1 (as already established above), this same logical 0 is output by multiplexer 132 as the TMS' signal to the TAP controller FSM 112.sub.FSM. As a result of this connection, the tied value of ground is presented to TAP controller FSM 112.sub.FSM so as to match the low level that was immediately prior provided from pin P.sub.2, and thus while the signal level is maintained at that value, and according to the IEEE specification for a JTAG stage machine, then a low value received by the TAP controller FSM 112.sub.FSM during the Run-Test/Idle state thereby maintains it in that Run-Test/Idle state.

(15) Method 200 is shown to continue from step 216 to step 218. Recall that step 216 during this time is connecting the tied value of logical 0 to TAP controller FSM 112.sub.FSM and thereby maintaining it in the Run-Test/Idle state, while at the same time in step 218 this separate tied value thereby releases the TMS input at pin P.sub.2 to be free for some other purpose, as it is then not needed to communicate the logical 0 to the state machine; in a preferred embodiment, therefore, during this release period the TMS input at pin P.sub.2 is provided to another destination other than the FSM, and preferably is usable to provide scan test data for IC 100. In this regard and again looking to FIG. 3, recall that the TMS input at pin P.sub.2 is connected to input 136.sub.1 of multiplexer 136. Moreover, because ScanEn=1 (see step 214), then input 136.sub.1 of multiplexer 136 passes the data from the TMS input at pin P.sub.2 to scan circuit 122. Thus, such data may be used as test data, such as in addition to test data then being input from other pins (including other JTAG pins) of IC 100. In this regard, therefore, additional data bandwidth is provided from pin P.sub.2 during the step 218 scan testing, as compared to a scenario where the additional usage of pin P.sub.2 for data is not available. Such scan testing can then continue until desirably concluded, at which point method 200 continues from step 218 to step 220.

(16) Step 220 determines whether a different test mode is desired. For example, various test modes that could apply to the determination in step 220 (and step 208) include PBIST, DC Parametric Tests, Flash Test, eFuse Test, Boundary Scan Test, and others known to or ascertainable by one skilled in the art. If a different test mode is not desired, method 200 continues to an end step 222, thereby terminating the method flow. If, to the contrary, a different test mode is desired, then method 200 continues from step 220 to step 224.

(17) Step 224 returns ScanEn back to a value of 0, where recall earlier that ScanEn was equal to a value of 1 as of step 214, which advanced the flow to other steps preceding step 224. Returning to FIG. 3, note that with ScanEn=0, multiplexer 134 selects its input 134.sub.0, which is the TMS data from pin P.sub.2, and that data is output to multiplexer 132. Further with respect to multiplexer 132, because ATPG remains at 1, multiplexer 132 outputs the TMS data, as the signal shown as TMS′, to FSM 112.sub.FSM. Thus, in step 224, the TMS pin P.sub.2 is regained for serving to provide control to the TAP controller FSM, rather than serving to provide additional test data as was the case in step 218.

(18) Following step 224, method 200 returns to step 208, where the function of that step repeats as described above. Note, therefore, that with a first pass through steps 210 through 224, a first scan type test may be performed, using the TMS pin (P.sub.2) for transferring additional test data, and then the flow may return again to step 208 for a second or other subsequent pass through those steps, in which case the TMS pin (P.sub.2) again may be used for transferring additional test data. For each set of steps consisting of a pass through steps 210 through 224, therefore, additional test data bandwidth is facilitated using the TMS pin, and also of important note that each successive scan type test may be used in this manner without requiring a PoR of IC 100. In contrast, the prior art, where it was desirous to dual share a TMS pin for FMS control and scan test data, requires such a PoR, thereby disrupting the provision of power and/or a clocking signal to certain functional parts of the integrated circuit and increasing overall test time. The preferred embodiments, therefore, instead allow a dynamic return of the TMS pin to its FSM control functionality, without requiring a reboot or other PoR event of the integrated circuit.

(19) Completing method 200, recall in step 208 that if a scan type test mode is not desired, method 200 continues to step 212, where non-scan test mode can occur, such as memory test (through PBIST), DMLED, I/O, EFUSE, etc. Thus, step 212 configures the non-scan test mode according to the test to be achieved, and step 226 then performs that test. Thereafter, step 228 operates in the same manner as step 220, that is, it determines whether a different test mode is desired in which case method 200 returns to step 208 or, if not, then method 200 concludes at step 222.

(20) Also completing the operation of FIG. 3, note that the structure therein also facilitates the desired connectivity when the ATPG mode is not asserted (i.e., when ATPG=0). In this case, multiplexer 132 selects and outputs the data at its input 132.sub.0, thereby connecting the TMS data at pin P.sub.2 through, and indicated as TMS′, to FSM 112.sub.FSM. Thus, when ATPG=0, the TMS signal is connected as a control to the TAP controller FSM.

(21) An alternative preferred embodiment further enhances the preceding by extending it to an architecture that implements Channel Mask Load Enable (CLME), such as in a Cadence scan architecture where the CMLE also controls the TAP FSM. Such an approach is shown in FIG. 5, which is comparable to FIG. 3 and thus, like reference numbers are used in both Figures for like elements. The FIG. 5 preferred embodiment, however, includes an additional two mutliplexers 138 and 140, both having CMLE as a control input and connected as now further described. Multiplexer 138 is connected to receive the TMS pin data at its input 138.sub.0, its input 138.sub.1 is connected to ground, and its output is connected to input 134.sub.0 of multiplexer 134. Multiplexer 140 is connected to receive the TMS pin data at its input 140.sub.k, its input 140.sub.0 is connected to ground, and its output is connected to input 136.sub.0 of multiplexer 136.

(22) The operation of pin share circuit 124 of FIG. 5 should be readily understood by expanding on the already-described operation of pin share circuit 124 of FIG. 3, and given the following. During non-ATPG mode, ATPG=0 in which case multiplexer 132 selects its input 132.sub.0, thereby connecting the TMS input (e.g., from pin P.sub.2) directly to FSM 112.sub.FSM. When ATPG mode is set (i.e., ATPG=1), either the ScanEn or CMLE mode may be set, in which case ultimately multiplexer 134 will provide a directly tied value of 0 as the TSM signal (shown as TSM′) to FSM 112.sub.FSM. Thus, where ATPG=1 and CMLE=1, then ScanEn=0 and multiplexer 138 connects a value of ground from input 138.sub.1 to input 134.sub.0, and multiplexer 134 passes that value to input 132.sub.1 of multiplexer 132, which connects the ground (i.e., digital 0) to FSM 112.sub.FSM, thereby maintaining the FSM in a Run-Test/Idle state At the same time, multiplexer 140 connects the TMS data at its input 140.sub.1 to input 136.sub.0 of multiplexer 136, and multiplexer 136 passes that data through to scan circuit 122. Or, where ATPG=1 and ScanEn=1, then CMLE=0 and multiplexer 134 connects a value of ground from input 134.sub.1 to input 132.sub.1 of multiplexer 132, which connects the ground (i.e., digital 0) to FSM 112.sub.FSM, thereby maintaining the FSM in a Run-Test/Idle state. At the same time, multiplexer 136 connects the TMS data at its input 136.sub.1 to scan circuit 122. Given the preceding, therefore, for either ScanEn or CMLE enabled, the FSM is maintained in its Run-Test/Idle state, while the TMS pin is able to provide additional test data to scan circuit 122.

(23) Recall that FIG. 2 illustrates that the pin share circuit 124 may communicate either the RMS or TRST signals to scan circuit 122, with signals TMS' and TRST′ provided to tap controller 112. In regard to the TRST signal, therefore, FIG. 6 illustrates an alternative preferred embodiment pin share circuit 124′, which can be used in lieu of, or by combining its aspects with, preferred embodiments illustrating a pin share circuit 124 described earlier, and in connection with the TRST signal. In FIG. 6, therefore, the signal input and multiplexer path relates to the JTAG TRST signal, rather than the TMS signal. Recall in this regard that the TRST signal was shown and described in connection with pin P.sub.1 in FIG. 2. Moreover, as known in the art, the TRST signal is such that a value of 0 resets the FSM, while a value of 1 will not change the state of the FSM. Thus, in the prior art, a separate TRST pin is sometimes used and that pin is therefore occupied and unavailable for an alternative use when it is asserting a value of 1, so as not to change the state of the FSM. In the preferred embodiment however and in contrast to the prior art, pin share circuit 124′ includes mutliplexers comparable to multiplexers 134 and 138 used to maintain a value of 0 to the FSM 112.sub.FSM for the TMS signal while the TMS pin is thus freed to provide test data, but in circuit 124′ these multiplexers are shown as multiplexers 134′ and 138′ and are used to maintain a value of 1 to the FSM 112.sub.FSM for the TRST signal while the TRST pin is thus freed to provide test data.

(24) More specifically describing the preceding, when ATPG mode is set (i.e., ATPG=1), either the ScanEn or CMLE mode may be set, in which case the related multiplexer 134′ will provide a directly tied value of 1 as the TRST signal (shown as TRST′) to FSM 112.sub.FSM. Thus, where ATPG=1 and CMLE=1, then ScanEn=0 and multiplexer 138 connects a relatively high voltage (e.g., V.sub.CC), corresponding to a digital value of one, from input 138′.sub.1 to input 134′.sub.0, and multiplexer 134′ passes that value to input 132′.sub.1 of multiplexer 132′, which connects the high voltage (i.e., one) to FSM 112.sub.FSM, thereby not resetting the FSM. At the same time, multiplexer 140 connects the TRST data at its input 140.sub.1 to input 136.sub.0 of multiplexer 136, and that multiplexer 136 passes that data through to scan circuit 122. Or, where ATPG=1 and ScanEn=1, then CMLE=0 and multiplexer 134′ connects a relatively high voltage from input 134′.sub.1 to input 132′.sub.1 of multiplexer 132′, which connects the high voltage (i.e., one) to FSM 112.sub.FSM, thereby not resetting the FSM. At the same time, multiplexer 136 connects the TRST data at its input 136.sub.1 to scan circuit 122. Given the preceding, therefore, for either ScanEn or CMLE enabled, the FSM is not reset while the TRST pin is able to provide additional test data.

(25) Given the preceding, the preferred embodiments provide improvements in data throughput for data scan of ICs and printed circuit boards (PCBs). Specifically, the preferred embodiment IC allows the sharing of either of the TMS or TRST JTAG pins, which may be combined with other approaches to natively share various (or all) of the JTAG pins to receive either JTAG signals or test data for increasing throughput. With additional pins over and above a case where fewer of such pins are available, better test time reduction is possible. Indeed, for stuck-at or TFT testing (transitional fault testing/at-speed testing), by increasing the number of scan inputs and outputs from 8 to 9, test time saving may be realized in the range of 31% to 38%. Moreover, while the preferred embodiments have been described in connection with scan operation, alternative preferred embodiments may be implemented using the present inventive teachings to permit either the TMS or TRST pins to provide other data, such as for direct memory load executed dump (DMLED) where time consuming firmware download can be highly accelerated given an additional pin(s) for such downloading. The preferred embodiment benefits may be achieved, for example, with a relatively minimal change in design overhead (e.g., by adding a few multiplexers), with no compromise on observability or controllability of data, and without interfering with internal test architecture. Still further, testing is improved without a required change to vendor testing tools and permits debugging at any stage. Moreover, while various aspects have been described, substitutions, modifications or alterations can be made to the descriptions set forth above without departing from the inventive scope. For example, the preferred embodiments are not limited to scan, but can be used during functional operation as well, such as during functional data transfer along with JTAG interface (e.g., SPI transfer, etc.). Still other examples will be ascertainable by one skilled in the art and are not intended as limiting to the inventive scope, which instead is defined by the following claims.