Abstract:
Signals at selected points on a test device place indicia on a record indicating, for each selected point, a selected logical active level and an initial polarity level. At preselected time intervals, levels, level changes and the number of transitions per change appear on the record as human-readable symbols. Each selected points signals are translated into digital representations which are stored for comparison with subsequent digital representations from the point. Counters record the number of changes thus detected and provide to the record appropriate symbols depicting the pre-change value, the number of changes and the post change value.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The invention relates to electronic measuring and testing. More particularly, the invention relates to automatically sensing digital signals in a tested device and recording representations thereof. 
     2. Description of the Prior Art 
     Digital logic circuits, such as microprocessors, operate at high frequencies and internally generate very narrow and closely spaced pulses. Troubleshooting these circuits requires monitoring large numbers of test points for long periods of time. For example, a 4 mHz microprocessor generates pulses a few nano-seconds wide and occasionally less than a nano-second apart. Comprehensive troubleshooting requires knowledge of signal conditions at, perhaps, 100 points for many hours. 
     Oscillograph paper-chart recorders trace, on a moving strip, inked lines representing electrical signals present at inputs. Mechanical design limits paper chart recorders to tracing low frequency phenomena although moderate numbers of signals may be permanently recorded over extremely long time periods. Cathode-ray Oscilloscopes transiently display small numbers of signals occurring during an extremely short display window. However, the signals may vary at high frequencies. Logic analyzers transiently display more signals than Cathode-ray Oscilloscopes, and define the time window by prespecified conditions. 
     Digital computers monitor relatively high frequency phenomena at a large number of points and print on paper characters representing the results of calculations made on the signal values. 
     While the prior art teaches monitoring of large numbers of high frequency signal test points for long periods and recording signal representations, or calculations based thereon, a troubleshooter must still reduce the resulting mass of data to a form which can be analyzed. In radio communication, incoming signals are classified by modulation type in accordance with the number of consecutive identical digital values derived by instantaneously comparing signal slices with a threshold. In U.S. Pat. No. 4,166,980 (Sanders Associates, Inc.), a display shows the distribution of consecutive 0&#39;s and 1&#39;s, frequencies and the amplitudes on a channel. A zero-crossing detector, such as the one in IBM TECHNICAL DISCLOSURE BULLETIN, June 1975, page 144, can step a counter to record the number of transitions of an input signal. U.S. Pat. No. 4,079,327 (Telecommunications Radioelectriques at Telephoniques T.R.T.) discloses comparing the count with another value to indicate equality. However, the prior art does not suggest any apparatus or method for visually recording the results of monitoring a large number of high-speed signals over a long period to facilitate rapid analysis by a troubleshooter. 
     SUMMARY OF THE INVENTION 
     The invention visually presents analytical representations of digital signals present in a tested device. Rather than provide a record of all changes in all signals present at all inputs, the invention selects input signal characteristics, and time limits and then records symbols indicating only those signal conditions falling within the selected criteria. 
     The invention provides test leads connectable to a large number of test points on a tested device. Registers hold prespecified information which identifies selected test points, a signal level for each selected test point and time-dependent quantities. Each test point is monitored and, if the time criteria are met, the signals at the active point cause a visual symbol to appear at an output. 
     The invention monitors and records signal magnitudes and records the number of changes in signal magnitude for each signal from an active test point. The record visual displays for each active test point a sequence of symbols indicating by its values, and its physical displacement on the record, the directions of signal magnitude changes, and the number of signal transitions that occurred during a given time period. 
     The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1A-1C are block diagrams of a system incorporating the invention. 
     FIGS. 2A-2B are block diagrams of a detailed embodiment of the invention. 
     FIGS. 3-5 are diagrams of another detailed embodiment of the invention. FIG. 3 shows signal processing devices. FIG. 4A shows the processor organization and FIG. 4B illustrates mapping of processor storage. FIG. 5 is a detailed diagram of the FIG. 3 devices. 
     FIG. 6 illustrates a printout. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     System Incorporating the Principles of the Invention 
     General Description 
     Referring to FIG. 1A, a tested device 100 having test points 101 (Pin #1-Pin #128) connects via a smaller selected number of lines 102 to a multiplexer 103 which sequentially presents signals from one at a time of the selected pins (#1, #4, #5) to an analog-to-digital converter ADC 104. A bus 108 provides digital representations of the analog values of signals on the selected pins (#1, #4, #5) to a processor 105 which connects to an output bus 115 attached to a display 106. The signals on the selected pins (#1, #5, #4, in that order) are processed and the results represented as symbols on paper 107. A header identifies the pin numbers and names and defines either an &#34;Up&#34; (U) or &#34;Down&#34; (D) level condition as the active level for signals on a pin. The initial value (positive &#34;+&#34; or negative &#34;-&#34;, when viewed rotated 90°) of the signal at that pin then becomes the active level. For example, the &#34;Up&#34; level means negative levels for Pin #1 and  positive levels for Pin #5. As testing proceeds, successive levels record as either &#34;+&#34; or &#34;-&#34;. Transitions from one level to another record a number indicating the number of transitions that actually occurred during the level change. A &#34;0&#34; for Pin #5 means that the level switched from &#34;+&#34; (up) to &#34;-&#34; (down) without any ringing, contact bounce, or the like. The &#34;5&#34;+&#34;6&#34; for Pin #1 means that the signal crossed through the &#34;-&#34; (up) level five times before changing to the &#34;+&#34; (down) level which it then crossed six times before stabilizing. 
     The processor 105 appears in more detail in FIG. 1B. The bus 108 from the analog-to-digital converter 104 connects with test ports of input means 109 to send to selection means 110 a succession of digital values representing information about signals at the selected ones (Pins #1, #4 and #5) of test points 101. Selection means 110 compares the digital values from input means 109 with preselected criteria and transfers to transition recognition means 112 as electric signals those digital values meeting the criteria. Timing means 111 provides timing information at a fast rate (signals) and a less frequent rate (intervals) to the transition recognition means 112 and a counting means 113, respectively. The transition recognition means 112 generates a transition signal, as a function of electric and timing signals, whenever an electric signal lever changes from one predefined digital value to another. The counting means 113, which is reset to zero by each timing interval, supplies to output means 114, for one selected test point at a time, a digital number representing the number of electric signal transitions occurring during a single timing interval. Therefore, changing the timing interval changes the count resolution. For example, increasing the length of a timing interval increases the number of transition signals that will step the counting means 113 before it is reset and will increase the value of the digital number supplied to the output means 114. The output means transmits digital representations of the number of transitions via bus 115 to display 106 where they appear as symbols. 
     FIG. 1C illustrates tested device 100 with 128 test points (#1, #2, . . . , #128) 101 connected to bus 102. The tested device 100 typifies high speed, complex logic having many points which must be simultaneously monitored for extended periods. While the details of the tested device 100 are otherwise irrelevant to the invention, the illustrative test points 102 show the variety of connections possible. 
     In operation, the system of FIGS. 1A-1C prints on paper 107 a summary of signal activity at test points #1 (high voltage), #4 (DAC output) and #5 (switch output) for a prespecified time window and to a prespecified time resolution. First, cable 102 of multiplexer 103 is connected to test point pins #1, #4 and #5 of tested device 100. Then, selection means 110 in processor 109 is given access to criteria specifying test start and test stop times, level-to-polarity relationships, and desired resolution intervals. Thereafter, multiplexor 103 examines each of Pins #1, #4 and #5 in sequence and sends signals to analog-to-digital converter 104 which then supplies for each signal corresponding digital values. The processor 105 input means 109 sends the digital values to the selection means 110 which supplies electric signals if the values occur within the specified start-to-stop time interval. 
     Transition recognition means 112 sends transition signal to counting means 113 which counts the number of signals transitions occurring within the time interval whenever the electric signal level changes. Output means 114 then provides digital values to display 106 permitting the placement of one row of symbols at a time, for each test point in sequence, on the paper 107. 
     Detailed Description 
     The invention will now be described in detail with reference to two embodiments of the invention shown in FIGS. 2A through 5. Both embodiments enable a person skilled in the art to make the invention and one also sets forth the best mode contemplated by the inventors for carrying out the invention. The functional blocks of FIGS. 2A-2B illustrate the overall configuration of a system incorporating the invention. FIGS. 3-5 detail how commercially available computer and interface circuits combine to practice the invention. A fully commented and self-explanatory source code listing, filed herewith and incorporated herein, illustrates an implementing program. 
     Referring first to FIG. 2A, the blocks represent registers, counters and other logic circuits required to perform operations necessary to carry out the invention. Registers 200, 201 and 202 store data defining the time window during which signals at each tested point in the tested device are monitored for recording. A stack pointer 203 records a memory address at which is found the number of the current line being monitored and related control information for that line. Registers and counters 204-214 store control information, received from a memory, related to signals detected on a particular line. If desired, there may instead be one set of such registers and counters 204-214 for every line monitored. The stack pointer 203 would then indicate the information in one set of registers and counters 204-214 at a time. 
     Adders 216, 217 and 218 receive addend and augend information at inputs and provide sum information at their respective outputs. Comparators 219-225 supply outputs indicating whether specified values at their inputs are equal or not equal. Logical AND circuits and OR circuits 226-242 provide outputs in accordance with their designated functions. For example, AND circuit 226 gates a sum from adder 216 to interval register 201 upon the occurrence of a signal indicating time t1. OR circuit 240 provides count-enabling gate signals to the counters 210 and 211 whenever there is an input larger than zero from either comparator 224 or 225. AND circuit 228 provides a gating output to AND circuits 229 and 230 only if there are outputs from comparators 221-223 simultaneously. The contents of the active buffer 212 and inactive buffer 213 are transferred to a print buffer 214 for recording by a printer 215 under control of circuits 235-242. 
     Each selected test point&#39;s associated data may either be allotted a separate set of registers and counters or separate memory locations. In both cases, time information applies to all points tested during a given time. A time scale quantity S and interval quantity I are initially loaded into the scale register 200 and interval register 201 and a signal duration quantity D is loaded into the duration register 202. The interval quantity I in the register 201 indicates the time window or repetition rate at which signals on each line are examined while the duration D in register 202 indicates the length of the entire test. Each interval is divided into S equal divisions fixed by the scale quantity S in register 200. The scale quantity S is transmitted through the adder 216 and at time t1, in effect increments the interval register 201. Thus, at each time t1, the quantity I in the interval register 201 is increased by the quantity S from the scale register 200. When the quantity I in the interval register 201 equals the duration D in the register 202, comparator 219 indicates that D is less than I. 
     Normally, the upper comparator 219 output (wherein D is equal to or greater than I) indicates a test is in progress and the lower output (wherein D is less than I) occurs whenever the designated time for a test has been exceeded. 
     Stack pointer counter 203 contains a quantity SP which selects (gate stack, FIG. 2B) information corresponding to each line tested. The stack pointer counter 203 is incremented +1 at time t1 and is reset to its base count at time t24. The output of the stack pointer counter 203 is increased by one in adder 217 and supplied to select the next line while the current value SP is compared to a predetermined number &#34;24&#34; by comparator 220. The number &#34;24&#34; is selected because a maximum of 132 print positions are available on normal printer output paper giving five print positions for each of 24 test points plus 12 extra positions for a time indication. 
     Inputs #1-#128 are examined at a frequent rate, but much slower than the stack pointer 203 is stepped by t1 signals, and each detected signal level and scanned line number is placed in the corresponding register 204 and 209. If any line level has changed since the last time the line was accessed, the registers and counters 204-213 record that new level. 
     The level register 204 receives for each value in the stack pointer 203, the signal level on each selected one of the lines #1-#128 in turn. The position of the stack pointer 203 determines which line&#39;s information is in the registers and counters 205-208 and 210-213. For each examined line, the stack pointer steps through all 24 accessible data locations. In a preferred embodiment, no pointer stepping occurs until one of the inputs become active. If the currently examined input line number in register 209 matches any pin number address placed in register 208, then at time t1, the contents of the level register 204 are entered into the current status register 205 and the previous contents of the current status register 205 are transferred via AND gate 227 to the last status register 206. The comparator 221 compares the contents of the current status register 205 with the contents of the last status register 206 and indicates on line L≠C (active) that the level in the register 204 has changed. The event register 207 is initially loaded with an indication of whether the &#34;up&#34; level or the &#34;down&#34; level for the particular line identified in the pin number register 208 is &#34;up&#34; or &#34;down&#34; for the &#34;active&#34; state. Comparator 222 indicates on line E=Active when the specified event E in the register 207 is active and comparator 223 indicates on output line P=I, when the specified pin number P in register 208 equals the currently scanned input line number specified in the input number register 209. Thus, for each scanned line matching the information accessed by the stack pointer, the output of AND circuit 228 occurs whenever the level detected for that line changes and is in the direction of an active event. 
     The number of outputs from the AND circuit 228 are counted in active counter 210, while the number of inactive indications (L=C) from comparator 221 are tracked in inactive counter 211 by selectively gating AND circuits 229-232 to adder 218. For example, active counter 210 is incremented by adder 218 whenever there is an &#34;active&#34; output from AND circuit 228 and inactive counter 211 is incremented by the same adder 218 whenever there is an &#34;inactive&#34; output from comparator 221. The outputs of the counters 210 and 211 are examined by comparators 224 and 225 at time t2 and, if either of them is zero, the corresponding active buffer 212 or inactive buffer 213 transmits an appropriate character to the print buffer 214. If the active or inactive counters 210 and 211 are not zero, then their actual count contents are sent to the print buffer 214. Thus, the print buffer 214 receives the contents of either the buffer 212 and 213 or the counters 210 and 211 depending upon their values. The print buffer 214 transfers these quantities to the printer 215 through gate 242 when a print signal (FIG. 2B) indicates that a test period (duration) is over. If, in addition, the print line length is not exceeded (SP&lt;24), the stack pointer is again incremented at time t1 and its contents accessed (gate stack, FIG. 2B). 
     Referring now to FIG. 2B, the generation of timing and gating signals will be explained. An oscillator 243 periodically supplies signals to counter 244 through gate 247 which is operated (by inverted 248) as long as time t24 does not occur. The outputs of counter 244 are provided on a plurality of lines t1 through t24 in sequence as the counter is stepped by signals at its +1 input. The counter 244 is initially reset by a D&lt;I signal at its reset input indicating that the prespecified timing period D has not elapsed. The counter 244 steps +1 and thus places signals on lines t1 through t24 until a signal occurs on line t24. When this occurs, the signal on t24 is inverted by circuit 248 to block further stepping signals to counter 244 from the oscillator 243. The signal t24 is also supplied to AND circuit 249 causing a print output therefrom when the predetermined time period, as indicated by signal D≧I from FIG. 2A, elapses. This signal is supplied to AND circuit 250 which supplies a gate stack output when the stack pointer is less than 24 as indicated by the line SP&lt;24 from FIG. 2A. A gate input connects oscillator 243 to counter 244 whenever there is a signal on any one of the test points #1 through # 128 connected through single-shots 245 to an OR circuit 246. Thus, the counter runs only when one of the inputs becomes active. 
     Operation of the embodiment of FIGS. 1-2 will now be described. In FIG. 2B, the counter 244 is initially reset to start at time t1 by the presence of a signal on the reset line D&lt;I. The timing signal t1 increments the stack pointer 203 (previously reset at time t24), and comparator 220 indicates that the stack pointer position value is less than 24. The adder 217 output selects one set of registers and counters 200-214 (or loads a single set with data from a memory. In any event, the contents of a location specified on this address stack line appear in registers 200 through 214 from the gate stack line. The signal t1 repeatedly increments the value in the scale register 200 into the interval register 201 until the comparator 219 indicates that the value in register 200 exceeds the duration value in register 202. When this occurs, the current input number in register 209 is compared against the pin number in register 208. Since D≧I, the stack pointer 203 increments repeatedly to place different pin number values in register 208. When the comparator 233 indicates that a particular pin number in register 208 matches the input number in register 209, and the event register 207 indicates that the line is active, an output from AND circuit 228 is supplied to the counters 210 and 211 and the buffers 212 and 213. Otherwise, if a match is not found, the counter 244 stops stepping until another event is detected on lines #1-#128 by single shots 245 and OR circuit 246, to reset the stack pointer and start a new search for a comparison of pin number and input number. Each time that a comparison occurs, the current level (in register 204) of the signal on the line is compared by means of the registers 205 and 206 and comparator 221 to determine whether the current level is or is not different than the prior level. In the active case, if there is a change, and the pin number matches the input number for the active line, then the active counter 210 is incremented by the adder 218 and the sum is placed in the print buffer 214 for that line. In the inactive case, counter 211 is instead incremented. If a counter 210 or 211 is empty, buffer 212 or 213, respectively, is gated to the print buffer 214, the printed output shown in FIG. 6, section 601, is generated line by line as the print buffers 214 transfer their contents to the printer 215 at each time t24. 
     Referring to FIGS. 3-6, another embodiment of the invention illustrates how a commercially available computer is adapted for practicing the invention. A self-explanatory listing of source code usable on a commercially marketed IBM Series/1 computer is incorporated herein for completeness. An overview of the IBM Series/1 computer system appears in the Series/1 Digest (Third Edition, September 1978) published by the IBM Corporation, Form No. G360-0061-1. 
     In FIG. 3, test point lines, for example #1 through #59 of analog input bus (AI) channel 102, are connected to the input/output channel 28 by a circuit 103 which multiplexes the lines onto a digital input/output channel 28 attached to processor 105. Each single line of the analog input bus 102 connects to multiplexer 103 which supplies analog voltages to a multi-range amplifier 300. The multi-range amplifier connects to analog-to-digital converter ADC 104 which supplies digital values equivalent to the analog voltage supplied thereto and a sensor input/output circuit 301 places these digital values on the input/output channel 28. A detailed description of a commercial embodiment of this circuit is the IBM 4982 Sensor Input/Output Unit described in the referenced Series/1 Digest. 
     Referring now to FIG. 5, details of a circuit for connecting the tested lines (analog input channel 102) to the digital input/output channel 28 are shown for two sample lines, #1 and #2. Any number of additional lines and A1 channels 102 may be provided. Each line #1 and #2 consists of a pair of wires, plus (+) and minus (-), and a grounded shield. The plus wire connects to a resistor 509 or 511 and the minus wire connects to a resistor 510 or 512. Individual field effect transistors 513 through 516 are selected by a channel address register 506 and a multiplexer control logic 507 which are both controlled by the processor 105 of FIG. 4A. Depending upon the output of the channel address register 506, one pair, 513 and 514 for example, of the transistors will be gated to provide both the plus and minus signals to a group switch 500 which is operated under control of the multiplexor control logic 507. Group switch 500 outputs are amplified by a differential amplifier 501 having a variable automatic gain controlled by a gain decoder 504. The controlled level output of the differential amplifier 501 is converted to digital values by the analog-to-digital converter 104 which digital values are supplied to zero correction logic 502 and error checking and status logic 505 prior to being placed on the input/output channel 28 by data register 503. 
     In FIG. 4A, a processor, for example, the IBM 4953 Processor described in the referenced Digest is shown. The processor operates upon data present on the input/output channel 28 and includes display 409, which may comprise a printer, a local control storage 407 and a main storage 408 which may hold information of the type described with respect to the FIG. 2A embodiment. Internal registers 403-405 connect with an arithmetic and logic unit 406 and storage devices 407 and 408 by means of a processor bus 400. The processor bus 400 transfers information to and from the main storage 408 locations specified in a storage address register 403 through storage data register 404. For example, using the conventions of the first embodiment (FIGS. 2A-2B), the stack pointer 203 contents may be removed from main storage 408 through storage data register 404, placed in the storage address register 403 to address further data, such as the data in registers 200 through 214, in main storage 408. The data in main storage 408 is thus brought out to storage data register 404 and made available to both the display 409 and the input/output channel 28. For convenience, Table I correlates legends used in the two embodiments. 
     
                       TABLE I______________________________________          FIGS.   FIG.   PROGRAM LABELTITLE          2A-B    4B     (APPENDIX)______________________________________START                  450    STARTIMESTOP                   451    STOPTIMESCALE          200     452    TSCALEINTERVAL       201     453    TSCALECSINPUT NUMBER   209     454    PINNOLEVEL          204     455    LEVELDURATION       202     456EVENT          207     457    EVENTYPEPIN NUMBER     208     458    PINSADDRPIN NAME               459    PINSNAMSLAST STATUS    206     460CURRENT STATUS 205     461    CURSTATACTIVE COUNTER 210     462    ACTCNTINACTIVE COUNTER          211     463    INACTCNTACTIVE BUFFER  212     464    ACHARSINACTIVE BUFFER          213     465    INACHARSPRINT BUFFER   214     466    PRTBUFSTACK POINTER  203     467______________________________________ 
    
     Referring to FIG. 4B, a map of locations in the main storage 408 illustrates how the data destined for registers and counters such as 200-214 (which may themselves be locations in storage 408) may be arranged. The main storage 408 map is divided into three areas including an input buffer 447, a stack 448 and a stack pointer 449. Each location in main storage 408 may be addressed by the storage address register 403 and brought into the storage data register 404. In the input buffer 447 area, there are provided a number of identified locations 450, 451, 452 and 456 for each test run defining the time of the test in terms of a start time, a stop time, a duration (prespecified time between line analyses), and a scale factor (divisions of an interval). A current signal portion 453-455 of the input buffer 447 identifies the number of the current input line being examined, the signal level on that line and the interval which has passed since examination started. The stack 448 consists of one interrelated set of control data 457-466 for those of tested lines #1-#59 which are to be analyzed. For each such line for example, #1, #5, #4, #6, etc. (FIG. 6), a particular event type is designated as &#34;up&#34; or &#34;down&#34; and the line is identified by its pin number and name. For example, a positive level is &#34;up&#34; for line #4, and &#34;down&#34; for #31. An area 460 indicates the value of the last examination of the signal on the line and 461 indicates the current value of the signal. Transition counters indicate the number of equalities between the last status 459 and the current status 460 as active counts 462 and inactive counts 463 since the last time that the time interval 453 equaled the duration 456. For example, if the active level is &#34;up&#34;, equalities of positive signals are counted in the active counter 462 and negative ones in the inactive counter 463. Level buffers 464 and 465 store the symbols for the active and inactive states used in place of the counter 462 and 463 contents when they are zero, etc. A print buffer 466 receives symbols from either the buffers or the counters and holds the next symbol to be printed. 
     Operation of the embodiment shown in FIGS. 3-5 becomes apparent from an explanation of the illustrative printout shown in FIG. 6. The printout comprises a header section 600 and an output section 601. The header section 600 designates, for every one of the input line numbers preselected for analysis #1, #5, . . . #31, a particular signal type, number, name, active level, and initial level. For example, line number 009, named T9, is a signal type 1 and is initially at a plus level which is designated as the &#34;up&#34; state. Signal number 031 is signal type zero, is named T31, and has its plus level defined as the &#34;down&#34; level. The test section of the printout 601 comprises a sequence of symbols indicating for each selected line, its levels and number of transitions between levels. For example, line number 004 is initially positive and then at time 0.500 becomes negative. Line 006 is initially negative and at time 0.500 becomes positive. When line 004 changes from plus to minus, it does so with no transitions in addition to the change. However, when line 006 changes from minus to plus, there are five transitions before the change occurs and six afterwards. When the number of transitions exceeds 9, an asterisk appears; as in line 001 at time 1.300. There are no levels detected on line 020, the T at time 0.500 indicating a single transition and the A at time 1.100 indicating activity on the line without any transitions. Table II summarizes the symbols of FIG. 6. 
     
                       TABLE II______________________________________SYMBOL            MEANING______________________________________|        Inactive Level+                 Active LevelT                 Transition without             change of indicationA                 External signal*                 More than nine             transitions______________________________________ ##SPC1## ##SPC2## ##SPC3## ##SPC4## ##SPC5## 
    
     While the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.