American Patents LLC v. Mediatek, Inc. et al

Western District of Texas, txwd-6:2018-cv-00339

Exhibit 1

Interested in this case?

Current View

Full Text

7 EXHIBIT 1 Case 6:18-cv-00339-ADA Document US00696400132 (12) United States Patent Dervisoglu et al. (10) Patent No.: US 6,964,001 B2 (45) Date of Patent: Nov. 8, 2005 (54) ON-CHIP SERVICE PROCESSOR (75) Inventors: Bulent Dervisoglu, Mountain View, CA (US); Laurence H. Cooke, Los Gatos, CA (US); Vacit Arat, La Canada Flintridge, CA (US) 17 (73) Assignee: On-Chip Technologies, Inc., Los Gatos, CA (US) 5,068,881 A 5,155,432 A 5,202,624 A 5,202,625 A 5,206,862 A 5,254,482 A 5,369,648 A 5,418,470 A * 5,428,629 A 5,479,652 A * 5,495,486 A 5,590,354 A * 5,642,478 A 5,724,505 A * 5,761,489 A 5,771,240 A 5,838,163 A 5,854,996 A 5,905,738 A 5,936,876 A 5,991,898 A 11/1991 Dervisoglu et al. 10/1992 Mahoney 4/1993 Gheewala et al. 4/1993 Farwell 4/1993 Chandra et al. 10/1993 Fisch 11/1994 Nelson 5/1995 Dagostino et al. ......... 324/763 6/1995 Gutman et al. 12/1995 Dreyer et al. ............... 714/30 2/1996 Gheewala 12/1996 Klapproth et al. ............ 714/30 6/1997 Chen et al. 3/1998 Argade et al. ............... 714/45 6/1998 Broseghini et al. 6/1998 Tobin et al. 11/1998 Rostoker et al. 12/1998 Overhage et al. 5/1999 Whetsel 8/1999 Sugasawara 11/1999 Rajski et al. (*) Notice: Subject to any disclaimer, the term of this patent is extended or adjusted under 35 U.S.C. 154(b) by 76 days. (21) Appl. No.: 10/767,265 (22) Filed: Jan. 30, 2004 (65) Prior Publication Data US 2004/0187054 A1 Sep. 23, 2004 (Continued) Primary Examiner—David Ton (74) Attorney, Agent, or Firm—Venable LLP; Jeffrey W. Gluck (57) ABSTRACT Related U.S. Application Data Continuation of application No. 09/275,726, filed on Mar. 24, 1999, now Pat. No. 6,687,865. (60) Provisional application No. 60/079,316, filed on Mar. 25, 1998. (51) Int. Cl.? ... GO1R 31/28 (52) U.S. CI. ................. 714/726; 714/727; 714/729 8) Field of Search ........ ........... 714/728, 30, 45, 714/726, 727, 729; 324/763 (56) References Cited An integrated circuit is described which include a stored program processor for test and debug of user-definable logic plus external interface between the test/debug circuits and the component pins. The external interface may be via an existing test interface, or a separate serial or parallel port. Test and debug circuits may contain scan strings that may be used to observe states in user-definable logic or be used to provide pseudo-random bit sequences to user-definable logic. Test and debug circuits may also contain on-chip logic analyzer for capturing sequences of logic states in user- definable circuits. Test and debug circuits may be designed to observe states in user-definable circuits during the normal system operation of said user-definable circuits. U.S. PATENT DOCUMENTS 3,761,695 A 3,783,254 A 3,784,907 A 4,495,629 A 4,667,339 A 4,817,093 A 5,065,090 A 9/1973 Eichelberger 1/1974 Eichelberger 1/1974 Eichelberger 1/1985 Zasio et al. 5/1987 Tubbs et al. 3/1989 Jacobs et al. . 11/1991 Gheewala * 714/728 6 Claims, 16 Drawing Sheets Scan chain 403 315 probe gut scap out _316 311 ScanFH Data out Data in u 312 A 320 317 ---- 313 probe in scan in 314 Preferred Embodiment of Block Scan Connector 7 U.S. Patent Nov. 8, 2005 Sheet 8 of 16 US 6,964,001 B2 311 316 Scan chain 403 Data out 317 314 scan out_ --- X ScanFF scan in Preferred Embodiment of Block Scan Connector 320 315_probe gut probe in Data in Figure 4b 312 313 Scan Clk B Scan Clk A U.S. Patent Scan in Master - Master Scan Scan Slave Scan out S can out Scan---- Data Nov. 8, 2005 Data in Data Slave Data out System Clk Sheet 9 of 16 7 Figure 5 Internal Scan Element with Separate Scan-Slave and Data-Slave: (prior art) US 6,964,001 B2 7 U.S. Patent Nov. 8, 2005 Sheet 10 of 16 US 6,964,001 B2 Threshold check 600 – A+ Figure 6a 109 th 4+6 Figure 6b HOIT 602 Figure 6c 603 711o 602 601 7 U.S. Patent Nov. 8, 2005 Sheet 11 of 16 US 6,964,001 B2 00Ľ Ground bounce 701 - - - - - - - - - - Quiet __705 Ground - - - - - - - - - set - 702 - - - - - - - - - - - - 704 - Figure 7 Reseto 706 703 Local Ground 7 U.S. Patent Nov. 8, 2005 Sheet 12 of 16 US 6,964,001 B2 Mixed BIST/ Functional Scan Vectors SIL 714 - - - - - - -- - - H-... 7131 = HHHHHHH = = Mask Shift Register Pattern Shift Register Polynomial Register Figure8 - - - - - - - - U.S. Patent I H Variable D Variable FIFO Variable FIFO Scan & Probe Inputs 801- 804 804 813 bij Variable FIFO. Variable FIFO Nov. 8, 2005 -804 _ t Digital PLL Figure 9a. 803 814 Sheet 13 of 16 7 812 - -------- Variable FIFO i------------ -- HADI Decode 811 813 Count Register Figure 9b US 6,964,001 B2 Buffer Memory Data input Address U.S. Patent | 218 – 822 D Address Counter Load From Variable 814 FIFO 804 7 Stop Counter Latched Trigger 824 Start Address 820 Nov. 8, 2005 821 Figure 9c 835 832 ------- 831 «pus Probe 1 834 - Sheet 14 of 16 7 Probe Dios 833 837 TO 835 Trigger T[n-11 T[n] 838 824 Figure 9d US 6,964,001 B2 Buffer Memory 218 U.S. Patent Data input clk Address From Probes 822 Address Counter Load 824 Clock - Stop Counter Latched trigger 902 820 a Start Address Nov. 8, 2005 ext Stop Count Figure 10 814 1000 7 Functional SRL PSE Sheet 15 of 16 218 CH 1001 - Inserted SRL Buffer Memory ....... tional r Combinational Logic CF C LA Buffer Memory 1001 Direct-Probe Pipeline Figure 11 US 6,964,001 B2 Direct-Probe Channels > /n-bits U.S. Patent n-bits P T Buffer Memory Memory Pi 218 Nov. 8, 2005 Mux'ed-Probe Channel 1001 - LA Buffer Memory Figure 12 Sheet 16 of 16 7 1109 P10 P20- 1107- 1105 1110 - 11 A_clk 1101 1104 — 1102-4 o A_clk. 1101 - B_clk 1109 P_clk -1111 1106 Scan_Mode 1103 -1112 1000 US 6,964,001 B2 Figure 13 7 US 6,964,001 B2 "S IC ON-CHIP SERVICE PROCESSOR However, the size of integrated circuits has grown to the point where it has become inefficient and expensive to test CROSS-REFERENCE TO RELATED and debug ICs using solely conventional scan techniques. APPLICATIONS Furthermore, variations of the serial scan technique 5 include the use of so-called "shadow registers." IC internal This application is a continuation of U.S. patent applica- signal states are captured in a duplicate copy, i.e., the tion Ser. No. 09/275,726 now U.S. Pat. No. 6,687,865, shadow register, of certain internal registers. The shadow entitled, "On-Chip Service Processor," filed on Mar. 24, registers are interconnected by a dedicated internal scan 1999, commonly-assigned, and incorporated by reference chain. A predetermined event can trigger a snapshot of the herein in its entirety. That application, in turn, is entitled to 10 internal state values in the shadow registers and the dedi- the priority of U.S. Provisional Patent Application No. cated scan chain shifts the captured signal state without 60/079,316, filed on Mar. 25, 1998 affecting the system operation of the IC. However, this approach has several deficiencies. First, only a single snap- BACKGROUND OF THE INVENTION shot can be captured and shifted out with each trigger event. 15 This greatly hampers debugging the IC since there is not The present invention is related to the testing and debug much visibility of the system activity around a point of ging of electronic systems, and, in particular, to on-chip interest identified by the trigger event. Secondly, the snap- circuits for the test and diagnosis of problems in an inte shots can be taken only of those signals in registers which grated circuit. have a shadow register counterpart. Since a shadow register Heretofore, logic analyzer probes have often been used in 20 effectively doubles the circuitry for the register, this the testing and debugging of electronic systems. The logic approach is very costly to implement on a large scale in the analyzer probes were coupled to the external pins of com- ponents of a digital system in order to capture the sequence Another test and debug design for ICs is found in a of signals after a predefined event (or time stamp) occurs. standard, the IEEE 1149.1 Test Access Port and Boundary- The captured signals can then be examined to verify correct 25 Scan Architecture, which prescribes a test controller which system behavior or, alternatively, to identify the time and the responds to a set of predetermined instructions and an nature of erroneous behavior in the system. instruction register which holds the present instruction Furthermore, in the designs of large electronic systems, which the controller executes. Each instruction is first separate consoles, or service processors, have often been loaded into the instruction register from a source outside the incorporated into the circuit boards of the system. These 30 IC and then that instruction is executed by the controller. separate processors have a number of useful functions, While having some advantages of versatility and speed, the including the control of scan strings in the system; the standard still binds test and debug procedures to the world origination of diagnostic signal probes to run on the system, external to the IC and thus, limits its performance. and so forth. The service processors also have diagnostic and The present invention recognizes that while the advances scan debug features, including access to the internal registers 35 in IC technology have helped to create the problems of and memory within the system. The service processors have testing and debugging an IC, the advances also point the way also been used to bring-up the main system during its power toward solving these problems. In accordance with the up phase. All of these functions have been useful to system present invention, special on-chip circuits are used to designers for the design, test and debugging of electronic observe the internal workings of an IC. These circuits systems. 40 operate at internal IC clock rates so that the limitations of the On the other hand, more and more digital systems, or parts frequency of signals at the IC input and output (I/O) bound- of digital systems, are being integrated in a single compo ary are avoided. Many more points in the IC system are nent. The resulting complexity and lack of observability of accessed than is feasible with conventional external test and an integrated circuit poses serious problems for the test, debug processors. Thus the present invention offers advan- debug and bring-up stages of the integrated circuit (IC). For 45 tages which exceed the straight-forward savings in chip example, observation at the IC component pins of the space due to miniaturization. Additionally, the present behavior of an IC system is increasingly difficult. The IC invention reduces the amount of test logic which might have component pins may be very far (in terms of logic hierarchy) been required elsewhere on the chip. from the actual points of interest. The extremely high The present invention also permits the coupling of probes frequency of digital IC operations and the frequency filtering 50 to internal IC points. The points may be selected from a effects of the large capacitance of the external logic analyzer larger number of internal points that may be observed with probes, often prevents a logic analyzer from capturing an external logic analyzer. Besides the greater observability signals reliably and precisely. There is always an uncertainty of the internal operations of the IC, the present invention regarding the accuracy of signals captured by an external also improves the accuracy of the observations, as compared logic analyzer compared to the actual signals values within 55 to an external logic analyzer. the IC. To address the problems of the testing of integrated SUMMARY OF THE INVENTION circuits, special features are being included in many IC designs. For example, one standard technique is "scan" To achieve these ends, the present invention provides for whereby, certain internal flip-flops, which are connected to 60 integrated circuit logic blocks, a control unit, a memory various selected points of the IC, are also connected to form associated with the control unit and a plurality of scan lines. a serial shift register when the IC is configured in a test The memory holds instructions for the control unit to mode. Straightforward serial shift (i.e., scan) operations are perform test and debug operations of the logic blocks. The utilized to load the flip-flops with desired values, or to read scan lines are responsive to the control unit for loading test out their present values reflective of the logic states of the 65 signals for the logic blocks and retrieving test signal results selective IC points. Such ICs require special features to reset from the logic blocks. The test signals and the test signal the flip-flops (i.e., bring the IC to a known starting state). results are stored in the memory so that the loading and 7 US 6,964,001 B2 UL retrieving operations are performed at one or more clock FIG. 7 is a circuit which generates ground-bounce detec- signal rates internal to the integrated circuit. The integrated tion probe signals for range probes; circuit also has a plurality of probe lines which are respon- FIG. 8 is a block diagram of a Built In Self-Test (BIST) sive to the control unit for carrying system operation signals engine of the FIG. 2 SPU; at predetermined probe points of the logic blocks. The 5 FIG. 9a is a block diagram of an input aligner portion of system operation signals are also stored in the memory so Analysis Engine of the FIG. 2 SPU; FIG. 9b is a detail of the that the system operation signals are retrieved at one or more FIG. 9a Analysis Engine's input aligner; FIG. 9c is a block clock signal rates internal to the integrated circuit. diagram of the Analysis Engine's memory addressing struc- The present invention also provides for an integrated ture; FIG. 9d is a block diagram of the trigger logic portion circuit which has an interface for coupling to an external 10 of the Analysis Engine; and diagnostic processor, a unit responsive to instructions from FIG. 10 is a block diagram of another embodiment of the the external diagnostics processor, a plurality of probe lines Analysis Engine's memory addressing structure; coupled to the unit, and a memory coupled to the unit and FIG. 11 shows a probe string connection of probe points to the interface. In response to the unit, the probe lines carry to the buffer memory using logic analyzer channels that are sequential of sets of system operation signals at predeter- 15 implemented with probe storage elements (PSE); mined probe points of the integrated circuit and the system FIG. 12 shows an alternative probe string connection with operation signals are stored in the memory at one or more improved multiplexed PSEs which combine probe selection clock signal rates internal to the integrated circuit. The and data capture functions, and system operation signals are retrieved from the memory FIG. 13 is a block diagram of the improved PSE of FIG. through the interface to the external diagnostic processor at 20 12. one or more clock signal rates external to the integrated circuit. This allows the external diagnostics processor to DESCRIPTION OF THE SPECIFIC process the captured system operation signals. EMBODIMENTS The present invention further provides for a method of operating an integrated circuit which has logic blocks, a 25 General Organization of the Present Invention control unit, a memory and a plurality of scan lines of the In accordance with the present invention, a Service Pro- logic blocks. The memory is loaded with test signals and cessor Unit (SPU) is incorporated within an integrated instructions for the control unit and the scan lines responsive circuit. Besides addressing the problems of testing and to the control unit are loaded with the test signals for the logic blocks at one or more clock signal rates internal to the 30 30 debugging the IC, the availability of a programmable unit, such as the SPU, which may load or unload the state integrated circuit. The logic blocks are then operated at one variables into and from the user-definable logic in an IC, or more clock signal rates internal to the integrated circuit greatly simplifies the problem of resetting the IC and observ- and the resulting test signal results are retrieved from the logic blocks along the scan lines at one or more clock signal ing its current state. The SPU is implemented in the form of rates internal to the integrated circuit. The test signal results 35 Ulte 35 a basic stored-program control unit, such as a microproces- sor, with a predefined instruction set, a number of extended are stored in the memory at one or more clock signal rates function units (EFUs), program, data, and scratch pad internal to the integrated circuit; and the stored test results memories, plus an input/output circuit for loading and signals are processed in the control unit responsive to the unloading the SPU memories with data/programs from the stored instructions in the memory to perform test and debug operations of the logic blocks. 40 outside world. This allows the SPU to be programmed to execute a control program which interacts with the various extended functional units to control various test and debug BRIEF DESCRIPTION OF THE DRAWINGS related activities on the IC. Each EFU is designed to control a specific test or debug FIG. la shows a high-level diagram of an exemplary large 45 feature and the EFU provides the control unit a general, and complex integrated circuit; FIG. 1b shows the FIG. la 45 programmable access to that feature. For example, one EFU integrated circuit with a Service Processor Unit (SPU), may be designed to control the execution of serial shift according to one embodiment of the present invention; operations along some or all of the internal scan chains of FIG. 2 illustrates one embodiment for the architecture for the IC. The other EFUs may be enabled to interact with the the SPU of FIG. 1b; 50 scan chains, such as a predetermined algorithm to provide a FIG. 3a illustrates the coupling between test wrappers, Built-In Self-Test (BIST) for an embedded Random Access scan strings, probe strings and range probes to a test bus; Memory (RAM) block. The existing scan chains load and FIG. 3b is a circuit diagram of a test bus connector of FIG. unload the BIST patterns and results to/from the RAM 3a; FIG. 3c is an exemplary connection of multiple test bus block. The EFUs provide the control unit with a straight connectors; 55 forward, programmable means for controlling the functions FIG. 4a is a circuit diagram of a block input/output of the EFU such that knowledge of low level details of the connector for test wrappers for observing test points outside scan or BIST functions become unnecessary. a block along a boundary-scan chain (for example, IEEE With its program and data memories, the SPU acts 1149.1 standard Test Access Port and Boundary Scan Archi- autonomously once its program memory has been loaded tecture); FIG. 4b is a circuit diagram of a block scan 60 with the desired instruction sequence. The SPU's program connector for scan strings for observing test points inside a memory may be loaded with the desired program instruc- block along a scan chain; tions through the SPU's interface to the external environ- FIG. 5 is a circuit diagram of a scan flip-flop in the FIG. ment. Alternatively, the instructions may be stored in an 4b circuit diagram; on-chip Read Only Memory (ROM) that has been provided FIG. 6a is a circuit which generates an out-of-range 65 to work as the SPU's program memory. detection probe signals for range probes; FIGS. 6b and 6c In one embodiment of the present invention, an EFU are the transistor-level circuits of inverters in FIG. 6a; carries out certain functions of a logic analyzer. A logic 7 US 6,964,001 B2 analyzer captures and stores signal state values in a digital nals to be loaded into these probe circuits. The scan chain system following the occurrence of a pre-defined event. The also carries other control signals to be loaded into a trigger logic analyzer then analyzes the captured data and displays circuit which starts and stops the data capture operations. the results for perusal. With the present invention, the Once the desired data has been captured into an on-chip capture and storage functions are incorporated into the IC. 5 RAM, the data is transported outside the IC for subsequent The EFU which implements these functions captures and analysis and display. stores not a single snapshot but a sequence (i.e., history) of signal values using logic probes which are selectively Implementations of the Present Invention coupled to desired points in the IC logic circuits. The logic As a starting point, FIG. la is a diagram of an exemplary analyzer EFU is configurable to select the location, number 10 integrated circuit. The IC 100 is complex having a host and sequential depth of signal channels from a predeter- processor connected by a system bus to various circuit mined set of choices. Thus, each logic analyzer channel may blocks, including a third party core and other blocks adapted be selectively coupled to more than one predetermined to the application of the IC. The IC also has a peripheral bus capture point by programming the control unit and hence, which is connected to the system bus by a bridge. The the EFU. A solution is provided for capturing the history of 15 P peripheral bus is connected to other functional blocks, such signal values at the internal points of the IC without having as a user-developed core and so on. to provide each one of these points with their shadow A preferred embodiment of the present invention to test register counterpart. The captured data are stored in an and debug the complex IC of FIG. la is shown in FIG. 1b. on-chip Random Access Memory (RAM). Transportation of Added to the IC 100 is a Service Processor Unit (SPU) 101 the captured data out of the IC is performed later for analysis 20 W which is coupled to the IC system bus 105 and an added test by an external computer which can reformat and display as bus 104. Connected to the test bus 104 are test wrappers 102 required for diagnostics. The present invention has the which provide test communication channels into selected benefit of enhanced data accuracy with minimal cost over- blocks 106. More details of the test bus 104 and test head by separating the signal capture storage function of a wrappers 102 are provided below. The SPU 101 provides a logic analyzer into the IC. 25 connection for an external diagnostics console 103 to view Two different types of logic probes may be used with the and test the internal workings of the IC 100. logic analyzer EFU. One type of logic probe, termed the As shown in FIG. 2, the SPU 101 has several extended digital probe, captures sequences of digital signals from function units (EFUS), including a control unit, such as a internal points of the IC. Digital signal values flow from the microprocessor 211, a buffer memory unit 218, an analysis internal capture point to a logic analyzer channel through the 30 engine 215, a scan control unit 222, an interrupt handler 221, digital probe. In its simplest form each digital probe has at which is further connected to a range check unit 220, a least two input ports, a selection means and an output port system bus interface 214, a test bus interface 213 and a that is directly coupled to a logic analyzer channel. Digital built-in self test (BIST) engine 212, which are all intercon- probes may also be constructed from a series of internal nected by a processor bus 219. The various EPUs are storage elements (i.e., flip-flops or latches) to form a pipeline 35 coupled to the processor bus 219 in any desired combination to move the data from the capture points towards the logic and order. To provide communication between the external analyzer channels. In this case, the movement of the data world and the SPU 101, the bus 219 is also connected to a along the digital probe flip-flops is synchronized with an serial input/output (SIO) interface 210, a parallel input/ on-chip clock signal. Since the clock frequency also defines output interface (PIO) 216, and a test access port (TAP) 217. the maximum capture rate, the particular clock signal is 40 For example, the coupling between the IC 100 and the selected based on the maximum desired capture rate. The external diagnostics console 103, typically implemented digital probes used for the logic analyzer EFU operate with using another computer, uses the TAP 217, the SIO interface the same electrical and timing characteristics of the native 210 or the PIO interface 216. signals of the IC. The digital probes are implemented in the Analog probe lines 201 are connected to the range check same technology, with the same functional logic circuitry, 45 unit 220 which processes their values to detect out-of-range and under the same clock timing, as the rest of the IC. conditions which are then signaled to the interrupt handler Signals are therefor captured and propagated along the 221. The interrupt handler 221 also receives signals from digital probes in exactly the same way as they are operated trigger event lines 204 directly or from test bus 104 by way upon by the functional circuitry of the IC. This assures much of test bus connections 203 to the interrupt handler 2 greater accuracy of signal states captured by the digital 50 signals on the trigger event lines 204 or test connections 203 probes. In contrast, logic probes used with an external logic are used to capture signal state values when predetermined analyzer must use trigger events and signal values that are (i.e., triggering) events occur. The interrupt handler 221 visible external to the IC. The captured signal values may passes the captured values to the analysis engine 215. The differ significantly from the original (internal) values. test bus 104 is further coupled to test wrappers 102, which The logic analyzer EFU may use a second type of logic 55 are individually wrapped around a number of predetermined probe, termed an analog probe, which captures signal events blocks 106 on the IC 100. Each test wrapper 102 accesses representing the detection of signal integrity conditions, the input and output signals of a block 106. The test bus 104 such as ground bounce. Desired signal observation points is also connected to scan string lines 403, which are con- are coupled to analog detection circuits which produce nected to internal elements of a block 106. digital signals when particular signal conditions are 60 As shown in FIG. 3a, the test bus 104 forms a unidirec- detected. The analog probe records these digital signal states tional loop with test bus connectors 401 selectively trans- in the logic analyzer EFU. ferring data between the test bus 104 and a test wrapper 102. The benefits of the logic analyzer EFU are such that for The test bus 104 is made up of multiple bit lines, where the certain ICs, only the EFU portion of the SPU is implemented number of the bits is determined by the requirements of the on the IC. In this alternate embodiment of the present 65 test system. Through test bus connector 401, the test bus 104 invention, the digital and analog probes are selectively is selectively connected to test wrappers 102, scan string enabled by a scan-chain which allows specific control sig lines 403, probe string lines 402 and trigger lines 204. 7 US 6,964,001 B2 10 A test bus connector 401 which handles a one bit con selects whether the functional signal at data-in terminal 302 nection between the test bus 104 and a test wrapper 102 is or the signal held in the scan flip-flop 301 is passed onto the illustrated in FIG. 3b. A first multiplexer 421 has one of its data-out terminal 307. When the control signal of the line input terminals connected to one of the lines of the test bus 300 signal is not-asserted, i.e., normal mode, there is normal 104. The other input terminal is connected to a signal line of 5 operational signal flow between the data in terminal 302 and the test wrapper 102. The output terminal of the multiplexer the data-out terminal 307. On the other hand, when the 421 is connected to an input terminal of a flip-flop 426 and control signal on the line 300 is in asserted state, i.e., test to an input terminal of a second multiplexer 422, which has mode, the current state of the scan flip-flop 301 is passed a second input terminal connected to the output terminal of onto the data-out terminal 307, the data-in terminal 302 and the flip-flop 426. The output terminal of the flip-flop 426 is 10 the data-out terminal 307 are isolated from one another. The also connected to the line of the test wrapper 102, which is state stored in the scan flip-flop 301 is also controls whether also in the form of a unidirectional loop. The multiplexer the signal at the data-in terminal 302 or the probe-in terminal 421 selects either the data from the test bus 104 or the test 303 is passed onto the probe-out terminal 305. In this wrapper 102; the second multiplexer 422 selects between the manner, data from another probe point which is connected to data selected by the first multiplexer 431 or the data captured 15 the probe-in terminal 303 are selectively passed onto the in the flip-flop 426 to place back onto the test bus 104. These probe-out terminal 305. The signal state in the scan flip-flop selections are done under the control of SPU 101. The test 301 value is controlled and observed using regular scan bus connector 401 is also be used for coupling a trigger line operations of the test wrapper 102 through the scan-in and 204, probe string line 402 or scan string line 403 to a test bus scan-out terminals 304 and 306. Of course, if observation of 104 by connecting the desired signal line in place of the line 20 an input or output signal of the block 106 by a probe string of the test wrapper 102 port as shown in FIG. 3b. 402 is not required, the multiplexer 309 can be eliminated FIG. 3c shows an embodiment of coupling a trigger line from the circuit 310. 204, probe string 402, test wrapper 102 and scan string line Ascan string 403 is formed by serially connecting block 403 to three lines of the test bus 104. Other possible scan connector circuits 320. One such circuit 320, which configurations for the couplings include coupling the test 25 couples an internal element of a block 106 to the scan string wrapper 102 and scan string 403 onto separate lines of the 403, is illustrated in FIG. 4b. The connector circuit 320 has test bus 104. a scan-in terminal 314 and a scan-out terminal 316. The A test wrapper 102 is formed by serially connecting block scan-in terminal 314 of one connector circuit is connected to I/O connector circuits 310. One such circuit 310, which the scan-out terminal 316 of another connector circuit 320 to couples an input or output signal of a block 106 to the test 30 form a serial scan string 403. The block scan connector wrapper 102, is illustrated in FIG. 4a. The connector circuit circuit 320 also has a data-in terminal 312 and a data-out 310 has a scan-in terminal 304 and a scan-out terminal 306. terminal 317 which provide an interstitial connection The scan-in terminal 304 of one circuit 301 is connected to between internal elements of the block 106. In the normal the scan-out terminal 306 of another circuit 301 to form the operation of the IC 100, the connector circuit 320 is a simple serial chain of a test wrapper 102. The connector circuit 310 35 path between the internal elements in the block 106. The also has a data-in terminal 302 and a data-out terminal 307 connector circuit 320 also has a probe-in terminal 313 and which provide an interstitial connection between a block 106 a probe-out terminal 315 which provide a path for probe and the rest of the IC 100. In the normal operation of the IC, signals from selected portions of the block 106 through the the connector circuit 310 provides a simple path between the connector circuit 320 to observe operations in the block 106. block 106 and the rest of the IC 100. If the connector circuit 40 The block scan connector circuit 320 has a scan flip-flop 310 is to provide an input signal to the block 106 during test 311 and a multiplexer 319. The data in terminal 312 and the operations, the data out terminal 307 is connected to the scan-in terminal 314 form the inputs to the scan flip-flop block 106 and the data in terminal is connected to the rest of 311. The output from the flip-flip 311 include the scan out the IC 100. If the block I/O connector circuit 310 is to terminal 316 and the data-out terminal 317. The data-in receive an output signal from the block 106 during test 45 terminal 302 is also connected to one input to the multi- operations, the data-out terminal 307 is connected to the rest plexer 319. The probe-in terminal 313 forms a second input of the IC 100 and the data-in terminal is connected to the to the multiplexer 319 whose output forms the probe-out block 106. The connector circuit 310 also has a probe-in terminal 315. A special circuit is used for the scan flip-flop terminal 303 and a probe-out terminal 305 which provide a 311 (and the flip-flop 301 of FIG. 4a). The circuit, which is path for probe signals from selected portions of the block 50 shown in FIG. 5 and is found in previous IC scan designs, 106 through the connector circuit 310 to observe operations has separate scan-slave and data-slave sections. The sepa- in the block 106. ration allows a state signal which has been scanned into the The elements of the connector circuit 310 include a scan scan flip-flop 311 to remain unaffected by functional clock flip-flop 301 and two multiplexers 308 and 309. The data-in pulses that cause the flip-flop 311 to capture signals on the terminal 302 and the scan-in terminal 304 form the inputs to 55 data in terminal 312 so that they appear in the data-slave the flip-flop 301. The output from the flip-flip 301 include section and on the data out terminal 317. The connector the scan out terminal 306 and one input to the multiplexer circuit 320 acts as a simple conduit for signals within the 308 having an output which forms the data-out terminal 307. block 106. At the same time, the previously scanned-in The second input to the multiplexer 308 is connected to the signal, which appears in the scan-slave section, selects data-in terminal 302, which is also connected to one input to 60 whether signals at the data in terminal 312 or the output from the multiplexer 309. The probe-in terminal 303 forms a another probe point which has been connected to the probe- second input to the multiplexer 309 whose output forms the in terminal 313 is to be passed onto the probe-out terminal probe-out terminal 305. The control input of the multiplexer 315. A probe string 402 is created. Of course, if an internal 309 is the output of the scan flip-flop 301 (and is connected scan string 403 need not be connected to a probe string 402, to one input of the multiplexer 308). The control input of the 65 the multiplexer 319 can be eliminated from the circuit 320. multiplexer 308 is a test control line 300 from the control probe string 402 is formed by serially connecting the unit 311 of the SPU 101. The control signal on the line 300 probe-in terminal of a connector circuit 310 and 320 to the те 7 US 6,964,001 B2 10 probe-out terminal of another connector circuit 310 and 320. of the multiplexer 715 is an input to the LSFR 714. The The probe string 402 typically has a set of selectively mask shift register 712 identifies the bit positions whose ints. However, only one probe point values are selected from predetermined bit patterns in mask along each probe string 402 may be actively probed at any shift register 713 versus the bit positions which receive the given time. Thus the IC designer selects the probe points 5 pseudo-random values generated by the LFSR 714. The which are to be connected along the same probe string 402 output of the multiplexer 715 is a combination of built-in- and determines the total number of probe strings 402 that are self-test and functional scan vectors. These to be connected to the individual bits of the test bus 104. useful because random vectors work well only when the This structure allows the IC designer great flexibility to controls allow the random vectors to exercise most of the IC optimize the number of test bus 104 lines with respect to the 10 section under test. If there are more than a few control lines, number of simultaneously observable probe points in the IC. the probability of properly exercising the logic under test The probes described above are digital probes. Two with random vectors is very low. These features also allow analog probes are illustrated in FIGS. 6a, 6b, 6c and 7. The the SPU 101 to generate regularly repeating patterns; for range check unit 220 receives inputs from the analog probes example, periodic patterns that may be useful in a memory that comprise signals on a threshold check line 600 and a 15 test may be generated by the SPU 101 that may output the ground bounce line 700. The unit transmits these signals to data to the section of logic under test via the test bus or the the SPU 101. FIGS. 6a, 6b and 6c show the circuit which system bus, whichever has been provided with a connection generate the signal for the threshold check line 600. The to the SPU 101. circuit is used for detecting extended intermediate voltage Another EFU of the SPU 101 is the analysis engine 215. levels. Such voltage levels are most likely to occur on an 20 FIG. 9a shows an embodiment of the analysis engine 215 on-chip bus which is in contention among multiple circuit which, under the control of the microprocessor 211, captures drivers. The analog probe has two inverters 601 and 602, logic signals from the test bus 104. This is achieved by first which are both coupled to an Exclusive-NOR logic gate setting either the scan flip-flops 301 of the block I/O circuit. FIG. 6b is a transistor diagram depicting the low connector circuits 310 (FIG. 4a) or the scan flip-flops 311 of threshold inverter 601, and FIG. 6c is a transistor diagram 25 the block scan connector circuit 320 (FIG. 4b) so that a depicting the high threshold inverter 602. These inverters boundary connection or an internal point connection of the 601 and 602 exhibit switching properties characteristic of a target block 106 is selected for probing, respectively. Next, very low internal voltage, and a very high internal voltage all flip-flops along the same probe string 402 are pro- device, respectively. Normally, the circuit in FIG. 6a has a grammed (by the SPU 101) so that only signals from the logic one (1) output level, but during transitions of the input 30 selected probe point are allowed to flow through the probe signal, the outputs of inverters 601 and 602 may remain in string 402 and arrive at the test bus connector 401. The opposite states for a period sufficient to cause the circuit to multiplexer 421 and the multiplexer 422 in the test bus go to a logic zero (0) output level before returning to the connector 401 (FIG. 3a) are controlled by the SPU 101 so logic one (1) output level. This negative pulse can be that the signals on the probe string 402 are passed along to captured by the SPU 101. 35 the test bus 104. Finally, all remaining test bus connector FIG. 7 shows a schematic diagram of a ground bounce circuits 401 along the same bit line of the test bus 104 are detector circuit which generates the signals for a ground controlled by the SPU 101 so that they pass the probe signals bounce line 700. In this circuit, a quiet (and true) ground along test bus 104. This allows the selected probe signal to terminal 701 is connected to an N-channel transistor 702, arrive at the analysis engine 215 where it is captured for which gate is driven by a local ground connection terminal 40 subsequent off-line analysis. The input terminals of a plu- 703. A periodic clock on a Reset terminal 706, which is rality of flip-flops 805, one for each bit line of the test bus controlled from the range check 220, clears a pair of NAND 104, form the input port 802 of the analysis engine 215. A gates configured as a SR latch 704, and charges a capacitor digital phase locked loop (PLL) 802 has selectable clock 705 having one terminal connected to the Set input of the SR outputs 803 to each flip-flop 805 to tune when the data from latch. The second terminal of the capacitor 705 is connected 45 each probe point is to be captured. The output terminal of to the quiet ground terminal 701. The N-channel transistor each flip-flop 905 is connected to the input terminal of a 702 which is gated by the local ground discharges the Set variable First-In-First-Out shift register (FIFO) 804. line of the SR latch 704, which flips the state of the SR latch FIG. 9b shows the circuit details of each variable First- 704 if the local ground falls above threshold. For example, In-First-Out shift register (FIFO) 804, each having a number a ground spike on the local ground may drive the local 50 of serially-connected register stages 812. Each register stage ground below threshold. The frequency and duty cycle of the 812 has a multiplexer which, under control of a decoder 811, Reset signal determines the magnitude and duration of a selects between the signal held in a flip-flop of that stage or ground spike on the local ground to trigger the probe. A the incoming signal to the stage to place on the stage's variety of frequencies and duty cycles are created by the output terminal. The shift depth of each variable FIFO 804 range check 220 to determine the severity of ground spikes. 55 is programmable by the SPU 101 by setting a count register When the probe is triggered, the probe produces a negative 810 for each bit feeding the analysis engine 215. The value (0) value until reset by the Reset signal on the terminal 706. in the count register 810 is decoded by the decoder 811. The Returning to the components of the SPU 101, FIG. 8 is a result controls the number of register stages 812 which are preferred embodiment of the BIST engine 212. A polyno bypassed. This compensates for the path delay differences mial register 711 identifies the bits in a linear feedback shift 60 among the different probe points by realigning capture times register (LSFR) 714 which are used to form an Exclusive of signals captured in the analysis engine 215. OR (XOR) function which generates pseudo-random values. The analysis engine 215 also has trigger logic which The polynomial register 711 is set by the microprocessor controls the capture of data. FIGS. 9c and 9d show sections 211, which also initializes contents of the LSFR 714. The of the trigger logic, a programmable circuit which detects at of the LSFR 717 is connected to the inputs of a 65 one or more events to stop the analysis engine 215 from multiplexer 715 which also receives the outputs of a mask capturing new data. The data that has been captured up to shift register 712 and a pattern shift register 713. The output that point is preserved in the buffer memory 218 of the SPU 7 US 6,964,001 B2 11 101. The buffer memory 218 resides in the same address multiple occurrences of trigger conditions. The buffer space as the RAM used by the SPU 101 but may be mapped memory 218 is utilized more efficiently as the storage of to use high memory space in order to prevent interference unwanted cycles of data between the trigger points is not with the instructions and data stored in low memory space. required. It is also possible to program the trigger logic so When the analysis-engine 215 collects data, it may be 5 it uses an externally generated trigger condition 902 in place allowed to write over old data, keeping only as many of an internally programmed event. most-recent cycles of data as the buffer memory 218 can Program instructions and initial data values for executing hold. The size of the buffer memory 218 for the analysis programs to implement the functions of the SPU 101 are engine 215 is determined by the designer of the IC. loaded from the diagnostics console 103 (see FIG. 1b) into The trigger logic has a start address counter 820 and a stop 10 the buffer memory 218 of the SPU 101. Some of these counter 821, which are shown in FIG.9c. These counters are programs may access the system bus 105 or the test bus 104. loaded by the microprocessor 211. The trigger circuit also A program can control which test wrapper 102 is accessed has an address counter 822 which is designed to overflow at by using the test bus interface 213 in order to set control the highest memory address of the buffer memory 218. At signals on the test bus 104. This allows the SPU 101 to read that point the start address is reloaded with the beginning 15 data from a test wrapper 102 via the test bus 104 into the address of the high memory space which is reserved for the buffer memory 218 and then send said data out to the buffer 218. This converts a random access memory into a diagnostic console 103. Typically, a separate program FIFO register. The stop counter 821 decrements when a executed on the diagnostic console 103 displays this infor- latched trigger signal line 824 becomes set. Subsequently mation in a human readable format as may be appropriate for the analysis engine 215 collects data into the buffer memory 20 the given application. 218 from the variable FIFOs 804 for as many cycles as Programs executed by the SPU 101 can also read data defined by the value loaded into the stop counter 821. The from the diagnostics console 103 via the SIO interface 210 system IC designer uses the buffer memory size and the or TAP interface 217, as shown in FIG. 2b, and write data out value in the stop counter 821 as two parameters to control to individual scan flip-flops on the test wrappers 102 via the the amount of data collected before and after an event has 25 test bus 104. Significant processing, for example, expansion, been detected. compaction, or intermediate storage of data can be done by Also part of the trigger logic is a circuit which generates the SPU 101 utilizing the buffer memory 218. In other the triggering signals on the trigger signal line 824. As embodiments, control functions may be supplied directly shown in FIG.9d, the generating circuit is structured to form from the TAP interface 217 or SIO interface 210 to the Boolean AND-OR logic 831 out of individually selectable 30 analysis engine 215 or BIST engine 212, via the processor terms 832. The terms 832 are fed from a polarity program- bus 219 without involving the microprocessor 211. The SPU ming logic circuit 833 that accepts individual trigger vari- 101 may be coupled to either the system bus 205, or a ables, Probe 1 through Probe N. In addition, the true or the separate test bus 104, or both. The coupling to the diagnos- complemented value for the output function can be selected tics console 103 may be via the TAP interface 217 or the SIO through a final level circuit 830. In one embodiment (shown 35 interface 210. The test bus 104 may be coupled to one or in FIG. 9d), the result is also shifted into three successive more test wrappers 102 flip-flops 834. Each of the flip-flops 834 drives one input of Another embodiment of the invention is defined in which each of a plurality of multiplexers 835. The other inputs of the SPU 101 does not include an embedded microprocessor the multiplexers 835 are set to a logic one (1) level. Each 211. In this case, the analysis engine 215 and the BIST multiplexer 835 is individually controlled through program- 40 engine 212 can access the buffer memory 218 and system mable bits and the multiplexer outputs are logically ANDed bus interface 214 directly, following instructions received together to form a signal, T[i], which represents the presence from the external diagnostics console 103. In this case, the of the trigger condition over four consecutive clock periods. loading of the configuration information and transfer of data The output from the AND gate 836 is passed to an AND gate to and from the analysis engine 215 is controlled using 837 with inputs from the corresponding AND gates 836 of 45 hardwired control signals. In this embodiment, the analysis duplicate circuits that produce T[0], T[1], through T[n] engine 215 is implemented in the form of an on-chip logic signals. The output of AND gate 837 is stored in a latch 838 analyzer (OLA) which captures sequential snapshots of sets to form the latched trigger signal on the line 824. Once the of signals. The selected signals form the digital probes 202. signal is set, the latched trigger signal maintains its value The selections are achieved by coupling the signals for until it is reset through reprogramming by the microproces- 50 digital probes 202 to the channels of the analysis engine 215 sor 211. In other embodiments, there may be more or fewer and turning-on enabling circuits, if provided, to allow the latches, and additional logic to make adjustments to the signals on the digital probes 202 value to be captured onto phases (i.e., the relative clock cycle when signal is received) channels of the logic analyzer 215. As shown in FIG. 11, the of the individual signals. channels of the logic analyzer 215 are formed from probe Another embodiment of the trigger logic is shown in FIG. 55 storage elements (PSE) 1000 to form a distributed serial 10. This embodiment provides for the capability of reversing shift register which acts as a pipeline to move data captured the data capturing function of the analysis engine 215 from at a probe point towards the end of the logic analyzer continually capturing new data until the trigger is detected, channel where the data are stored in buffer memory 218. to not capturing any data until a trigger is received. In the Each channel of the analysis engine 215 contains zero or latter case, each time a trigger signal on the line 824 is 60 more number of PSEs 1000 which are clocked by a common received, the analysis engine 215 captures new data for a periodic clock signal labeled "Cf" on a clock signal line preprogrammed number of cycles and then stops until the 1001. The clock signal is chosen (at design time) from next latched signal on the line 824 is received. To enable this among the fastest frequency of clock signals which are used mode of operation, the trigger circuit shown in FIG. 10 in generating source signals to be captured by the probes. us trigger condition to be cleared so that it 65 This way all signals captured on the analysis engine 215 may be recognized again. This mode is very useful since it channels arrive at the end of the channels after a fixed, enables the capture of signals around (i.e., before and after) predetermined number of clock cycles so that their cycle 7 US 6,964,001 B2 14 100. relationship to one another is preserved, regardless of the programmed, the Scan_mode signal on control line 1103 length (i.e., number of bits) of the individual channels of signal is set to and maintained at logic (until the PSE 1000 analysis engine 215. is programmed with a new value. When the Scan_mode Subsequently, after the captured data has been transported signal is set to logic 0, the PSE 1000 performs its normal to the external diagnostics console 103, software processes 5 data capture function using the clock signal Cf on the line use the number of PSEs 1000 on each channel of the analysis 1001. The Cf clock signals are passed by the multiplexer engine 215 to align the data with respect to one another. The 1109 to the latch 1106 by a clock signal 1110. The latch 1106 lengths (i.e. number of bits) of the serial shift registers on the captures the signals from the latch 1105 and the multiplexer individual channels of the analysis engine 215 are deter- 1108 at the Cf clock rate and passes the signals out to the Q mined at design time so that signal delays due to physical 10 output terminal. The multiplexed-PSEs shown in FIGS. 12 distances among the PSEs 1000 are sufficiently short to and 13 build cost efficient logic analyzer channels. allow data to be shifted between consecutive bits of the shift Once enabled, the analysis engine 215 captures new registers in a single clock cycle. If necessary, the number of values first into the flip-flops along the OLA channels and stages of the shift registers may be increased to satisfy this subsequently into the buffer memory 218 using trigger condition. Each channel of the analysis engine 215 is 15 signals that have been pre-programmed and implemented as coupled to a different data input port of the buffer memory shown in FIGS. 9c, 9d and 10. 218. The collective data applied to the ports of the buffer In one mode of operation of the IC 100 shown in FIG. 1b, memory 218 is written to an address in memory which is the human engineer may use the diagnostics console 103 to identified by a common address register 822 that advances initialize both of the system logic and the SPU 101. In this under control of the periodic clock signal "Ct" on the line 20 manner, the SPU 101 may be programmed to perform logic 1001. analyzer functions and specific probe points may be enabled FIG. 12 shows a preferred embodiment of a channel of the so that a history of data values appearing at the selected OLA 215 which uses multiplexed PSEs 1000 to combine the probe points can be captured by SPU 101. Additionally, the selection of probe points and pipelining captured data into a trigger logic shown in FIGS. 9 and 10 may be programmed single, efficient design. This enables the coupling one PSE 25 23 to select a desired trigger event in order to stop the data 1000 to two probe points or another PSE 1000. Scan capture operations. Next, the diagnostics console 103 invoke operations shift a control signal into the PSE 1000 to the IC 100 to execute its normal system operations. If and program itself to select one or the other of its input ports. when the selected trigger event is detected and the analysis The details of a multiplexed PSE are shown in FIG. 13. engine 215 has captured the required data, the diagnostics The PSE 1000, illustrated by a dotted line, is connected to 30 console 103 instructs the SPU 101 to transfer the captured a multiplexer 1108 which has two input terminals connected data values out of the IC 100 and into the diagnostics to two input probe paths, P1 and P2, for the logic analyzer console 103 where the data may be formatted and presented channels. Besides the probe clock signal line 1001, which for analysis and interpretation. The diagnostics console 103 carries the Cf signal, the PSE 1000 is connected to a first and the SPU 101 can constrain some of the signals on one scan clock signal line 1101, which carries an A_clk signal, 35 or more test wrappers 102 in order to affect the behavior of a second scan clock signal line 1102, which carries a B_clk the IC 100 and perform logic analysis under these condi- signal, and a scan control line 1103, which carries a tions. For example, this approach may be useful to deter- Scan_mode signal. The PSE 1000 has three latches 1105, mine how the overall behavior of the IC 100 is affected when 1106 and 1107. The output terminal of the latch 1105 is some of the functionality of any one of the blocks 106 is connected to one input terminal of the latch 1106 and to one 40 disabled. input terminal of the latch 1107. One input terminal of the latch 1105 is connected to the output terminal of the mul- In a different mode of operation automatic test equipment tiplexer 1108 and a second input terminal of the latch 1105 (ATE) may access the IC 100 through its TAP interface 217 in order to initialize the SPU 101 so that internal scan strings forms a scan data input terminal 1104, SI. The output 403 and test wrappers 102 are loaded with predetermined terminal of the latch 1107 forms a scan data output terminal, 45 SO, and is also connected to the control terminal of the test values. The response of the blocks 106 is observed using multiplexer 1108. The output terminal of the latch 1106 the scan strings 403 and test wrappers 102. Furthermore, the ATE may be programmed to instruct the SPU 101 to execute forms an output probe path, Q, for the logic analyzer channels. BIST or other buffer memory 218 test functions and to check the results to determine pass or fail conditions. The scan clock signals, A_clk and B_clk respectively, 50 and the Scan_mode signal configure the PSE 1000. For In yet another mode of operation, it is possible to use an serial shift operations, the serial input (SI) on the line 1104 in-circuit test (ICT) or similar board-level test equipment to is captured into the latch 1105 when the A clk signal is access the IC 100 through its TAP interface 217 in order to applied and the output of the latch 1105 is captured into the instruct the SPU 101 to turn-on its external memory test latch 1106 when the B_clk signal is applied. If the 55 function. In this mode, patterns are generated by the SPU Scan_mode signal on the line 1103 is set to a logic 1, the 101 and made to appear at specific I/O pins of the IC 100 B_clk signal on the line 1102 is also passed through a which are coupled to external memory. For example, the IC multiplexer 1109 and an AND gate 1112 to the latch 1107 by 100 may generate the data and address values that are a clock signal line 1111. Thus, non-overlapping A clk and applied to the external memory. The data responses received B clk signals on the clock signal lines 1101 and 1102 60 are captured in order to determine if the external memory is respectively clock serial shift operations in the PSE 1000. functioning correctly. Signals scanned into the latch 1105 through line 1104 are While the description above provides a full and complete also scanned into the latch 1107 (and the latch 1106) and the disclosure of the preferred embodiments of the present SO output terminal. This completes the programming of the invention, various modifications, alternate constructions, PSE 1000 such that value that has been loaded into the latch 65 and equivalents will be obvious to those with skill in the art. 1107 controls input multiplexer 1108 which selects between Thus, the scope of the present invention is limited solely by two input ports 1109 and 1110. Once the PSE 1000 has been the metes and bounds of the appended claims. 7 US 6,964,001 B2 15 15 a multiplicity of logo What is claimed is: 1. An input/output port connector, comprising: a storage element; a probe in port; a probe out port; a data in port; a data out port; a scan in port; and a scan out port; wherein, in a first mode of operation, contents of said 10 storage element are used to select between data on said data in port and said probe in port to propagate directly to said probe out port. 2. A logic block, comprising: a multiplicity of input/output (I/O) ports; and a multiplicity of said input/output port connectors as in claim 1; wherein each of said I/O ports is connected to one of said multiplicity of block input/output port connectors; and wherein each said input/output port connector is con- 20 nected to an adjacent one of said input/output port connectors by connecting said probe in ports of one input/output port connector to said probe out ports of an adjacent one of said input/output port connectors and said scan in ports of said one input/output port con- 25 nector to said scan out ports of said adjacent one of said input/output port connectors, thus forming a string of input/output port connectors. 3. An integrated circuit comprising: a multiplicity of logic blocks as in claim 2: 30 a multiplicity of bus connectors: and a test bus: wherein each of said multiplicity of bus connectors is connected to said test bus, and wherein each of said 16 strings of input/output port connectors is connected to one of said bus connectors. 4. An input/output port connector as in claim 1, wherein: in a second mode of operation, data is propagated from said scan in port through said storage element to said scan out port, in a third mode of operation, data propagates from said storage element to said data out port, in a fourth mode of operation, data from said data in port is captured in said storage element, and in a fifth mode of operation, data propagates directly from said data in port to said data out port. 5. An integrated circuit comprising: a multiplicity of logic blocks: an on-chip logic analyzer with a multiplicity of input ports: and a multiplicity of probe lines: wherein each of said probe lines is adapted to capture signals from said logic blocks and to propagate said signals to one of said multiplicity of input ports of said on-chip logic analyzer, said input ports of said on-chip logic analyzer comprising: means to capture said signals from said probe lines: means to align said signals propagated through said probe lines to create aligned signals: and means to capture said aligned signals. 6. The integrated circuit as in claim 5, wherein said on-chip logic analyzer further comprises means to transfer said aligned signals out of said integrated circuit. 7 US 6,964,001 B2 Page 2 U.S. PATENT DOCUMENTS 6,003,107 A 6,003,142 A 6,107,821 A 6,125,464 A 12/1999 Ranson et al. 12/1999 Mori 8/2000 Kelem et al. 9/2000 Jin 6,131,171 A 6,182,247 B1 6,460,148 B2 6,564,347 B1 10/2000 Whetsel 1/2001 Herrmann et al. 10/2002 Veenstra et al. 5/2003 Mates * cited by examiner 7 U.S. Patent Nov. 8, 2005 Sheet 1 of 16 US 6,964,001 B2 IIIII System Bus UNTUU 100 User-Developed Core UMU „Peripheral.Bus.. Figure la (prior art) System IC 3rd-Party Core Bus Interace Block Bridge Host Processor 7 U.S. Patent Nov. 8, 2005 Sheet 2 of 16 US 6,964,001 B2 104 100 103 - 105 System Bus 101 IIIIIIIIIII Peripheral Bus 106 OOROONARI TTTTTTTTTTTT RESIZE User-Developed Core Figure 1b D 100 AR SEEDS 3rd-Party Core System IC Bridge TTTTTTTTT Bus Interface Block 102 SYYS. 102 Host Processor SPU 101 U.S. Patent 222 210 - 215 211 212 SIO Scan Control Analysis Engine micro- processor BIST engine 217 Parallel I/O TAP 216 Range Check Interrupt Handler Test Bus Interface Buffer Memory Test Bus Interface Nov. 8, 2005 220 - 213 -221 218 214) - - - - - - - - - - - - - - - - - - - - - - 203 204' Trigger 201 Analog Probes 2032al Trigger Test Bus Test Bus 7 System Bus 105 Sheet 3 of 16 704 Scan string 403 202 Dígital Probes Core Block 106 Test Wrapper -102 Figure 2 US 6,964,001 B2 7 U.S. Patent Nov. 8, 2005 Sheet 4 of 16 US 6,964,001 B2 101 _213 SPU Test bus Interface probe string -402 401 403 Scan string Core block 106 401 102 Test wrapper Figure 3a 401 Test bus connector Trigger 401 204 Test bus 104- U.S. Patent Test wrapper 102 Test wrapper 102 426 404 2011------------ 427 421 Test bus 104 Test bus 1041 Test bus 104 Nov. 8, 2005 104 SPƯ 101 Test bus 5 425 SPU 101 Sheet 5 of 16 7 Figure 3b Preferred Embodiment of Test Bus Connector US 6,964,001 B2 Probe String 402- U.S. Patent - - - - - - Trigger Test Bus 104 2044 Test Bus 104 Nov. 8, 2005 - - - - - - - - - - - 401 Test wrapper 102 - - - - - - - - - - - - - - - - - Sheet 6 of 16 7 401 Core block 106 - - - - - - - Scan string 403, 4012 - - - - - - - - - Figure 3c Connecting Probe String, Test Wrapper or Scan String to Test Bus US 6,964,001 B2 Test wrapper 102 U.S. Patent -O 306 scan 30 test,-probe out. -10, cup Scan IM 300 Data in 9 FF Q Data out 302 - --- probe ---- --scan. . _307 303_Yin 01 Jin 304 - 308 Nov. 8, 2005 300 Sheet 7 of 16 7 Figure 4a Preferred Embodiment of Block Input/Output Port Connector US 6,964,001 B2