WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment    
United States Patent5812562   
Link to this pagehttp://www.wikipatents.com/5812562.html
Inventor(s)Baeg; Sanghyeon (Cupertino, CA)
AbstractAn integrated circuit includes a test port operating at a first clock speed and at least one functional logic block operating at a second clock speed which is faster than the first clock speed. A control register, formed by boundary scan cells, operates at the first clock speed and provides control inputs to the functional block to control emulation tasks. The control register is writable via a serial shift operation through the test port while the functional block is operating. The outputs of the control register which are being provided to the functional block are held constant during the serial shift operation. An observation register, formed by boundary scan cells, operates at the first clock speed, and is readable through the test port via a serial shift operation, while the functional block is operating. The observation register receives signals from the functional block indicating status of the functional block.
   














 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 5812562
Low cost emulation scheme implemented via clock control using JTAG

     controller in a scan environment - US Patent 5812562 Drawing
Low cost emulation scheme implemented via clock control using JTAG controller in a scan environment
Inventor     Baeg; Sanghyeon (Cupertino, CA)
Owner/Assignee     Samsung Electronics Company, Ltd. (KR)
Patent assignment
All assignments
Publication Date     September 22, 1998
Application Number     08/749,858
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     November 15, 1996
US Classification     714/726 714/731
Int'l Classification     G01R 031/28
Examiner     Beausoliel Jr.; Robert W.
Assistant Examiner     Iqbal; Nadeem
Attorney/Law Firm     Skjerven, Morrill, MacPherson, Franklin & Friel, LLP
Address
Parent Case     DESCRIPTION OF THE RELATED ART CROSS-REFERENCE TO RELATED APPLICATIONS This application relates to copending applications, application Ser. No. 08/733,132, filed on Oct. 18, 1996, entitled "ADAPTABLE SCAN CHAINS FOR DEBUGGING AND MANUFACTURING TEST PURPOSES", by Baeg, application Ser. No. 08/733,908, filed on Oct. 18, 1996, entitled "CLOCK GENERATION FOR TESTING OF INTEGRATED CIRCUITS", by Baeg and Yu, and application Ser. No. 08/733,817, filed on Oct. 18, 1996, entitled "STRUCTURE AND METHOD FOR SDRAM DYNAMIC SELF REFRESH ENTRY AND EXIT USING JTAG", by Qureshi and Baeg, which are commonly owned and which are incorporated herein by reference.
Priority Data    
USPTO Field of Search     371/22.3 371/22.6 371/22.5 371/22.31 371/22.32 371/22.36 371/27.7 371/22.1 395/183.06 395/183.15 395/183.1 395/500 395/183.03 395/183.19 364/579
Patent Tags     low cost emulation scheme implemented via clock control jtag controller scan environment
   
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
5623503
Rutkowski
714/727
Apr,1997

[0 after 0 votes]
5614838
Jaber
324/765
Mar,1997

[0 after 0 votes]
5608736
Bradford
714/727
Mar,1997

[0 after 0 votes]
5546568
Bland
713/501
Aug,1996

[0 after 0 votes]
5535331
Swoboda
714/45
Jul,1996

[0 after 0 votes]
5524114
Peng
714/724
Jun,1996

[0 after 0 votes]
5519715
Hao
714/727
May,1996

[0 after 0 votes]
5510704
Parker
324/158.1
Apr,1996

[0 after 0 votes]
5497378
Amini
714/727
Mar,1996

[0 after 0 votes]
5488688
Gonzales
714/34
Jan,1996

[0 after 0 votes]
5479652
Dreyer
714/30
Dec,1995

[0 after 0 votes]
5434804
Bock

Jul,1995

[0 after 0 votes]
5329471
Swoboda

Jul,1994

[0 after 0 votes]
5313470
Simpson
714/727
May,1994

[0 after 0 votes]
4860290
Daniels
714/726
Aug,1989

[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. A method for operating an integrated circuit which includes at least one functional logic block operating with a system clock at a first clock speed and a test port operating with a test clock at a second clock speed, the second clock speed being lower than the first clock speed, the test port being controlled by a test controller external to the integrated circuit, the method comprising the steps of:

selecting as a scan address a first control register containing first control values being provided to the functional block, via the test port with a first test instruction;

shifting second control values into the first control register at the second clock speed, the first control values being provided to the functional logic block, not changing during the shifting;

loading the updated control values from a first portion into a second portion of the control register to provide the updated control values to the functional logic block;

wherein,

the second control values include a stop clock flag request bit, indicating to the functional logic that the test controller wishes to stop the system clocks, and wherein,

the second control values are shifted into the first control register while the system clock is being provided to the functional block, and wherein,

the functional logic responds to assertion of the stop clock flag request bit by going into an idle state by completion of pending instructions in an instruction stack and providing an idle signal to a second control register indicating that the functional logic has gone to the idle state.

2. A method as recited in claim 1 further comprising the steps of:

monitoring the state of the second control register through the test port to determine when the idle signal is asserted by the functional logic;

once the idle signal has been detected by the test controller, shifting and loading second control values, the third control values including a stop clocks control bit asserted to indicate to a clock control logic block, to stop system clocks, to thereby stop the system clocks.

3. A method for operating an integrated circuit which includes at least one functional logic block operating with a system clock at a first clock speed and a test port operating with a test clock at a second clock speed, the second clock speed being lower than the first clock speed, the test port being controlled by a test controller external to the integrated circuit, the method comprising the steps of:

selecting as a scan address a first control register containing first control values being provided to the functional block, via the test port with a first test instruction;

shifting second control values into the first control register at the second clock speed, the first control values being provided to the functional logic block, not changing during the shifting;

loading the updated control values from a first portion into a second portion of the control register to provide the updated control values to the functional logic block;

shifting and loading the first control register to specify a count value of the number of clock cycles which should be provided by a clock control logic circuit; and

executing the specified number of clock cycles at one of the first clock speed and the second clock speed according to control bits in the first control register.

4. An integrated circuit comprising:

a test port operating at a first clock speed;

at least one functional block operating at a second clock speed which is faster than the first clock speed;

a control register, formed by boundary scan cells, operating at the first clock speed, providing control inputs to the functional block to control emulation tasks of the functional block, the control register being writable via a serial shift operation through the test port while the functional block is operating, the outputs of the control register which are being provided to the functional block being constant during the serial shift operation;

an observation register, formed by boundary scan cells, operating at the first clock speed, which is readable through the test port via a serial shift operation, while the functional block is operating, the observation register receiving inputs indicating status of the functional block; and

wherein the control register includes a plurality of bits indicating a clock count, the clock count indicating to a clock control circuit to provide a number of clock cycles represented by the clock count, the control register further including bits provided to the clock control circuit, indicating whether the clock control circuit should issue the number of clock cycles at the first or second clock frequency.

5. An integrated circuit comprising:

a test port operating at a first clock speed;

at least one functional block operating at a second clock speed which is faster than the first clock speed;

a control register, formed by boundary scan cells, operating at the first clock speed, providing control inputs to the functional block to control emulation tasks of the functional block, the control register being writable via a serial shift operation through the test port while the functional block is operating, the outputs of the control register which are being provided to the functional block being constant during the serial shift operation;

an observation register, formed by boundary scan cells operating at the first clock speed, which is readable through the test port via a serial shift operation, while the functional block is operating, the observation register receiving inputs indicating status of the functional block;

a plurality of boundary scan strings, comprised of boundary scan cells, each cell receiving a mode signal as a multiplexer select signal; and wherein

the control register includes a mode override control bit indicating to override test port mode control of the boundary scan strings, the control register further including mode control bits, one of the mode control bits being provided to each of the boundary scan strings to control the mode signal to each boundary scan string when the mode override control bit is asserted.
 Description Submit all comments and votes
 


DESCRIPTION OF THE RELATED ART CROSS-REFERENCE TO RELATED APPLICATIONS

This application relates to copending applications, application Ser. No. 08/733,132, filed on Oct. 18, 1996, entitled "ADAPTABLE SCAN CHAINS FOR DEBUGGING AND MANUFACTURING TEST PURPOSES", by Baeg, application Ser. No. 08/733,908, filed on Oct. 18, 1996, entitled "CLOCK GENERATION FOR TESTING OF INTEGRATED CIRCUITS", by Baeg and Yu, and application Ser. No. 08/733,817, filed on Oct. 18, 1996, entitled "STRUCTURE AND METHOD FOR SDRAM DYNAMIC SELF REFRESH ENTRY AND EXIT USING JTAG", by Qureshi and Baeg, which are commonly owned and which are incorporated herein by reference.

BACKGROUND OF THE INVENTION

Integrated circuits have increasingly incorporated the JTAG (Joint Test Action Group) test port to facilitate testing and debug of integrated circuit chips mounted on a board. The JTAG standard has been adopted by the Institute of Electrical and Electronics Engineers and is now defined as IEEE Standard 1149.1, IEEE Standard Test Access Port and Boundary-Scan Architecture, which is incorporated herein by reference. See also C. M. Maunder, R. E. Tullos, "The Test Access Port and Boundary-Scan Architecture," (IEEE Computer Society Press, 1990), which is also incorporated herein by reference.

The JTAG test port (Test Access Port or TAP) has been utilized as a means for emulating and debugging VLSI designs. That is possible because JTAG provides control and observability to the core logic portions of the integrated circuit through scan access. However, some prior art emulation approaches using JTAG have utilized a complex interface between core logic and the JTAG port. That is in part because the JTAG port typically operates at a test clock frequency which can be an order of magnitude slower than the system clocks provided to the functional logic within the integrated circuit. For example, U.S. Pat. No. 5,535,331 describes one such relatively complex interface scheme between the JTAG controller and functional logic contained within the integrated circuit. Additionally, in many JTAG applications, it is necessary to stop the system clocks in order to obtain status information about the functional blocks. It would be desirable to have an expandable and flexible interface between the JTAG port and the core logic blocks on VLSI chips that is simple, does not require extensive redesign for each new application and provides access to status of the core logic blocks without having to stop the system clocks each time.

SUMMARY OF THE INVENTION

Accordingly, this invention provides a simple and expandable approach to providing emulation of VLSI chips using a test interface such as JTAG. In one embodiment of the invention a method is provided for operating an integrated circuit which includes at least one functional logic block operating with a system clock at a first clock speed and a test port operating with a test clock at a second clock speed, the second clock speed being lower than the first clock speed, the test port being controlled by a test controller external to the integrated circuit. The method selects as a scan address a first control register, via the test port, with a first test instruction. Updated control values are shifted into the first control register at the second clock speed, and the output of the first control register which is being provided to the functional logic block, does not change during the shifting. Updated control values are then loaded from a first portion into a second portion of the control register to provide the updated control values to the functional logic block.

Additionally, the updated control values may include a stop clock request flag bit, indicating to the functional logic that the test controller wishes to stop the system clocks, the shifting and loading step which asserts the stop clock request flag bit taking place while the system clocks are active. The functional logic responds to the stop clock request flag by going into an idle state by completing pending instructions in an instruction stack and providing an idle signal to a second control register indicating that the functional logic has gone to the idle state. The method may also include the steps of monitoring the state of the second control register through the test port to determine when the idle signal is asserted by the functional logic and once the idle signal has been detected by the test controller, shifting and loading updated control values, the control values including a stop clock control bit asserted to indicate to a clock control logic block, to stop the system clocks.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying drawings, wherein the use of the same reference symbols in different drawings indicates similar or identical items.

FIG. 1 is an overview of the test environment.

FIG. 2 is a more detailed look at the test architecture of an integrated circuit according to the invention.

FIG. 3 is a boundary scan register cell.

FIG. 4 shows several boundary scan register cells coupled together to form a special interface register according to the invention.

FIG. 5 is an overview of mode transition in JTAG.

FIG. 6 shows the system and test clock circuit.

FIG. 7 shows the MSP hardware test environment.

FIG. 8 shows the IDC block test scheme.

FIG. 9 shows the register file test scheme.

DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 illustrates a simplified overview of the test environment of one embodiment of the invention. Integrated circuit (IC) 110 includes TAP 111 to facilitate testing and debugging the integrated circuit and applications intended to run on the integrated circuit IC 110, may be, e.g., Multimedia Signal Processor (MSP.TM.) developed at Samsung Semiconductor, Inc. of San Jose, Calif. That processor, which includes a 32 bit RISC microcontroller (ARM7) and a vector processor engine for digital signal processing, is described in U.S. patent application Ser. No. 08/699,303 filed Aug. 19, 1996 by C. Reader et al. and entitled "Methods and Apparatus for Processing Video Data", which is incorporated herein by reference. The MSP testing circuitry is described in more detail in Appendix A attached hereto. IC 110 is also coupled to external devices, e.g., SDRAM 112. A TAP controller 113 controls debug and emulation of IC 110 through TAP 111 over JTAG bus 114. Note that the embodiment described herein assumes a JTAG implementation. However, the invention is equally applicable to other serial test interfaces on VLSI chips.

The JTAG port 111 can function as a control circuit for boundary scan testing in accordance with the JTAG standard. In addition to boundary scan testing defined by JTAG, TAP 111 is suitable for internal testing as defined below.

Referring now to FIG. 2, the test architecture of IC 110 is shown in more detail. The JTAG port 111 includes 5 pins defined by the JTAG standard that constitute bus 114. The JTAG standard requires four signals (a fifth being optional) interfacing the Test Access Port (TAP) on the integrated circuit. The TAP input signals include a test clock (TCK), a test mode select (TMS) which acts as a control signal, a test data in (TDI) to receive serial data and commands, and an optional test reset (TRSTN). A test data output (TDO) provides serial output from TAP 111 to TAP controller 113. The clock input on pin TCK is used not only during the JTAG boundary scan testing, but also for internal testing. In particular, the pin TCK provides scan clock signals for scanning data in and out of internal scan chains as well as providing clocks for pseudo-system clocks, wherein the system clocks operate at TCK frequency.

Emulation of a DSP chip can be implemented using a scan test interface such as JTAG to control internal functional blocks such as clock generation block 205 and internal functional blocks 203 and 201. Emulation (e.g., testing and debug of the chip and applications which are being developed for it) of a digital signal processor (DSP), which is one of the functional blocks contained on the MSP, requires such capabilities as single stepping through instructions, setting break points, reading, and writing (i.e. controlling) the important registers for a system operation such as the program counter, status register(s), and the cache RAMs. In today's emulators, an emulation block is usually designed to achieve such emulation tasks while allowing free running system clocks, which requires extra design time as well as silicon area and extra I/O pads for emulation purposes.

By controlling the system clocks using JTAG, the functions required for chip emulation can be implemented relatively easy with a minimum cost of design time and silicon penalty. The control necessary includes bypassing (i.e. stopping) free running system clocks, clocking for single or multiple cycles, and enabling free running clocks to go back to normal operation. The communication between JTAG controller and other functional blocks can be made using two special registers, which resolve the asynchronous relationship and speed gap between TCK and system clocks. In the embodiment described herein, the TCK operates at 10 MHz and while the fastest system clocks operate at 80 MHz.

Referring again to FIG. 2, the communication between the clock control block 205 and the JTAG controller is made using the two special registers, Mode Control Register (MCR) (207) and Observation Control Register (OCR) 209. The registers are part of the JTAG controller in that they are clocked by the JTAG clock, TCK. Note that TCK and the other system clocks are totally asynchronous. Synchronization problems between JTAG Controller 110 and the non-test circuitry are avoided through the use of the two shift registers, MCR 207 and OCR 209.

The mode control register (MCR) 207 controls the clock control logic 205 and internal function blocks. In one embodiment MCR 207 contains 40 control bits including bits to control clocks and perform handshaking with the functional blocks. See Table 12 in Appendix A showing the contents of the MCR register and in Table 14, the section entitled "JTAG Output Signals from MCR register" for additional details on the MCR register. The observation control register (OCR) 209 receives handshake responses from the clock control logic 205 and the function blocks and can be used to observe internal states of the integrated circuit, as well as off chip memory locations. See Table 13 in Appendix A for additional details of the OCR. The MCR and OCR registers are operated using the JTAG clock, TCK, which is asynchronous with system clocks. Shift registers MCR 207 and OCR 209 are special shift registers consisting of a plurality of boundary register cells where data can be serially shifted through each register cell without destroying the existing contents of that register cell. It is necessary to shift data, i.e., a new control word, into the MCR while maintaining the previous values, so that control bits to the functional logic do not toggle with each serial shift operation, thereby setting the internal logic blocks into unknown states. An example of a boundary cell utilized for the MCR and OCR registers in a preferred embodiment is shown in FIG. 3 and will be discussed further herein.

Generally, to use the JTAG port for debug and emulation purposes, the system clocks are stopped and the JTAG controller can scan data in/out to/from all scan flip-flops and set a program counter, set next break address/data break points, and many other control registers to control the design. If a DSP or other internal processor implements address/data break points, instruction stepping is possible. Otherwise, cycle based stepping is supported. Generating single/multiple clocks are implemented using a counter in the clock control logic 205 which uses the count value contained in bits 1-10 of the MCR.

The debugging steps for use with the MSP can be described as follows. In some debugging scenarios a handshaking sequence is implemented with the functional blocks to ensure the blocks are in a known state before the clocks are stopped. In some debugging scenarios it may be appropriate to simply stop the clocks without the handshaking sequence. When a handshaking sequence is appropriate, the first step in the sequence is to issue a stop clock request signal to the functional blocks. The clock stop request can be issued through JTAG by shifting in a custom JTAG instruction MCR/BIST1 or MCR/BIST2 which will select the MCR for a subsequent shift DR instruction. Then the appropriate control bits are serially shifted into the MCR with the stop clock request bit (jtag.sub.-- clk.sub.-- stop.sub.-- req) asserted. The (jtag.sub.-- clk.sub.-- stop.sub.-- req) bit acts as a handshaking signal telling the functional blocks that JTAG wants to stop the clocks. Because the MCR is accessed serially, while system clocks are running, it is necessary that the MCR control outputs be stable while the new data is input into the MCR. Therefore, the MCR is implemented using a boundary scan latch design discussed previously. At the end of the serial shifting operation, the JTAG includes an update DR state which causes the data to be updated into the shadow latch portion of the MCR, i.e., that portion of the register that is stable during shifting. As the JTAG port goes through the JTAG update state, the new values are loaded into the MCR shadow registers and the flag (jtag.sub.-- clk.sub.-- stop.sub.-- req) is broadcast to all necessary functional blocks.

In response to a request to stop clocks, (jtag.sub.-- clk.sub.-- stop.sub.-- req) in the MCR, a function block may respond as follows. For example, if the vector processor in the MSP is running and receives this handshaking signal, it will complete operation of the instructions in its instruction queue and then return to the idle state. When it returns to the idle state, the vector processor will assert the vp.sub.-- idle signal provided to the OCR.

The next debugging step consists of observing the internal state of the integrated circuit. It is necessary to know when to step into the JTAG controlled modes from the normal mode (i.e., system clocks running normally). In this observation mode, the internal state can be observed through the OCR. The clock stop will not be activated until the JTAG controller observes all the necessary response signals from the functional blocks indicating that they are in a satisfactory state to stop the clocks. While the MSP is executing its operations, the states can be observed through TDO pin utilizing the Monitor instruction. The TAP controller issues the Monitor instruction (see Table 11 in Appendix A) which selects the OCR as the register addressed for the subsequent DR operation. The TAP controller can repeatedly access the OCR within a DR instruction until certain bits in the OCR, e.g., bit 1 (vp.sub.-- idle), are asserted, indicating the VP and/or other functional blocks are ready for their clocks to be stopped. The handshaking scheme allows the vector processor and other internal logic as needed, to reach a known state before an emulation task, such as single cycle or multicycle is begun or a scan out is performed.

Once all necessary states have been observed, all system clocks can be stopped. In order to scan internal registers, it is necessary to stop system clocks going to the registers desired to be scanned. In implementations providing the capability, one can selectively stop the clocks depending on how the values are set up in the MCR. If selective stopping is not supported, all system clocks will be stopped as presently implemented in the MSP. A block with system clocks active can not be scanned. The clock stop signal is being issued while the MSP is running with system clocks. Any of the four instructions, MCR/BIST1, MCR/BIST2, MCR/BIST3, and MCR/BIST4 can be used to issue the clock stop signal. MCR/BIST1 and MCR/BIST2 can issue the signals while boundary scan cells are in transparent mode, i.e., input signals external to the chip are entering the chip. The latter two instructions can issue the clock stop signals while all input signals are blocked. See Tables 4-11 in Appendix A for additional details on JTAG instructions executed by TAP 111.

Subsequently, a new MCR load operation takes place to stop system clocks. Thus, an instruction is sent to the JTAG port selecting the MCR as the data register and data is serially shifted in to the MCR to assert bit 11, sys.sub.-- clk.sub.-- bypass, which will stop the system clocks synchronously as described in greater detail in "CLOCK GENERATION FOR TESTING OF INTEGRATED CIRCUITS", by Baeg and Yu, discussed previously. Then the MCR can be loaded with another instruction to determine, e.g., whether the clocks are to be cycled at system speed or to use pseudo system clocks (system clock at TCK speed). As discussed, a 10 bit cycle count (MCR bits 1-10) can be specified. The cnt.sub.-- start bit in the MCR will cause the clock control logic to generate the number of clocks specified in the clock count bits of the MCR. The MCR can control the clock control logic so that the cycle count is executed with regular system clocks or with a clock derived from TCK.

The MCR can also be used to access on-chip memory (MCR bits 18-32), as well as to initiate memory testing for the on-chip memory. Other flexible debug features can be easily implemented by using the MCR. For instance, where additional control is desirable over the boundary scan chains, the MCR can include bits to specifically control the mode signals provided to the boundary scan chains from the MCR rather than from the TAP, e.g., from decode of boundary scan test instructions. Thus, bit 34 (mode.sub.-- sig.sub.-- control) can be used to indicate that the mode signal, normally provided to the boundary scan chains from TAP 111, is being overridden by the MCR and the mode bits in the MCR (bits 35-39) will control the mode signal provided to the boundary scan strings. See Table 12 in Appendix A for additional details on MCR bits 34-39.

The flexibility inherent in the MCR design approach to control emulation tasks can also be seen in the use of bit 17 (em.sub.-- status). In one MSP implementation, the vector processor is slaved to the general processor ARM7 and returns control to ARM7 after finishing a task. However, by asserting the em.sub.-- status bit in the MCR register, the vector processor will not return control to ARM7 after completion of a task. Thus, adding one bit in the MCR provides a convenient debugging tool for the present design. As newer generations of a design are generated, additional control bits can be easily added to the MCR to control as yet unforeseen debug tasks with a minimum impact in design time and silicon.

Once the TAP controller has issued the MCR instructions to cause the clock control logic to generate the specified number of system clocks. The OCR is monitored using the monitor instruction as described previously, to wait for assertion of a handshaking signal from the clock control logic, req.sub.-- acom, indicating that the request to the clock control logic has been completed. At this point, the TAP controller can then scan any of the available scan strings.

Once clocks are stopped, before or after a cycle instruction, internal scan operations of the functional logic can take place. TCK provides scan clocks for internal scan chains, shown in FIG. 2, by way of example, as scan chains 201 and 203. Each scan chain includes a number of shift register latches whose design is known in the art. Some embodiments of IC 110 include more than 17 scan chains or fewer than 17 scan chains. For one MSP embodiment, the 17 scan chains, and the respective MSP function blocks incorporating these chains, are shown in Appendix A, Table 2 as chains 1-17. (Chain 18 is the MSP boundary scan chain. Chain 19 is the boundary chain of the ARM7 processor embedded in the MSP.) Each internal chain in Table 2 is a JTAG test data register which can be selected by a respective JTAG custom instruction listed in Appendix A, Table 5. Instructions 9-10 (see Appendix A, Table 4) are used to scan the boundary of ARM7 blocks. The instructions 12 through 28 can be used to scan the functional blocks. Instructions 35 and 36 can be used to generate the pseudo system clocks, which are coming from TCK. Before the clocks are restarted, it is necessary to setup in MSP appropriately. For instance, breakpoints and/or control registers need to be set up for the particular task to be performed.

Finally, system clocks can be restarted by setting the values in the MCR. Instructions 30-33 can be used to access the MCR to start the clocks. The clocks are started by deasserting bit 11 of the OCR (sys.sub.-- clk.sub.-- bypass).

One of the great advantages of the present method can be found when this scheme is extended to be used for silicon debugging during the prototype developing. Since it enables emulating the silicon at-speed by implementing the protocol between the JTAG controller and system blocks, timing related design problems can be debugged.

FIG. 3 shows a schematic of a boundary register cell 300 which can be used to build the MCR and OCR. The cell 300 can transmit an input signal dinp with or without storing the value of signal dinp in flip-flop 310. In boundary register cell 300, input signal dinp is input through multiplexer 305 to flip-flop 310 and through inverter 320 and multiplexer 330 as an output signal dout. Multiplexer 305 selects either tdi on or dinp according to the level on the multiplexer control signal, "shift". The use of flip-flop 310 and 325 allows data to be shifted into flip-flop 310 while latch 325 preserves an output signal inst. Multiplexer 330 selects whether output signal dout is from latch 325 or input signal dinp.

If the signal tdi is selected by multiplexer 305, data (tdi) may be shifted through register cell 300 by shifting data into flip-flop 310 while a signal update on lead 385 coupled to latch 325 remains high. Latch 325 retains the previously latched data on terminal Q of latch 325. An output signal tdo from flip-flop 310 is input into an identical adjoining register cell 430 (see FIG. 4) as the signal tdi at a clock edge if the clock signal tck is enabled by AND gate 315 and signal enb. Clock signal tck and the signal enb input to AND gate 315 which is coupled to the clock terminal of flip-flop 310.

To change output signal inst from register cell 300, signal update is asserted low which causes latch 325 to latch the output signal from flip-flop 310 so that new value inst is now provided by register cell 300. Signal inst is the content of register cell 300 which is output to, for example, as MCR signal sys-clk bypass.

FIG. 4 shows how register cell 300 (shown in detail in FIG. 3) may be coupled together with other register cells in one embodiment of a register such as MCR 207 or OCR 209. Four register cells of a register are shown in FIG. 4, and the interconnect scheme can be repeated to produce a register of the desired size. The signals mode, tck, update, shift, enb, and setn are on leads 405, 410, 415, 420, 435, and 440, respectively, and couple to register cells 300, 430, 450, and 470 in parallel. A data input signal dinp may be provided from TAP 211 to register cell 300.

When the registers are configured as the MCR, the signals inst or dout from register cells 300, 430, 450, and 470, are coupled to desired locations in the functional blocks. For example, in one embodiment, a register cell of MCR 207 may provide, on the signal inst, jtag.sub.-- clk.sub.-- stop.sub.-- req. Similarly, the last register cell in OCR 209 is coupled to the JTAG port. The last register cell will be coupled to the TAP so data can be serially shifted out while the first register cells in both the MCR and OCR will typically be coupled to TAP signal TDI. When the registers are configured as the OCR, parallel inputs will come into each cell and be loaded into flip-flop 310. Subsequently, the data can be latched into latch 325 with assertion of a capture signal from the TAP which would be connected to the update line.

The description of the invention set forth herein is illustrative, and is not intended to limit the scope of the invention as set forth in the following claims. Variations and modifications of the embodiments disclosed herein, may be made based on the description set forth herein, without departing from the scope and spirit of the invention as set forth in the following claims.

APPENDIX A

Test and normal modes in MSP are described in this chapter. All those modes are controlled by a JTAG controller using five JTAG pins only.

1.2 Application and Assumptions

All the test schemes, which are described in the following sections are implemented to aid MSP hardware testing during the processes of both prototype debugging and manufacturing test.

This material assumes that users know IEEE 1149.1 JTAG protocols and LSSD type scan properties. Please