Emulation and debug interfaces for testing an integrated circuit with an asynchronous microcontroller
09838165 · 2017-12-05
Assignee
Inventors
- Rodger F. Schuttert (Eindhoven, NL)
- Geertjan Joordens (Sunnyvale, CA)
- Willem F. Slendebroek (Lent, NL)
Cpc classification
H04L1/242
ELECTRICITY
International classification
G01R31/3193
PHYSICS
Abstract
A method of testing a data transmission and reception system comprises sending a test signal from a transmitter (14) of the system to a receiver (12) of the system, and analyzing the received signal. A duty cycle relationship is varied between the test signal and the timing signal used by the receiver of the system, and the effect of the duty cycle variation is analyzed. Varying the duty cycle relationship provides duty cycle distortion (DCD), and this can be considered as a form of embedded jitter insertion. This type of jitter can be measured relatively easily.
Claims
1. A method of testing a data transmission and reception system, the method comprising: sending a test signal from a transmitter of the system to a receiver of the system; analyzing the received test signal; varying a duty cycle relationship between the received test signal and a timing signal used by the receiver, wherein said varying the duty cycle relationship further comprises: splitting the received test signal sent by the transmitter into first and second branches, combining signals processed by the first and second branches in an AND gate to provide a reduced duty cycle, and combining signals processed by the first and second branches in an OR gate to provide an increased duty cycle; analyzing an effect of the duty cycle variation; and selecting, with a multiplexer, between either the increased duty cycle or the decreased duty cycle based upon a binary multiplexer control signal provided by a test register.
2. The method as claimed in claim 1, wherein the duty cycle of the test signal is varied in a path between an output of the transmitter and an input of the receiver.
3. The method as claimed in claim 1, wherein delaying the signal of one branch further comprises: adding a programmable amount of load.
4. The method as claimed in claim 1, wherein delaying the signal of one branch further comprises: using a programmable drive strength.
5. The method as claimed in claim 1, further comprising: low-pass filtering the signal provided to the receiver; and measuring a dc voltage which represents the duty cycle.
6. The method as claimed in claim 1, further comprising: sampling the signal provided to the receiver; and counting the number of sampled ‘1’s and/or ‘0’ s, wherein the ratio of counted ‘1’ s to the total number of samples represents the duty cycle.
7. The method as claimed in claim 1, wherein the analysis comprises bit error ratio measurement.
8. The method as claimed in claim 1, wherein analyzing the received signal comprises: providing a pass or fail indication based on the duty cycle variation and a measured receiver error rate.
9. The method as claimed in claim 1, wherein analyzing the received signal comprises: calculating the jitter from the duty cycle variation and a measured receiver error rate.
10. The method as claimed in claim 1, further comprising: performing clock recovery from received data in the receiver; and using the recovered clock to interpret the received data.
11. The method as claimed in claim 10, further comprising: performing clock recovery from rising and falling edges of the received data.
12. The method as claimed in claim 10, further comprising: performing clock recovery from the rising or falling edges of the received data; and analyzing the effect of duty cycle variation for a recovered clock using the rising edges of the received data and for a recovered clock using the falling edges of the received data.
13. An apparatus for testing a data transmission and reception system, comprising: a circuit configured to generate a test signal for transmission; a circuit configured to vary a duty cycle relationship between the test signal and a timing signal used by a receiver of the system, wherein said varying the duty cycle relationship comprises varying a duty cycle of the test signal by splitting the test signal sent by a transmitter into first and second branches, combining signals processed by the first and second branches in an AND gate to provide a reduced duty cycle, combining signals processed by the first and second branches in an OR gate to provide an increased duty cycle, and selecting, with a multiplexer, between either the increased duty cycle or the decreased duty cycle based upon a binary multiplexer control signal provided by a test register; and a circuit configured to analyze a received signal, which includes the transmitted signal after an effect of a duty cycle variation.
14. The apparatus as claimed in claim 13, wherein the analysis circuit comprises a bit error ratio measurement circuit.
15. The apparatus as claimed in claim 13, wherein the duty cycle varying circuit comprises: a splitter configured to split a transmitter output into two branches; and a delay element configured to delay the signal of one branch by a programmable amount of time.
16. The apparatus as claimed in claim 15, wherein the delay element comprises a variable load.
17. The apparatus as claimed in claim 13, further comprising: a circuit configured to determine the duty cycle variation.
18. The apparatus as claimed in claim 17, wherein the determining circuit comprises a low-pass filter; and a circuit configured to measure a dc voltage which represents the duty cycle.
19. The apparatus as claimed in claim 13, further comprising: a circuit configured to recover a clock signal from the received signal.
20. The apparatus as claimed in claim 19, wherein the clock recovery circuit uses the rising or falling edges of the received data, and the apparatus further comprises: a circuit configured to select the rising or falling edges for clock recovery.
21. A data transmission and reception system, comprising: a transmitter; a receiver; and a testing apparatus configured for implementing a method of testing a data transmission and reception system, the method comprising: sending a test signal from a transmitter of the system to a receiver of the system, analyzing the received test signal, varying a duty cycle relationship between the received test signal and a timing signal used by the receiver, wherein said varying the duty cycle relationship further comprises: varying a duty cycle of the received test signal by splitting the received test signal sent by the transmitter into first and second branches, combining signals processed by the first and second branches in an AND gate to provide a reduced duty cycle; combining signals processed by the first and second branches in an OR gate to provide an increased duty cycle; analyzing an effect of the duty cycle variation; performing clock recovery from received data in the receiver; using the recovered clock to interpret the received data; performing clock recovery from rising or falling edges of the received data; analyzing the effect of the duty cycle variation for the recovered clock using the rising edges of the received data and the falling edges of the received data; and selecting, with a multiplexer, between either the increased duty cycle or the decreased duty cycle based upon a binary multiplexer control signal provided by a test register.
Description
(1) Examples of the invention will now be described in detail with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16) The invention relates to the testing of a transmission and reception system. The invention is of particular applicability to a system in which a Clock and Data Recovery (CDR) circuit is used in the receiver to derive clock timing information and perform data recovery from a received data stream.
(17) There are many different architectures suitable for CDR circuits. Three main architectures can be classified as an over-sampling architecture, a tracking architecture and a phase-interpolation architecture.
(18) In an over-sampling architecture, multiple samples are taken for each bit period. An algorithm decides which bit is best suited to use. For very high speed signals, it becomes impractical to build clocks that allow data over-sampling.
(19) In a tracking architecture, a phase locked loop is used that locks on the received data.
(20) With a phase interpolation architecture, which is essentially an alternative form of tracking, the transmit clock is used and phase aligned with the incoming data, so only the phase is tracked. This is usually done by a loop that selects the phase that is closest to the data transition.
(21) An example of the invention will now be given based on a tracking architecture, although it will be apparent that the invention can also be applied to other architectures.
(22) The invention is based on the addition of duty-cycle distortion (DCD) to displace the position of data edges with respect to the recovered clock edges in a controlled and measurable way. The probability of bit errors, measured as a BER, will then be higher. From the measured edge displacement and corresponding BER the standard deviation of the RJ can be calculated, as well as the peak-to-peak level of the DJ.
(23) When locking occurs on either the rising or falling edge of the received bitstream, the introduced DCD will essentially displace the opposite data edges with respect to the recovered clock edges, covering faults related to these edges. To cover faults related to the other edges, a test procedure is required that allows to select the edge on which the CDR PLL locks.
(24)
(25) The apparatus comprises a transceiver 10 having a receiver 12 and a transmitter 14, and these interface between a high speed communications bus 15 and a serial circuit 16. A loopback path is defined between the output of the transmitter 14 and the input of the receiver, and this path includes a duty cycle distortion (DCD) element 18. The DCD element 18 is controlled by a test register 20 which also performs analysis of the signals received by the circuit 16 using the receiver 12. In the example shown, this analysis involved bit error ratio (BER) measurement, implemented by BER unit 22. The control of the DCD element is shown as 24.
(26)
(27) DCD insertion;
(28) DCD measurement;
(29) Selection of lock edge (if required);
(30) BER measurement; and
(31) Jitter analysis
(32) The jitter analysis is not shown in
(33) The insertion of Duty Cycle Distortion can be implemented in several different ways. One possibility is to use the intrinsic difference in fall and rise time of circuit elements. For example, a standard multiplexer with two inputs A and B in a given CMOS process has a difference between fall and rise time of the order of 20 ps. A chain of multiplexers can be configured, where each multiplexer output connects to input A of the next multiplexer, and input B connects to the original signal. Each multiplexer adds then a DCD of 20 ps to the signal; and the total DCD can be programmed by selecting the number of multiplexers in the signal path. This implementation of DCD has the disadvantage that the original signal is used to drive all multiplexer inputs B, which requires a large buffer for this signal.
(34) An example method of implementing duty cycle distortion will be described with reference to
(35) In the DCD insertion circuit 18 of
(36) Load-selection bits “DCD delay[0 . . . n]” are programmed by shifting control bits into a test register 20. The values of the loads are then chosen as a binary coded (1,2,4 . . . 2.sup.n) multiple of a capacitance value ×1. A linear array of switches S0-Sn couple the capacitors to the output of the buffer 30a, where n+1 is the number of switches used. The control bits “DCD delay[0 . . . n]” control the switches S0 to Sn, and when a switch is closed the capacitance is added to the load seen by the buffer.
(37) Each switch S0-Sn can be implemented as a transmission gate as shown in
(38) The two branches TXdelayed and TXbuf in
(39)
(40) The increased or decreased duty-cycle signal is selected by a multiplexer 44 (shown in
(41) The buffers 30a,30b,32a,30b, AND/OR gates 40,42 and multiplexer 44 potentially add to the DCD, so that the DCD is not dependent solely on the capacitive load added. This is not critical since the DCD is also measured at the receiver pins by the circuitry 26 shown in
(42) However, any DCD added by these circuits will be present as a DCD offset. An unbalanced offset could create the risk that the duty cycle cannot be increased or decreased sufficiently to produce a significant amount of bit errors in limited time.
(43) For this reason, buffers are added in both branches 30,32, as shown, to make the default delay through both branches approximately equal. At least one buffer in the TXbuf branch 32 is needed to physically separate the two branches. To allow the range of programmable DCD decrease and increase to be as equal as possible, the nominal delay in both branches should be equal.
(44) The duty-cycle distortion can be measured at the circuitry 26 (of
(45) With the addition of a low-pass filter the PMU or DVM can also be used to measure the duty cycle of a bit-stream. One implementation is to add a low-pass filter on the tester-to-device interface board, for example two resistors 50 connecting to the receiver pins 48 and a capacitor 52 connected to the other two terminals of the resistors, as shown schematically in
(46) The DC value of the output voltage Vout measured between the two terminals of the capacitor is an RC charge curve, as represented in
(47) The circuit in
(48)
Vout.sub.Dc,positive leg=V.sub.min+(1−e.sup.−t/RC)*(duty_cycle)*(V.sub.max−V.sub.min)
(49) With V.sub.max and V.sub.min being the ‘high’ respectively ‘low’ voltage. Similarly, the DC output on the negative leg is:
Vout.sub.Dc,negative leg=V.sub.max−(1−e.sup.−t/RC)*(duty_cycle)*(V.sub.max−V.sub.min)
(50) The resulting DC output voltage Vout over the capacitor terminals is the difference:
(51)
(52) For the example of
Vout.sub.DC=−0.4+2*(1−0)*0.495*0.4=−4 mV.
(53) The output voltage can also be measured between one of the two capacitor terminals and a reference voltage (e.g. ground). This has the disadvantage that the resulting difference between voltages will be proportional to the duty-cycle-distortion times the voltage swing, rather than proportional to double this value (as in the equations above).
(54) The low-pass filter can be implemented on-chip, with on-chip switches connecting the low-pass filter to the high-speed signal. The output signal Vout has to be made observable at IC pins, for example using an analog test bus (for example IEEE 1149.4).
(55) The DC voltage measurement is directly affected by voltage amplitude as well as the duty-cycle. Typically, the output voltage levels are measured in a separate dedicated test, and these measured levels are used to determine the duty cycle in combination with the low-pass filtered DC test.
(56) As mentioned above, there is an option of selecting how to implement the lock edge for clock recovery. There are essentially two options, one is the use of a PLL which locks on both edges, and the other is the use of a PLL which locks on one edge.
(57) The use of PLLs that lock on both edges within the clock and data recovery (CDR) circuit results in both data edges being displaced with respect to their ideal location as a result of the introduction of DCD. Thus, both edges contribute to an increased BER.
(58)
(59) The example signals in
(60) The top plot 70, of the input data, shows a 50% duty cycle. The next two plots 72, 74 show the transitions between 1 and 0 shifted to provide decreased and increased duty cycle respectively. The transitions move symmetrically about the center of the eye diagram. When the duty cycle is either decreased or increased, the probability of having an error in sampling any other bit increases.
(61) The plot 76 shows the recovered clock, in which the clock 1 to 0 transition has been timed with the center of the detected input data eye. This 1 to 0 clock transition is used to recover the data as represented by arrow 79.
(62) The use of PLLs that lock on one edge results in the data edge on which the CDR PLL will lock to be fixed. The data edges opposite to the edges on which the PLL locks are the displaced edges and faults related to these edges will contribute to the BER.
(63) The example signals in
(64) If the duty cycle is decreased, and locking occurs on rising edges (as in the second plot of
(65) When the duty cycle is increased (the third plot in
(66) From the above, it can be seen that under presence of inserted DCD, the jitter related to the edge on which the PLL locks will not increase the BER, only jitter related to the next transition will increase the BER.
(67) Potential faults related to the data edges on which the PLL locks are then not detected.
(68) To overcome this possible drawback, the edge on which the PLL locks can be made to be switchable.
(69)
(70) In this case, if the duty cycle is decreased (second plot in
(71) In this way, by making the locking edge selectable, all rising and falling transitions contributing to BER can separately be tested. This is the purpose of the control signal 25 in
(72)
(73) An inverter is used to provide inverted data, and the original data and the inverted data are provided to a multiplexer 102 which selects one of the data signals based on a control input “Select_lock_edge”. The control signal “select_lock edge” can be provided by the test register 20.
(74) As a second example, shown in
(75) As a third alternative, if the signals used are differential signals, the differential polarity can simply be reversed to achieve inversion.
(76) As outlined above, the aim of the analysis to be carried out is to perform jitter measurement and tests. Jitter is one of the main courses of bit errors in a serial transceiver. A high speed signal with increased DCD will be more susceptible to jitter and cause more bit errors.
(77) One way to use the programmable DCD is to increase DCD until a first bit error is observed. Since jitter is partly of a stochastic nature it is unpredictable when a bit error will occur. Therefore, it is preferred to count the number of bit errors, expressed as a bit-error ratio representing the number of received erroneous bits as ratio of the total number of received bits.
(78) Bit error counters are well known the art, and conventional devices can be used to implement the unit 22 shown in
(79) To perform the jitter analysis based on the obtained bit error ratio measurements, the test equipment records one or more DCD levels with the corresponding bit error ratios.
(80) A widely used method to analyse the performance of a receiver is to plot the BER versus eye-opening. The log-linear plot of BER versus eye-opening typically resembles the shape of a bathtub and is often referred to a bathtub curve.
(81) From the bathtub curve, the level of random and deterministic jitter can be estimated using curve-fit techniques. For this, one or more measurement results with level of inserted DCD level and corresponding BER are needed. These jitter calculations also take into account how the clock recovery has been implemented, particularly whether the PLL lock is done on one or both edges.
(82) An example is a relative simple method using two bathtub curve points is an estimate curve fit method described in IEEE Std 802.3ae-2002, Section 48B.3.1.3.1 “Approximate curve fitting for BERT scan”, pp 510-511. This method estimates the random jitter a, deterministic jitter, peak-to-peak level and total jitter peak-to-peak level. With this method the quantiles of two BER levels are plotted against the eye-opening. The slope of the straight line drawn between these points corresponds to the random jitter (RJ) level, the point where the quantile (BER)=0 line is crossed indicates the peak-to-peak level of deterministic jitter (DJ). The RJ and DJ are combined in TJ according to TJ=DJ+13.8*RJ.
(83) As an example of the usage of the invention for production testing, the following steps can be implemented to complete a jitter test; applied to a PLL that locks on one edge. “Nr_observations” is a pre-determined number of DCD-BER points used in the jitter analysis:
(84) (i) Select loop-back test mode
(85) (ii) Program DCD delay=0, DC_increase_decrease=‘0’, select_lock_edge=‘0’
(86) (iii) Start transmitting patterns
(87) (iv) Measure and store DCD and BER
(88) (v) Increase DCD delay
(89) (vi) Repeat steps (iv)-(v) another “nr_observations-1” times
(90) (vii) Program DCD delay=0, DC_increase_decrease=‘0’, select_lock_edge=‘1’
(91) (viii) Repeat steps (iv)-(vi)
(92) (ix) Program DCD delay=0, DC_increase_decrease=‘1’, select_lock_edge=‘0’
(93) (x) Repeat steps (iv)-(vi)
(94) (xi) Program DCD delay=0, DC_increase_decrease=‘1’, select_lock_edge=‘1’
(95) (xii) Repeat steps (iv)-(vi)
(96) (xiiii) Perform jitter analysis: calculate RJ, DJ and TJ
(97) (xiv) Decide pass or fail
(98) (xv) Stop transmitting patterns
(99) This method is shown in
(100) In case of a PLL that locks on both edges the signal “select_lock_edge” is not used. The test sequence in that case is:
(101) (i) Select loop-back test mode
(102) (ii) Program DCD delay=0, DC_increase_decrease=‘0’
(103) (iii) Start transmitting patterns
(104) (iv) Measure and store DCD and BER
(105) (v) Increase DCD delay
(106) (vi) Repeat steps (iv)-(v) another “nr_observations-1” times
(107) (vii) Program DCD delay=0, DC_increase_decrease=‘1’
(108) (viii) Repeat steps (iv)-(vi)
(109) (ix) Perform jitter analysis: calculate RJ, DJ and TJ
(110) (x) Decide pass or fail
(111) (xi) Stop transmitting patterns
(112) This method is shown in
(113) The invention can be applied for production testing of high speed interfaces. Examples of serial interfaces are Serial ATA, PCI Express, DVI, HDMI and USB 2.0. The invention can also be used for parallel types of interfaces such as Double Data Rate memory interfaces.
(114) The examples shown generally use single polarity signals. However, the use of differential signals in circuits of the invention is also possible.
(115) The examples described above relate to serial communications systems in which a receiver recovers a clock and data from a serial bitstream. The invention can also be applied to applications of the invention in which a receiver has an externally provided clock. Also, it is possible to apply the DCD to the transmit clock instead of the data. This has the disadvantage of altering the functional circuit. Other applications may be to make a measurable delay between two sample times, where both sample times respond to different transitions of a clock for which duty cycle is altered and measured. Such a measurable delay might be applied for example in delay-fault testing of digital circuits.
(116) There may thus be considered to be two types of duty cycle distortion, and these may be considered as data DCD and clock DCD. With data DCD, with DCD inserted after the transmitter, a data “1” is made wider (for example) than a data “0”. As a result, the common mode voltage increases, and the cross points in the eye diagram are not centered, but are shifted towards the high or lower rails, as shown in
(117) With clock DCD, with DCD inserted before the transmitter and applied to the transmit clock, the common mode voltage is half way between the voltage rails, and the eye diagram transitions shift in time, as shown in
(118) The use of DCD to provide a measurable affect on the probability of bit errors can be used in other examples of loopback test, in order to increase the sensitivity of the loopback test.
(119) In the example above, the DCD is inserted in a path between the transmitter and receiver. For some High Speed I/O interfaces (such as PCI Express), the transmitter and receiver pads are separated and a dedicated loopback path is inserted for test purposes. However, in other bidirectional interfaces (such as USB2.0) the transmitter and receiver pads can be shared, in which case the transmitter output and receiver input are the same. In these cases, there is no loopback path provided for test purposes. The invention can still however be implemented, by adding DCD in the functional path. This requires a bypass possibility for the functional signal, which can be implemented by alteration of the transmitter or receiver functional operation.
(120) In the example above, DCD is measured using a filter and DC measurement technique. DCD can also be measured with other methods, on-chip and/or off-chip. For example, random sampling of the signal can be used, dividing the counted number of ‘1’s by the total number of sampled bits.
(121) Various other modifications will be apparent to those skilled in the art.