Abstract:
A method of gaining access to multiple signals internal to a semiconductor chip while minimizing the number of pins dedicated for diagnostic and testing purposes. A chip designer determines which internal signals would most likely be helpful in troubleshooting and debugging a new chip design. These signals are input to a selector. A configuration register is loaded with information specifying which ones of these signals is to be routed to the output pin(s) so that they can be monitored externally by a logic analyzer in real-time. The selector only routes the currently designated signals to the appropriate output pin(s). Subsequently, a different set of signals can be selectively routed to the output pin(s) in place of the originally chosen signals.

Description:
FIELD OF THE INVENTION 
     The present invention pertains to the field of diagnostics and debugging of semiconductor chips. 
     BACKGROUND OF THE INVENTION 
     Electronic devices in the fields of computer systems, telecommunications, instrumentations, etc., are becoming ever more versatile, powerful, and faster. This is all made possible through advances in semiconductor technology. In today&#39;s competitive markets, semiconductor &#34;chips&#34; are becoming bigger and more complex in order to meet the demands for state-of-the-art performance. A single semiconductor chip can contain upwards of millions of transistors. As complexity, functionalities, speed, and the sizes of semiconductor chips increase, it is becoming a much more critical and difficult task to properly test, debug, and fix any problems associated with new designs and layouts. 
     Traditional debug procedures call for the monitoring of certain signals. By examining these electrical signals, it is possible to determine whether portions of the chip are working correctly. Any failures and errors can be isolated by analyzing these electrical signals. However, in reducing costs, semiconductor circuits are compacted as much as possible in order to minimize their die size (a smaller die directly translates into lower manufacturing costs because more chips can be fabricated from a given wafer). As the densities of integrated circuits increase, it becomes ever more difficult to gain access to these critical signals because they typically reside within the core of the chip. 
     Consequently, they must first be brought out through external pins before they can be monitored by a logic analyzer. Due to physical chip package constraints, only a limited amount of pins can be implemented for a given chip. Dedicated diagnostic output pins can be allocated to provide access to key internal signals. However, only a small number of dedicated diagnostic output pins are available, Whereas the number of potentially interesting signals can exceed hundreds or even thousands for a complex chip design. Adding more diagnostic pins becomes impractical as this would increase the size of the package, thereby also increasing the cost. And in some cases, package limitations prevent the addition of more pins. 
     One prior art approach for testing semiconductor chips has been to use &#34;scan chains&#34;. Basically, scan chains are additional circuitry incorporated into the chip layout, which shift out the bits of information contained in the registers of interest. One can access the state of the processor to determine whether the chip is working properly by simply examining the bits of information that were shifted out via the scan chain. Thereby, scan chains provide controllability and observability of internal state for chip test purposes. However, a disadvantage of this approach is that the system must be stopped after each state transition in order to scan out the internal state. Repeatedly stopping and restarting the system will change the behavior of systems that are not fully synchronous. A further disadvantage is the added overhead of implementing the scan chain and its associated control logic, which consumes valuable resources and may not be acceptable for certain applications. 
     Therefore, there is a need for a straightforward method to transparently monitor the state of large numbers of internal signals through a small number of pins. 
     SUMMARY OF THE INVENTION 
     The present invention pertains to a method of gaining access to multiple signals internal to a semiconductor chip while minimizing the number of output pins dedicated for diagnostic and testing purposes. A chip designer determines which internal signals would most likely be helpful in troubleshooting and debugging a new chip design. These signals are input to a selector. A configuration register is then loaded with information specifying which ones of these signals is to be routed to the output pin(s) so that they can be monitored externally by a logic analyzer in real-time. The real-time monitoring function is valuable for debugging while the system is running normal operations. The selector only routes the currently designated signals to the appropriate output pin(s). Subsequently, a different set of signals can be selectively routed, under software control via the selector, to the output pin(s) in place of the originally chosen signals. Thereby, a large number of internal signals can be monitored externally by using a limited number of pins. In one embodiment, the signals from the output port(s) are used as inputs to external circuitry in order to change the behavior of the system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which: 
     FIG. 1 shows a block diagram of the test system layout. 
     FIG. 2 shows a single diagnostic watchpoint port. 
     FIG. 3 shows a more detailed schematic of the currently preferred embodiment of the programmable diagnostic watchpoint port. 
     FIG. 4 is a flowchart describing the steps for testing and debugging a system. 
    
    
     DETAILED DESCRIPTION 
     An apparatus and method for transparently monitoring the state of large numbers of internal signals of a semiconductor chip through a small number of pins is described. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be obvious, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid obscuring the present invention. 
     In the present invention, a complex integrated circuit is developed to contain one or more programmable watchpoint ports. These ports allow critical internal nets to be monitored in real-time during normal operation. Alternatively, these ports also allow the critical internal nets to be read back under software control. The real-time monitoring function is valuable for debugging system operations that were not simulated. The signals that were read out can subsequently be used as inputs to external circuitry, if necessary, to change the behavior of a system that does not function correctly under certain conditions. 
     Referring to FIG. 1, a block diagram of the test system layout is shown. A semiconductor chip 101 is as part of an overall system 102. Certain pins of chip 101 are brought out of system 102 so that the electrical signals on those pins can be monitored by external test equipment, such as logic analyzer 104. The electrical signals of interest may include those signals that were selected for output by the diagnostic watchpoint port(s) as well as normal output signals. Alternatively, the monitoring can be accomplished by reading from a location in the chip&#39;s 101 address space. A function generator 103 is used to provide input signals, if necessary, to chip 101. In the currently preferred embodiment, chip 101 is tested as part of a running computer system. System 102 includes all of the components of the computer system so that chip 101 can be tested as part of normal system operations. Alternatively, chip 101 may be placed within a specially designed test fixture. 
     In order to debug chip 101, the signals monitored by logic analyzer 104 are captured as the computer system is running. Logic analyzer 104 continues capturing the signals of interest until a failure occurs. The signals that were captured at the point of failure are studied and analyzed to gain insight into the cause of the failure. Often, this procedure is repeated because one set of captured values leads to additional signals that should be monitored in order to shed further light on the problem. Eventually, the cause of the failure is fully understood, and an appropriate hardware or software fix is designed. In an alternative embodiment, the internal signals that are selected for output via the programmable diagnostic watchpoint port are input to external circuitry 105 . External circuitry 105 can be used to provide design changes. The modified signals from external circuitry 105 can be fed back to system 102 in an effort to fix any failures. 
     FIG. 2 shows two diagnostic watchpoint ports 205 and 207. Semiconductor chip 101 can contain several different types of logic, such as processor 201, memory 202, and input/output and clocks 203. It should be noted that the present invention can be applied to test any type of integrated circuits and semiconductor chips (e.g., microprocessors, digital signal processors, graphics chips, programmable logic devices, memory chips, controllers, etc.). One or more groups of signals that are of interest are determined by the designer to be connected to multiplexer/selector 204. For instance, &#34;M&#34; group of signals from processor 201 and &#34;N&#34; group of signals from memory 202 can be directly connected to multiplexer/selector 204. 
     The function of multiplexer/selector 204 is to single out one of these M or N signals to output to pin 205. For example, if the test engineer suspects that there is a timing problem, the test engineer can instruct multiplexer/selector 204 to select one of the clock signals to be output onto pin 205 so that particular clock signal can be monitored. If the clock signal appears to be functioning correctly, the test engineer might wish to examine one of the signals internal to processor 201. This can be accomplished by instructing multiplexer/selector 204 to switch from the clocking signal to the processor signal of interest for output to pin 205. It should be noted that multiplexer/selector 204 is not limited to having just a single output. Multiplexer/selector 204 can select from N number of inputs for output onto M number of output pins. In one embodiment, the clock corresponding to the signal currently being output through the diagnostic watch point port is selected for output monitoring. For example, if a signal from group &#34;M&#34; is output on pin 205, then multiplexer 206 selects clock line &#34;M&#34;. Conversly, if a signal from group &#34;N&#34; is output on pin 205 via multiplexer 204, then clock &#34;N&#34; is output on pin 205. 
     FIG. 3 shows a more detailed schematic of the currently preferred embodiment of the programmable diagnostic watchpoint port. Various signal groups are chosen from the internal logic 301 by the designer based on their likelihood of aiding in troubleshooting. In other words, the chip designer determines at design time, which internal signals would be useful in a debug environment. This determination is based on knowledge of the designer and experience gained while debugging the design during the simulation phase of the project. These signal groups are coupled to a selector 303. In other words, the data inputs (e.g., signal groups 1-N) to selector 303 are the internal signals that are to be monitored. Signals of interest are assigned to selector inputs in such a way as to allow collections of related signals to be viewed simultaneously. 
     Selector 303 is built out of purely combinational logic. Thereby, no assumptions need to be made about the clock domain of the signals being monitored. Signals of interest are buffered before being sent to the selector 303. This is done so that loading due to global route does not adversely affect timing. The width of selector 303 is determined by the number of available output pins. The fan-in of selector 303 is determined by the total number of internal signals that are to be monitored. The control for the selector 303 comes from a statically configured register 302. Configuration register 302 is unused in normal operation. Configuration register 302 is unused except for selecting the appropriate signal group. This ensures that the signal group selected is independent of the operation being performed. The output of selector 303 is driven onto output pins, where it can be continuously monitored by a logic analyzer. The output of selector 303 is also made available to software running on the Computer system as a read-only memory location. 
     FIG. 4 is a flowchart describing the steps for testing and debugging a system. Initially, the chip designer decides which signals are to be input to a selector. A configuration register or similar memory is loaded with a selection by the user of those signals which the user wishes to monitor in real-time, step 401. Based on this information, the selector is instructed to route the designated signals to the output pins, step 402. The signals that were selected for output are then captured for analysis, step 403. In step 404, a determination is made as to whether the user wishes to monitor any different signals. If the user wishes to monitor a different set of signals, steps 401-403 are repeated for the new set of signals. Step 405 is an optional step, wherein the test engineer may choose to alter certain system parameters based on the analysis of the signals that were obtained in step 403. 
     The foregoing descriptions of specific embodiments of the present invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and obviously many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.