Abstract:
A test and measurement instrument such as a Logic Analyzer, or the like, has at least one Reloadable Word Recognizer whose reference value can be loaded by a trigger machine with a current acquired data sample while data is being acquired. In a second embodiment useful for performing memory testing, the reloadable word recognizer is used in cooperation with two conventional word recognizers. In a third embodiment, a delay unit is employed to provide delayed input data words as reference words. In a fourth embodiment, an offset register and adder are used to modify the input data words before storing them. A fifth embodiment provides for substantially immediate use of base addresses of relocatable subroutines and stack-based variables recovered from a data stream acquired from a system under test.

Description:
CLAIM FOR PRIORITY  
       [0001]    The Subject application claims priority from U.S. Provisional Application Serial No. 60/326,503 RELOADABLE WORD RECOGNIZER FOR LOGIC ANALYZER (Holaday, et al.) filed 1 Oct. 2001. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The subject invention generally concerns the field of word recognizers for use in test and measurement instruments, such as logic analyzers, and the like, and specifically concerns word recognizer that may be reloaded during an acquisition of data.  
         BACKGROUND OF THE INVENTION  
         [0003]    A logic analyzer is a test and measurement instrument having multiple input channels for acquiring digital data words for processing and display. Logic analyzers contain Word Recognizers, which are programmed with a reference value for comparison with incoming acquired data. Because the user wishes to trigger on a condition in which the reference value matches the value of the incoming data, the “reference value” of the Word Recognizer is preprogrammed before data acquisition is begun, and not is changed while data is being acquired. It is noted that Word Recognizers also have the ability to mask, or disable selected channels, which allow these channels to be ignored while comparing the acquired data and reference data.  
           [0004]    However, currently available Word Recognizers cannot provide a solution to the following problem. In a Random Access Memory (RAM) diagnostic routine, a data pattern is written to all locations of the RAM, and then the data is read from each of the locations. The routine then reports the results (i.e. whether the RAM passed the check) and the process is repeated with the next pattern. If an error is detected, it is unknown whether the problem occurred when the data was written to the RAM, or when the data was read from the RAM. Because the RAM has been overwritten, the RAM cannot be examined to determine if it contains the correct value. One would like to write a trigger program to verify that data written to the RAM is the same as what is read back from the RAM and to trigger the Logic Analyzer when the data is not the same. With current logic analyzers this is not possible because the data pattern is changing, which means it is not possible to preprogram the “Reference Value” of the Word Recognizer with a meaningful value.  
         SUMMARY OF THE INVENTION  
         [0005]    The subject invention concerns a test and measurement instrument such as a logic analyzer, or the like, having at least one Reloadable Word Recognizer whose reference value can be loaded by a trigger machine with a current acquired data sample while data is being acquired. In a second embodiment useful for performing memory testing, the reloadable word recognizer is used in cooperation with two conventional word recognizers. In a third embodiment, a delay unit is employed to provide delayed input data words as reference words. In a fourth embodiment, an offset register and adder are used to modify the data words before storing them. A fifth embodiment provides for substantially immediate use of base addresses of relocatable subroutines and stack-based variables recovered from a data stream acquired from a system under test. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWING  
       [0006]    [0006]FIG. 1 shows a simplified block diagram of a trigger portion of a logic analyzer according to the subject invention; and  
         [0007]    [0007]FIG. 2 shows a simplified block diagram of an interior detail of the Event Circuit of FIG. 1.  
         [0008]    [0008]FIG. 3 shows a simplified block diagram of a second embodiment of the invention.  
         [0009]    [0009]FIG. 4 shows a simplified block diagram of a third embodiment of the invention.  
         [0010]    [0010]FIG. 5 shows a simplified block diagram of a fourth embodiment of the invention.  
         [0011]    [0011]FIG. 6 shows a simplified block diagram of a fifth embodiment of the invention. 
     
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS  
       [0012]    Referring to FIG. 1, those portions of a logic analyzer that are pertinent to the subject invention are shown and generally designated  100 . An Input Channels block  110  includes acquisition circuitry for acquiring digital data from a circuit under test via a plurality of input data channels. The data acquired from the user&#39;s system is presented to an Event Circuit  120 . Event Circuit  120  contains Word Recognizers, Range Recognizers, Transition Detectors, etc. For purposes of explanation of the subject invention, only the Word Recognizers will be discussed below.  
         [0013]    An output signal of Event Circuit  120  is applied to a Trigger Machine (or Trigger Circuit)  130 . Trigger Circuit  130  determines when to trigger, store, etc, and when to load a Reloadable Word Recognizer (to be described below with reference to FIG. 2) with a current data sample. When appropriate, Trigger Circuit  130  generates a Reload Signal for application to Event Circuit  120 . A Delay block  140  delays the incoming data to match the delay through Event Circuit  120  and Trigger Circuit  130 . This is necessary so that data is time-aligned with the output signal of Trigger Circuit  120  to ensure proper data storage or proper reloading of the Word Recognizer. Trigger machine circuitry for performing further functions is represented by block  190 .  
         [0014]    [0014]FIG. 2 shows a block diagram of at least some of the elements, generally designated  200 , which reside within Event Circuit  120  of FIG. 1. The elements  200  include a first Word Recognizer comparison unit (Word REC  1 )  210 ,a second Word Recognizer comparison unit (Word REC  2 )  220 , a preprogrammable reference block  215 , and a reprogammable reference block  225 . Word REC  1   210  is a conventional Word Recognizer comparison unit as known from the prior art. As such, incoming data received via Input Channels block  110  are compared against a value preprogrammed and stored in reference block  215 . A predetermined “Reference Value” is loaded into reference block  215  before a data acquisition is begun. Thereafter, this preprogrammed reference value remains unchanged during the entire data acquisition. The output of Word Rec  1   210  is the result of a comparison between its preprogrammed reference value and the incoming data.  
         [0015]    In contrast, Word Rec  2   225  is a reloadable Word Recognizer. Like Word Rec  1   210 , Word REC  2   220  compares incoming data against a value held in its respective Reference Block  225 . However, the respective “Reference Value” of each of reference blocks  215  and  225  is different from the other, except for cases where the data values coincidentally happen to be the same.  
         [0016]    Operation of the subject invention will be described with reference to FIGS. 1 and 2. In operation, incoming data is delayed in delay unit  140  while Trigger Circuit  130  evaluates the result of the comparison of reference data and current sample data within Event circuit  120 . If the results match the criteria that the Trigger Circuit is programmed for, then a reload strobe signal is generated and applied to Event circuit  120 . This reload strobe will cause the delayed incoming data to be loaded into Reference block  225 . The Reloadable Word Recognizer comparison unit, Word Rec  2   220 , can be reloaded as often as desired during an acquisition.  
         [0017]    With respect to the problem set forth above with respect to the RAM diagnostics routine, such problem is solved by use of another embodiment the subject invention, employing a Reloadable Word Recognizer  320  and two conventional Word Recognizers  310  and  350 , as shown in FIG. 3. Similarly numbered elements of FIGS. 2 and 3 serve the same function and need not be described again. A conventional Word Recognizer (WR  0 )  310  is preprogrammed to generate a “match” signal when a “write data to memory” operation occurs at a specific RAM address. Another conventional Word Recognizer (WR  1 )  350  is preprogrammed to generate a “match” signal when a “read data from memory” operation occurs from this same address. Only the data channels (in contrast to address channels) are enabled on Reloadable Word Recognizer (RWR)  320 . A “trigger program” (i.e., a program for triggering the logic analyzer) running on Trigger machine  130  generates a Reload Strobe when the result of a comparison within word recognizer WR  0   310  is true (i.e., matches). The trigger program will produce a trigger signal when the result of a comparison within word recognizer WR  1   350  is true AND when the result of a comparison within word recognizer RWR  320  is false.  
         [0018]    In operation, when a write to specified RAM address occurs, the output of word recognizer WR  0   310  becomes true and causes Reloadable Word Recognizer  320  to be loaded with the data value that was written to this specific RAM address. Later, when a read from memory operation occurs from this same address the output of word recognizer WR  1   350  becomes true. If the output of Reloadable Word Recognizer RWR  320  is true, then nothing happens until the next read or write operation to this address. When the output of Reloadable Word Recognizer RWR  320  goes false, trigger machine  130  triggers. Note that as long as all outputs of the word recognizers are true, then Reloadable Word Recognizer RWR  320  can be reloaded with a new value over and over again.  
         [0019]    There are two enhancements to the above-described invention that are deemed to lie within the bounds of the invention. FIG. 4 shows all of the elements of FIG. 1 and further includes a Multiplexer (MUX)  450  positioned between Delay Circuit  440  and Event Circuit  420 , channels could be “swizzled” before becoming a reference value. This would allow addressing information present on the data bus to be mapped over to address channels for comparison purposes.  
         [0020]    The second enhancement is shown in FIG. 5 that includes all of the elements of FIG. 1 and further includes an offset register  560  and adder unit  570 , which reside between Delay Circuit  540  and Event Circuit  520 . The value n (any integer number) in offset register  560  is loaded before data is acquired, and is added to the delayed data before being reloaded as the reference value. This enhancement is quite useful. For example, assume that the value stored in the offset register is equal to 5. In that case, one may track every 5th line in a subroutine. Moreover, if one changes the address of a subroutine, the delayed data value would have the new base address information when the reload operation occurs.  
         [0021]    [0021]FIG. 6 shows a simplified block diagram of a front end of a logic analyzer  600  according to yet another embodiment of the invention. A Probe  610  acquires digital data words from a system under test, and applies them to a conventional data pipeline comprising a plurality of flip-flop (F/F) circuits, explicitly represented by flip-flops  620   a ,  620   b ,  620   c  and implicitly represented by a dotted line. The pipeline ultimately provides the acquired data to a memory  630 . A Clock State Machine  640  provides clock signals to the pipeline flip-flops via a clock delay chain comprising a plurality of delay stages, represented by delay stages  650   a ,  650   b.    
         [0022]    A Word Recognizer Reload State Machine  660  monitors the pipeline bus for the occurrence of predetermined data word. Upon detection of the predetermined data word at the output of flip-flop  620   b , Word Recognizer Reload State Machine  660  acquires a reference word and loads it into a Reloadable Base/Offset Word Recognizer  670 . In this way, Reloadable Base/Offset Word Recognizer  670  can use the new reference word substantially immediately (i.e., as early as the next clock cycle). Reloadable Base/Offset Word Recognizer  670  applies data word detection signals to Trigger Machine  680  in the conventional fashion. The combination of Word Recognizer Reload State Machine  660  and Reloadable Base/Offset Word Recognizer  670  produces a “real time” “hardware” relocation of all word recognizer values.  
         [0023]    It is important to note that the arrangement of FIG. 6 is particularly useful when attempting to track relocatable code elements such as subroutines and stack-based variables. This has heretofore been a vexing problem because one knows only the relative addresses of the variables and code until the stack frame is built and the code is loaded at run time. In operation, Word Recognizer Reload State Machine  660  searches for code that allocates and relocates software routines (i.e., a reload address/data pattern). When found, a new base displacement is acquired from the pipeline and supplied to Reloadable Base/Offset Word Recognizer  670 . Thus, the base address, just found by the Reload State Machine, and an offset, taken from the compiler, combine in the base-offset word recognizer to form an absolute address immediately available for use in tracking the relocatable code of the system under test. Proper sizing of the number of stages in the data shift register pipeline guarantees time-alignment of the base-offset word recognizer search and the data being searched which results in zero-latency between the reload and search.  
         [0024]    Although a hardware environment was used to describe the subject invention, one skilled in the art will realize that the hardware maybe performed by software, or by a combination of hardware and software, and all such modifications are deemed to lie within the scope of the following claims.