GB2125591A - Checking sequential logic circuits - Google Patents
Checking sequential logic circuits Download PDFInfo
- Publication number
- GB2125591A GB2125591A GB08321373A GB8321373A GB2125591A GB 2125591 A GB2125591 A GB 2125591A GB 08321373 A GB08321373 A GB 08321373A GB 8321373 A GB8321373 A GB 8321373A GB 2125591 A GB2125591 A GB 2125591A
- Authority
- GB
- United Kingdom
- Prior art keywords
- state
- circuit
- code
- transition
- checking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/085—Error detection or correction by redundancy in data representation, e.g. by using checking codes using codes with inherent redundancy, e.g. n-out-of-m codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
A sequential logic circuit includes means for checking, while the circuit is in operation, that it is stepping correctly from one state to the next. The current state of the circuit is encoded as X0-X3. That encoded value is compared with a predicted value Y0-Y3 derived in response to the previous state of the circuit itself and those signals that cause the transition from the previous to the current state. If the two do not match the circuit has not stepped to the correct state. Reduction in hardware is achieved by allowing certain states to share the same encoded value. <IMAGE>
Description
SPECIFICATION
Improvements in or relating to checking sequential logic circuits
This invention relates to checking the operation of a sequential logic circuit.
A sequential logic circuit is a circuit with a plurality of distinct internal states and which changes stage in a predetermined manner in response to one or more condition input signals.
It is often desirable to provide some means for checking the operation of such a circuit during its actual operation to ensure that it is operating correctly. One way of doing this would be to duplicate the entire circuit and to compare the states of the duplicated circuits at each stage of operation.
Any discrepancy between the duplicated circuits would indicate an error. However, the disadvantage of this method is that it is very expensive in terms of the amount of hardware required.
One object of the present invention is to provide a novel way of checking a sequential logic circuit which does not require duplication of the circuit.
According to the invention, there is provided a sequential logic circuit having checking means comprising: - a first encoder responsive to the current state of the circuit, for producing a first code dependent on that state; - a second encoder responsive to the state of the circuit prior to a transition to a different state and also to the signal or signals effective to cause that transition, for producing a second code indicating a predicted value for the first code in the next state; and - means for comparing the first code produced in a current state with the second code produced for the transition to that state and indicating if there is any discrepancy between them.
According to another aspect of the invention there is provided a method of checking the operation of a sequential logic circuit, which method comprises: - for a transition from one state of the circuit to a different state deriving in response to the said one state of the circuit and the signal or signals effective to cause that transition a prediction relating to the said next state; and - in the said next state determining from the actual state whether the prediction is fulfilled.
Preferably the first and second codes are one-outof-n codes, i.e. each consists of n bits, one only of which has one predetermined binary value, the rest having the other binary value.
Advantageously some at least of the states of the circuit have the same first code but no two states have the same first code if:
(i) one is the successor of the other, or
(ii) they both have the same predecessor.
As will be seen, this reduces the number of different code values and hence the amount of hardware required for producing the codes.
A circuit for checking means in accordance with the invention will now be described in greater detail with reference to the accompanying drawings, in which:
Figure 1 is a state diagram of the circuit, and
Figure 2 is a circuit diagram of the checking means.
An important characteristic of any sequential logic circuit is its state diagram. For the sake of a concrete example it will be assumed that the circuit whose checking means is to be described has the state digaram shown in Figure 1.
Referring to Figure 1,the circuit has, in this particular example, eight states S1 to S8. The circuit is synchronous and is capable of making a change of state at predetermined instants defined by clock signals. For some states the circuit automatically makes a transition at the next clock signal to a single predetermined successor (e.g. S2 to S3). As an alternative, a state may have several possible successors, the particular transition executed depending on the value of particular condition inputs at the time the clock signal occurs. Thus if the circuit is in state S1 it will change to S2, S4 or S7 depending on which of three signals A, B and C is asserted. In the case of Slit is possible for none to be asserted at the clock signal.The circuit then remains in state S1 instead of making a transition to a different state.
Similarly, if it is in state S7 the circuit will either make a transition to state S8 if a signal D is asserted or remain in the same state if not.
One particular circuit implementation which will yield a state diagram as shown in Figure 1 has a bistable for each state, only the particular bistable corresponding to a state being set during that state.
In that case Figure 1 may be regarded as a circuit diagram with each box representing a bistable and, as will readily be understood, the necessary gating (not shown) being provided to cause each bistable to trigger the appropriate successor.
Referring now to Figure 2, this shows means for checking the operation of a sequential logic circuit having the state diagram of Figure 1. The checking means includes an encoder consisting of four OR gates 10-13. These encode the current state of the circuit (input on one of lines S1 to S8) to produce a four-bit output code X0-X3 indicative of this state.
With the implementation described above each input S1 etc. may be supplied as a direct input from the "set" output of the corresponding bistable. The codes for the eight states are shown in Figure 1. For example, it can be seen from Figure 2 that in state
So, gate 13 is enabled and gates 10-12 are disabled.
Hence, X0=X1 =X2=0 and X3=1, so that the code for state S1 is 0001.
It will be observed that each code consists of a one-out-of-four code. Also, the codes for the states are not unique: for example, state S5 has the same code 0001 as state S1. However, it is arranged that no two states which can be reached directly by branching from the same state (i.e. have the same predecessor) are given the same code value. For example, states S2, S4 and S7 which can all be reached by branching from state S1, are assigned different code values 0010, 0100 and 1000. Similarly where one state is the successor of another they have different code values.
The checking means also includes a second en coder consisting of four AND/OR gate combinations 20 to 23 and a register of four bistables 30 to 33. This register is clocked at the time a transition can take place to capture a prediction, output as the four-bit code Y0-Y3, of the code value which will obtain after thattime. The prediction is produced by the gate combinations 20 to 23, which receive the state existing up to the transition on the lines S1 to S8 and the condition inputs Ato D with their inverses.
For example, if the circuit is in state S1 when the transition can occur and the condition signal C is true, it can be seen from Figure 2 that gate 20 is enabled and gates 21-23 are disabled. Hence Y0=1 and Y1 =Y2=Y3=0. Thus, the encoder correctly predicts that the next state should be state S7 (code 1000). Although state S3 has the same code value, there is no serious ambiguity, since state S3 cannot be reached directly from state S1.
The code X0-X3 corresponding to the present state of the sequential circuit is compared in a comparator 40 with the predicted code Y0-Y3 stored in the bistables 30-33. If these two codes are equal when the comparator is clocked, the output of the comparator 40 remains low, indicating correct operation.
However, if there is any difference between the codes, the output of the comparator 40 goes high, indicating an error.
It can be seen that the checking means is capable of detecting that the circuit has not stepped correctly from one state to the next, in particular because of any of the following types of error:
(a) No state
(b) "Multiple" states (i.e. more than one X bit set)
(c) Incorrect branching
(d) Stuck-in-state
In addition it will detect wrong action by the checking means, since the X code continues correctly but the Y code predicts an erroneous next state.
It should be noted that the use of a one-out-of-four code (or, more generally, a one-out-of-n code) for encoding the states is preferable to a conventional binary code where each code may contain more than one binary "1", since the latter could mask multiple state errors.
It will be understood that the inputs to the checking circuit shown in Figure 2 are dependent on the particular state diagram shown in Figure 1, and must be adjusted for a circuit with a different state diagram to operate in the general way described.
The checking means thus provides a powerful way of checking the operation of the sequential circuit in the cour of operation, without the necessity for duplicating the entire circuit. The number of bistables in the checking means described above is less than the number which would have been required if the sequential circuit (in the implementation described) had been duplicated. This advantage would be even greater for larger sequential circuits having more states. Besides the cost advantage of fewer components it also renders the circuit and checking means especially suitable to be implemented on the same integrated circuit chip, since the checking means occupies a smaller chip area.
The circuit of Figure 1 may be used, for example, as asequence controller.
The invention does not require a separate bistable for each state, provided the state is made accessible to the encoders, which will, if the state is not itself supplied as a one-out-of-n code, require additional gating. And the invention may be applied to asynchronous sequential circuits.
Claims (14)
1. A sequential logic circuit having checking means comprising: - a first encoder responsive to the current state of the circuit, for producing a first code dependent on that state; - a second encoder responsive to the state of the circuit prior to a transition to a different state and also to the signal or signals effective to cause that transition, for producing a second code indicating a predicted value for the first code in the next state; and - means for comparing the first code produced in a current state with the second code produced for the transition to that state and indicating if there is any discrepancy between them.
2. A circuit as claimed in claim 1, in which the first and second codes are one-out-of-n codes.
3. A circuit as claimed in claim 1 or 2, in which some at least of the states of the circuit have the same first code but no two states have the same first code if:
(i) one is the successor of the other, or
(ii) they both have the same predecessor.
4. A circuit as claimed in any one of the preceding claims, in which the circuit comprises a plurality of bistable elements, one for each state, and in each state a different one of the said plurality is in one binary state and the remainder are in the other binary state.
5. A circuit as claimed in any one of the preceding claims, in which the second encoder comprises: - logic responsive, at a time a transition can occur, to an indication of the state prior to that time and to any condition signal or signals effective to select between a plurality of alternative possible states for the circuit after that time to output a code value, and - means for storing the last-mentioned code value produced at the said time a transition can occur as the said second code to make it available during the succeeding state.
6. A method of checking the operation of a sequential logic circuit, which method comprises: - for a transition from one state of the circuit to a different state deriving in response to the said one state of the circuit and the signal or signals effective to cause that transition a prediction relating to the said next state; and - in the said next state determining from the actual state whether the prediction is fulfilled.
7. A method as claimed in claim 6, in which the current state is encoded as a first code and the said prediction is a second code indicating a predicted value for the first code following the transition, the values of the first and second codes being compared to indicate if there is any discrepancy between them.
8. A method as claimed in claim 7, in which the first and second codes are one-out-of-n codes.
9. A method as claimed in claim 7 or 8, in which some at least of the state of the circuit have the same first code but not two states have the same first code if:
(i) one is the successor of the other, or
(ii) they both have the same predecessor.
10. A method as claimed in any one of claims 7 to 9, in which the circuit comprises a plurality of bistable elements, one for each state, and in each state a different one of the said plurality is in one binary state and the remainder are in the other binary state.
11. Apparatus for checking the operation of a sequential circuit, which apparatus in operation employs a method as claimed in any one of claims 6 to 10.
12. A sequential circuit and checking means substantially as hereinbefore described in reference to and as shown in Figure 1 and Figure 2 of the accompanying drawings.
13. Checking means for a sequential circuit substantially as hereinbefore described in reference to
Figures 1 and 2 and as shown in Figure 2 of the accompanying drawings.
14. A method of checking the operation of a sequential circuit substantially and hereinbefore described in reference to Figures 1 and 2 of the accompanying drawings.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB08321373A GB2125591B (en) | 1982-08-14 | 1983-08-09 | Checking sequent logic circuits |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8223437 | 1982-08-14 | ||
GB08321373A GB2125591B (en) | 1982-08-14 | 1983-08-09 | Checking sequent logic circuits |
Publications (3)
Publication Number | Publication Date |
---|---|
GB8321373D0 GB8321373D0 (en) | 1983-09-07 |
GB2125591A true GB2125591A (en) | 1984-03-07 |
GB2125591B GB2125591B (en) | 1986-01-22 |
Family
ID=26283595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB08321373A Expired GB2125591B (en) | 1982-08-14 | 1983-08-09 | Checking sequent logic circuits |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2125591B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0319185A2 (en) * | 1987-11-30 | 1989-06-07 | Tandem Computers Incorporated | Method and apparatus for checking a state machine |
DE3838257A1 (en) * | 1988-11-11 | 1990-05-17 | Asea Brown Boveri | Device for detection of selected events in a computer system |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1157033A (en) * | 1966-09-13 | 1969-07-02 | Ibm | Computing Units |
GB1312791A (en) * | 1969-07-31 | 1973-04-04 | Ibm | Arithmetic and logical units |
US3925647A (en) * | 1974-09-30 | 1975-12-09 | Honeywell Inf Systems | Parity predicting and checking logic for carry look-ahead binary adder |
GB1473961A (en) * | 1974-09-09 | 1977-05-18 | Ibm | Data handling apparatus |
-
1983
- 1983-08-09 GB GB08321373A patent/GB2125591B/en not_active Expired
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1157033A (en) * | 1966-09-13 | 1969-07-02 | Ibm | Computing Units |
GB1312791A (en) * | 1969-07-31 | 1973-04-04 | Ibm | Arithmetic and logical units |
GB1473961A (en) * | 1974-09-09 | 1977-05-18 | Ibm | Data handling apparatus |
US3925647A (en) * | 1974-09-30 | 1975-12-09 | Honeywell Inf Systems | Parity predicting and checking logic for carry look-ahead binary adder |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0319185A2 (en) * | 1987-11-30 | 1989-06-07 | Tandem Computers Incorporated | Method and apparatus for checking a state machine |
EP0319185A3 (en) * | 1987-11-30 | 1990-11-28 | Tandem Computers Incorporated | State machine checker |
DE3838257A1 (en) * | 1988-11-11 | 1990-05-17 | Asea Brown Boveri | Device for detection of selected events in a computer system |
Also Published As
Publication number | Publication date |
---|---|
GB2125591B (en) | 1986-01-22 |
GB8321373D0 (en) | 1983-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4498174A (en) | Parallel cyclic redundancy checking circuit | |
US5438330A (en) | Absolute encoder | |
US3567916A (en) | Apparatus for parity checking a binary register | |
US4556976A (en) | Checking sequential logic circuits | |
EP0158679A1 (en) | A scannable asynchronous/synchronous cmos latch | |
US3493958A (en) | Bipolar analog to digital converter | |
KR100214758B1 (en) | Digital pulse processing equipment | |
US4263582A (en) | Keyboard with an externally programmable repeat rate and repeat delay rate counter | |
AU597085B2 (en) | Look ahead terminal counter | |
US4745630A (en) | Multi-mode counter network | |
GB1579775A (en) | Digital monitor | |
EP0482495A2 (en) | Finite-state machine for reliable computing and adjustment systems | |
GB2125591A (en) | Checking sequential logic circuits | |
US3678200A (en) | Frame synchronization system | |
US6105156A (en) | LSI tester for use in LSI fault analysis | |
GB1070423A (en) | Improvements in or relating to variable word length data processing apparatus | |
JPS6046749B2 (en) | Interrupt circuit to computer | |
US4578666A (en) | Method of comparing data with asynchronous timebases | |
US4924314A (en) | Semiconductor device containing video signal processing circuit | |
US5867050A (en) | Timing generator circuit | |
EP4261623A1 (en) | Method for recognizing order of signals | |
US20230187007A1 (en) | Chip having debug function and chip debugging method | |
JP2644112B2 (en) | FIFO test diagnostic circuit | |
SU1693608A1 (en) | Device for testing computer | |
RU2015544C1 (en) | Reserved unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PCNP | Patent ceased through non-payment of renewal fee |
Effective date: 20020809 |