Abstract:
A receiving processor is configured with a normal (operational) path and a test path. The test path is configured in parallel with the normal path. The test path simulates and receives as input the same data as the normal path, but the test path has a separate voltage reference (V ref     —     test ) which is applied to a test input buffer. The same data input to normal buffer is also input to the test buffer. The output of the test buffer is input to a test latch. A clocking signal supplied to the test latch is a variable clocking signal enabling the clock signal to be skewed selectively. The output of the test latch is compared with the output of the normal latch, and differences between the two output signals defines an error for a particular voltage/clock-skew combination.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates in general to determining signal quality in a digital system and, more particularly, to determining signal quality of clocked signals applied to a chip receiver.  
         [0003]     2. Description of the Related Art  
         [0004]     In processing systems (e.g., computers, handheld devices, etc.) the signal quality of synchronous signals must be in compliance with the specifications of the device. Such signals are commonly found in busses where the signals must arrive at their final destination point together and are sampled by a common clock. If the signal quality is not in compliance with the device specifications, the device will typically signal a parity error or other error type, and this typically causes a system reboot or requires the retransmission of data.  
         [0005]     Measurement of high speed signals in the prior art utilize a voltage reference to determine when the receiver sees a high or low reference. Chip vendors will typically specify a minimum setup time and minimum hold time at which the vendor will guarantee that the device will operate properly. Oscilloscope images are visually compared to specifications to determine if there is sufficient set-up and hold time at the specified voltage levels.  
         [0006]     It is typical to test the signal quality of a system before the system is made available to a consumer, and/or during system start-up when the system is actually in use. The set-up, hold, rise, and fall times of the signals are usually measured with an oscilloscope referenced to the receiving clock and the signal pad of the component being tested. This measuring process can take days or weeks to accomplish, especially when some chips have greater than 1,000 signals which must be measured.  
       SUMMARY OF THE INVENTION  
       [0007]     A receiving processor is configured with a normal (operational) path and a test path. In the normal path a reference voltage is applied to a normal (operational) buffer, to which the data input signal is also applied. The output of the normal buffer is applied to the input of a normal (operational) latch. A fixed clock signal is also applied to the latch which triggers the output of the data signal from the normal latch to the output of the chip. The test path is configured in parallel with the normal path. The test path simulates and receives as input the same data as the normal path, but the test path has a separate voltage reference (V ref     —     test ) which is applied to a test input buffer. The same data input to normal buffer is also input to the test buffer. The output of the test buffer is input to a test latch. A clocking signal supplied to the test latch is a variable clocking signal enabling the clock signal to be skewed selectively. The output of the test latch is compared with the output of the normal latch, and differences between the two output signals defines an error for a particular voltage/clock-skew combination. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  illustrates a prior art receiving processor; and  
         [0009]      FIG. 2  is a block diagram of a processor employing the method and structure of the present invention; 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0010]      FIG. 1  illustrates a prior art receiving processor, also known as a receiving chip. In this example, the receiving processor comprises a VLSI chip, although the present invention is not limited to a VLSI chip and can comprise any device in which a clocked signal is applied to a chip receiver. VLSI chip  100  includes an input buffer  102  and a latch  104 . A data input signal  106 A is received by input buffer  102  via data signal input point  106 . A reference voltage V ref    108 A is input via reference voltage input point  108  and triggers the output of data stored in input buffer  102  in a well known manner. Latch  104  receives a clock signal  110 A. Buffered incoming data signal  106 A applied to the D 0  input of latch  104  is output via output Q 0  triggered by the clock signal  110 A, in a well known manner. This data is output from the VLSI chip  100  via data output point  112  as data output signal  112 A.  FIG. 1  illustrates only the input-signal processing aspects of VLSI chip  100 ; as is well known, VLSI chip  100  will also typically include hundreds or thousands of electronic components on the chip. Typically, data output signal  112 A would be input to one or more of these components.  
         [0011]     As is well known, the input buffer  102  establishes the voltage at which the VLSI chip  100  will determine a “high” or a “low” signal. V ref    108 A is the voltage reference. V ref    108 A is used by the VLSI  100  chip to calculate the minimum voltage level needed by a “data in” signal  106 A to be considered a logical “1” by the chip  100 . Likewise, V ref    108 A is also used to calculate the maximum voltage a “data in”  106 A signal can have and still be considered a logical “0” by the VLSI chip  100 . It also buffers the signal for loading within the VLSI chip, thereby “cleaning up” noise on the signal prior to its entering the VLSI chip  100 .  
         [0012]     The latch  104  latches the incoming data signal, based on the clock signal  110 . Typically in high-speed designs this must be done, as there is not sufficient set-up and hold-time to go through logic, and the signal is referenced by the clock signal. The data-output signal  112 A of latch  104  is the actual data signal used by the components (internal logic) within the VLSI chip  100 . By latching the signal, the VLSI chip  100  is essentially extending the hold time. This allows the internal logic of VLSI chip  100  more time to perform any necessary operations on the signal prior to its changing, and gives the chip designer the ability to meet high speed design requirements.  
         [0013]      FIG. 2  is a block diagram of a processor (again a VLSI chip in this example) employing the method and structure of the present invention. Referring to  FIG. 2 , a VLSI chip  200  includes an input buffer  102 , a latch  104 , a clock signal  110 A input via clock signal input point  110  to the latch  104 , a data input signal  106 A, and a V ref  signal  108 A, input via V ref  signal input point  108 . This structure is essentially identical to the prior art structure of  FIG. 1 . However, in accordance with the present invention, a test path, comprising test input buffer  202 , test input latch  204 , clock skew circuit  214 , and exclusive-or gate  216  are also included in the VLSI chip  200 .  
         [0014]     The functions and operations of the elements of  FIG. 2  that are similar to that of  FIG. 1  are essentially the same. Data is input to the buffer  102  and is latched by latch  104 , based on the clock signal  110 A, to be output from the VLSI chip  200 . The test path, however, allows testing to be performed on the exact same data signal that is being used by the normal path, without affecting the data output signal  112 A. More specifically, test buffer  202  is used only during testing to determine voltage sensitivity. V ref     —     test    208 A, input via V ref     —     test  input point  208 , is varied when performing tests. If V ref     —     test    208 A is varied too high or too low, an error condition will be simulated. By identifying the high voltage and low voltage at which an error condition occurs, the sensitivity range of the VLSI chip  200  can be determined. The test input latch  204  has the same function as normal input latch  104  but is used only for testing purposes. As described in more detail below, the output of the test input latch  204  is compared to the output of the normal input latch  104  using exclusive-or gate  216 . If there is any difference output by exclusive-or gate  216 , an error is implied.  
         [0015]     Clock skew circuit  214  allows the clock signal  110 A applied to test input latch  204  to be selectively skewed either in the positive or negative direction. Methods and circuits for skewing clock signals are well known to ASIC designers and any method for performing the skewing function will suffice for purposes of the present invention. The output of clock skew circuit  214  is input to the test input latch  204  but not to the input latch  104 . By skewing the clock signal input to test input latch  204  and comparing the test latch data signal latched by test input latch  204  with the real data signal output from input latch  104 , it can be determined how much margin there is in the clock signal, i.e., how much skew can be put on the clock before an error occurs. Exclusive-OR gate  216  compares the normal output  104  to the test output  204  to determine if the parameters are skewed beyond the point of providing correct data. This point will be the value (point) at which failures begin, and there is both a high point and a low point where data will become incorrect. As is well known, an exclusive OR gate will only output a logical “1” if the two inputs to the gate differ. An output of logical “1” from exclusive OR gate  216  indicates that the outputs from normal output  104  and test output  204  disagree, indicating an error condition.  
         [0016]     With the present invention, the test path allows a simulation of the actual data path without affecting the chip function. The same data as is used in the regular path is used in the test path, but voltage references can be changed and clock skew can be added without affecting the chip function. This allows testing to be performed at any time, even during normal operation of the chip. While regular data is being run through the processor, “four corners” and margins can also be viewed. The high voltage, low voltage, and clock skew with those voltages can be viewed and it is possible to get a good idea of how good or bad the eye pattern is. The real data is data output signal  112 A. This real data is delivered to the internal logic of the VLSI chip to be used for its intended purpose. The test data output signal  212 A is an error signal output from the chip and is used to alert test equipment (not shown) to the occurrence of an error. This same test equipment will also provide adjustments to V ref     —     test  signal  208 A and skew signal from clock skew circuit  214  to determine the V ref  and skew margins. The eye pattern describes the skew window that will still create valid data, or the V ref  skew (margining) that will maintain valid data. The four corners of the eye pattern delineate the largest window of a V ref  margin with a clock skew that could be used and still maintain valid data (min-V ref +max negative clock skew; max-V ref +max negative clock skew; min-V ref +max positive clock skew; and max-V ref +max positive clock skew define the four corners).  
         [0017]     To conduct a test in the prior art, to measure the voltage margins it is required to change the V ref  signal  108 A and then increment the V ref  signal  108 A until a point at which the system fails. This requires changing the actual data flow; the system will fail and then it will be known that the failure point (the value of V ref  at the point of failure) is one limit for the window. The oscilloscope is placed at the normal data output point  112 , and the value of V ref  is changed multiple times until a window is identified for the failures. This process is performed for each input, because it is being done on the actual path, in order to get a window as to where it fails. In other words, the actual data is changed to a point at which it actually fails, which shuts the entire system down. For this reason, prior art testing is typically performed when the VLSI chip (or other processor being tested) is off-line.  
         [0018]     Using the system of the present invention, the V ref     —     test  signal  208 A can be changed by any amount desired, and as many times as desired, without affecting the data output signal  112 A. The V ref     —     test  signal  208 A is simply skewed until an error occurs, which provides a data point. This allows the VLSI chip (or any other processor using the present invention) to have signal testing performed on it while it is in service and functioning.  
         [0019]     It will be understood that elements of the illustrations, and combinations of elements in the illustrations, can be implemented by general and/or special purpose hardware-based systems that perform the specified functions or steps, or by combinations of general and/or special-purpose hardware and computer instructions.  
         [0020]     These program instructions may be provided to a processor to produce a machine, such that the instructions that execute on the processor create means for implementing the functions specified in the illustrations. The computer program instructions may be executed by a processor to cause a series of operational steps to be performed by the processor to produce a computer-implemented process such that the instructions that execute on the processor provide steps for implementing the functions specified in the illustrations. Accordingly, the figures support combinations of means for performing the specified functions, combinations of steps for performing the specified functions, and program instruction means for performing the specified functions.  
         [0021]     The above-described steps can be implemented using standard well-known programming techniques. The novelty of the above-described embodiment lies not in the specific programming techniques but in the use of the steps described to achieve the described results. In a client/server environment, such software programming code may be stored with storage associated with a server. The software programming code may be embodied on any of a variety of known media for use with a data processing system, such as a diskette, or hard drive, or CD-ROM. The code may be distributed on such media, or may be distributed to users from the memory or storage of one computer system over a network of some type to other computer systems for use by users of such other systems. The techniques and methods for embodying software program code on physical media and/or distributing software code via networks are well known and will not be further discussed herein.  
         [0022]     Although the present invention has been described with respect to a specific preferred embodiment thereof, various changes and modifications may be suggested to one skilled in the art and it is intended that the present invention encompass such changes and modifications as fall within the scope of the appended claims.