WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Multiple device scan chain emulation/debugging    

Get related patents on CD
United States Patent6886110   
Link to this pagehttp://www.wikipatents.com/6886110.html
Inventor(s)O'Brien; James J. (Hull, MA)
AbstractA method and system is provided for emulating individual JTAG devices in a multiple device boundary scan chain. The method includes coupling an emulator to the scan chain, and obtaining the topology of the scan chain. One device within the scan chain is then selected, and at least one other device within the scan chain is placed into bypass mode. Emulation instructions are sent to the scan chain, so that the emulation instructions bypass the at least one other device and are executed by the one device.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Inventor     O'Brien; James J. (Hull, MA)
Owner/Assignee     Wind River Systems, Inc. (Alameda, CA)
Patent assignment
All assignments
Company News
Publication Date     April 26, 2005
Application Number     09/921,250
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     August 2, 2001
US Classification     714/34 714/727
Int'l Classification    
Examiner     Iqbal; Nadeem
Assistant Examiner    
Attorney/Law Firm     Fay Kaplun & Marcin, LLP
Address
Parent Case     RELATED APPLICATION This application claims the benefit of U.S. Provisional Application Ser. No. 60/252,316, filed Nov. 21, 2000.
Priority Data    
USPTO Field of Search     714/34 714/30 714/39 714/42 714/28 714/726 714/727 714/729
Patent Tags     multiple scan chain emulation/debugging
   
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
2003/0233221
O'Brien et al.

Dec,2003

[0 after 0 votes]
2003/0225566
O'Brien et al.

Dec,2003

[0 after 0 votes]
2003/0163773
O'Brien et al.

Aug,2003

[0 after 0 votes]
6389565
Ryan et al.

May,2002

[0 after 0 votes]
6381717
Bhattacharya

Apr,2002

[0 after 0 votes]
6289300
Brannick et al.

Sep,2001

[0 after 0 votes]
6230119
Mitchell

May,2001

[0 after 0 votes]
6185732
Mann et al.

Feb,2001

[0 after 0 votes]
6153519
Jain et al.

Nov,2000

[0 after 0 votes]
6136686
Gambino et al.

Oct,2000

[0 after 0 votes]
6071810
Wada et al.

Jun,2000

[0 after 0 votes]
6055649
Deao et al.

Apr,2000

[0 after 0 votes]
5970241
Deao et al.

Oct,1999

[0 after 0 votes]
5960321
Hsieh et al.

Sep,1999

[0 after 0 votes]
5909453
Kelem et al.

Jun,1999

[0 after 0 votes]
5863702
Ohbayashi et al.

Jan,1999

[0 after 0 votes]
5828579
Beausang

Oct,1998

[0 after 0 votes]
5581101
Ning et al.

Dec,1996

[0 after 0 votes]
5570375
Tsai et al.

Oct,1996

[0 after 0 votes]
5546562
Patel

Aug,1996

[0 after 0 votes]
5448576
Russell

Sep,1995

[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

[0 market size comments]
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%

[0 market share comments]
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%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
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]
[0 license availability comments]
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]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



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

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



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

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A method for emulating individual devices in a multiple device chain, said method comprising: obtaining the topology of the chain; selecting one device within the chain by generating a selection instruction and sending the selection instruction to the chain; placing at least one other device within the chain into bypass mode; sending emulation instructions to the chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device; wherein the individual devices comprise JTAG devices and the chain includes a boundary scan chain; and wherein the selection instruction comprises; an Instruction Register Header field to retain the number of instruction register bits upstream of the one device in the scan chain; an Instruction Register Tail field to retain the number of instruction register bits downstream of the one device in the scan chain; a Data Register Header field to retain the number of devices upstream of the one device in the scan chain; a Data Register Tail field to retain the number of devices downstream of the one device in the scan chain; and a Command field to retain a command for the one device.

2. The method of claim 1, wherein said obtaining the topology, said selecting, and said placing, are effected by the emulator.

3. The method of claim 1, wherein said selecting comprises generating a selection instruction and sending the selection instruction to the scan chain.

4. The method of claim 1, wherein the emulator includes a DEVNUM register to receive the selection instruction.

5. The method of claim 1, wherein said placing comprises generating a bypass instruction and sending the bypass instruction to the scan chain.

6. The method of claim 5, wherein the emulator includes a DEVALT register to receive the bypass instruction.

7. A method for emulating individual devices in a multiple device chain, said method comprising; obtaining the topology of the chain; selecting one device within the chain; placing at least one other device within the chain into bypass mode by generating bypass instruction and sending the bypass instruction to the scan chain; sending emulation instructions to the chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device; wherein the individual devices comprise JTAG devices and the chain includes a boundary scan chain; and wherein the bypass instruction comprises; an Instruction Register Header field to retain the number of instruction register bits upstream of the other device in the scan chain; an Instruction Register Tail field to retain the number of instruction register bits downstream of the other device in the scan chain; a Data Register Header field to retain the number of devices upstream of the other device in the scan chain; a Data Register Tail field to retain the number of devices downstream of the other device in the scan chain; and a Command field to retain a command for the one device.

8. The method of claim 1, wherein said sending emulation instructions includes placing the one device into a data mode.

9. The method of claim 8, wherein said sending emulation instructions includes formatting the emulation instructions to compensate for the at least one other device.

10. The method of claim 9, wherein said formatting includes compensating for bits added by the at least one other device.

11. The method of claim 1, wherein said obtaining the topology includes automatically determining the topology of the scan chain.

12. The method of claim 1, wherein the topology includes the number of devices in the scan chain, and the number of instruction register bits in each of the devices.

13. The method of claim 12, wherein the topology includes a device number for at least one of the devices within the scan chain.

14. The method of claim 1, wherein said selecting includes serially placing an instruction register of the one device into the scan chain.

15. The method of claim 1, wherein the emulator includes a debugger.

16. The method of claim 15, further comprising displaying a graphical representation of the scan chain.

17. The method of claim 16, wherein the graphical representation includes the topology of the scan chain.

18. The method of claim 17, wherein the topology includes the number of devices in the scan chain, and the number of instruction register bits in each of the devices.

19. The method of claim 16, wherein the graphical representation includes a device number for at least one of the devices within the scan chain.

20. The method of claim 1, further comprising coupling an emulator to the chain.

21. An emulator comprising: an emulator connector configured to couple to a scan chain; a topology module configured to obtain the topology of the scan chain; a selection module configured to select one device within the scan chain; a bypass module configured to place at least one other device within the scan chain into bypass mode; an emulation instruction module configured to send emulation instructions to the scan chain; and a translation module configured to translate the emulation instructions into a format usable by the one device; wherein the emulation instructions bypass the at least one other device and are executed by the device.

22. The emulator of claim 21, comprising a graphical user interface (GUI), said GUI comprising: a user-selectable list of devices; a graphical display of the chain; and at least one chain parameter field.

23. The GUI of claim 22, wherein the individual devices comprise JTAG devices and the chain includes a boundary scan chain.

24. The GUI of claim 23, wherein said at least one device parameter field displays a parameter selected from the group consisting of: number of devices in the scan chain; number of instruction register bits in the scan chain; and a device number for at least one of the devices.

25. The GUI of claim 23, wherein said at least one device parameter field comprises a Number of Devices field, a Total Instruction Register Bit field, and a Device Number field.

26. The GUI of claim 25, wherein said Device Number field comprises a decimal format field and a hexadecimal format field.

27. The GUI of claim 23, wherein the graphical display comprises the number of devices in the scan chain, the model number of each device, the Instruction Register length of each device, and relative position of each device within the scan chain.

28. A system for emulating individual JTAG devices in a multiple device boundary scan chain, said system comprising: a topology module configured to obtain the topology of the scan chain; a selection module configured to select one device within the scan chain; a bypass module configured to place at least one other device within the scan chain into bypass mode; and

an emulation instruction module configured to send emulation instructions to the scan chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device;

wherein the bypass module is configured to generate a bypass instruction including: an Instruction Register header field to retain the number of instruction register bits upstream of the other device in the scan chain; an Instruction Register Tail field to retain the number of instruction register bits downstream of the other device in the scan chain; a Data Register Header field to retain the number of devices upstream of the other device in the scan chain; a Data Register Tail field to retain the number of devices downstream of the other device in the scan chain; and a Command field to retain a command for the one device.

29. An article of manufacture for emulating individual JTAG devices in a multiple device boundary scan chain, said article of manufacture comprising: a computer usable medium having a computer readable program code embodied therein, said computer readable program code including instructions for: obtaining a topology of the scan chain; selecting one device within the scan chain; placing at least one other device within the scan chain into bypass mode; and sending emulation instructions to the scan chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device; wherein said instructions for placing include a bypass instruction including: an Instruction Register Header field to retain the number of instruction register bits upstream of the other device in the scan chain; an Instruction Register Tail field to retain the number of instruction register bits downstream of the other device in the scan chain; a Data Register Header field to retain the number of devices upstream of the other device in the scan chain; a Data Register Tail field to retain the number of devices downstream of the other device in the scan chain; and a Command field to retain a command for the one device.

30. Computer readable program code for emulating individual JTAG devices in a multiple device boundary scan chain, said computer readable program code comprising instructions to perform the following steps: obtaining the topology of the scan chain; selecting one device within the scan chain; placing at least one other device within the scan chain into bypass mode; and

sending emulation instructions to the scan chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device;

wherein the instructions for placing include a bypass instruction including: an Instruction Register Header field to retain the number of instruction register bits upstream of the other device in the scan chain; an Instruction Register Tail field to retain the number of instruction register bits downstream of the other device in the scan chain; a Data Register Header field to retain the number of devices upstream of the other device in the scan chain; a Data Register Tail field to retain the number of devices downstream of the other device in the scan chain; and a Command field to retain a command for the one device.

31. A system for emulating individual JTAG devices in a multiple device boundary scan chain, said system comprising: a topology module configured to obtain the topology of the scan chain; a selection module configured to select one device within the scan chain; a bypass module configured to place at least one other device within the scan chain into bypass mode; an emulation instruction module configured to send emulation instructions to the scan chain, wherein the emulation instructions bypass the at least one other device and are executed by the one device; at least one register configured to receive selection and bypass instructions respectively generated by the selection and bypass modules; and a graphical user interface (GUI) including: a user-selectable list of JTAG devices; a graphical display of the scan chain; and at least one scan chain parameter field.

32. The emulator of claim 21, wherein said translation module comprises a FPGA disposed within said emulator connector.
 Description Submit all comments and votes
 


BACKGROUND

Since the mid-1970s, the structural testing of loaded printed circuit boards (PCBs) has relied very heavily on the use of the so-called in-circuit "bed-of-nails" technique (FIG. 1). This method of testing makes use of a fixture containing a bed-of-nails to access individual devices on the board through test lands laid into the copper interconnect, or other convenient contact points. Testing then generally proceeds in two phases: the power-off tests followed by power-on tests.

Power-off tests check the integrity of the physical contact between nail and the on-board access point. They then may carry out open and shorts tests based on impedance measurements. Power-on tests apply stimulus to a chosen device on a board, with an accompanying measurement of the response from that device. Other devices that are electrically connected to the device-under-test are usually placed into a safe state (a process called "guarding"). In this way, the tester is able to check the presence, orientation, and bonding of the device-under-test in place on the board.

Fundamentally, the in-circuit bed-of-nails technique relies on physical access to all devices on a board. For plated-through-hole technology, the access is usually gained by adding test lands into the interconnects on the "B" side of the board--that is, the solder side of the board. The advent of surface mount devices meant that manufacturers began to place components on both sides of the board--the "A" side and the "B" side. The smaller pitch between the leads of surface-mount components caused a corresponding decrease in the physical distance between the interconnects. This had serious impact on the ability to place a nail accurately onto a target test land. The question of access was further compounded by the development of multi-layer boards.

In the 1980s a group known as the Joint Test Action Group (JTAG) examined the problem and its possible solutions. Their preferred method of solution was based on the concept of placing a series of cells forming a serial shift register, around the boundary of the device. This shift register became known as a boundary-scan register. The JTAG approach ultimately became an international standard known as the IEEE 1149.1 "Test Access Port and Boundary-Scan Architecture". As used herein, the terms "JTAG", "JTAG compliant", and/or "IEEE 1149.1" are interchangeably used to refer to this standard (including subsequent revisions and modifications thereof) and/or devices that are compliant with this standard.

The boundary-scan cells forming the boundary-scan register essentially formed a series of "virtual nails", which may be used in a manner similar to the actual nails discussed above to test the presence, orientation, and bonding of devices in place on a board. In particular, the prime function of the bed-of-nails in-circuit tester, and thus, the boundary-scan architecture, has been to test for manufacturing defects, such as missing devices, damaged devices, open and short circuits, misaligned devices, and wrong devices.

It was assumed that devices had already been tested for functionality when they existed only as devices (i. e., prior to assembly on the board). Boundary-scan architecture was viewed as an alternative way of testing for the presence of manufacturing defects, including defects caused by shock, such as electrical shock (e. g., electrostatic discharge), mechanical shock (e. g., clumsy handling), or thermal shock (e. g., hot spots caused by the solder operation). A defect, if it occurs, is likely present either in the periphery of the device (leg, bond wire, driver amplifier), in the solder, or in the interconnect between devices. It is very unusual to find damage to the core logic without there being some associated damage to the periphery of the device. In-circuit testers thus generally were not configured or intended to prove the overall functionality of the devices.

However, with the proliferation of complex board mounted systems, it is often desirable to effect in-depth testing of individual components. A need thus exists for a method and apparatus for emulating and/or debugging individual devices using existing scan chain architecture.

SUMMARY

According to an embodiment of this invention, a method is provided for emulating individual JTAG devices in a multiple device boundary scan chain. The method includes coupling an emulator to the scan chain, and obtaining the topology of the scan chain. One device within the scan chain is then selected, and at least one other device within the scan chain is placed into bypass mode. Emulation instructions are sent to the scan chain, so that the emulation instructions bypass the at least one other device and are executed by the one device.

In another aspect, the present invention includes a graphical user interface (GUI) for an emulator configured to emulate individual JTAG devices in a multiple device boundary scan chain. The GUI includes a user-selectable list of devices, a graphical display of the scan chain, and at least one scan chain parameter field.

A further aspect of the present invention includes a system for emulating individual JTAG devices in a multiple device boundary scan chain. The system includes an emulator couplable to the scan chain, and a topology module configured to obtain the topology of the scan chain. The system also includes a selection module configured to select one device within the scan chain, and a bypass module configured to place at least one other device within the scan chain into bypass mode. An emulation instruction module is configured to send emulation instructions to the scan chain, so that the emulation instructions bypass the at least one other device and are executed by the one device.

A still further aspect of this invention includes an article of manufacture for emulating individual JTAG devices in a multiple device boundary scan chain, the article of manufacture including a computer usable medium having a computer readable program code embodied therein. The computer usable medium includes computer readable program code configured for integration with an emulator, the emulator being couplable to the scan chain. This aspect further includes computer readable program code for obtaining the topology of the scan chain, and computer readable program code for selecting one device within the scan chain. Computer readable program code is also provided for placing at least one other device within the scan chain into bypass mode. Computer readable program code is also provided for sending emulation instructions to the scan chain, so that the emulation instructions bypass the at least one other device and are executed by the one device.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other features and advantages of this invention will be more readily apparent from a reading of the following detailed description of various aspects of the invention taken in conjunction with the accompanying drawings, in which:

FIGS. 1 to 5 are schematic representations of various aspects of boundary scan architecture of the prior art;

FIG. 6 is a schematic representation of an exemplary boundary scan chain used in connection with embodiments of the present invention;

FIG. 7A is a schematic representation of an embodiment of the present invention, including an exemplary boundary scan chain;

FIG. 7B is a block diagram of an embodiment of a method of emulating a device, in accordance with the present invention, with optional portions thereof shown in phantom;

FIG. 7C is a block diagram of the emulator of the embodiment of FIG. 7A; and

FIGS. 8-12 are screen displays of a graphical user interface of the present invention.

DETAILED DESCRIPTION

Referring to the figures set forth in the accompanying drawings, the illustrative embodiments of the present invention will be described in detail hereinbelow. For clarity of exposition, like features shown in the accompanying drawings shall be indicated with like reference numerals and similar features as shown in alternate embodiments in the Drawings shall be indicated with similar reference numerals.

Embodiments of the present invention include an emulator 110 and software therefor, which enables devices on a multiple device scan chain to be individually targeted for emulation/debugging operations. Particular embodiments of the present invention include JTAG compliant instructions that utilize boundary scan input and output cells to selectively bypass individual devices in the serial scan chain, to enable one or more selected devices to be coupled through the scan chain to the emulator/debugger 110. Examples of JTAG enabled (also referred to as JTAG compliant) devices that may be used in conjunction with embodiments of the present invention include the 6xx , 7xx and 82xx family of processors available from Motorola.RTM. (Palatine, Ill.), as well as POWERPC.RTM. (International Business Machines Corporation `IBM`, Armonk, N.Y.), 4xx (IBM), MIPS.RTM. (Mips Technologies, Inc., Mountain View, Calif.), and ARM (Arm Limited, Cambridge, England) processors.

Alternate embodiments of the present invention may be used with other types of devices, such as IEEE 1149.1 compatible devices capable of in-circuit PAL, FLASH and FPGA programming. These alternative embodiments may provide features such as boundary scan signal display and in-circuit testing.

Where used in this disclosure, the term "emulator" is used in a manner familiar to those skilled in the art, namely, to refer to hardware and/or software configured to enable a host processor to run software designed for a target processor, and which may include a source-level debugger. For example, the term "emulator" may include the visionICE.TM. real-time in-circuit emulator, and/or visionPROBE.TM. hardware-assisted debugging & test tool products available from Wind River Systems, Inc. (Alameda, Calif.) alone or in combination. These products typically include a translation module (not shown), e.g., a Field Programmable Gate Array or the like, configured to translate emulation/debugging instructions into a format, such as JTAG, which is usable by the target device(s). Such an emulator, modified in accordance with embodiments of the present invention as described herein, is referred to as "emulator 110".

Referring now to Figures, the apparatus of the present invention will be more thoroughly described. Prior to discussing the configuration and function of embodiments of this invention, a brief discussion of JTAG boundary-scan architecture and operation is in order.

Turning to FIG. 1, in a JTAG compliant device 30, each primary input 40 and primary output 42 signal is supplemented with a multi-purpose memory element known as a boundary-scan cell 44. Cells 44 coupled directly to primary inputs 40 are generally referred to as "input cells." Similarly, cells 44 coupled directly to primary outputs 42 are referred to as "output cells." As used herein, when distinguishing between elements within a device, the terms "input" and "output" are defined relative to the core logic 46 of the device. The terms "input" and "output" may also be used herein to reference particular interconnects between two or more devices.

The collection of boundary-scan cells 44 is configured as a parallel-in, parallel-out shift register. A parallel load operation, referred to as a "capture" operation, causes signal values on device input pins 40 to be loaded into the input cells and, signal values passing from the core logic 46 to device output pins 42 to be loaded into the output cells. A parallel unload operation--called an "update" operation--causes signal values already present in the output scan cells to be passed out through the device output pins 42. Signal values already present in the input scan cells will be passed into the core logic 46.

Data may also be shifted around the shift register, in serial mode, starting from a dedicated device input pin referred to as "Test Data In" (TDI) pin 48 and terminating at a dedicated device output pin referred to as "Test Data Out" (TDO) pin 50. A test clock, TCK, is fed into clock pin 52 and the mode of operation is controlled by a dedicated "Test Mode Select" (TMS) pin 54.

At the device level, the boundary-scan elements 44 generally do not contribute to the functionality of the core logic 46. Rather, the boundary-scan path 62 (FIG. 2) is independent of the function of the device 30. The benefit of the scan path 62 is at the board level as shown in FIG. 2.

Turning now to FIG. 2, an exemplary board 60 contains four boundary-scan devices 30. The board 60 includes an edge-connector TDI input 64 connected to the TDI 48 of the first device. TDO 50 of the first device is connected to TDI 48 of the second device, and so on, creating a global scan path 62 terminating at an edge connector TDO output 66. TCK input 68 is connected in parallel (not shown) to each device TCK 52. TMS 70 is similarly connected in parallel (not shown) to each TMS 54.

Particular tests may be applied to the device interconnects via the global scan path 62--by loading the stimulus values into the appropriate device-output scan cells 44, by the process of entering a value into the edge connector TDI input 64 (i.e., using a "shift-in" operation), applying the stimulus ("update" operation), capturing the responses at device-output scan cells ("capture" operation), and shifting the response values out to the edge connector TDO (shift-out operation).

Using the boundary-scan cells to test the core functionality is called "internal test," shortened to Intest. Using the boundary-scan cells to test the interconnect structure between two devices is called "external test," shortened to Extest. The use of the cells for Extest is the major application of boundary-scan architecture, searching for opens and shorts plus damage to the periphery of the device. Intest has only typically been used for very limited testing of the core functionality (i. e., an existence test, to identify defects such as devices missing, incorrectly oriented, or misalignment.

Turning now to FIG. 3, the JTAG architecture is shown in greater detail. As shown, device 30 includes Test Data In (TDI) 48, Test Mode Select (TMS) 54, Test Clock input (TCK) 52, Test Data Out (TDO) 50--and an optional test pin Test Reset (TRST) 76. These pins are collectively referred to as the Test Access Port (TAP).

A boundary-scan cell 44 directly coupled to each device primary input and primary output pin (not shown), are interconnected internally to form a serial boundary-scan register (Boundary Scan) 84.

Additional features include a finite-state machine TAP controller 86 having inputs coupled to TCK 52, TMS 54, and optionally, TRST 76. An n-bit Instruction Register (IR) 88 is provided to hold a current instruction. A 1-bit bypass register (Bypass) 90 is provided, and optionally