Static stimulus tester for microprocessor systems
BACKGROUND OF THE INVENTION 
     This invention is concerned generally with testing of microprocessor systems, and more particularly, with a device for controlling and monitoring the microprocessor in the system. 
     With the rapidly escalating use of microprocessors in electronic systems of all kinds, the testing and debugging of such systems has become a major concern. In the prior art, it is known to use &#34;signature analysis&#34; at various points in the system. This can be accomplished with a device such as the Model 5004A by Hewlett-Packard Company, which compares a known &#34;good&#34; bit stream against the empirical bit stream measured at selected test points in the system. Although some information is obtained through the signature analysis, detailed information about the system operation is not revealed. 
     The use of logic state analyzers such as the Model 1661A by Hewlett-Packard Company provides more information about the system under test. These analyzers provide passive monitoring of the hardware and measurement of logic levels on the system data bus, address bus and control bus lines. Although information about the system is received, control of the system is not obtained through such devices. 
     The deficiency of logic state analyzers related to control has been remedied by the use of in-circuit emulators such as the ICE-80 (8080 in-circuit emulator) from Intel Corporation, which are microprocessor based test systems which perform exactly like the microprocessor component system under test. Generally, the emulation of the microprocessor is accomplished on a small computer system, so that the user has some control over data entry and output into the system under test. However, detailed control of each microprocessor pin is still not possible. 
     In yet another level of sophistication of the in-circuit emulator, a &#34;stand in&#34; for the microprocessor has been developed which enables the user to single step through the normal sequencing of the microprocessor in the system under test. Even with the use of these stand in testers, it is still a problem with the testing of microprocessor systems in that control of the microprocessor is limited to the single &#34;machine cycle.&#34; That is, the microprocessor can only be &#34;frozen&#34; or stopped in certain very specified electrical cases. 
     SUMMARY OF THE INVENTION 
     In accordance with the illustrated preferred embodiments, the present invention provides a device which takes the place of the microprocessor in a microprocessor-based system, and which provides the user with manual control and monitoring of the logic level of each separate input or output pin corresponding to the same pin of the single chip microprocessor of the system under test. Thus, a device according to the invention allows the user to manually control any signal within the system that the system microprocessor would normally control, statically adjusting the logic levels of each signal line without regard to order or past history of the system. The user can therefore verify the operational status of any part of the system, whether or not the system, as a whole, is operational. Feedback loops of the system can be broken, and intermediate points of the loop directly accessed. Individual pins can be electrically stimulated and monitored to locate a &#34;stuck&#34; bit. Additionally, the user can exercise selected communications paths in the system, while monitoring the signal integrity at all points. 
    
    
     DESCRIPTION OF THE DRAWING 
     FIG. 1 is a block diagram of a statis stimulus tester (SST). 
     FIG. 2 is a view of the front panel, of the static stimulus tester, including keyboard and display. 
     FIG. 3 is a schematic diagram of the controlling microprocessor used in the SST. 
     FIG. 4 is a schematic diagram of a ROM and a RAM used in the SST. 
     FIG. 5 is a schematic diagram of the keyboard and a part of the display of the SST. 
     FIG. 6 is a schematic diagram of additional sections of the display for the SST. 
     FIG. 7 is a schematic diagram of the I/O interface bus of the SST which connects the SST to the system under test. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     A device according to the invention will sometimes be referred to hereinafter as a Static Stimulus Tester, or &#34;SST.&#34; In FIG. 1, there is shown a microprocessor (MP) 11 used in the SST, which may be, e.g., the model number 8080 available from the Intel Corporation, Sunnyvale, Calif. Processor 11 is accessed by the user through a keyboard 13, to be described in more detail hereinafter. Information from the processor is displayed on a display 15, which may be of the &#34;hexadecimal&#34; type. 
     Interconnection with the system under test is made via a series of pins, or &#34;Control I/O Ports&#34; 17, which correspond in number and physical arrangement with the pins of the microprocessor in the system under test. In operation, that processor is removed from the system under test, and Control I/O Ports 17 connected in its stead, preferably through a connecting cable 18. 
     The operating system for the SST is stored in a system ROM (read-only memory) 19 which may be e.g., an Intel 2708 EPROM. The information stored in ROM 19 directs the action of internal microprocessor 11 in communicating with keyboard 13, display 15, and Control I/O Port 17. A system RAM 21, such as an Intel 2114, provides temporary storage of data for use by internal microprocessor 11. RAM 21 is also used to store temporary programs that are entered as keystrokes on keyboard 13 in a manner similar to that employed in programmable calculators. 
     Referring now specifically to FIG. 2, there is shown, in more detail, a keyboard 13 which is specifically adapted for testing systems involving the Intel 8085 microprocessor. The keyboard will have a different set of keys if the SST is to replace a different microprocessor in the system under test, the arrangement of which will be evident to those skilled in the art after reading the totality of the present specification. 
     In FIG. 3, microprocessor 11 is shown in more detail including a microprocessor chip 23, an 8228 system controller 25, and a pair of 74LS367 address bus buffers 27 and 29. A number of logic gates are also included to provide the correct chip select and write enable signals to the SST system. 
     ROM 19 and RAM 21 are shown in more detail in FIG. 4 including the particular interconnections 31 between processor 11 and the various 2708 ROM chips. 
     In FIG. 5 are shown keyboard 13 and display 15 which includes four alphanumeric display elements 33, 35, 37 and 39 of the HP 5082-7340 type, available from Hewlett-Packard Company, Palo Alto, Calif. 
     FIG. 6 shows additional indicators used as part of display 15 such as a number of LED&#39;s 34, 36, and 38, used to prompt the user as the SST executes functions in normal system operation. 
     FIG. 7 shows Control I/O Port 17, including interconnections 41 to/from processor 11, and interconnects cable 43 to/from the system under test. 
     The invention will be best understood by means of an operational example. In particular, it will be assumed that the system to be tested involves the Intel 8085 microprocessor, which is to be replaced by the SST for system test purposes. As noted above, the keyboard of FIG. 2 is appropriate for such a system, and the different labels of that keyboard will be referred to in this example. In this particular example, the SST will be used to read data from the ROM or RAM of the system under test. To understand how the SST performs this function, it is helpful to know how the 8085 microprocessor, itself, executes this function. This information is known by those skilled in the art, but will be summarized here for completeness. To read data from memory, the 8085 microprocessor executes the following general sequence of events. All terms refer to I/O pins of the 8085 itself: 
     (1) System address is set to the location of memory to be read. 
     (1a) A15-A8 the upper address byte is set. 
     (1b) A7-A0 are set on the data lines of the 8085 microprocessor. 
     (2) The ALE bit is set to a logical 1. 
     (3) The ALE bit is set to a logical 0. (With the ALE returning to a logical 0, the lower byte of address is latched into the address latch in an 8085 system.) 
     (4) I/O memory line (IO/M) is set to a logical 0 indicating a memory operation. 
     (5) RD signal is set to a logical 0. 
     At this point, data from the address location of memory is on the system data bus. The 8085 microprocessor strobes this data into an internal register. 
     To perform this same general function with the SST, the following sequence of events are performed: 
     (1) The user removes the 8085 microprocessor from the system under test and installs SST cable 18 of FIG. 1 into the vacated socket. 
     (2) The user presses the key labeled ADR on SST keyboard 13. The SST will respond by blanking display 15, and turning on a light-emitting diode (LED) to indicate that four address nibbles are required before proceeding. These four nibbles will uniquely define a 16-bit address. 
     (3) The user now enters four digits via the keyboard. For example, the user may enter the hexadecimal numbers A B C D. 
     (4) The user now presses the key labeled ENTER, whereupon the following occurs: the 16 bits defined by the word ABCD are set to the proper control output ports; the 8-bit word AB is strobed into a latch 45 while the 8-bit word CD will be set into another latch 47. The SST now turns on an indicator LED 49 (labeled &#34;COM&#34; in FIG. 2) and waits for another user input. This completes the first step in the electrical sequence to read data from memory; namely, set the system address bus. When the ENTER key is pressed, the SST will automatically take the ALE line to a logical 1 and the ALE line to a logical 0. This will latch the CD address that was on the data bus into the address latch of the system under test (the address latch must be present in any 8085 microprocessor system). Thus, at this point, the address is effectively presented to the system memory. It can be noted that the address is set statically on the address bus of the system under test, so that the user can electrically verify the logic conditions of the address bus line using Direct Current or Static measurement techniques. 
     (5) The next operation the user will perform is to press the key labeled IO/M. When the user presses this key, the SST will light another indicator LED 51, 52 (labeled &#34;WAIT&#34; and &#34;D1&#34; in FIG. 2), an indication to the user that one digit must be entered. The SST is waiting for a 0 or 1 to be entered via the keyboard. The user will press the key labeled 0 and next press the ENTER key. When these two operations are complete, the IO/M line output from the 8085 microprocessor is now set to a logical 0 indicating a memory operation to be performed. Next, the user will press the key labeled RD. The SST will wait for a 1 or 0 to be entered. The RD control bit C2 of latch 53 (FIG. 7) is set to a logical 0. This action will set the RD signal of the system under test to a logical 0. 
     After this step is complete, the data from the system under test of the designated memory location should be present on the data bus of that system. To read the data bus with the SST, the user presses the key labeled RBUS. When this key is pressed, the following will occur: 
     (1) IC 47 of FIG. 7 is disabled. 
     (2) IC 55 of FIG. 7 is clocked by SST processor 11 of FIG. 1. 
     (3) Processor 11 on the SST reads the data clocked into IC 55 (this being the data that was present on the data bus of the system under test.) 
     (4) Processor 11 will write the data read from IC 55 to the SST display 15. In this way, the user can visually verify the logical condition of each bit on the data bus of the system under test. 
     The above-described &#34;MEMORY READ&#34; function is performed in response to user activation of a particular set of keys on the keyboard. Other functions are activated by different keys to be described immediately below. Upon activation of a key, processor 11 interrogates a &#34;Command Jump Table&#34; in ROM 19 to locate the ROM address of the routine corresponding to the key-defined function. Processor 11 then executes this function routine and any other routine which is called in the process of executing the function routine. 
     For a system under test in which the microprocessor is an 8085 by Intel Corp., the program listing of the &#34;Command Jump Table&#34; and the routines required to execute the keyboard commands is included herein as Appendix &#34;A&#34;. The SST operation resulting from this preferred keyboard and set of programs is summarized below where reference is made to the key labels (which are identical to the labels in the &#34;Command Jump Table,&#34; unless otherwise noted. 
     ADR 
     The ADR key, or address key, will put the SST into a mode where it is waiting for the user to enter 4 hexadecimal digits to be used as a 16 bit address for the microprocessor system under test. 
     DATA 
     The DATA key puts the SST into a mode where the microprocessor is waiting for the user to enter two hexadecimal digits to be used as 8 bits of data to be placed on the data bus of the system under test. 
     REO 
     The REO is short for Reset Output. When this key is pressed the SST will wait for the user to enter a logical 1 or a logical 0 on the keyboard, to be placed on the reset output line. 
     SOD 
     This is the abbreviation for Serial Data Output. When this key is pushed the SST will wait for the user to enter a logical 1 or a logical 0 very similar to the reset out function. 
     REP 
     This is the abbreviation for REPEAT. When the REPEAT key is pushed, the SST will repeatedly re-execute the last key entered, prior to the REPEAT key. 
     DEF 
     This is the abbreviation for DEFINED FUNCTION. This key is pushed to define a function, e.g., when the user desires to write his own program for the SST. The program itself is entered via keystrokes, much as the programs are entered into a programmable calculator. 
     CE 
     The abbreviation is short for CLEAR ENTRY, which clears the keyboard and awaits new data to be entered. 
     HLDA 
     This is the abbreviation for HOLD ACKNOWLEDGE. When this key is pushed the SST goes into a mode awaiting entry of a 1 or a 0, to be placed on the hold acknowledge line. 
     WR 
     This is the abbreviation for WRITE. When this key is hit the SST will wait for the user to enter a 1 or a 0, to be placed on the write enable output line. 
     INTA 
     This is an abbreviation for INTERRUPT ACKNOWLEDGE. When this key is hit the SST will await entry of a 1 or a 0, to be placed on the interrupt acknowledge line. 
     IO/M (referred to as IO&amp;M in the listing) 
     This is an abbreviation for the I/O, or Memory line. When this key is hit the SST goes into a mode waiting for the user to enter a 1 or a 0, to be placed on the I/O or memory output line. 
     LDA 
     This is the abbreviation for LOAD A REGISTER WITH MEMORY DATA. When this key is pressed the SST will go into a mode awaiting entry of 4 hexadecimal digits to be entered as the address. After the 4 digits have been entered the SST will automatically control all the bits necessary to read data back from memory at the address specified. 
     STA 
     This is the abbreviation for STORE A REGISTER INTO MEMORY. When this key is pressed the SST will await entry of 4 hexadecimal digits specifying a unique memory address. After the address is entered the SST will then wait for two more hexadecimal digits to be specified, as data to be written to the unique memory address. After this data has been entered, the SST will automatically perform all the necessary control to write those 8 bits of data into the memory of the system under test. 
     RESET 
     This is the abbreviation for RESET. When this key is pressed the SST will execute the internal program which is the same program executed when power is first turned on to the system. 
     RAM 
     This is the abbreviation for RANDOM ACCESS MEMORY TEST. When this key is pressed the SST awaits entry of 4 hexadecimal digits to be entered to specify a starting address for the test to be run. After the starting address is entered, the SST will then wait for 4 more hexadecimal digits to specify an ending address. When the ending address has been entered the SST will automatically perform a functional test on the system RAM between the address limits that were specified. 
     ROM 
     This is the abbreviation for READ ONLY MEMORY TEST. When this key is pressed the SST will go into a mode waiting for 4 hexadecimal digits to be entered. These hexadecimal digits are a starting address for the ROM test to be run. After the 4 digits have been entered the SST will automatically compare a test ROM plugged into the SST front panel against the ROM of the system under test specified at the starting address the user entered. 
     CLK 
     This is the abbreviation for CLOCK. When this key is pressed the SST will wait for a 1 or a 0 to be entered, to be outputed on the clock line. 
     RD 
     This is the abbreviation for the READ LINE. When this key is pressed the SST will wait for a 1 or a 0 to be entered. The 1 or 0 will be outputed on the read line. 
     F1, F2, F3 
     These three are user definable functions. When this key is pressed the SST will go into a mode waiting for the user to enter in a series of keystrokes to be executed as a program. After the keystrokes have been entered, the keystrokes corresponding to any of the keys labeled F1, F2 or F3 will be executed each time the user presses that key. 
     ALE 
     This is the abbreviation for ADDRESS LATCH ENABLE. When this key is pressed the SST will go into a mode waiting for a logical 1 or a logical 0 to be entered, to be outputed on the address latch enable line. 
     S01 
     This is the abbreviation for the STATUS 0 and 1 LINES on the 8085 microprocessor. When this key is pressed the SST will go into a mode waiting for any number 0, 1, 2, or 3 to be entered, which will be outputed on the two lines 0 and 1. 
     IN 
     This is the abbreviation for INPUT DATA to the accumulator. When this key is pressed the SST will await entry of two hexadecimal digits which specify an address of an input port. After the address has been specified by the user, the SST will automatically perform all the control necessary to execute an input instruction. The data from the input port specified will be displayed on the SST. 
     OUT 
     This is the abbreviation for OUTPUT ACCUMULATOR TO OUTPUT PORT. When this key is pressed the SST will await entry of two hexadecimal digits. These hexadecimal digits will specify the address of the output port. After the address has been entered the SST will then wait for the user to enter two more digits which will specify 8 bits of data to be written to the specified output port. After the data has been entered the SST will execute all the control necessary to write the data to the output port specified. 
     RBUS 
     This is the abbreviation for READ DATA BUS. When this key is pressed the SST will automatically strobe the data on the system data bus, and display the data on the 4 digit display located on the front panel of the SST. 
     ENTER (referred to as ENTR in the listing) 
     This is an abbreviation for ENTER DATA. When this key is pressed the data that is displayed on the SST 4 digit display will be entered into the SST and used as data for the command being executed. ##SPC1## ##SPC2## ##SPC3##