This disclosure relates to test and measurement instruments, and more particularly to circuits and methods for reducing dead time associated with processing acquired data in a test and measurement instrument such as an oscilloscope.
In a system where a test and measurement device, such as a digital oscilloscope, measures a signal of interest from a device under test (DUT), the rate at which the signal is sampled is frequently faster than the processor can render on the display using ordinary graphics processing.
In conventional instruments, the input sample stream from the DUT is typically sub- divided into active and inactive subsets to support architectures where storing and rendering/analyzing sample data alternate in time. The result of the active/inactive subsets is that the measurement instrument is effectively blind to samples and potential trigger conditions from the DUT during the rendering/analysis time, while the input stream is being stored. Depending on the instrument architecture, this “dead” time can be significant, sometimes exceeding 99% of real time of receiving signals from the DUT.
The net result is that an oscilloscope might have a very high sample rate yet still have a low likelihood of capturing an anomalous event from the DUT that is of interest to a user.
Examples of the disclosure address these and other deficiencies of conventional devices.
Embodiments according to the disclosure construct time-consecutive, two-dimensional histograms based on every sample received by an oscilloscope from a DUT, which are then shown to the user in a display. The histograms are created independent of generating a sampled waveform from the DUT in acquisition memory of the instrument itself. Thus, the generated histograms capture and render every input signal sample captured from the DUT that has a chance of impacting the displayed waveform. In some embodiments, to increase performance, incoming samples are ignored if they are already represented in the visual rendering such that their presence is merely duplicative or won't change the final display shown to the user. To save resources, this determination to potentially ignore incoming samples, when expedient to do so, is made as early as possible in the sample pipeline.
Each port 102 is a channel of the test and measurement instrument 100. In some embodiments the test and measurement instrument 100 includes 8, 16, or more separate ports. The test and measurement instrument 100 may couple to a Device Under Test (DUT) 101 through one or more ports 102. DUTs 101 that have multiple outputs may connect each output to the instrument 100 through multiple, independent ports 102.
The input signals received at the ports 102 are then sent to one or more analog-to-digital converters (ADCs) 104. The one or more ADCs 104 convert an analog signal received through the one or more ports 102 to digital data that represents the input signal. The ADCs 104 have a sampling rate that is sufficient to sample the input signals with enough resolution to be usable by the instrument 100, and may be 8-bit, 12-bit, or higher resolution ADCs 104. The ADCs 104 may operate in an interleaved manner to sample all the incoming data, if required. The digitized signal output from the one or more ADCs 104 are processed by an acquisition processor 106 before being stored in an acquisition memory 108. Detailed description of the acquisition processor 106, and its main functions, are described in detail below with reference to
The acquisition memory 108 may be a relatively large, solid state memory that is structured to store large amounts of incoming data, as described in detail below. The acquisition memory 108 may be implemented as solid state memory, such as a solid-state disk drive(s). The acquisition memory 108 may be formed of Non-Volatile RAM (NVRAM). Other memory within the test and measurement instrument 100, such main processor memory 111, or other memory, 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. Memory acts as a medium for storing data, computer program products, and other instructions. In particular embodiments, the acquisition memory 108 may include 1 TB or more of memory having a 1 GB/s throughput rate. At such rates and capacities, a user may store 1000 seconds of incoming data in the acquisition memory 108. In some embodiments, data from the various memories of the instrument 100 may be output and/or stored in a cloud network 130.
One or more main processors 110 may be configured to execute instructions from main memory 111 and may perform any methods and/or associated steps indicated by such instructions.
Main user inputs 112 are coupled to the one or more processors 110. Main user inputs 112 may include a keyboard, mouse, touchscreen, and/or any other controls employable by a user to interact with a GUI on a main output display 114. In some embodiments the main user inputs 112 may be connected to or controlled by a remote interface 113, so that a user may control operation of the instrument 100 in a remote location physically away from the instrument. The display 114 may be a digital screen such as an LCD, or any other monitor to display waveforms, measurements, and other data to a user. In some embodiments, the main output display 114 is also located remote from the instrument 100.
One or more measurement units 120 are illustrated as being part of the instrument 100. These measurement units 120 perform the main functions of measuring parameters and other qualities of signals from the DUT being measured by the instrument 100. Typical measurements include measuring voltage, current, and power of input signals in the time domain, as well as measuring features of the input signals in the frequency domain. The measurement units 120 represent any measurements that are typically performed on test and measurement instruments.
While the components of the test and measurement instrument 100 are depicted as being integrated within test and measurement instrument 100, it will be appreciated by a person of ordinary skill in the art that any of these components can be external to the test and measurement instrument 100 and can be coupled to the test and measurement instrument 100 in any conventional manner (e.g., wired and/or wireless communication media and/or mechanisms). For example, in some examples, the main display 114 may be remote from the test and measurement instrument 100. In some embodiments a remote computer may connect to the instrument 100 through the remote interface 113 and cause the main display 114 to be shown on the display of the remote computer.
Referring to
When a trigger condition occurs in the input signal, a set of individual data samples are retrieved from the ring buffer 210 and delivered to a sample processor 220. The number and location of individual data samples extracted from the ring buffer and sent to the sample processor depends on implementation details, but in general will include individual data samples that occurred before the trigger condition as well as individual data samples that occurred after the trigger condition. In other embodiments the data samples to be processed by the sample processor 220 are offset from the trigger itself. In such embodiments, the trigger could be an event that occurred in any part of the input signal, whether or not the triggering event is part of the individual data samples that are processed by the sample processor 220. Recall that individual samples remain in the ring buffer 210 until they are overwritten. So, when a triggering event occurs, a pre-determined number of samples that were stored in pre-determined locations of the ring buffer 210 relative to the triggering event are sent to the sample processor 220 to begin the operations of generating a two-dimensional raster display from the incoming samples. In one embodiment the number of samples retrieved from the ring buffer equals a power of two number, such as 28, 220, 232, etc., or any other power. In other embodiments the number of samples retrieved from the ring buffer does not need to be a power of two.
With reference to
By assembling all of the individual histograms together, a two-dimensional raster 240 is generated that well represents, in graphic form, every sample that was processed by the sample processor 220 based on a triggering event.
Note that the histogram processor 370 in
Similar to
A trigger placement/interpolator 410 indicates that a trigger has been received and instructs a capture process 440 to generate a histogram from data stored in a ring buffer 430, as described above with reference to
Not mentioned previously is that the typical embodiment of the histogram processor 400 includes two separate rasters, or as labeled in
Note that it is possible to implement the herein described method of continuous acquisition and display with only a single histogram in the histogram processor, which would decrease by half the histogram memory resources, while still reaching a fairly high live time ratio. In this scenario, the dead time of the oscilloscope becomes the time needed to transfer the single histogram to another memory location for post-processing, and to then reset it.
A post-processing transformation prior to showing one of the histograms 450, 451 on a display, such as the display 114 of
There is some flexibility in the selection of histogram width, but some hardware implementations fix the histogram width at a particular size. In general, the width of the histogram is typically chosen to be equal or similar to the display width. In a situation where the displayed width is variable, the histogram, or raster, could be widened, or stretched. For ratios near 1:1, a fairly simple horizontal scaling may be used without significant degradation.
The histogram height is a function of the number of bits in the input sample. Each additional sample bit doubles the necessary memory. Once the design complexity versus image quality trade-off is settled, different display area sizes may dictate that the vertical direction of the raster be elongated, particularly to account for different display area sizes. Depending on the bit depth, there might be more significant scaling needed in the vertical direction, which could result in an image that would appear more smeared than if each waveform were individually plotted.
Recall from above that, in the simplest embodiment, the number of columns in the raster exactly matches the number of samples gathered after a triggering event, but the number of columns may be more or fewer than the number of samples processed at one time. To account for different intended display widths, embodiments according to the disclosure account for cases where the samples are not placed into columns at a 1:1 ratio. For cases where the number of samples per column is less than 1, referred to as the underrepresented case, the histogram processor indexes across multiple columns per sample. For cases where the number of samples per column is greater than 1, referred to as the overrepresented case, the histogram processor skips samples by decimation.
In the underrepresented case, if there is sub-sample placement information available from analysis of the trigger condition, such as interpolation using the samples around an edge crossing, it is possible to use that sub-sample placement information to select the subset of columns to be filled. If sub-sample placement information is not available from the trigger type, then only a sub-set of columns will contain histogram data. Also, in this underrepresented case, the histogram might not be balanced. In this case, a leveling function could be applied to make all columns equal intensity. In some cases, the histogram might simply have a number of zero columns. One approach to account for columns holding zero data would be to fill in the missing columns using an approach derived from image morphing. To fill a gap between two filled histogram columns, the post-processing engine would locate the peaks within each histogram, map them to locate transform vectors, and re-create intermediate histograms through interpolation of location along the vectors, as well as intensity. This first-order approach would have artifacts for some conditions. It would be possible to take into account more than the two adjacent histograms, and look also at the vectors from standard deviation and histogram boundaries for directional guidance.
Further, in the underrepresented cases, some embodiments include “hit” counters for sub-sample offsets to be identified and institute some mitigations. These mitigations include introducing a small holdoff to break aliasing, as well as post-processing to re-create missing columns from neighbors. Yet other embodiments include using a placement “fuzzing” register to add horizontal blur to make the line generated by the raster display appear more continuous. Further embodiments of mitigating the condition of a discontinuous line caused by adjacent histograms having dissimilar values may include intensity leveling or morphing from adjacent columns, for example.
The underrepresented case may be used for equivalent time rendering in an instrument, where samples are placed into the histogram at the relevant time they were sampled with respect to the trigger position, based on an estimation of the sub-sample location of the trigger condition. Not all trigger modes result in sub-sample placement information, in which case samples are placed as if the condition occurred at the midpoint between samples, and equivalent time placement will not result in a continuous line.
Within the design, this mode is referred to as super-rate. In super-rate mode, the record length is shorter than the standard histogram width by the under-representation ratio, and the samples are placed based on the phase that was determined from the trigger sub-sample position, and intervals of the super-rate factor.
Most digital oscilloscopes implement a notion of persistence—maintaining a reducing-intensity version of a previous raster over some period of decay time. This function could be achieved before or after other transformations, by a decayed version of the previous histogram with the next one, or similarly for the post-transformation display image.
According to an implemented example embodiment, a raster was generated having 1024 histogram columns and 256 bins per column. The source samples are 8 bits (28=256), and the display is 1280 columns wide, but further includes edge UI elements. The internal memory in the histogram processor may be implemented using memory in an FPGA. In some embodiments, the entire histogram processor, such as the acquisition processor 300 of
To select the bit depth, an important consideration is to determine how many distinct levels can be shown for a single pixel on the display. For example, for a monochrome image, the present display limit on a typical instrument 100 is 8 bits, and even within that range of 256 values, some are not useful, as they are too close to the background color (black) for the human eye to discern. Also, if a colorized waveform is generated from the histogram data, 24 bits/pixel may be used, for example.
By doubling some of the hardware resources, in some embodiments, it would be possible to run two raster extractions in parallel, thus approaching “200% live”, in the sense that some samples could impact the raster twice. With sufficient resources, even higher rates may be achieved. The benefit of operating beyond 100% live is the ability to visualize more instances of a trigger condition stacked at the same horizontal location, even if the condition is also visible on the left or right edges of the screen.
To support waveform persistence at capture time, the raster not presently in use could be reset in different ways after being copied to the acquisition memory. A basic no-hardware-persistence model would zero the histogram prior to using it again for sample storage. Alternately, the histogram bins could be scaled (reduced by a percentage), to simulate an effect like phosphor fade. One disadvantage to this technique is that the source is not the most-recent buffer, and the effect could be flickering of anomalous events. Depending on the display update rate, this might or might not be detectable by the human eye. Or if a single histogram implementation (not 100% live) is desired, the flicker artifact would not be present.
According to some embodiments of the disclosure, a user interface may display both the full rate raster, and a normally captured one, and permit fine-tuning of a complex trigger aimed at triggering on the spurious behavior. This requires careful crafting of the trigger engine to support both a simple trigger used for the full-rate capture and the more complex one a user is tuning.
Aspects of the disclosure may operate on 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.
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. For example, where a particular feature is disclosed in the context of a particular aspect, that feature can also be used, to the extent possible, in the context of other aspects.
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 aspects of the disclosure 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 disclosure. Accordingly, the disclosure should not be limited except as by the appended claims.
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 configured to accept an input signal from a Device Under Test, an acquisition memory handler structured to store the input signal as a series of digital samples in an acquisition memory, and a rasterizer structured to generate a histogram of values of the digital samples prior to or simultaneously with the values being stored in the acquisition memory.
Example 2 is a test and measurement instrument according to Example 1, further comprising a raster memory, and in which the histogram is stored in the raster memory.
Example 3 is a test and measurement instrument according to any preceding Example, in which the series of digital samples is stored in the acquisition memory and the histogram is stored in the raster memory simultaneously.
Example 4 is a test and measurement instrument according to any preceding Example, in which the rasterizer is structured to generate the histogram based on a trigger result.
Example 5 is a test and measurement instrument according to Example 4, further comprising a ring buffer to temporarily store the series of digital samples, and in which the values of the digital samples stored in the histogram are offset in the ring buffer from the trigger result.
Example 6 is a test and measurement instrument according to Example 5,in which a number of samples in the series of digital samples is less than a number of columns in the histogram, and in which the placement of the series of digital samples in the histogram is dependent on a trigger sub-sample position.
Example 7 is a test and measurement instrument according to any preceding Example, in which the rasterizer is structured to generate the histogram for up to all of the series of digital samples.
Example 8 is a test and measurement instrument according to any preceding Example, in which the histogram is used to generate a raster display, and in which particular of the series of digital samples that would not affect the appearance of the raster display are not represented in the histogram.
Example 9 is a test and measurement instrument according to any preceding Example, in which the histogram is two-dimensional.
Example 10 is a test and measurement instrument including an input for accepting an input signal from a Device Under Test (DUT) and storing the input signal in a ring buffer as a series of digital samples, a histogram processor configured to, during a raster building period: periodically select a portion of the series of digital samples based on a trigger condition, increment a corresponding bin value of a two-dimensional histogram for each selected digital sample in portion of the series of digital samples at least as fast as a rate at which the input samples are received from the DUT, and construct a raster formed of a plurality of histograms, in which the histogram processor is further configured to, during a raster output period, transfer the raster to a memory location in the test and measurement instrument, and further including a display driver structured to generate a raster waveform diagram on a display device based on the raster constructed by the histogram processor.
Example 11 is a test and measurement instrument according to Example 10, further including a second display driver structured to generate a second waveform diagram on the display device based on the series of digital samples.
Example 12 is a test and measurement instrument according to Examples 10 or 11, further including a raster memory, and in which the raster is stored in the raster memory.
Example 13 is a test and measurement instrument according to any of the Examples 10 — 12, in which the series of digital samples are stored in an acquisition memory and the raster is stored in the raster memory simultaneously.
Example 14 is a test and measurement instrument according to any of the Examples 10 — 13, in which a number of samples in the portion of the series of digital samples is less than a number of columns in the histogram, and in which the placement of the series of digital samples in the histogram is dependent on a trigger sub-sample position.
Example 15 is a method in a test and measurement instrument, including generating a series of digital samples from an input signal, storing the series of digital samples in a ring buffer, retrieving at least some of the series of digital samples from the ring buffer based on a trigger condition, generating a histogram from the at least some of the series of digital samples, generating a raster display from the histogram, and simultaneously storing the series of digital samples in an acquisition memory and storing the raster display in a raster memory.
Example 16 is a method according to Example 15, in which retrieving the at least some of the series of digital samples is based on an offset to a location of the trigger.
Example 17 is a method according to Example 16, in which generating the histogram includes populating the histogram with a number of samples that is less than a number of columns in the histogram, and in which the placement of the series of digital samples in the histogram is dependent on a trigger sub-sample position.
Example 18 is a method according to any preceding Example methods, in which the raster display is generated for up to all of the series of digital samples.
Example 19 is a method according to any preceding Example methods, further comprising displaying the raster display on the test and measurement instrument.
Example 20 is a method according to Example 19, further comprising displaying a waveform display from the series of digital samples, the waveform display separate from the raster display.
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/391,681, titled “CONTINUOUS ACQUISITION IN A TEST AND MEASUREMENT INSTRUMENT,” filed on Jul. 22, 2022, the disclosure of which is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
63391681 | Jul 2022 | US |