Abstract:
A method, and circuit for implementing the method, allow a deep memory digital oscilloscope or logic analyzer to rapidly display large data records. Incoming signals are &#34;dually&#34; processed through multiple data compression circuits so as to create and store at least two data records. A smaller record is available for immediate and rapid display. A larger record is available for subsequent panning &amp; zooming. By storing sequential data records in alternating memory divisions and eliminating data moves, the larger record may also be viewed more rapidly.

Description:
BACKGROUND OF THE INVENTION 
     This invention pertains to digital oscilloscopes and logic analyzers, and more particularly, to a method of rapidly displaying large data records retrieved by deep memory digital oscilloscopes and logic analyzers. A circuit for implementing the method is also disclosed. 
     A first problem with current deep memory digital oscilloscopes and logic analyzers is that they can acquire and store data records much faster than they can process and display them. 
     Currently available A/D converters can sample a signal at the rate of several Gigasamples/second. However, currently available video processors can only process these samples at a rate of several Megasamples/second. Consider an oscilloscope comprising an A/D converter sampling at the rate of 1 Gigasample/second, a memory, a video processor working at a rate of 2 Megasamples/second, and a data record size of 1 Megasample (see FIG. 6). Such an oscilloscope can acquire and store records to memory at a rate of 1000 records/second, but process and display those records to video at a rate of only 2 records/second. The resulting difference between acquisition and display rates is a problem of great concern. 
     Several solutions have been posed for this problem. A first solution is to limit the number of displayed samples to a relatively small number, commonly 500. This solution yields a faster display rate, but artificially limits the sampling rate to the processing rate. A limited sample rate will allow many signal glitches to go undetected. 
     A second solution is to give a user independent controls over both update rate and record length. A user can then decide which attribute is most important--a high update rate or a long record length. Alternatively, a user can sacrifice each to achieve an optimum combination. However, it is impossible to achieve both a high update rate and a long record length. 
     Another solution involves use of a data compression algorithm such as &#34;peak detect&#34;. A peak detect algorithm divides a signal into time intervals. For each time interval, samples are stored in the form of a min/max pair. Thus a 500 pair peak detect record can be used to rapidly display the highlights (or glitches) of a very large record. However, when a record is compressed to 500 sample pairs, much of the fine detail available in a larger record (i.e. --a &#34;deep&#34; record of several Megasamples) is lost. As a result, it is not possible to &#34;pan &amp; zoom&#34; on a smaller portion of a peak detect record. The loss of pan &amp; zoom capabilities can be cured by increasing the number of peak detect sample pairs. However, as the number of sample pairs is increased, display time for a record is also increased. 
     Other data compression algorithms include: 1) summing (averaging all samples in a given time interval), 2) low frequency dither (randomly picking one sample in a time interval), as described in U.S. Pat. No. 5,115,189 to Holcomb which is hereby incorporated by reference, or 3) glitch detect (keeping track of whether a sample crosses above or below a digital threshold). However, all of these compression algorithms suffer from the problems associated with peak detect. 
     A second problem which hinders rapid display of large data records in deep memory oscilloscopes and logic analyzers is memory allocation. 
     Current oscilloscopes and logic analyzers have two memories for storing data records. Records are initially stored in a first memory, and then dumped to a second memory. The second memory is used to preserve pan &amp; zoom data since the first memory is being continuously overwritten with newly acquired records. Dual memories are undesirable in that the reading and writing of large data records uses valuable processing time and slows video displays. 
     It is therefore a primary object of this invention to provide a method of rapidly displaying large data records retrieved by deep memory digital oscilloscopes and logic analyzers. 
     It is also an object of this invention to create a smaller data record for immediate display, and a larger record for subsequent pan &amp; zoom requests. 
     It is a further object of this invention to achieve the foregoing object without significantly decreasing the size of a data record available for panning &amp; zooming. 
     It is yet another object of this invention to eliminate the transfer of data from one memory to another. 
     SUMMARY OF THE INVENTION 
     In the achievement of the foregoing objects, the inventors have devised a method of rapidly displaying large data records retrieved by deep memory digital oscilloscopes and logic analyzers comprising the following steps. First, the oscilloscope&#39;s memory is divided into first and second divisions. Next, a digitized data record created from an input signal is run through a first data compression circuit. The output of the first data compression circuit is stored in a first section of either the first or second memory divisions, and is also run through a second data compression circuit. The output of the second data compression circuit is stored in a second section of either the first or second memory divisions, and is also displayed to video. But for the memory division step, the above steps are repeated, alternately storing data in the first and second memory divisions. When a pan &amp; zoom request is received, a portion of the output stored in the first section of the memory division which is not being written to will be displayed. 
     The above described method, and a circuit for implementing the same, allow a deep memory digital oscilloscope or logic analyzer to rapidly display large data records. Incoming signals are &#34;dually&#34; processed through multiple data compression circuits so as to create and store at least two data records. A smaller record is available for immediate and rapid display. A larger record is available for subsequent panning &amp; zooming. By storing sequential data records in alternating memory divisions and eliminating data transfers, the larger record may also be viewed more rapidly. 
     These and other important advantages and objectives of the present invention will be further explained in, or will become apparent from, the accompanying description, drawing and claims. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Illustrative and presently preferred embodiments of the invention are illustrated in the drawing in which: 
     FIG. 1 is a flow chart of a first embodiment of a method disclosed herein; 
     FIG. 2 is a schematic of a circuit implementing the method of FIG. 1; 
     FIG. 3 is a flow chart of a second embodiment of a method disclosed herein; 
     FIG. 4 is a schematic of a circuit implementing the method of FIG. 3; 
     FIG. 5 is a schematic of a circuit implementing a variation of the FIG. 3 method; and 
     FIG. 6 is a block diagram presenting the problems solved by the method disclosed herein. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     The steps for a method of rapidly displaying large data records retrieved by deep memory digital oscilloscopes and logic analyzers 68 (collectively referred to as signal display devices) are shown in FIG. 1. The method may generally comprise the steps of running a digitized data record created from an input signal through a first data compression circuit 10 (FIG. 2), storing an output 12 of the first data compression circuit 10 in a first section 14 of a memory 16, running the output 12 of the first data compression circuit 10 through a second data compression circuit 18, storing an output 20 of the second data compression circuit 18 in a second section 22 of said memory 16, and graphically displaying the output 20 of the second data compression circuit 18. 
     Having thus described the method in general, the method will now be described in further detail. 
     In a first preferred embodiment of the method (FIGS. 1 &amp; 2), the method begins as a signal is input into an A/D converter 24. The input signal may comprise several channels, but for ease of explanation, only one will be considered. Preferably, the A/D converter 24 has a sample rate of several Gigasamples/second. The converter 24 produces a digitized data record comprising numerous discrete samples. The converter&#39;s output 34 may be further processed through a low ratio decimator 26 before being stored in a section 28 of deep memory 16 (a deep memory is a memory capable of storing several Megasamples). 
     The converter&#39;s output 34 (or the output of the low ratio decimator 40) is also fed into a first data compression circuit 10. The data compression circuit comprises a logic block 30 and a mid-ratio decimator 32. The mid-ratio decimator 32 lies in the feedback path of the logic block 30 and serves as a counter for determining the compression interval. A sample (or sample pair) will be stored for each interval. If the data compression circuit 10 is of the peak detect variety, it will form min/max sample pairs. If the data compression circuit 10 is of the glitch detect variety, it will store individual samples. The samples (or sample pairs) generated by the data compression circuit 10 will be stored in a first section 14 of deep memory 16. 
     The output 12 of the first data compression circuit 10 will also be fed into a second data compression circuit 18. The second data compression circuit 18 is similar to the first 10, but for the fact that it comprises a high ratio decimator 38. By connecting the second data compression circuit 18 in series with the first 10, and running it off of the output 12 of the first 10, the second data compression circuit 18 has fewer samples to process. As a result, it runs faster and more efficiently than if it would have been connected directly to the converter output 34. The logic block 30 of the second data compression circuit 18 preferably implements the same compression algorithm as the logic block 36 of the first 10. 
     The samples (or sample pairs) produced by the second data compression circuit 18 will be fewer in number than the samples produced by the first data compression circuit 10. This second set of compressed data is called &#34;Dual Rate&#34; data. It has been &#34;dually&#34; processed through multiple data compression circuits 10, 18. The Dual Rate data is stored in a second section 22 of deep memory 16. 
     Consider, for example, an oscilloscope 68 comprising the circuitry of FIG. 2. The oscilloscope 68 shown therein may comprise a 1 Gigasample/second A/D converter 24; low, mid-, and high ratio decimators operating at ratios of 1:2, 1:8 and 1:250, respectively 26, 32, 38; a 1 Megasample memory 16; and a 2 Megasample/second video processor 64. Assume that the oscilloscope 68 is set to use a 1 Megasample data record and that both logic blocks 30, 36 are programmed to implement peak detect compression algorithms. As a 1 Megasample record comes out of the A/D converter 24, it is decimated via the low ratio decimator 26 and 500,000 samples are stored in memory Section A 28. The 1 Megasample record is further fed through a first data compression circuit 10 (using the mid-ratio 1:8 decimator 32). This circuit 10 produces 125,000 peak detect sample pairs (or 250,000 individual samples) which are stored in memory Section B 14. The output of the first data compression circuit 10 is also routed through a second data compression circuit 18 (using the high ratio 1:250 decimator 38). The second data compression circuit 18 produces 500 peak detect sample pairs (or 1000 individual samples) which are stored in memory Section C 22. 
     Thus, two sets of peak detect samples are stored in memory 16. The smaller set of 500 sample pairs is used to immediately display a signal&#39;s waveform. The larger set of 125,000 sample pairs (or even the 500,000 sample record) is available should a user want to later pan &amp; zoom on a smaller portion of a signal&#39;s waveform. 
     It is important to note that the problem of rapidly displaying a large data record is solved. The 1 Gigasample/second A/D converter 24 will produce 1000 records/second, each being 1 Megasample in length. When display data comprises 500 min/max sample pairs, the video processor 64, operating at 2 Megasamples/second, can display up to 2000 records/second on the video display 66. This is more than fast enough to keep up with the A/D converter 24. 
     Furthermore, a record of 125,000 min/max sample pairs and a record of 500,000 individual samples exist for later pan &amp; zoom requests. In an alternative embodiment, the 500,000 sample uncompressed record could be eliminated, and a larger compressed (e.g., peak detect) record could be stored for panning &amp; zooming. 
     Since the deep memory 16 is being continuously rewritten by newly acquired data records, the data stored in memory 16 must be copied into a second memory. See FIG. 6. If this is not done, the larger pan &amp; zoom records can become corrupted before they are displayed. However, copying data from one memory to another causes significant delay. If a large record is in the process of being copied, there is a lag time before another record acquisition can begin. Since it is an object of this invention to rapidly display large data records, a second preferred embodiment which cures this additional display problem is shown in FIGS. 3 and 4. 
     Instead of reading data out of a first memory and into a second, a &#34;Ping Pong&#34; memory storage method has been developed. In Ping Pong storage, the oscilloscope&#39;s, or logic analyzer&#39;s, deep memory 16 is first divided into two divisions 42, 44. Within each of these two divisions 42, 44, the memory 16 is further sectioned as described, supra. In this manner, Sections AA 46, BB 48 &amp; CC 50 and XX 52, YY 54 &amp; ZZ 56 are created. Two memories are not needed. As a consequence, video displays are not slowed during memory read/write operations. 
     Sequentially acquired records (in a series of data records) are stored in alternating divisions 42, 44 of memory 16 through use of Ping Pong Gates A 58, B 60 and C 62. Each gate is responsive to the receipt of a new digitized data record such that the gate is capable of alternately storing data in one memory division 42 or the other 44. 
     In a variation of the FIG. 3 method, as implemented in the schematic of FIG. 5, ping pong gating could be done before data enters the data compression circuits 10, 18, 72, 74. In this arrangement, a single Ping Pong Gate 68 and four data compression circuits 10, 18, 72, 74 would be required. Two of the data compression circuits 10, 18 would be associated with one memory division 42, and two 72, 74 would be associated with another memory division 44. Data would be alternately fed through either the first 10 and second 18 data compression circuits or the third 72 and fourth 74 data compression circuits. 
     To appreciate the advantages of Ping Pong gating, assume that each division 42, 44 of a 1 Megasample memory 16 comprises 500,000 bytes. Each division 42, 44 could store a 250,000 sample uncompressed data record, a 125,000 sample peak detect record comprising 62,500 sample pairs, and a 1000 sample peak detect record comprising 500 sample pairs. If a user inputs a request to pan &amp; zoom on a portion of a signal waveform, data is available in one division 42, 44 while a new record is being concurrently stored in another division 44, 42. 
     Given the above examples, it can be appreciated that an oscilloscope displaying Dual Rate data records can display 2,000 records/second, whereas the same oscilloscope without Dual Rate data can only display 2 records/seconds. This is a 1000:1 increase in the display rate. Yet even if the Dual Rate oscilloscope uses Ping Pong storage, there is only a 4:1 decrease in the record size available for panning &amp; zooming. Furthermore, since Ping Pong storage eliminates data transfers, lag time in accessing larger pan &amp; zoom records is eliminated, thereby further increasing video display rates. 
     Although Ping Pong storage can be advantageous under any set of operating conditions (even in an oscilloscope or logic analyzer which does not implement Dual Rate data), Dual Rate data is specifically advantageous for oscilloscopes or logic analyzers utilizing high sample rates and deep memories. As the sampling rate approaches the rate of the video processor, Dual Rate data is of no assistance because the video processor works fast enough to display the incoming data records. Video &#34;dead time&#34; is not present. Furthermore, if an oscilloscope or logic analyzer has limited memory, an acquired record will already be small in size, and there is no need to create an even smaller record for rapid display. 
     While illustrative and presently preferred embodiments of the invention have been described in detail herein, it is to be understood that the inventive concepts may be otherwise variously embodied and employed and that the appended claims are intended to be construed to include such variations except insofar as limited by the prior art.