WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Apparatus for configuring a subset of an integrated circuit having boundary scan circuitry connected in series and a method thereof    
United States Patent5491666   
Link to this pagehttp://www.wikipatents.com/5491666.html
Inventor(s)Sturges; Jay (Orangevale, CA)
AbstractAn integrated circuit including a plurality of individual boundary scan circuits each associated with a separate portion of the circuitry of the integrated circuit. The registers of the individual boundary scan circuits are joined to provide a series boundary scan register chain in which individual portions of the circuitry included within the integrated circuit may be individually manipulated.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5491666
Apparatus for configuring a subset of an integrated circuit having

     boundary scan circuitry connected in series and a method thereof - US Patent 5491666 Drawing
Apparatus for configuring a subset of an integrated circuit having boundary scan circuitry connected in series and a method thereof
Inventor     Sturges; Jay (Orangevale, CA)
Owner/Assignee     Intel Corporation (Santa Clara, CA)
Patent assignment
All assignments
Publication Date     February 13, 1996
Application Number     08/470,328
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 23, 1995
US Classification     365/201 365/154 365/185.08 365/189.12 365/221 714/725 714/726
Int'l Classification     G11C 029/00
Examiner     Nelms; David C.
Assistant Examiner     Tran; Andrew Q.
Attorney/Law Firm     Blakely, Sokoloff, Taylor & Zafman
Address
Parent Case     This is a continuation of application Ser. No. 08/302,496, filed Sep. 8, 1994 abandoned, which is a divisional of application Ser. No. 08/208,938, filed Mar. 10, 1994, U.S. Pat. No. 5,448,525.
Priority Data    
USPTO Field of Search     371/22.1 371/22.2 371/22.3 365/78 365/189.12 365/201 365/221 365/240 365/900 365/185 365/154
Patent Tags     configuring subset integrated circuit having boundary scan circuitry connected series
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5355369
Greenberger
714/727
Oct,1994

[0 after 0 votes]
5343478
James
714/726
Aug,1994

[0 after 0 votes]
5333139
Sturges
714/727
Jul,1994

[0 after 0 votes]
5325367
Dekker
714/718
Jun,1994

[0 after 0 votes]
5278841
Myers
714/717
Jan,1994

[0 after 0 votes]
5239510
Hill
365/226
Aug,1993

[0 after 0 votes]
4680733
Duforestel
377/64
Jul,1987

[0 after 0 votes]
4670877
Nishibe
714/728
Jun,1987

[0 after 0 votes]
4667325
Kitano
714/743
May,1987

[0 after 0 votes]
4649539
Crain
714/731
Mar,1987

[0 after 0 votes]
4597042
d'Angeac
714/30
Jun,1986

[0 after 0 votes]
4476560
Miller
714/731
Oct,1984

[0 after 0 votes]
4366393
Kasuya
326/16
Dec,1982

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. An embedded controller system comprising:

a central processor;

main memory coupled to said central processor;

an integrated circuit, coupled to said central processor comprising:

a plurality of core logic circuits comprising at least one input and at least one output for implementing at least one logic or storage function during normal circuit operation, said core logic circuits being configured on a single substrate of said integrated circuit, and at least one output of a first core logic circuit being coupled to an input of a second core logic circuit;

a plurality of independent test devices located on said single substrate, each independent test device comprising a controller and a plurality of registers that corresponds to a core logic circuit to receive data in said registers for boundary scan testing of said corresponding core logic circuit during a test operation; and

wherein independent operation of said test devices permit configuring said registers in said second core logic circuit in response to said output of said first core logic circuit during normal circuit operation of said first core logic circuit and during test operation of said second core logic circuit.

2. The embedded controller system as set forth in claim 1, wherein said integrated circuit comprises a field programmable gate array.

3. The embedded controller system as set forth in claim 1, wherein said core logic circuits comprise a field programmable gate array including a plurality of gates, a plurality of static random access memory (SRAM) cells for controlling the operation of said gates, and a plurality of non-volatile memory cells for configuring said SRAM cells.

4. The embedded controller system as set forth in claim 3, wherein said non-volatile memory cells comprise flash electrically erasable programmable read only memory (EEPROM) cells.

5. The embedded controller system as set forth in claim 1, wherein said plurality of registers comprise a plurality of shift registers coupled to said controller, each shift register having a data input and output, the movement of data through the shift registers controlled by said controller, said plurality of shift registers further serially coupled together such that the output of a preceding shift register of the plurality of shift registers is selectively coupled to an input of a subsequent shift register of the plurality of shift registers, each of said plurality of shift registers further selectively coupled to said corresponding core logic circuit such that data is selectively written to or read from said corresponding core logic circuit under control of said controller.

6. The embedded controller system as set forth in claim 5, wherein said independent test devices are serially coupled together such that an output of a last shift register of said shift registers of a preceding test device is coupled to the controller data input of a subsequent test device.

7. An integrated circuit comprising:

a plurality of core logic circuits comprising at least one input and at least one output for implementing at least one logic or storage function during normal circuit operation, said core logic circuits being configured on a single substrate of said integrated circuit, and at least one output of a first core logic circuit being coupled to an input of a second core logic circuit;

a plurality of independent test devices located on said single substrate, each independent test device comprising a controller and a plurality of registers that corresponds to a core logic circuit to receive data in said registers for boundary scan testing of said corresponding core logic circuit during a test operation; and

wherein independent operation of said test devices permit configuring said registers in said second core logic circuit in response to said output of said first core logic circuit during normal circuit operation of said first core logic circuit and during test operation of said second core logic circuit.

8. The integrated circuit as set forth in claim 7, wherein said integrated circuit comprises a field programmable gate array.

9. The integrated circuit as set forth in claim 7, wherein said core logic circuits comprise a field programmable gate array including a plurality of gates, a plurality of static random access memory (SRAM) cells for controlling the operation of said gates, and a plurality of non-volatile memory cells for configuring said SRAM cells.

10. The integrated circuit as set forth in claim 9, wherein said non-volatile memory cells comprise flash electrically erasable programmable read only memory (EEPROM) cells.

11. The integrated circuit as set forth in claim 7, wherein said plurality of registers comprise a plurality of shift registers coupled to said controller, each shift register having a data input and output, the movement of data through the shift registers controlled by said controller, said plurality of shift registers further serially coupled together such that the output of a preceding shift register of the plurality of shift registers is selectively coupled to an input of a subsequent shift register of the plurality of shift registers, each of said plurality of shift registers further selectively coupled to said corresponding core logic circuit such that data is selectively written to or read from said corresponding core logic circuit under control of said controller.

12. The integrated circuit as set forth in claim 11, wherein said independent test devices are serially coupled together such that an output of a last shift register of said shift registers of a preceding test device is coupled to the controller data input of a subsequent test device.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to integrated circuits and, more particularly, to an integrated circuit having a plurality of boundary-scan test circuits connected in a series-linked boundary test scan chain to allow individual portions of the integrated circuit to be individually manipulated and configured.

2. History of the Prior Art

As integrated circuits have become physically smaller while including more and more individual elements, it has become more difficult to test those circuits. In order to assure that such circuits may be tested accurately without inordinate expense, these integrated circuits have been equipped with circuitry adapted to allow boundary-scan testing. Boundary-scan testing uses a plurality of shift register stages built into each integrated circuit. A boundary-scan controller circuit in each integrated circuit controls the transfer of data serially from an input port to an output port through the stages of the boundary-scan shift register and allows use of the data so that circuit testing may be conducted from external terminals without the need for probes and other imprecise instruments. Boundary-scan testing makes the test process for integrated circuits so equipped faster and more accurate.

An industry standard has been implemented for boundary-scan test circuits so that integrated circuits from different manufacturers may be connected in a serial chain within an electronic system. This standard is described in an industry specification, IEEE JTAG 1149.1 ("the Standard"). The Standard provides a protocol by which various test functions may be accomplished through specified test ports defined by the specification. Essentially, the Standard outlines the details of the serial path of linked test registers (called a boundary-scan register chain) through each integrated circuit and defines the properties of the controller for each integrated circuit. The linked serial path of the boundary-scan register chain allows data to be transferred to various test and other registers within any of the integrated circuits. From these registers, various operations may be conducted by the controllers with the specific integrated circuits.

Boundary-scan test circuits offer a number of advantages beyond the ability to rapidly test integrated circuitry. Because it is useful in conducting tests of integrated circuits to read and write to the integrated circuits, one of the operations which it is possible to perform using boundary scan circuitry is writing to memory cells in memory arrays with which the boundary scan circuitry is associated. This offers special advantages with certain circuits. For example, certain memory devices may be placed in a particular condition by writing to the devices. Often the condition of memory devices is used to determine logic operations to be accomplished by associated circuitry. In such a case, such memory devices may be test programmed using the boundary scan circuitry in order to determine the accuracy of a program to be installed to control operations of the associated circuits. For example, certain field programmable gate arrays include various logic circuits which function according to conditions which may be written to static random access memory (SRAM) cells. By varying the conditions of the SRAM cells, different selectable logic functions are provided. Typically, such field programmable gate arrays include other non-volatile memory arrays (in addition to the SRAM cells) such as EPROM or flash EEPROM arrays which provide long term storage for the conditions which are written to the SRAM cells when power is applied to the gate array. These non-volatile memory arrays are not programmed until a correct program providing the desired logic functions has been ascertained because the non-volatile devices, once programmed, cannot be reprogrammed without removal from the system.

Because of the facility to write to memory cells using the boundary scan circuitry, it has become possible to trial program the SRAM devices of such a gate array until correct operation of the logic devices is obtained and then program the non-volatile memory devices with the correct conditions for writing to the SRAM array.

Using prior art boundary scan circuitry, it has been necessary to vary the condition of the memory devices of the SRAM and non-volatile memory arrays to obtain working programs to control the logic operations of the arrays before the field programmable arrays are placed into use. Recently, it has become apparent that it would be very useful if portions of field programmable logic devices could be programmed dynamically so that portions of the logic could be changed in response to changes encountered during operation of the circuitry. In fact, it is desirable to be able to reconfigure portions of a field programmable logic device in response to operation occurring in other operating portions of the field programmable logic device. Prior art boundary scan circuitry cannot conveniently be utilized for this purpose because it is only able to deal with each integrated circuit as a whole.

SUMMARY OF THE INVENTION

It is, therefore, an object of the present invention to provide apparatus and a method for allowing separate portions of an integrated circuit to be individually tested and otherwise manipulated and configured utilizing boundary scan or similar shift register circuitry.

It is a more specific object of the present invention to provide apparatus and a method for programming or writing to individual portions of an integrated circuit without affecting operations in other sections of the integrated circuit.

It is an additional object of the present invention to allow some portions of an integrated circuit to be manipulated and reconfigured while other portions of the integrated circuit are functioning in a normal operating condition.

These and other objects of the present invention are realized in an integrated circuit including a plurality of individual boundary scan or similar shift register circuits each associated with a separate portion of the circuitry of the integrated circuit. The registers of the individual boundary scan circuits are joined to provide a series boundary scan register chain with a plurality of individual controllers within an integrated circuit so that individual portions of the circuitry included within the integrated circuit may be individually manipulated.

These and other objects and features of the invention will be better understood by reference to the detailed description which follows taken together with the drawings in which like elements are referred to by like designations throughout the several views.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a computer system which may utilized the arrangement of the present invention.

FIG. 2 is a block diagram illustrating an arrangement of integrated circuits having boundary-scan testing facilities in accordance with the prior art.

FIG. 3 is a block diagram illustrating the boundary-scan circuitry architecture for a particular integrated circuit in accordance with the prior art.

FIG. 4 is a state diagram illustrating the operation of a controller for boundary-scan circuitry illustrated in FIGS. 2 and 3.

FIG. 5 is a timing diagram illustrating signals utilized in the operation of boundary scan circuitry in accordance with the present invention.

FIG. 6 is a block diagram illustrating an integrated circuit having boundary-scan testing facilities in accordance with the present invention.

NOTATION AND NOMENCLATURE

Some portions of the detailed descriptions which follow are presented in terms of symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities.

Further, the manipulations performed are often referred to in terms, such as adding or comparing, which are commonly associated with mental operations performed by a human operator. No such capability of a human operator is necessary or desirable in most cases in any of the operations described herein which form part of the present invention; the operations are machine operations. Useful machines for performing the operations of the present invention include general purpose digital computers or other similar devices. In all cases the distinction between the method operations in operating a computer and the method of computation itself should be borne in mind. The present invention relates to a method for operating a computer in processing electrical or other (e.g. mechanical, chemical) physical signals to generate other desired physical signals.

DETAILED DESCRIPTION

Referring now to FIG. 1, there is illustrated a computer system 10. The system 10 includes a central processing unit 11 which executes the various instructions provided to the computer system 10 to control its operations. The central processing unit 11 is joined to a bus 12 adapted to carry information to various components of the system 10. Joined to the bus 12 is main memory 13 which is typically constructed of dynamic random access memory arranged in a manner well known to those skilled in the prior art to store information during a period in which power is provided to the system 10. Also joined to the bus 12 is read only memory 14 which may include various memory devices well known to those skilled in the art each of which is adapted to retain a particular memory condition in the absence of power to the system 10. The read only memory 14 typically stores various basic functions used by the processor 11 such as basic input/output processes and startup processes typically referred to as BIOS processes.

Also connected to the bus 12 are various peripheral components such as long term memory 16 and circuitry such as a frame buffer 17 to which data may be written which is to be transferred to an output device such as a monitor 18 for display. As is well known to those skilled in the art, field programmable gate arrays may be utilized to perform logic functions within any of a number of the circuit components of a computer system such as that illustrated in FIG. 1. One specific use for field programmable gate arrays is to provide the glue logic utilized for joining various components to the bus 12 in a computer system. Another use of such devices is to provide decode logic used for addressing. The circuit 15 is a field programmable gate array such as that described in the present invention. Such a gate array 15 requires various signaling connections well known to those skilled in the art which depend on the particular use of the logic array and are not illustrated in FIG. 1; however, the signals which allow the specific use of the gate array itself are not believe to be important to the understanding of the present invention.

It will be recognized by those skilled in the art that the system 10 illustrated in FIG. 1 might as well represent a system such as an embedded controller. Such a system typically includes elements which perform essentially the same functions as those illustrated differing only in the ease with which the system may be restructured.

FIG. 2 is a block diagram illustrating an integrated circuit 22 which includes a boundary-scan test circuit arrangement designed in accordance with the Standard. The integrated circuit 22 may be mounted on a particular printed circuit board and connected through various conductors (not shown) with additional circuitry adapted to carry out various prescribed functions. For example, the circuit 22 and associated circuits may form some portion of a computer (such as the gate array 15) as described above with respect to FIG. 1. In general, the boundary-scan circuitry is the only portion of the integrated circuit 22 which is illustrated in detail in FIG. 2.

As may be seen, the circuit 22 has four terminals through which signals are transferred to the boundary-scan circuitry. These are a test data in (TDI) terminal, a test data out (TDO) terminal, a test mode select (TMS) terminal, and a test clock (TCK) terminal. These four terminals are typically pins provided at the periphery of each of the integrated circuits and of the printed circuit board on which the integrated circuits reside. Within the circuit 22 are a number of individual boundary-scan cells 26. Each of the boundary-scan cells 26 is functionally one stage of a shift register within that particular integrated circuit. Each boundary-scan cell 26 may be positioned adjacent an external pin 27 on the particular integrated circuit. Data may be provided to or received from a boundary-scan cell 26 at the pin 27 through a buffer stage 28. Each boundary-scan cell 26 may also be connected to provide or accept data from core logic circuitry within the integrated circuit 22.

Thus, the boundary-scan cells 26 of the circuit are joined in a series chain within the particular integrated circuit. One end of the boundary-scan chain of cells 26 formed within the circuit 22 is effectively joined to the TDI terminal for that circuit 22 and the other end of the chain is effectively joined to the TDO terminal of the circuit 22. The TDO terminal of the circuit 22 may be connected to the TDI terminal of a next boundary-scan circuit of a next integrated circuit so that a large serial chain of all of the boundary-scan cells 26 of all of the integrated circuits exists.

The circuit 22 includes a boundary-scan controller circuit 30 which controls the transfer of data through the various stages of the shift register formed by the boundary-scan cells 26 within the circuit 22. The boundary-scan controller circuit 30 of the circuit 22 receives the signals provided at the TMS and the TCK terminals in parallel with other controllers 30 on other integrated circuits which may be connected in a larger chain on a particular circuit board. The boundary-scan controller circuit controls the transfer of instructions and data through the boundary-scan circuitry and the transfer of data between the boundary-scan circuitry and the other circuitry of the circuit 22.

FIG. 3 illustrates the architecture of typical boundary-scan circuitry within the circuit 22 designed in accordance with the Standard. As may be seen, the boundary-scan circuitry includes an input port 31 through which the signals at the TDI, TDO, TMS, and TCK terminals are transferred. The signals at the TDI terminal may be transferred to either the boundary-scan register 32 defined by the boundary-scan cells 26, to some other data register 29, or to an instruction register 33 under control of the signals appearing the TMS terminal. In particular integrated circuits, the other register 29 may include a number of additional registers. Especially pertinent to the present operation are other registers 29 which may be used to hold data to be written to memory cells of memory arrays which are a portion of the core circuitry with which the boundary scan circuitry is associated. Also connected in parallel with the aforementioned registers is a device identification (ID) register 34 which may contain a twelve bit value identifying the particular integrated circuit; where no identification number is provided, a single stage register storing a zero value is provided instead. As will be understood, the boundary-scan register 32, the instruction register 33, and any other registers 29 (not including the identification register 34 which is always twelve bits in length) connected in parallel therewith may be of any length depending on the number of boundary-scan stages within the circuit 22 and the size of instructions affecting that circuit. Consequently, a one bit bypass register 35 is provided to allow a one clock bypass of the particular boundary-scan circuitry of the circuit 22 when the testing operation is not directed to the circuit 22. Each of these different registers provides in effect a selectable shift register path though the boundary scan circuitry of the particular integrated circuit.

An instruction placed in the instruction register 33 is decoded by an instruction decode circuit 37 and controls the transfer of data through the boundary-scan circuitry. The signals on the TMS and TCK terminals are transferred to the boundary-scan controller circuit 30 which provides control signals in accordance with the state diagram of FIG. 4 to control the operation of the boundary-scan circuitry.

As may be seen, the instruction controls the operation of a multiplexor 41 which controls the data path taken through the particular portion of the boundary-scan circuitry. Control signals from the boundary-scan controller circuit 30 also control a second multiplexor 42 which selects data from the path through the instruction register 33 or the data registers 29, 32, 34, and 35. A gate 43 is enabled when the test function of the boundary-scan circuitry is enabled by the TMS signals to allow data to flow to the TDO terminal. Thus, as may be seen, a serial path is provided through the boundary-scan circuitry of the circuit 22. Data may be transferred bit by bit through this serial path from the TDI terminal to the TDO terminal. By providing a selected sequence of control signals at the TMS terminal to place the controller 30 in a desired state, a path may be selectively provided through the instruction register 33, the boundary-scan register 32, the identification register 34, or the test data register or other registers 29. When the TDO terminal of one integrated circuit is connected to the TDI terminal of the next integrated circuit, a selectable serial path exists from the input terminal TDI on the printed circuit board through the boundary-scan circuitry of all integrated circuits to the TDO terminal on the printed circuit board.

FIG. 4 is a state diagram defining the operation of the boundary-scan controller circuit 30 of the circuit 22 in accordance with the Standard. FIG. 5 is a timing diagram illustrating signals provided to the controller circuit 30. In a typical arrangement, the boundary-scan controller circuit 30 is a finite state machine which operates synchronously with the clock input signals TCK. All state transitions within the boundary-scan controller circuit 30 occur at the rising edge of the TCK pulse while actions in the registers and other test logic occur at either the rising or the falling edge of the TCK.

If the boundary-scan controller circuit 30 is in the Test-Logic Reset state, as long as the TMS signal is held at one, the boundary-scan controller circuit 30 remains in that state; in this state, all test logic is disabled. In this state, the path through the bypass register 35 of the boundary-scan circuit is enabled and the values in the instruction register 33 are reset to zero. If the TMS signal is then set to zero, the boundary-scan controller circuit 30 leaves the Test-Logic Reset state at the rising edge of the next TCK pulse and enters the Run-Test/Idle state; while the boundary-scan controller circuit 30 remains in this state, various tests may be run or instructions performed depending on the instruction value in the instruction register 33. The boundary-scan controller circuit 30 remains in the Run-Test/Idle state so long as the TMS signal is zero, but leaves that state on the rising edge of a TCK signal for a Select DR-Scan state when the TMS signal becomes a one. The boundary-scan controller circuit 30 remains in this state for only one clock interval since a TMS value of one sends it to a Select IR-Scan state while a zero sends it to a Capture-DR state. The Select DR-Scan and Select IR-Scan states are used to control the route to be followed through the state machine of the boundary-scan circuit controller 30.

If the boundary-scan controller circuit 30 is in the Capture-DR state, data may be loaded in parallel from the selected parallel input pins 37 into the shift register stages of a selected data register (e.g., 29 or 32). A TMS value of one causes the boundary-scan controller circuit 30 to shift to an Exit1-DR state. A TMS value of zero causes the boundary-scan controller circuit 30 to shift to a Shift-DR state. In the Shift-DR state, any data is shifted out to the TDO terminal by one shift register stage on the rising edge of each TCK clock signal. In the Shift-DR state, the path through the identification registers 34 of each integrated circuit is automatically selected. It should be noted that if no identification register is provided, the path selected is through the one stage register which substituted in its place. A TMS value of one causes the boundary-scan controller circuit 30 to move to the Exit1-DR state. The Exit1-DR state, like the Select DR-Scan and Select IR-Scan states, is used to control the route to be followed through the boundary-scan controller state machine. From the Exit 1-DR state, the boundary-scan controller circuit 30 moves to a Pause-DR state on a TMS value of zero where it may reside during the continuation of the zero TMS value; this state provides a temporary pause in the shifting process. A TMS value of one moves the boundary-scan controller circuit 30 to an Exit2-DR state; the Exit2-DR state is also used to control the route to be followed the boundary-scan controller state machine. A TMS value of zero at the Exit2-DR state moves the boundary-scan controller circuit 30 back to the Shift-DR state while a TMS value of one moves the boundary-scan controller circuit 30 to an Update-DR state. The boundary-scan controller circuit 30 also moves to the Update-DR state from the Exit 1-DR state in response to a one TMS value.

At the Update-DR state, the data in any data register may be provided to a latched parallel output in the core logic of the particular integrated circuit 22. This allows the data to be transferred from the boundary-scan circuitry to the core logic of the integrated circuit without being affected by the shifting of the boundary-scan chain.

As will be appreciated, the transfer of instruction data through the states (Capture IR, Shift IR, Exit1 IR, Pause IR, Exit2 IR, and Update IR) succeeding the Select IR-Scan state proceeds in a manner essentially identical to that described for the data path.

As is well known, instructions and data may be furnished in serial binary form at the TDI terminal of a printed circuit board and transferred to any particular register in an integrated circuit by appropriate selection of the sequence of TMS signals. An instruction transferred to the instruction register 33 may be utilized to control data similarly furnished at the TDI terminal and transferred to a boundary-scan register 32 or another one of the data registers. An example of the operation for a particular boundary-scan controller circuit 30 follows. The TMS signal is first set to one for a select period (e.g., five clocks) to transfer the controller 30 to the Test-Logic Reset state. In this state, the path through the boundary-scan circuit is set to the bypass registers 35; and the instruction registers are all cleared to zero. If the TMS signal is then set to a zero, the boundary-scan controller circuit 30 moves from the Test-Logic Reset state to the Run-Test/Idle state on the next clock. If in the Run-Test/Idle state the TMS signal remains a one, the boundary-scan controller circuit 30 moves to the Select DR state on the next clock. The Select-DR state allows the state machine to move to a path in which the various test registers are utilized. If the TMS signal is changed to a zero, the boundary-scan controller circuit 30 moves to the Capture-DR state on the next clock. If the TMS signal then changes to a zero, the boundary-scan controller circuit 30 moves to the Shift-DR state on the next clock. If the TMS signal then changes to a zero, the boundary-scan controller circuit 30 remains in the Shift-DR state on the next clock and shifts in the data at the TDI terminal toward the TDO terminal so long as the TMS signal remains at zero. In this state, the identification registers 34 are automatically selected. In this state any serial string of data placed at the TDI terminal will be shifted through the boundary-scan chain toward the TDO terminal including particularly the identification registers 34. For those circuits which have identification numbers, the traverse of the twelve bit register requires twelve clock periods; while for those circuit which do not have identification numbers, the traverse of the single bit register requires only one clock period.

If, when the state machine is in the Select DR-Scan state, the TMS signal remains a one rather than changing to zero, the boundary-scan controller circuit 30 moves to the Select IR-Scan state on the next clock. If the TMS signal then changes to a zero, the boundary-scan controller circuit 30 moves to the Capture-IR state on the next clock. If the TMS signal then changes to a zero, the boundary-scan controller circuit 30 moves to the Shift-IR state on the next clock. In this state, the instruction register 33 of the boundary-scan circuit is automatically selected to provide the path through the boundary-scan chain. If the TMS signal changes to a zero, the boundary-scan controller circuit 30 remains in the Shift-IR state on the next clock and shifts any data provided at the TDI terminal one bit per clock (so long as the TMS signal remains at zero) toward the TDO terminal through a path which includes the instruction registers 33. This ultimately shifts the data to positions in the instruction register 33 so that it may be utilized as an instruction. Rather than placing data in a register for use, the data may be simply shifted through the boundary-scan circuitry of an integrated circuit out of the TDO terminal to the TDI terminal of the next integrated circuit. As may be seen, the ability to selectively move data through the boundary-scan circuitry in response to a particular sequence of TMS signals allows data to be placed in any register in the boundary-scan circuitry of an integrated circuit.

As may be understood from the foregoing discussion, it is entirely possible to use the circuitry of a boundary-scan chain in order to write to and to read from memory cells which are a part of the core logic of the integrated circuit with which the boundary scan circuitry is associated. This is particularly useful with certain types of circuitry such as field programmable gate arrays. The ability to write to the memory cells of these gate arrays allows the memory cells of the gate arrays to be test programmed in order to determine the accuracy of a program to be installed to control array operations. As was pointed out above, certain field programmable gate arrays include on a single integrated circuit a large number of gates which function according to conditions which may be written to an array of SRAM cells to perform selectable logic functions. By varying the conditions of the SRAM cells, the gates are made to perform different logic functions. Typically, such field programmable arrays include, in addition to the SRAM arrays, additional non-volatile memory arrays which provide storage for the conditions which are written to the SRAM cells when power is applied to the array. These non-volatile memory arrays are not to be programmed until a correct program has been devised and tested because, at least where EPROM devices are used, the non-volatile devices often cannot be reprogrammed without inordinate effort requiring at least removal from the system.

Using the boundary-scan circuitry, a SRAM array may be programmed and tested under operating conditions. The program may be changed as often and as necessary until an error-free result is obtained. When a correct pr