The present invention relates generally to tests of logic circuits, and more particularly to a method for analyzing a cause of a non-equivalency that has been found between two logic circuits as a result of verification of equivalency. The present invention is suitable, for example, for a layout design of an IC, such as an LSI.
As electronic apparatuses have recently required to enhance and diversify its functions, ICs, such as LSIs have also required to enhance its functionality. A logic circuit design, such as an LSI layout design, first prepares circuit data called “golden” or “specification”, which has been confirmed to work and achieve given functions through simulations, and then modifies a configuration of a combinational logic circuit by inserting a testing scan circuit, a timing-adjusting buffer circuit, a timing disclosure circuit, etc. into the combinational logic circuit so as to meet various restrictions and conditions about the number of gates, delay timing, etc., without changing functions in the specification. Such data thus obtained by modifying the specification by adding essential elements for actual circuit operations to the specification is called “implementation”. Here, the “combinational logic circuit” is a circuit that includes a combination of basic logic circuit elements (such as AND, OR, EXCLUSIVE OR (“EOR”), and NOT) and determines an output in accordance with one or more input(s). The input is given, for example, from a sequence circuit that holds its own state, such as a counter and a shift register latch. Then, it should be verified whether logic circuits in the specification and implementation are logically equivalent so as to maintain given functions in the specification.
One conceivable equivalency verification method would be to use the logic simulation that checks whether outputs have the same value in response to the same input pattern applied to both the specification and implementation. However, this method cannot guarantee the equivalency until it tries all the input patterns. The verification requires the total number of patterns of 2n where n is the number of circuit inputs from the outside and for reality the simulation cannot try all the patterns for n of several scores.
Accordingly, a conventional method for verifying the logical equivalency between logic circuits in the specification and implementation defines part including all inputs and logic circuit elements that affect one output (referred to as “logic cone” hereinafter) for each combinational logic circuit, and verify the equivalency for each logic cone, for example, after a designer manually pairs logic circuit elements. When both are determined logically non-equivalent, a logical expression of the logic cone causing the non-equivalency is indicated and the designer manually identifies a causal logic circuit using the logical expression.
A preparation of the implementation often associates with a modification of combinational logic circuits in the specification for the reasons including a multistage configuration for small areas, priority of speed, etc. Therefore, the implementation's logic circuits differs from one that simply adds new logic circuit elements to the specification, and often modifies the specification's logic circuits, for example, by changing four stage device configuration into two stages. As a result, a corresponding logic circuit element is not easily identifiable, and the logic circuit that causes non-equivalency is often hard to be identified. In particular, the recent demands for enhanced and diversified LSI functionality have increased the number of logic circuits, and made the circuit configuration complex, whereby the logic circuit that causes non-equivalency has become increasingly hard to be identified. Therefore, the conventional verification of logic equivalency between logic circuits has been inefficient and time-consuming, delaying IC productions.
Accordingly, it is an exemplified object of the present invention to provide an efficient method and apparatus for verifying logical equivalency between two logic circuits and easily identifying a logic circuit element that causes non-equivalency.
In order to achieve the above object, a method of one aspect of the present invention for verifying a logical equivalency between two logic circuits having different combinational logic circuits includes the steps of converting logical cones in the logic circuits into logical expressions, each logic cone including all of inputs and logic circuits which affect one output of the combinational logic circuit, storing a correlation between the logical expression converted by the converting step and one or more logic circuit elements included in the logic cone, and identifying the logic circuit element corresponding to a specified term included in the converted logical expression. This method automatically identifies the logic circuit element corresponding to the specified term (for example, operator(s) and variable(s)) in the logical expression, and thus a user promptly recognizes the logic circuit element that causes non-equivalency in the logic cone when he specifies an apparently non-equivalent term. The storing step may further store expansion history of the logical expression, so as to expand the logical expression reversibly or restorable to the original. The identifying step may be replaced with the step for identifying the logic circuit element corresponding to a non-equivalent term in the logical expression that has been converted, so as to automate checking for non-equivalency and improve the efficiency of the verification of equivalency.
A program for enabling a computer to executing the above method also constitutes one aspect of the present invention.
An apparatus of another aspect of the present invention for verifying a logical equivalency between two logic circuits having different combinational logic circuits includes the steps of a converter for converting logical cones in the logic circuits, in accordance with a dialogue with a user, into logical expressions, each logic cone including all of inputs and logic circuits which affect one output of the combinational logic circuit, a memory for storing a correlation between the logical expression converted by said converter and one or more logic circuit elements included in the logic cone, a display for indicating a structure of the logic cone and the logical expression, as well as the logic circuit element in the logic cone, which element corresponds to a specified term in the logical expression that has been converted, and an input part for specifying the term. This apparatus verifies the logical equivalency in accordance with a dialogue with a user, and indicates, on the display, the logic circuit element corresponding to the term specified by the user.
Other objects and further features of the present invention will become readily apparent from the following description of the embodiments with reference to accompanying drawings.
Referring now to
The controller 12 controls operations of each part, as well as serving as a converter for converting a circuit into a logical expression, and an operation part for operating the logical expression. The user interface 14 sends to the controller 12 user's instructions input from the input part 16 implemented as a pointing device, such as a keyboard and mouse. The user interface 14 enables the user to dialogue with the controller 12. The user's instructions include an expansion of logical expression, a history retrieval, and a display of a circuit diagram. The display 18 is, for example, a PC display.
The memory 20 includes a specification-use logic-circuit database 22 for holding information about a structure of the logic circuit in the specification, an implementation-use logic-circuit database 24 for holding information about a structure of the logic circuit in the implementation, a first holding part 26 for holding expansion history of logical expressions, and a second holding part 28 for holding a correlation between the circuitries and the logic circuits in the specification and implementation. The first holding part holds information before and after the expansion so that the logical expression may return, while the second holding part holds correlation information between a specific term in a logical expression and a logic circuit element in a logic circuit. Although the present invention intends to cover part or all of the information in the memory 20 being provided in another terminal connected to the equivalency verification apparatus 10 through a network, the instant embodiment provides the equivalency verification apparatus 10 with the memory 20.
When the user commands a verification of equivalency through the input part 16 in the equivalency verification apparatus 10, the control part 12 picks up data of the specification and implementation from the databases 22 and 24 and starts verifying the equivalency. As a result of this verification of equivalency, the controller 12 picks up a non-equivalent combinational logic circuit and one or more non-equivalent logic cones in the combinational logic circuit, and displays them on the display 18. Thereby, the user may confirm the logic circuit element(s) in the logic cone on the display 18. When confirming the logic circuit element that causes non-equivalency at this time, the user may stop the equivalency verification process. The logic cone is defined as part including all of inputs and logic circuit elements that affect one output in the combinational logic circuit.
The user may instruct to display the logical expression through the input part 16. The controller 12 converts logic cones in the specification and implementation into logical expressions. The controller 12 stores the expansion history of the logical expression in the first holding part 26 in the memory 20 so that the logical expression may be returns to the original or reversibly. This provides the history information that facilitates tracking from which term in the first logical expression a term (i.e., operator(s) and variable(s) which will be described later) in the converted logical expression results from. For example, the logic cone 4 and 6 are given as follows:
S0=A0*({tilde over ( )}B0)+({tilde over ( )}A0)*B0 EQUATION 1
S1=(A1*({tilde over ( )}B1)+({tilde over ( )}A1)*B1)*({tilde over ( )}(A0*B0))+({tilde over ( )}((A1*({tilde over ( )}B1)+({tilde over ( )}A1)*B1)))*(A0*B0) EQUATION 2
If necessary, the user may instruct to expand the converted logical expression through the input part 16. In response to the user's instruction, the controller 12 expands logical expressions in the specification and implementation until they become comparable with each other, e.g., down to forms of sums and products in this embodiment. The user does not send any instruction of expansion to the controller 12 if determining that two logical expressions are clearly equivalent and the expansion is unnecessary. In this way, the equivalency verification apparatus 10 converts two logical expressions in the specification and implementation into similar forms, and narrows the causal logic circuit elements that are certainly non-equivalent. If necessary, the user who wishes to see a form before the expansion sends an instruction of retrieval to the controller 12 and the controller 12 starts history retrieval in response.
The controller 12 correlates each term in a logical expression with one or more logic circuit elements in a circuit diagram, and stores information about the correlation into the second holding part 28 in the memory 20. As a result, the user when finding a non-equivalent term in the logical expression, clicks or enters the term to request the controller 12 to display the corresponding logic circuits included in the logic cone on the display 18. In response, the controller 12 displays the corresponding logic circuit element on the display 18, for example, by highlighting it with a color or thickness. This enables the user to easily identify the logic circuit element(s) that cause the non-equivalency.
A description will now be given of the internal expression of the logical expression and correlation data stored in the second holding part 28. The logical expression includes data indicative of operator(s) and variable(s), and information about correlation data and title(s) of variable(s). The data indicative of operator(s) and variable(s) include an operator type, a pointer to a left side, a pointer to a right side, and a top of correlation data. This embodiment assigns 0 to AND, 1 to OR, 2 to NOT, 3 to EOR, 4 to NOP, and 10 to variables. The correlation data include each operator, an operator that assigned to an integer unique to a variable, and “Next” in the first logical expression.
Referring now to
First, the equivalency verification device 10 obtains logic cones in the specification 60 and implementation 70 shown in
In Table 1, the specification 60 and implementation 70 sequentially assign operators to the logic circuit elements from S1. The same logic circuit element appears: For example, U5 is an inverter and thus the operators op4 and op5 are U5 in the specification 60.
Next, the circuits in the specification 60 and 70 are converted into logical expressions (step 1004). The logical expression in the specification 60 is as indicated in Equation 3, while the logical expression in the implementation 70 is as indicated in Equation 4. This process prepares a table that correlates original circuits with logical expressions.
S1=(A1*({tilde over ( )}B1)+({tilde over ( )}A1)*B1)*({tilde over ( )}(A0*B0))+({tilde over ( )}((A1*(B1)+(A1)*B1)))*(A0*B0) EQUATION 3
S1=({tilde over ( )}A1)*B1*(({tilde over ( )}A0*B0))+({tilde over ( )}A1)*({tilde over ( )}B1)*({tilde over ( )}(A0*B0)+(B1+(A0*B0))*(B1+({tilde over ( )}(A0*B0))*A1 EQUATION 4
Then, the logical expressions shown in Equations 3 and 4 are expanded or converted (step 1006). Equation 5 indicates the expanded or converted logical expressions in Equation 3:
Equation 6 indicates the expanded or converted logical expressions in Equation 4:
It is apparent that in view of Equations 5 and 6, term (2)=term (a), term (3)=term (b), term (4)=term (e), and variables having equivalent data are indicated in the same color. Therefore, it is understood that the remaining terms (1), (c) and (d) cause the non-equivalency (see Equation 7).
A1*({tilde over ( )}B1)*({tilde over ( )}(A0*B0))≠A1*B1+A1*B1*A0*B0 EQUATION 7
When the history retrieval is commanded in
A1*B1 in the term (c) in Equation 6 is A1*B1*B1 before optimization. The last B1 is the same as B1 in A1*B1*(({tilde over ( )}(A0*B0)). It is easily understood from a transition view that the second B1 in Equation 7 is B1 in V9 and the first A1*B1 in the right side becomes A1*B1*({tilde over ( )}B1)=0 by substituting the second B1 in Equation 7 with ({tilde over ( )}B1). In the first logical expression, it corresponds to underscored B1 in Equation 8.
S1=({tilde over ( )}A1)*B1 *({tilde over ( )}(A0*B0))+({tilde over ( )}A1)*({tilde over ( )}B1)*({tilde over ( )}(A0*B0)+(B1+(A0*B0))*(B1+({tilde over ( )}(A0*B0))*A1 EQUATION 8
On the other hand, when the history retrieval is commanded in
Further, the present invention is not limited to these preferred embodiments, and various modifications and variations may be made without departing from the spirit and scope of the present invention.
Thus, according to the present invention, there are provided an efficient method and apparatus for verifying logical equivalency between two logic circuits, which easily identify a causal logic circuit element for non-equivalency.
Number | Date | Country | Kind |
---|---|---|---|
2002-180513 | Jun 2002 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
5481717 | Gaboury | Jan 1996 | A |
5491639 | Filkorn | Feb 1996 | A |
6321173 | Foster | Nov 2001 | B1 |
6336206 | Lockyear | Jan 2002 | B1 |
6473884 | Ganai et al. | Oct 2002 | B1 |
6611947 | Higgins et al. | Aug 2003 | B1 |
20020144215 | Hoskote et al. | Oct 2002 | A1 |
Number | Date | Country |
---|---|---|
1-288969 | Nov 1989 | JP |
5-233749 | Sep 1993 | JP |
9-297784 | Nov 1997 | JP |
2000-020744 | Jan 2000 | JP |
2001-052043 | Feb 2001 | JP |
Number | Date | Country | |
---|---|---|---|
20030237065 A1 | Dec 2003 | US |