Eye diagrams are a conventional format for representing parametric information about signals, and especially digital signals. We shall refer to an item of test equipment or a measurement circuit arrangement that creates an eye diagram as an eye diagram tester, whether it is found in an oscilloscope, a BERT (Bit Error Rate Tester), a logic analyzer, or, as a separate item of test equipment. The preferred method (and by implication, any corresponding circuit apparatus) to be disclosed herein is that of the incorporated Application, is different than those used in ""scopes and BERTs, and is especially suitable for use within a logic analyzer, as well as an item of stand-alone test equipment. We shall call this different method (and any corresponding circuit apparatus) an Eye Diagram Analyzer, or EDA for short.
A modern eye diagram for a digital signal is not so much a trace formed continuously in the time domain, as it is an xe2x80x9ceyexe2x80x9d shape composed of closely spaced points (displayed dots, or illuminated pixels) representing many individual measurement samples taken upon separate instances of a signal occurring on a channel of interest, and which were then stored in a memory. Each measurement sample contributes to a displayed dot. The eye shape appears continuous because the collection of dots is rather dense, owing to the large number of times that the signal is sampled. Unlike a true continuous technique, however, there may be detached dots that are separated from the main body of the eye shape. A further difference with the continuous analog technique is that rare or infrequently occurring events, once sampled, do not appear faint in the display or disappear with the persistence of the CRT""s phosphor. This latter difference is often quite an advantage, since it is often the case that such otherwise xe2x80x9chard to seexe2x80x9d features of the trace are very much of interest.
In any event, the vertical axis is voltage, and the horizontal axis represents the differences in time (i.e., various offsets) between some reference event and the locations for the measurement samples. The reference event is generally an edge of a clock signal in the system under test, represents directly or through some fixed delay the expected point in time when the value of an applied data signal would be captured by some receiving circuit in an SUT (System Under Test), and is derived from an application of the SUT""s clock to the Eye Diagram Analyzer. The time axis will generally have enough length to depict one complete eye-shape (cycle of a DUT signal) centered about the reference, with sometimes perhaps several additional eyes (cycles) before and after.
Different (X, Y) regions of an eye diagram represent different combinations of time and voltage. Assume that the eye diagram is composed of a number of pixels, and temporarily assume that the resolution is such that each different (X, Y) pixel position can represent a different combination of time and voltage (and vice versa), which combinations of time and voltage we shall term xe2x80x9cmeasurement points.xe2x80x9d What the analyzer measures is the number of times, out of a counted number of clock cycles, that the signal on the channel being monitored passed through a selected measurement point. Then another measurement point is selected, and the process repeated until there are enough measurement points for all the pixels needed for the display. The range over which the measurement points are varied is called a xe2x80x9csample spacexe2x80x9d and is defined during a measurement set-up operation. And in reality, we define the sample space and the resolution for neighboring measurement points first, start the measurement and then let the analyzer figure out later how to ascribe values to the pixels of the display. The xe2x80x9cdisplayxe2x80x9d is, of course, an arbitrary graphic output device such as a printer or an X Window of some as yet unknown size in a window manager (e.g., X11) for a computer operating system. (A one-to-one correspondence between display pixels and measurement points is not required. It will be appreciated that it is conventional for display systems, such as X Windows, to figure out how to ascribe values to the pixels for an image when the correspondence between the display""s pixel locations and the image description is not one-to-one.)
An eye diagram trace itself is not a single time domain waveform (think: xe2x80x98single valued functionxe2x80x99), but is instead equivalent to an accumulation of many such instances; it can present multiple voltage (Y axis) values for a given time value (X axis). So, for example, the upper left-hand region of an eye might represent the combination of an adequate logical one at an adequately early time relative to the SUT""s clock signal, and an eye diagram whose trace passes robustly through that region indicates to us that a signal of interest is generally achieving a proper onset of voltage at a proper time. Furthermore, we note that there are also other regions, say, near the center of an eye, that are not ordinarily transited by the trace, and which if that were indeed to happen, would presumably be an indication of trouble. Thickening of the traces is indicative of jitter, a rounding of a corner is indicative of slow transitions, and so on. An eye diagram by itself cannot reveal in the time domain which isolated instance of the signal caused such an exception, as other types of measurements might, but it does provide timely and valid information about signal integrity within a system as it operates. In particular, by incorporating very long (perhaps xe2x80x9cinfinitexe2x80x9d) persistence the eye diagram presents readily seen evidence of occasional or infrequently occurring failures.
An eye diagram, then, is information about signal behavior over time at various time-voltage (X, Y) combinations. A simple system would be to indicate that the signal was xe2x80x9ctherexe2x80x9d or that it wasn""t. That is, respectively put either an illuminated pixel or a non-illuminated pixel at the various (X, Y) locations for the different instances of xe2x80x9cthere.xe2x80x9d This is similar to what an analog oscilloscope would do if it were used to create an eye diagram for some signal. However, in such an analog case we would notice that some parts of the trace were brighter than others, and understand that this is a (somewhat useful) artifact caused by finite persistence on the one hand (old stuff goes away) and relative rates of occurrence on the other. That is, the display ends up having an intensity component at each pixel location. This is fine as far as it goes, but we would rather not rely upon the persistence of phosphor for this effect, since the most interesting indications are apt to be also the faintest. Since we are not using an analog ""scope, anyway, and have an instrument (an EDA) with memory (akin to a digital oscilloscope, timing analyzer or logic analyzer), we can gather data and decide after the fact what pixel value is to go with each (X, Y) pixel location. Those pixel values can be rendered as variations in color, intensity, or both, according to whatever scheme is in use (and there are several). The general idea is that the operator configures the EDA to render the display in a way that makes the condition he is most interested is quite visible, and also such that the eye diagram as a whole is generally easy to interpret. Thus, the reader is reminded that there is usually more going on than simply the presence or absence of dots at some series of (X, Y) locations, and that we often have recourse to the notion of a xe2x80x9cpixel valuexe2x80x9d at some (X, Y) position in the display. We shall denote with the symbol xe2x80x9cVxe2x80x9d whatever that xe2x80x9cpixel valuexe2x80x9d is. V might be a single binary-valued item, such as xe2x80x9cONxe2x80x9d or xe2x80x9cOFFxe2x80x9d or it might be a variable intensity without the notion of color. On the other hand, V will often expand into a whole series of parameters VR, VG, VB, . . . , where each such parameter represents the intensity of an associated color. Whatever V is or represents, each Vi is computed by the Eye Diagram Analyzer according to operational modes selected by the operator and in response to events measured in the System Under Test. In any event, we shall simply write (X, Y, V)i or perhaps (Xi, Yi, Vi), depending upon which notation seems to work best for our needs at the time, and not bother to indicate any associated further expansion of a Vi into its component parameters, such as (VR, VG, VB).
It is often the case that the utility of an eye diagram is needed for characterizing or discovering circumstances that are both erroneous and very occasional. It is also the case that some SUTs have a great many channels that are subject to investigation. Some busses have hundreds of member signals, for example. When faced with such circumstances, the xe2x80x9cluxuryxe2x80x9d of having one individual eye diagram trace per SUT signal becomes an oppressive burden. We might measure it that way, and we can indeed display it that way (with four or maybe eight channels at a time), but we likely will have lost all patience and become disgusted with the whole process before we complete looking at twenty-five or more sets of four or more traces each. Surely that is the wrong way to go about analyzing the data! But on the other hand, automating the investigation may be risky. Masking measurements, for example, essentially require that we formally decide ahead of time what is not of interest. The analyzer can apply the mask for us automatically and at great speed, but we will never know for sure that there was not some irregularity in there that met the mask criteria, and yet that would have been of interest to us anyway, if we had only seen it.
Accordingly, another tool has emerged to assist in eye diagram analysis for situations involving many channels. It is to merge into one combined eye diagram presentation the data of separate xe2x80x9ccomponentxe2x80x9d eye diagram measurements for a useful grouping of related signals. The operator can instruct the EDA to merge the data of individual eye diagrams for a specified plurality (family) of signals into one combined eye diagram by arithmetically combining the numerical values for the sampled component data. Note that this does not involve any notion of adjusting vertical position for separately displayed component eye diagrams to get them to xe2x80x9cstack upxe2x80x9d! So now we have a combined eye diagram that probably has fat traces (indicating that, as expected, not all signals have simultaneous and identical rise times, voltage levels, etc.). Independent of that, we now expect that, having merged everything together, if there is something unusual going on, even if only occasionally for just one channel, we will, in principle, be able to see it.
We shall term such a combined eye diagram, created from the merging of data for individual component eye diagrams, a xe2x80x9ccompositexe2x80x9d eye diagram.
The particular eye diagram analyzer described in the incorporated Application xe2x80x9cCOMPOSITE EYE DIAGRAMSxe2x80x9d can assign a plurality of SUT data signals to be members of a labeled group of channels. There may be a plurality of such groups. In addition to mere superposition in an (X, Y) display space of the various i-many (X, Y)-valued pixels for individual component eye diagrams associated with that group, other measured data for those pixels within a group can be merged in any of various different modes to produce corresponding composite eye diagram presentations. In general, the rule for combining components to obtain a composite will produce a series of (X, Y, V)i, where the Vi represent some sort of density. The Vi are generally rendered with variations in intensity or color, or with some combination of both. The details of that would be tedious for achieving our purpose in this Application, and interested readers are referred to the incorporated xe2x80x9cCOMPOSITE EYE DIAGRAMSxe2x80x9d.
This merging of measurements in the displayed data of a composite eye diagram is fine as far as it goes. It greatly assists in discovering that there is some trouble in there, someplace. It allows us to cast a wide net, as it were. But the very property that give us confidence that xe2x80x9cit""s in there, someplacexe2x80x9d also poses the dilemma of how to separately identify it when its xe2x80x9chiding in plain sight,xe2x80x9d so to speak. Say, at least one signal out of thirty-two was unable to drive its load. Presumably, there will be a visible indication of this situation in the shape of the composite eye diagram. But on account of which channel(s)?? We need a way to quickly and easily isolate the culprit and discover who it is. Fussing with the probes one signal at a time is almost never practical, and in some cases, is impossible (as when an entire bus is probed at once by a single multi-conductor connector).
Once we have a channel in mind (whether for a component or a composite), and are interested in a particular place within an eye diagram, it would also be useful if there were a way to discover what the relevant history of signal behavior for that channel is at that place in the eye diagram. That is, it would be desirable to discover the answers to such questions as: xe2x80x9cHow many times did it contribute to that part of the eye diagram? What are the exact times and voltages for that location? How many clock periods occurred during this measurement?xe2x80x9d
Evidently, then, we are in need of some tools to assist in the understanding and analysis of eye diagrams, and especially of those that are presented as composites. What to do?
A composite eye diagram is one where the data for a group of several selected individual component eye diagram measurements are combined to produce a single presentation, whose displayed pixels typically represent some sort of density. In a system that produces and displays composite eye diagrams, the operator may position a screen pointer over some interesting part of the composite eye diagram, and the analyzer will display a list of those channels that contributed to the displayed pixels in that part of the eye diagram, as well as information in tabular form related to the behavior of those channels at that part of the eye diagram. The operator may subsequently, or at any other time, select a channel from among the group, and then have the displayed pixels for which that channel is responsible be displayed in a selected color or otherwise highlighted in a way that allows them to be distinguished from all others. So, for an unusual indication in a composite eye diagram the user can discover that channels 2, 5 and 8 are involved by pointing at that indication with the mouse pointer, and then by highlighting the individual traces for those channels, decide that activity for channels 2 and 8 is benign, but that the activity for channel 5 is non-conforming.