Cross References to Related Applications
U.S. Pat. No. 4,785,428 granted on Nov. 16, 1988 to Baqwa, et al., entitled "Programmable Memory Array Control Signals" and copending patent application Ser. No. 898,522 filed Aug. 21, 1986, of Johnson, et al., entitled "Apparatus for On-line Checking and Reconfiguration of Integrated Circuit Chips", both assigned to Intel Corporation, the assignee of the present invention.
Background of the Invention
2. Technical Field
The present invention relates to data processing systems, and more particularly to a method and apparatus for checking integrated circuit chips having programmable signal lines.
3. Background Art
U.S. Pat. No. 4,176,258 of Daniel Jackson, granted on Nov. 27, 1979, discloses a method and circuit for checking integrated circuit chips commonly known as functional redundancy checking (FRC). The basic principle is to have a master-checker pair of identical chips connected in parallel. Only one chip, the master, actually drives its outputs. The other chip, the checker, inhibits its outputs. There is checking circuitry on each identical chip. This checking circuitry is activated only on the chip designated as the checker, thus making it possible to fabricate the chips identically, with the advantage of only one part number and no external error checking circuitry. When activated, the checking circuitry compares the value on the output pins of the two chips. If the compared values differ, then an error is flagged.
In the prior FRC scheme, the time during which the comparison take place is not variable and is usually some fixed time after an output pin should have been driven. This is possible because the data-processing logic in the chip drives each output pin at a fixed time in the processor cycle. This also implies a maximum settling time for the pin value. If the external load is such that the output pin does not settle to its expected value before the checking circuitry makes its comparison, then the checking circuit will use the wrong value and flag a false error (or miss a real one).
The above-identified U.S. Pat. No. 4,785,428, discloses a memory control unit (MCU) that will generate any pattern of control signal timings to provide a range of timing controls for dynamic random access memory (DRAM) operations.
The transitions on the pins are user-programmable and do not occur at a fixed time in the processor cycle. In fact, the pin may even change twice in a cycle. An FRC logic must take this into account. Also, the external loads may cause settling times to vary so that the point of comparison of the output value has to be determined in a more complex manner.
It is therefore an object of the present invention to provide a redundant checking logic for integrated circuit chips the outputs of which are time-variant programmable.
Summary of the Invention
Briefly, the above object is accomplished in accordance with the present invention by window logic which creates a window associated with each programmed transition on the output pin. On the rising edge of the window, an error flip-flop is set. The flip-flop is merely set at this time; an error is not flagged. The window remains open for a fixed time period. During the time period that the window is open, if the output pin is ever correctly asserted, then the error flag is cleared. However, if the pin always remains incorrectly asserted, indicating an error, then the error flip-flop remains set. When the window closes (on the falling edge of the window pulse), an error report pulse is created. The value on the flip-flop at this time is reported to an error detection subsystem.
Description of the Drawings
The foregoing and other objects, features, and advantages of the invention will be apparent from the following more particular description of a preferred embodiment of the invention as illustrated in the accompanying drawings wherein:
FIG. 1 is a block schematic diagram of two integrated circuit chips wired in parallel in accordance with the principles of the present invention;
FIG. 2 is a more detailed block diagram of the window checking logic on chip A shown in FIG. 1 and,
FIG. 3 is a timing diagram of the operation of chip B shown in FIG. 1.
Description
Referring now to FIG. 1, two integrated circuit chips, Chip A and Chip B, are shown enclosed within the two dotted-line boxes. Both chips may be manufactured identically and therefore may have the same part number. Each chip has programming logic (10) fabricated thereon, which may be any integrated circuit which will respond to an input (12) and provide outputs (14, 15), which bear some predetermined relationship to the input, depending upon the function performed by the logic (10). A window error-checking logic (26) is fabricated on the chip and is shown in more detail in FIG. 2.
The set output (14) of the programming logic (10) is supplied directly to the set input of a signal latch (16). The reset output (15) of the programming logic (10) is supplied directly to the reset input of a signal latch (16). The output (18) of the signal latch (16) is supplied directly to one input of a three-state driver (20). The three-state driver (20) has an enable input (22), which is connected to a check input pin on the integrated-circuit package. The output (24) of the driver is connected to an external chip data output pin and is also connected to the window error-checking logic (26). When the check input pin (22) is energized, the driver (20) is disabled so that no data on the output (18) passes therethrough. The driver (20) may be any multistate device either totally self-contained on the chip such as a latch, a simple switch, or a blowable link, or may partially rely on an external signal, such as a check pin with its associated on-chip support logic.
Chip B is identical to Chip A. On Chip B, the check input pin (30), is tied to ground so that the driver (32) on Chip B is energized to a low-impedance state, allowing the data on output (34) to pass therethrough to the chip data output pin (36) of Chip B. All of the pins of Chip A and Chip B, with the exception of the check input pins, are wired in parallel. The chip data input (12) is supplied to both programming logic circuit (10) on Chip A and (38) on chip B. Therefore, both chips receive the same input data and should generate the same outputs (18, 34), if both chips are functioning properly. The output (34) of latch (40) passes through the driver (32) to the chip B data output (36). Since the chip data outputs of both chips are wired in parallel, this chip B data is supplied as an input to the window error-checking logic (26) on Chip A. This data is also supplied to the window error-checking logic (42) of Chip B.
The output of the latch (16) does not pass through the driver (20) on Chip A because this driver is energized to a high-impedance state by the positive voltage (+V) on the check input pin (22). However, the set pulse output (14) and reset pulse output (15) are applied to the window error-checking logic (26) where they are used for checking the chip data output (36) of Chip B. If there is a malfunction in either Chip A or Chip B during the period of time that the window is open, the window error-checking logic (26) will generate an output (27) over the error-output line.
Refer now to FIG. 2 which is a detailed block diagram of the window logic (26) of FIG. 1 and FIG. 3 which is a timing diagram. The set-pulse window logic (40) creates a window associated with each set-pulse programmed transition. Suppose that a pin is programmed to be asserted at quarter cycle T. Then the window logic (40) does the following. On the rising edge (42) of the window, a set-pulse error flip-flop (50) is set. The flip-flop is merely set at this time; an error is not flagged. The set-pulse window remains open until time T+4. During the time that the window is open, if the chip B output pin (36) is ever correctly asserted, then the error flag is cleared by resetting the set-pulse flip-flop via a line (24) activating the AND circuit (48). However, if the pin (24) always remains incorrectly asserted, indicating an error, then the set-pulse error flip-flop (50) remains set. When the window closes on the falling edge (46) of the window pulse, an error report pulse (54) is created through the AND circuit (52). The value on the set-pulse flip-flop (50) at this time is reported to an error detection subsystem.
There is identical window logic for the reset-pulse logic. This works in parallel with the set logic, exactly as described above. The two windows may be concurrently open but are independent of each other.
The reset-pulse window logic (60) creates a window associated with each reset-pulse programmed transition. On the rising edge (62) of the window, a reset-pulse error flip-flop (70) is set. The flip-flop (70) is merely set at this time; an error is not flagged. The reset-pulse window remains open until time T+6. During the time that the reset-pulse window is open, if the output pin (24) is ever correctly asserted, then the error flag is cleared by resetting the reset-pulse flip-flop (70) through the AND circuit (68). However, if the pin (24) always remains incorrectly asserted, indicating an error, then the reset-pulse error flip-flop (70) remains set. When the window closes, on the falling edge (66) of the window pulse, an error report pulse (74) is created through the AND circuit (72). The value on the reset-pulse flip-flop (70) at this time is reported to an error detection subsystem.
Refer to FIG. 3. Suppose for example, a pin is programmed to be set at time T and reset at time T+2. Then, the set window will be open from T to T+4, and the reset window from time T+2 to T+6. If the pin gets set before time T+4 (as shown by the dotted lines CHIP B OUTPUT) and reset before T+6, then at that time the SET ERROR PULSE F/F and RESET ERROR PULSE F/F are both reset, and neither a set error nor a reset error is reported. If the pin never gets set between T and T+4, then at T+4, a set error is reported. If the pin never gets reset between T+2 and T+6, then at T+6 a reset error is reported.
The circuit shown in FIG. 2 is a comparison circuit; however, it is not intended that the present invention be limited to comparison checking. The principles are the same, regardless of the type of checking operation performed.
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 the foregoing and other changes in form and detail may be made therein without departing from the scope of the invention.