Abstract:
An integrated data jitter generator for the testing of high speed serial interfaces is provided. A transmit timing generator for use in a transmit data path includes a high frequency clock generator such as a phase-locked loop or a delay-locked loop having an input for receiving an oscillator or reference clock input. A clock modulator receives both an existing low frequency modulation signal and a high frequency modulation signal. A high-speed modulated clock signal is generated to enable jitter testing by a downstream-coupled receiver. Fixed frequencies such as 3, 6, 125, 150, 250, 300, 750, or 1500 MHz are used for the high-speed modulation signal, but any high-speed modulation frequency can be used to generate the desired amount of jitter. Likewise, the amplitude of the high frequency modulation signal can also be varied as desired.

Description:
BACKGROUND OF THE INVENTION 
   This invention pertains to high-speed serial interfaces, and, more particularly, to an apparatus and method for injecting controlled amounts and frequencies of timing jitter into the transmit data path of a serial data interface to allow for the convenient testing of jitter tolerance. 
   In serial interfaces, several parameters of the transmitter and receiver influence the capability of the serial data link to provide data with a very low number of errors over time. This description of the number of errors per number of data bits transferred is known as the “BER” or Bit Error Rate. One of these parameters is known as “receiver jitter tolerance”. In high-speed electronic data systems, the parameter “jitter” or “timing jitter” refers to errors in the placement of a data or clock edge compared to its ideal location. The error can be random in nature or deterministic (having a bounded amplitude). The type of jitter depends on the sources of the jitter in the electronic system. Electronic thermal noise, circuit timing dependence on supply voltage noise, and electromagnetic coupling are some of the sources of this jitter. In general, a system will have a mixture of jitter components in its signals. The receiver jitter tolerance parameter describes how well a receiver can extract data with a low error rate from a digital data stream containing jitter. 
   Measuring the receiver jitter tolerance has been one of the more demanding measurements due to the equipment required to produce a data stream with known amounts and frequencies of jitter. The equipment needed to generate this jittered data must have higher performance capability than the data link being tested. The BAUD rate or frequency of the data being transferred is increasing rapidly over time to provide faster data operations. The evolution of serial data interfaces in computers is an example of this trend. This increase in operating speed requires higher performance, more advanced equipment to perform these tests. The equipment currently available for such testing is quite expensive and the availability sometimes lags the need for testing the data link. It is also desirable to test the receiver jitter tolerance when the high-speed serial interface is connected into an actual system such as computer or other data equipment. This is difficult to accomplish and prone to errors when using the present jittered data generation equipment such as serial data pattern generators. 
   Present transmitters for high-speed serial data interfaces do not have the means for providing known amounts and frequencies of jitter for receiver jitter tolerance testing. Some transmitters, such as those with SATA (Serial ATA, wherein “ATA” stands for Advanced Technology Attachment) interfaces have the means for modulating the transmit data stream with a 30 KHz 0% to −0.5% modulation, as is called out in the SATA specification for SSC (Spread Spectrum Clocking) transmission. 
   Referring now to  FIG. 1 , a block diagram of a prior art transmission path  10  is shown. An initial timing reference or Base Frequency Clock signal  14  is provided by an internal oscillator  12 . The frequency of the clock signal  14  is determined by either a quartz crystal or ceramic resonator or alternately sourced by a reference clock available from the system. This base frequency clock signal  14  is increased in frequency consistent with the data transmission rate of the serial interface in the transmit timing generator  16 . In the case of SSC transmission, clock signal  18  is additionally modulated typically at 30 KHz in the transmit timing generation block  16  in order to frequency modulate the data stream to help reduce EMI emissions. This modulated high frequency clock signal  18  is the timing source for the serializer block  13  that converts the parallel data stream  11  into a serial data stream  15  at the data rate determined by clock signal  18 . This Serial Transmit Data signal  15  is buffered by a transmit buffer block  17  that provides the specific amplitude and output impedance as is required by a particular interface. In high-speed serial interfaces such as SATA interfaces, the final output signal  19  is differential. 
   Referring now to  FIG. 2 , a more detailed block diagram shows a possible prior art implementation  20  of the transmit timing generation block  16  shown in  FIG. 1 . The clock signal input  22  is input into a high frequency clock generator  24 . The output  26  of the clock generator  24  is input into a clock modulator block  28 , which provides the modulated clock output signal  23 . A modulator command block  27  such as an SSC modulation command provides an output  25  coupled to the clock modulator block  28 . 
   Referring now to  FIG. 3 , another prior art embodiment  30  of the transmit timing generator  16  of  FIG. 1  is shown. Timing generator  30  includes a DLL (Delay Locked Loop)  34  for increasing the frequency of the base frequency clock signal  32  to a frequency consistent with the desired data rate. A clock modulator circuit  38 , commanded by a modulation command block  37  modulates the clock signal  36  from the DLL at a 30 KHz rate to provide the SSC modulated high frequency clock output signal  33 . 
   Referring now to  FIG. 4 , the detailed block diagram shows yet another prior art embodiment  40  of the transmit timing generation block  16  shown in  FIG. 1 . The detailed block diagram of  FIG. 4  shows a similar topology except that the initial frequency multiplication provided by the DLL  34  previously shown in  FIG. 3  is now provided by a PLL (Phase Locked Loop)  44 . 
   Referring now to  FIG. 5 , the detailed block diagram shows an alternative prior art embodiment for the transmit timing generation block  16  shown in  FIG. 1 . Timing generation block  50  contains a modulated PLL  54  that provides both the frequency multiplication as well as the SSC modulation via modulation command block  58 . Typically this can be accomplished by incorporating time varying modifications to the feedback path of the PLL  54 . 
   Referring now to  FIG. 6 , the detailed block diagram shows yet another prior art alternative embodiment for the transmit timing generation block  16  shown in  FIG. 1 . Timing generation block  60  contains a modulated DLL  64  that provides both the frequency multiplication as well as the SSC modulation via modulation command block  68 . Typically this can be accomplished by incorporating time varying modifications to the delay paths in the DLL  64  structure. 
   None of the prior art transmit timing generation blocks shown in  FIGS. 1–6  has the ability to provide the high-speed jitter testing required by high-speed serial interfaces. Present test equipment for providing the function is extremely expensive, can be hard to obtain, and is difficult to use within operating systems. Lower cost solutions exist although the general prior art method of disturbing the data stream and using the coupled receiver to function as a limiting amplifier that is error prone requires an iterative adjustment and measuring process to get the level desired. 
   What is desired, therefore, is a method and apparatus for providing convenient high-speed jitter testing that does not have the performance limitations of the lower-cost prior art solutions or the expense and limitations of existing test equipment. 
   SUMMARY OF THE INVENTION 
   According to the present invention, a convenient jitter testing ability is provided by adding a high-speed modulation command in the transmitter data path of a serial interface. The added high-speed modulation command has a minimal cost impact and provides margin testing within a total functioning system. The inclusion of the high-speed modulation command to provide a modulated clock signal in the transmit path solves the problems associated with present testing methods. 
   Jitter is injected at known sinusoidal frequencies and magnitudes that are completely variable and have a wide adjustment range. This versatile capability of the present invention is traded off with the complexity and capability of the existing transmit timing generator block. Although the high speed modulation can be provided at fixed frequencies such as 3, 6, 125, 150, 250, 300, 750, and 1500 MHz, it is desirable to be able to vary the magnitude and frequency of the high speed modulation signal to get the desired amount of jitter in the system (including the effects of cabling and connectors) and to determine the level of receiver jitter tolerance margin. 
   The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description of a preferred embodiment of the invention, which proceeds with reference to the accompanying drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  is a block diagram of a prior art serial transmit path including an oscillator or reference clock input, a transmit timing generator, a serializer for receiving parallel data, and a transmit buffer having a differential output; 
       FIGS. 2–6  are block diagrams showing further details of alternative prior art embodiments for the transmit timing generator shown in  FIG. 1 ; and 
       FIGS. 7–11  are block diagrams showing further details of alternative embodiments modified to enable jitter testing according to the present invention for the transmit timing generator shown in  FIG. 1 . 
   

   DETAILED DESCRIPTION 
   Referring now to  FIG. 7 , a transmit timing generation block  70  is shown according to the present invention corresponding to the previous prior art transmit timing generation block  20  shown in  FIG. 2 . Timing generation block  70  processes a base frequency clock signal  22  and generates a modulated high frequency clock signal  73  as a timing signal for transmitting serial data suitable for downstream jitter testing. 
   In the transmit timing generation block  70 , the high frequency clock generator  24  increases the frequency of the base frequency clock signal to a higher fixed frequency value required by the serializer block  13  (shown in  FIG. 1  but not shown in  FIG. 7 ) to convert the parallel data to serial transmit data at the desired data rate. The modified clock modulator  78  can be implemented with variable delays (i.e. a variable delay generator). The modification to the clock modulator  78 , over that of the prior art, can include increases in the range and increment resolution of delays as well as a faster update rate such that the higher frequencies of modulation, over that of the 30 KHz SSC modulation, can be generated as is explained in further detail below with respect to the jitter modulation command. 
   The variable delays shift the position of the clock edges in time as a function of the delay command value. As the delay command increases for each edge of the clock, the effect is that the clock frequency is reduced. If the delay is decreasing for each clock edge, the effect is that the clock frequency increases. Typically, the variable delay has a nominal value of delay that can be increased or decreased to produce the frequency increases and decreases. 
   The update rate of the delay command determines the maximum frequency and amplitude of the modulation as well as the quality of the modulation waveform. 
   As an example of the requirements of the modified clock modulator of the present invention over that of one designed for SSC (spread spectrum clocking) consider the case of an SATA transmitter. At Generation  1  data rates (1.5 GB/s), a date edge can be output every 666.67 ps. An SSC modulation of 0% to −0.5%, at a modulation rate of 30 KHz, changes the data edge spacing from 666.67 ps to 670.02 ps over the time of a half period of modulation. (16.67 us) During the half period of modulation (a triangle wave shape is assumed) 25,000 data edge times occur. Therefore the clock modulator must be able to change 670.02−666.67=3.35 ps over the time of 25,000 data edge times. Typically this change is distributed over this half period such that the delay is changed in a ramp like manner. 
   In contrast, the modified clock modulator of the present invention, must be able to change the data edge times at a much greater rate and over a wider range. For an example, a jitter compliance testing point for SATA Generation  1  requires a receiver to tolerate a total peak-to-peak jitter of 413 ps over the time of a half period of 3 MHz modulation. (166.67 ns) During the half period of modulation 250 data edge times occur. It can be seen that the update rate and range of delay is much greater than the 3.35 ps applied over the time of 25,000 data edges as with a clock modulator designed for the SSC modulation. The modified clock modulator of the present invention must have the capability to change the delay command at a faster rate (update rate) and be able to provide more delay change (range) over that of the prior art SSC modulator. 
   As another example, another jitter compliance testing point for SATA Generation  1  requires a receiver to tolerate a total peak to peak jitter of 303 ps over the time of a half period of 750 MHz modulation. (666.67 ps) This is the time of one data edge period. In this case, the modulation delays every other data edge time by 303 ps. It can be seen that the update rate and range of delay is much greater than the 3.35 ps applied over the time of 25,000 data edges as with a clock modulator designed for SSC modulation. The modified clock modulator of the present invention must have the capability to change the delay command at a faster rate (update rate) and be able to provide more delay change (range) over that of the prior art SSC modulator. 
   The command to the modified clock modulator  78  is now the sum of two modulation command waveforms generated in the modulation command block  27  and the jitter modulation command block  77 . Block  27  generates the SSC modulation waveform and block  77  generates the jitter injection waveform. The format of these waveforms can be either digital or analog depending on the implementation of the modified clock modulator  78 . Either or both of these waveforms on corresponding output lines  25  and  27  can be enabled depending on whether the transmission mode (SSC or fixed BAUD rate) or the jitter injection test mode was desired. The normal data transmission has two modes. In one case the BAUD rate (or data edge timing) is at a fixed frequency. In the other case the SSC modulation is active thereby affecting a reduction of EMI (Electromagnetic Interference). The jitter tolerance testing of the receiver connected to this data stream needs to be done for both of these transmission modes. Therefore, there are four possible operating modes (normal and SSC, with and without jitter added). 
   The modulation command waveform from the SSC modulation command block  27  has the same function as the 30 KHz command that was used in the prior art and it is enabled if the SSC mode of data transmission is desired. The other path  75  to the summer  76  is the new jitter injection command waveform according to the present invention. The frequency and magnitude of the jitter injection command can be specified in test mode registers such that when this command is enabled, the desired jitter is applied to the modulated high frequency clock signal  73  by means of the modified clock modulator  78 . This in turn adds the desired jitter to the serial transmit data by means of the serializer  13  (not shown in  FIG. 7 ). 
   Although specific, fixed jitter modulation signal frequencies and magnitudes can be specified, it is desirable to be able to inject jitter at known sinusoidal frequencies and magnitudes that are completely variable and have a wide adjustment range. This versatile capability, however, is traded off with the complexity and capability of the transmit timing generation block  70 . Providing adjustable amplitude at typical frequencies used for compliance testing would provide the necessary function while maintaining a reasonable level of complexity. For an example of typical values, in the case of the SATA interface, there are some specific frequencies and amplitudes that are intended to test the receiver jitter tolerance. These jitter frequencies and levels are some of the specified levels that the receiver must be tolerant of, to be compliant to the specification. 
   Examples of the receiver jitter tolerance levels required for the receiver to be compliant to the SATA specification are provided, wherein “GEN 1  ” refers to a Generation  1  serial data rate of 1.5 Gb/s, “GEN 2 ” refers to a Generation  2  serial data rate of 3.0 Gb/s, “SATA” refers to Serial Advanced Technology Attachment, “TJ” refers to the total jitter, “DJ” refers to deterministic jitter, “UI” refers to the number of unit intervals or the number of edge times that occur during one half of the modulation period, and “ps pp” refers to picoseconds peak-to-peak. 
   SATA GEN 1  Receiver Jitter Tolerance Requirements (calculated from spec): 
   
     
       
             
             
             
             
           
             
             
             
             
           
         
             
                 
             
             
               UI 
               Sine Freq. (MHz) 
               TJ Magnitude (ps pp) 
               DJ Magnitude (ps pp) 
             
             
                 
             
           
           
             
                 
             
           
        
         
             
               1 
               750 
               303 (0.455 UI) 
               183 (0.275 UI) 
             
             
               5 
               150 
               303 (0.455 UI) 
               183 (0.275 UI) 
             
             
               6 
               125 
               413 (0.62 UI) 
               247 (0.37 UI) 
             
             
               250 
               3 
               413 (0.62 UI) 
               247 (0.37 UI) 
             
             
                 
             
           
        
       
     
   
   SATA GEN 2  Receiver Jitter Tolerance Requirements (calculated from spec): 
   
     
       
             
             
             
             
           
             
             
             
             
           
         
             
                 
             
             
               UI 
               Sine Freq. (MHz) 
               TJ Magnitude (ps pp) 
               DJ Magnitude (ps pp) 
             
             
                 
             
           
           
             
                 
             
           
        
         
             
               1 
               1500 
               152 (0.455 UI) 
                92 (0.275 UI) 
             
             
               5 
               300 
               152 (0.455 UI) 
                92 (0.275 UI) 
             
             
               6 
               250 
               207 (0.62 UI) 
               123 (0.37 UI) 
             
             
               250 
               6 
               207 (0.62 UI) 
               123 (0.37 UI) 
             
             
                 
             
           
        
       
     
   
   The magnitudes and frequencies above are some compliance levels for the receiver jitter tolerance testing. Adjustment around these values compensates for the base line jitter of the transmitter system and transmission channel including cabling, connectors, and the like. Also, since the total jitter is shown above, which includes the inherent jitter of the serial data transmit path, during testing this injected jitter level would be reduced to a lower value in order to check the receiver to the levels specified for jitter. To summarize, it is desirable to adjust the magnitude and frequency of the jitter and these numbers are provided as just a possible choice of settings. 
   Referring again to  FIG. 7 , a transmit timing generator  70  is shown for use in a transmit data path including a high frequency clock generator  24  having an input for receiving an oscillator or reference clock input  22 , and an output  26 . A clock modulator  78  has a first input  26  coupled to the output of the high frequency clock generator  24 , a second input  74 , and an output  73  for providing a high frequency modulated clock signal. A modulation command block  27  is used for providing a low frequency modulation signal  25 . A jitter modulation command block  77  is used for providing a high frequency modulation signal. A summer  76  having first and second inputs  25 ,  75  for receiving the low and high frequency modulations signals, and an output  74  coupled to the second input of the clock modulator  78 . 
   Referring now to  FIG. 8 , a transmit timing generator  80  for use in a transmit data path includes a delay-locked loop  34  having an input  32  for receiving an oscillator or reference clock input, and an output  36 . A clock modulator  88  has a first input  36  coupled to the output of the delay-locked loop, a second input  84 , and an output  83  for providing a high frequency modulated clock signal. A modulation command block  37  is used for providing a low frequency modulation signal. A jitter modulation command block  87  is used for providing a high frequency modulation signal. A summer  86  has first and second inputs  35 ,  85  for receiving the low and high frequency modulation signals, and an output  84  coupled to the second input of the clock modulator  88 . 
   Referring now to  FIG. 9 , a transmit timing generator  90  for use in a transmit data path includes a phase-locked loop  44  having an input  42  for receiving an oscillator or reference clock input, and an output  46 , a clock modulator  98  has a first input  46  coupled to the output of the phase-locked loop, a second input  94 , and an output  93  for providing a high frequency modulated clock signal. A modulation command block  47  is used for providing a low frequency modulation signal  45 . A jitter modulation command block  97  is used for providing a high frequency modulation signal  95 . A summer  96  has first and second inputs  45 ,  95  for receiving the low and high frequency modulations signals, and an output  94  coupled to the second input of the clock modulator  98 . 
   Referring now to  FIG. 10 , a transmit timing generator  100  for use in a transmit data path includes a modulated phase-locked loop  104  having a first input  52  for receiving an oscillator or reference clock input signal  52 , a second input  103 , and an output  106  for providing a high frequency modulated clock signal. A modulation command block  58  is used for providing a low frequency modulation signal. A jitter modulation command block  107  is used for providing a high frequency modulation signal. A summer  108  has first and second inputs  59 ,  105  for receiving the low and high frequency modulation signals, and an output  103  coupled to the second input of the modulated phase-locked loop  104 . 
   Referring now to  FIG. 11 , a transmit timing generator  110  for use in a transmit data path includes a modulated delay-locked loop  114  having a first input  62  for receiving an oscillator or reference clock input signal, a second input  113 , and an output  116  for providing a high frequency modulated clock signal. A modulation command block  68  is used for providing a low frequency modulation signal. A jitter modulation command block  117  is used for providing a high frequency modulation signal. A summer  118  has first and second inputs  69 ,  115  for receiving the low and high frequency modulation signals, and an output  113  coupled to the second input of the modulated delay-locked loop  114 . 
   While various embodiments of the transmit timing generator modified according to the present invention have been shown in  FIGS. 7–11 , it will be apparent to those skilled in the art that still further embodiments are possible to provide a modulated clock signal suitable for jitter testing as described. In operation, a modulated clock signal is provided in a data transmit path that is selectively modulated at a first low frequency (e.g. 30 KHz) in a first operating mode, and is selectively modulated at a second much high frequency (e.g. 3–1500 MHz) in a second operating mode for jitter testing. 
   Having described and illustrated the principle of the invention in a preferred embodiment thereof, it is appreciated by those having skill in the art that the invention can be modified in arrangement and detail without departing from such principles. We therefore claim all modifications and variations coming within the spirit and scope of the following claims.