This disclosure relates to test and measurement instruments, and more particularly to techniques for searching for and displaying data of interest in a test and measurement instrument such as an oscilloscope.
Modern oscilloscopes and other test and measurement devices accept one or more signals for testing from a Device Under Test (DUT). Generally, the oscilloscope accepts such input signals at an input port, samples the waveform, converts the samples to a series of digital signals, and stores the sampled input waveform as an acquisition sample waveform. Then tests and measurements are performed by the instrument on the acquisition waveform, which is also called the sample, or sample waveform. And, because the acquisition waveform is stored in an acquisition memory as the sample waveform, tests may be repeatedly performed, or various tests may be formed on the same stored acquisition waveform by the instrument.
Many times the input signals carry information that may repeat over time. In other words, especially when the DUT is a digital device, patterns may be repeated in the input signal. Or defects may appear in the input signal, such as cross-talk from adjacent input signals, which may exhibit as voltage blips or in other measurable ways. Such cross-talk may affect the input signal and degrade its performance. Somewhat frustratingly, defects, such as cross-talk and other defects may appear only irregularly in the input signal. Various triggers and other types of testing techniques may be used to try to isolate defects or locate similar portions of a waveform that repeat. For instance, a certain defect may appear as a small voltage spike a short time after a large voltage signal has passed. In these instances, the user may set a trigger to scan the sample waveform for such conditions. Or the user may wish to isolate instances of the beginning of a memory read within the input signal. But the defects may vary somewhat from defect to defect, or may have other qualities that escape detection using known techniques. And even searching for read starts or other operations that are transmitted within the input signal may be inaccurate when the signals making up the operations vary from one to another due to various factors.
Embodiments according to the disclosure address these and other limitations found in conventional instruments.
The output display 100 of
A search tool 131 appears as part of a user interface 130, which may be located adjacent to the output display 100 or in another portion of the display of the test and measurement instrument. The search tool 131 includes tools and functionality that allows the user to identify particular portions of the sampled waveform. To identify these portions, the user first selects the ‘cursors’ box in the user interface 130, which causes a pair of cursors 132 to appear on the main display 110. The horizontal position of the cursors 132 is controlled by the user through a user interface in the main display 110 to identify and select a beginning and ending of a portion of the sampled waveform for searching. The portion of the waveform between the cursors 132 is the portion of the waveform selected for the search, referred to as the search portion 136. The cursors 132 are independently controllable, which means that the portion of the waveform selected for the search can have any width. Also, by expanding or contracting the portion of the waveform shown on the main display 110, the user may select very large portions of the waveform or very small portions of the waveform for searching.
The user initiates the search by first positing the cursors 132 to select the search portion 136, and then selecting the ‘enable search’ box in the search tool 131. When so selected, embodiments according to the disclosure search the entire sampled waveform looking for occurrences in the sampled waveform that match the search portion 136. A detailed description of how the sampled waveform is searched is provided below with reference to
Embodiments of the disclosure additionally visually indicate matched portions of the sampled waveform in the overview display 120. Match 156 on the overview display 120 corresponds to the search portion 136, and matches 160, 170 correspond to matches 140, 150, respectively. Additional matches 180 are not illustrated in the main display 110, because they are out of view, but are still illustrated on the overview display 120. In
These examples illustrate the power and ease of use embodiments of the disclosure provide to users for identifying portions of the sampled waveform that match selected search portions. In some embodiments, one or more standard search portions, such as pre-defined examples, may be stored in an instrument, and made available to be selected by the user in, for example, the user interface 330. In such an embodiment, the user would select a particular snippet or portion of a waveform desired to be searched. For example, the user could select a read start, write start, beginning or ending of a read, or any other desired portion of any type of waveform. Then, by selecting the ‘enable search’ box in the user interface 330, the system searches the sampled waveform for all of the matches that match the selected search portion. In this embodiment the user interface 330 may store dozens or hundreds of sample portions of waveforms for selection by the user. Further, the user may be able to store his or her own portions of waveforms for later selection. Pre-defined examples may be averages of several snippets or portions of various waveforms to create normalized examples. Additionally, embodiments of the disclosure may automatically scale the pre-defined examples to the displayed scale or sample rate if the examples had a different timescale or sample rate than the present scale and rate illustrated in the main display 310. Such scaling could be performed by interpolation, for instance.
Prior to the technology of this disclosure, finding the beginning of read/write DDR3 packets was a significant effort, involving generating specialized triggers or using other types of waveform matching. However, using the searching mechanisms according to embodiments of the disclosure solves this problem in a way that is accurate, fast, and simple. It's also very flexible, such that any interesting or functionally significant portion of a waveform can be highlighted, and then a test and measurement instrument according to embodiments of the disclosure will automatically search for, find, and visually identify similar portions of the full waveform.
The accuracy of the waveform search function may diminish somewhat as the waveform becomes noisier. However, by adjusting the threshold, described, it is possible to discern matching segments even when there is a significant amount of noise within the sampled waveform.
The search algorithm, according to some embodiments of the disclosure, uses a form of InterClass Correlation (ICC) correlation, an example of which may be represented by the known equations illustrated in
An example algorithm that uses ICC to find matches is represented below:
This example algorithm walks a window that is the same width of the search portion (called “reference”) through each point of the input vector where the vector is partitioned into a new vector starting at the index and continuing through the length of the reference. The final result is a correlation value between −1 and 1, where 1 means 100% correlated, and −1 means inverse correlated. 0 means there is no discernable correlation. In addition, if the correlation value for the particular portion of the sample waveform meets or exceeds a threshold, the particular portion of the sample waveform is considered a match to the search portion.
The correlation value 545 has several peaks, where the correlation value for the particular window is at or near the threshold value 515. Peaks 525 are those that meet or exceed the threshold value 515, while peaks 535 do not. In this example, windows of the sampled waveform that caused the correlation values to exceed the threshold value 515, i.e., those windows that generated correlation peaks 525, are considered matches, and are indicated to the user as described above. Since the correlation values for windows that generated correlation peaks 535 do not meet or exceed the threshold, they would not be identified as matches. As described above, the threshold value 515 is adjustable by the user. So, in the example of
The above example algorithm may be optimized for speed, and, in some embodiments, is optimized for GPU or FPGA acceleration. In one example, the current performance searching for a memory read measured on a laptop computer for a DDR3 sample waveform on a 5M sized record is about 400 mS and found 1898 matching segments. Write segment matching on the same waveform was about 200 mS. The time for performing matches is lower because the write reference segment is about half the size of a read segment, and speed of matching depends on the reference segment size and record length of the vector.
It is possible to achieve similar behavior by using other correlation algorithms or algorithms that are related to correlation. It would also be possible to create a “segment limit mask” and progress that mask through the waveform to find matching regions.
An example use case for applying embodiments of the disclosure includes finding instances of cross-talk aggressors. For this example, two or more channels may be operating on the measurement instrument, with each channel correlated in time. The user selects an artifact of a sample waveform on a first channel that may indicate possible crosstalk effects from an aggressor channel. The search is performed by selecting the artifact as the search portion on a victim channel of interest. After the matches are generated, the user steps through the corresponding matches and visually looks for simultaneous transitions on sample waveforms for other channels. For example, the anomalous peaks in the RFFE signal above are possibly caused by the signal being the victim of crosstalk with a clock signal. Selecting one of the peaks and then comparing the timing of the peaks to waveform behavior on the clock channel can confirm that the waveform artifact is cause by crosstalk.
Another example of embodiments according to the disclosure provides the user a tool to find elements of interest in serial data. As described above, many input signals being tested have repeating features, such as signature rising or falling edges, or artifacts. Selecting one of those features as the search portion allows the user to quickly locate other portions of the sample waveform that include the same features or behaviors. Example features may include a beginning of a packet, end of a packet, and specific bit sequences, etc.
Yet another example includes counting or visualizing repeating anomalies. In this example, the user selects an anomaly of interest to determine if it is a unique occurrence. If the anomaly is unique, no matches would be found in the sampled waveform. If instead the anomaly is recurring, embodiments according to the disclosure will locate and indicate the anomalies as matches. Further, as illustrated in
A further example may include performing independent searches on two channels, simultaneously. Typically the channels would be related in time to one another, but, as described above, embodiments of the disclosure may account for time differences by modifying one of the sampled waveforms to match another, or by automatically including interpolation, or other techniques to time correlate the waveforms during analysis. In this example, a user performs a search on a first channel, by selecting a portion of the first sampled waveform to be searched. Then the user performs a search on a second channel, which typically (but not necessarily) includes a different sampled waveform, such as a second waveform. The user may select the same search portion to be searched in both the first sampled waveform and the second sampled waveform, or the user may select different search portions for each individual waveform. Additionally, different thresholds may be applied to the two different searches. Generally, results matching the individual searches are visually indicated on the output device of each respective waveform display. Further, a second visual indication may appear on a waveform display that indicates where matches occurred on the other waveform. In some embodiments, the results of the two searches may be evaluated using Boolean functions. In other words, it is possible to visually indicate to the user whether searches, for the same time period, occur in both the searches for the first waveform and the second waveform. Yet further, any Boolean function between the search results may be implemented as well, such as OR, AND, and XOR, and in any combination including the NOT function. For example, embodiments of the disclosure may visually indicate on one or both of the waveform displays only those search results that overlapped in time, or were in a controllable threshold of time difference. Still further, these independent searches are not limited to only two channels, but may used with any number of channels that can be independently searched.
Various embodiments of the disclosure may also include an ability for the user to view properties of waveforms across two or more channels, each accepting a different waveform looking for matches. For example, the two or more channels may be separate channels of a data bus. Each acquired sample for each channel may have individually selectable threshold levels. In some embodiments, to be considered a match, all included waveforms for all selected channels would have to meet their respective thresholds.
Embodiments of the disclosure may also be used to combine one or more reference searches, such as identifying the beginning of DDR2 read followed by an end of packet indication. The result could be labeled as “read packet”.
Embodiments of the disclosure operate on particular hardware and/or software to implement the above-described operations.
The ports 702 can also be connected to a measurement unit 708 in the test instrument 700. The measurement unit 708 can include any component capable of measuring aspects (e.g., voltage, amperage, amplitude, power, energy, etc.) of a signal received via ports 702. The test and measurement instrument 700 may include additional hardware and/or processors, such as conditioning circuits, analog to digital converters, and/or other circuitry to convert a received signal to a waveform for further analysis. The resulting waveform can then be stored in a memory 710, as well as displayed on a display 712.
The one or more processors 716 may be configured to execute instructions from the memory 710 and may perform any methods and/or associated steps indicated by such instructions, such as displaying and modifying the input signals received by the instrument. The memory 710 may be implemented as processor cache, random access memory (RAM), read only memory (ROM), solid state memory, hard disk drive(s), or any other memory type. The memory 710 acts as a medium for storing data, such as acquired sample waveforms, computer program products, and other instructions.
User inputs 714 are coupled to the processor 716. User inputs 714 may include a keyboard, mouse, touchscreen, and/or any other controls employable by a user to set up and control the instrument 700. User inputs 714 may include a graphical user interface or text/character interface operated in conjunction with the display 712. The user inputs 714 may receive remote commands or commands in programmatic form. The user interfaces 130, 230, 330 described above may be a part of the user inputs 714. User inputs 714 may further include programmatic inputs from the user on the instrument 700, or from a remote device. The display 712 may be a digital screen, a cathode ray tube based display, or any other monitor to display waveforms, measurements, and other data to a user. While the components of test instrument 700 are depicted as being integrated within test and measurement instrument 700, it will be appreciated by a person of ordinary skill in the art that any of these components can be external to test instrument 700 and can be coupled to test instrument 700 in any conventional manner (e.g., wired and/or wireless communication media and/or mechanisms). For example, in some embodiments, the display 712 may be remote from the test and measurement instrument 700, or the instrument may be configured to send output to a remote device in addition to displaying it on the instrument 700. In further embodiments, output from the measurement instrument 700 may be sent to or stored in remote devices, such as cloud devices, that are accessible from other machines coupled to the cloud devices.
The instrument 700 may include a waveform search processor 720, which may be a separate processor from the one or more processors 716 described above, or the functions of the waveform search processor 720 may be integrated into the one or more processors 716. Additionally, the waveform search processor 720 may include separate memory, use the memory 710 described above, or any other memory accessible by the instrument 700. The waveform search processor 720 may include specialized processors to implement the functions described above. For example, the waveform search processor 720 may include a correlation generator 722 used to generate the correlations for waveform searching using procedures and operations described above to implement waveform search generation. A match display processor 724 may generate the matches based on the generated correlations and show them to the user on the display 712. The match display processor 724 may control updating the match display in real time or near-real time as elements of the display are manipulated by the user, such as the threshold control slider. Any or all of the components of the waveform search processor 720, including the correlation generator 722 and match display processor 724 may be embodied in one or more separate processors, and the separate functionality described herein may be implemented as specific pre-programmed operations of a special purpose or general purpose processor. Further, as stated above, any or all of the components or functionality of the waveform search processor 720 may be integrated into the one or more processors 716 that operate the instrument 700.
In some embodiments the waveform search processor 720 may be on a separate device from an instrument that acquired the input signal for testing. In such an embodiment the separate device may retrieve the acquired waveform from a remote device, or retrieve it from a remote storage device, and perform the searching functions described above on the separate device. Then the results may be displayed on the separate device, or, as described above, may be exported from the separate device to be shown on a different device. In yet other embodiments, the separate device may locally store the search results and make them available for use by a user of a remote device.
Aspects of the disclosure may operate on a particularly created hardware, on firmware, digital signal processors, or on a specially programmed general purpose computer including a processor operating according to programmed instructions. The terms controller or processor as used herein are intended to include microprocessors, microcomputers, Application Specific Integrated Circuits (ASICs), and dedicated hardware controllers. One or more aspects of the disclosure may be embodied in computer-usable data and computer-executable instructions, such as in one or more program modules, executed by one or more computers (including monitoring modules), or other devices. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types when executed by a processor in a computer or other device. The computer executable instructions may be stored on a non-transitory computer readable medium such as a hard disk, optical disk, removable storage media, solid state memory, Random Access Memory (RAM), etc. As will be appreciated by one of skill in the art, the functionality of the program modules may be combined or distributed as desired in various aspects. In addition, the functionality may be embodied in whole or in part in firmware or hardware equivalents such as integrated circuits, FPGA, and the like. Particular data structures may be used to more effectively implement one or more aspects of the disclosure, and such data structures are contemplated within the scope of computer executable instructions and computer-usable data described herein.
The disclosed aspects may be implemented, in some cases, in hardware, firmware, software, or any combination thereof. The disclosed aspects may also be implemented as instructions carried by or stored on one or more or non-transitory computer-readable media, which may be read and executed by one or more processors. Such instructions may be referred to as a computer program product. Computer-readable media, as discussed herein, means any media that can be accessed by a computing device. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media.
Computer storage media means any medium that can be used to store computer-readable information. By way of example, and not limitation, computer storage media may include RAM, ROM, Electrically Erasable Programmable Read-Only Memory (EEPROM), flash memory or other memory technology, Compact Disc Read Only Memory (CD-ROM), Digital Video Disc (DVD), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, and any other volatile or nonvolatile, removable or non-removable media implemented in any technology. Computer storage media excludes signals per se and transitory forms of signal transmission.
Communication media means any media that can be used for the communication of computer-readable information. By way of example, and not limitation, communication media may include coaxial cables, fiber-optic cables, air, or any other media suitable for the communication of electrical, optical, Radio Frequency (RF), infrared, acoustic or other types of signals.
Illustrative examples of the disclosed technologies are provided below. An embodiment of the technologies may include one or more, and any combination of, the examples described below.
Example 1 is a test and measurement instrument, including an input for accepting an input signal from a Device Under Test (DUT), acquisition memory for storing a sampled waveform derived from the input signal, an output display, and one or more processors configured to accept a portion of the sampled waveform as a search portion, search the sampled waveform for portions similar to the search portion, and visually indicate, on the output display, those portions of the sampled waveform that are similar to the search portion as matched portions.
Example 2 is a test and measurement according to Example 1, in which a degree of similarity to the search portion that the portions of the sampled waveform exceed to be considered matched portions is user controllable.
Example 3 is a test and measurement device according to any of the preceding Examples, in which the one or more processors are configured to accept a portion of the waveform between two user-controllable cursors as the search portion.
Example 4 is a test and measurement device according to any of the preceding Examples, in which the one or more processors configured to visually indicate portions of the sampled waveform as matched portions are configured to highlight the matched portions on the output display.
Example 5 is a test and measurement device according to any of the preceding Examples, in which the search portion is selected from a list of stored search portions.
Example 6 is a test and measurement device according to any of the preceding Examples, in which the one or more processors configured to search the sampled waveform for portions similar to the search portion are configured to generate a correlation value for one or more portions of the sampled waveform.
Example 7 is a test and measurement device according to Example 6, in which the one or more processors are configured to visually indicate a matched portion when the correlation value for a particular one of the one or more portions of the sampled waveform are correlated to the search portion above a threshold correlation value.
Example 8 is a test and measurement device according to any of the preceding Examples, in which the one or more processors configured to visually indicate portions of the sampled waveform as matched portions are configured to simultaneously visually indicate portions of the sampled waveform in a main display as well as in an overview display that includes the entire sampled waveform.
Example 9 is a test and measurement device according to any of the preceding Examples, in which the one or more processors are configured to search the sample waveform for portions similar to the search portion only after being requested to perform the search by a user.
Example 10 is a test and measurement device according to any of the preceding Examples, further comprising a second input for accepting a second input signal, in which the acquisition memory is configured to store a second sampled waveform derived from the second input signal, and in which the one or more processors are configured to visually indicate matched portions on a display showing the second sampled waveform.
Example 11 is a test and measurement device according to Example 10, in which the one or more processors are configured to accept a portion of the second sampled waveform as a second search portion, search the second sampled waveform for portions similar to the second search portion, and visually indicate, on the output display, those portions of the sampled waveform and/or portions of the second sampled waveform that are similar to the second search portion as second matched portions.
Example 12 is a test and measurement device according to Example 11, in which the one or more processors are configured to visually indicate matches only when portions of the sampled waveform are similar to the search portion and portions of the second sampled waveform are similar to the second search portion.
Example 13 is a method of operation of a test and measurement instrument, including searching a sampled waveform stored on the test and measurement instrument for portions similar to a selected portion of the sampled waveform, and visually indicating, on an output display, portions of the sampled waveform that are similar to the selected portion of the sampled waveform as matched portions.
Example 14 is a method according Example 13, further including accepting an input signal from a Device Under Test (DUT), generating the sampled waveform derived from the input signal, and storing the sampled waveform on the test and measurement instrument.
Example 15 is a method according to any of the preceding Example methods, in which searching the sampled waveform comprises generating a correlation value for portions of the sampled waveform based on their correlation to the selected portion of the sampled waveform.
Example 16 is a method according to any of the preceding Example methods, in which visually indicating portions of the sampled waveform that are similar to the selected portion of the sampled waveform comprises visually indicating only those portions of the sampled waveform that include a correlation value that exceeds a threshold correlation value.
Example 17 is a non-transitory computer-readable storage medium storing one or more instructions, which, when executed by one or more processors of a computing device, cause the computing device to search a sampled waveform accessible by the computing device for portions similar to a selected portion of the sampled waveform, and visually indicate, on an output display, portions of the sampled waveform that are similar to the selected portion of the sampled waveform as matched portions.
Example 18 is the non-transitory computer-readable storage medium according to Example 17, wherein execution of the one or more instructions further causes the computing device to accept an input signal from a Device Under Test (DUT), generate a sample waveform derived from the input signal, and store the sample waveform on the computing device.
Example 19 is the non-transitory computer-readable storage medium according to Example 18, wherein execution of the one or more instructions further causes the computing device to generate a correlation value for portions of the sampled waveform based on their correlation to the selected portion of the sampled waveform.
Example 20 is the non-transitory computer-readable storage medium according to any of the preceding Examples 17-19, wherein execution of the one or more instructions further causes the computing device to visually indicate only those portions of the sampled waveform that include a correlation value that exceeds a threshold correlation value.
The previously described versions of the disclosed subject matter have many advantages that were either described or would be apparent to a person of ordinary skill. Even so, these advantages or features are not required in all versions of the disclosed apparatus, systems, or methods.
Additionally, this written description makes reference to particular features. It is to be understood that the disclosure in this specification includes all possible combinations of those particular features. Where a particular feature is disclosed in the context of a particular aspect or example, that feature can also be used, to the extent possible, in the context of other aspects and examples.
Also, when reference is made in this application to a method having two or more defined steps or operations, the defined steps or operations can be carried out in any order or simultaneously, unless the context excludes those possibilities.
Although specific examples of the invention have been illustrated and described for purposes of illustration, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, the invention should not be limited except as by the appended claims.
This disclosure claims benefit of U.S. Provisional Application No. 63/332,673, titled “WAVEFORM SEARCH BY EXAMPLE,” filed on Apr. 19, 2022, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63332673 | Apr 2022 | US |