(1) Field of the Invention
The present invention relates to a false path detection program, and more particularly, to a false path detection program used for the timing analysis and verification of a digital circuit.
(2) Description of the Related Art
When designing semiconductor devices such as LSI circuits, CAD (Computer Aided Design) is used. Semiconductor circuits designed by CAD often include false paths that are not used in their functions.
CAD has the function of false path detection and timing analysis. With this function, where the maximum delay time from the input to the output of a certain circuit involves a delay time attributable to a false path, for example, the maximum delay time can be shortened so that the circuit can operate in a time shorter than the maximum delay time.
The following three methods are known as conventional methods for false path detection and timing analysis: The first method is to determine whether each of paths from the input to the output of a circuit is a false path or not (see, e.g., Unexamined Japanese Patent Publication No. H08-180098 (paragraph nos. [0014]-[0031]; FIGS. 2-11), and H.-C. Chen and D. H.-C. Du, Path sensitization in critical path problem, IEEE Transactions on Computer-Aided Design of Integrated Circuits, 12(2): 196-207, February 1993). There has also been proposed a method of using higher-level operation description information in determining whether each path is a false path or not (see, e.g., Unexamined Japanese Patent Publication No. 2002-342403 (paragraph nos. [0019]-[0032]; FIGS. 1-3)). The second method is to obtain the shortest possible delay time while decreasing the value of delay time by degrees from a certain upper limit value (see, e.g., S. Devadas, K. Keutzer, and S. Malik, Computation of floating mode delay in combinational circuits: Theory and algorithms, IEEE Transactions on Computer-Aided Design of Integrated Circuits, 12(12): 1913-1923, December 1993). In this method, the shortest possible delay time is obtained while ignoring a delay time attributable to a false path. The third method is a method (called dynamic timing analysis) in which delay times of input vectors (several input signals) are calculated by simulation (see, e.g., D. Brand and V. S. Iyengar, Timing analysis using functional analysis, IEEE Transactions on Computer, 37(10): 1309-1314, October 1988). There has also been proposed a method based on the third method and improved in efficiency (see, e.g., Unexamined Japanese Patent Publication No. 2001-67383 (paragraph nos. [0053]-[0069]; FIG. 1)). As seen from these publications, circuit design using CAD requires false path analysis.
However, in cases where the conventional false path analysis techniques are applied to large-scale, complex circuit design, considerable time is required for the analysis. In the first method in which the analysis is performed path by path, in extreme cases the number of paths exponentially increases with scale of circuit, requiring much time for the false path analysis. In the second method in which the value of delay time is decreased by degrees from a certain upper limit value, the number of times the false path analysis needs to be performed increases if the set range in which the delay time is decreased is narrow. In the third method in which input vectors are simulated, for n inputs, the false path analysis needs to be performed 2n times, requiring impractically long computation time.
In the timing analysis, only false paths with critical timing or timing error may be detected to reduce the processing time needed for the false path analysis. In recent years, however, circuits with higher performance are demanded, and when such circuits are designed, there exist innumerable false paths with critical timing or timing error, making the detection of such false paths impractical.
Also, since innumerable false paths need to be automatically detected, a problem arises in that tools utilizing the false path information require increased processing time.
The present invention was created in view of the above circumstances, and an object thereof is to provide a false path detection program which directly detects passing points of signal lines constituting false paths, thereby shortening the processing time necessary for the false path detection and also permitting compact description of false path information.
To achieve the object, there is provided a false path detection program for detecting false paths of a designed circuit. The false path detection program causes a computer to function as storing means for receiving circuit information about the circuit and storing the circuit information in a storage device, signal value generating means for generating an impossible signal value with respect to a signal line in the circuit, signal propagation inspecting means for assigning the generated signal value to an input of a gate connected to the signal line and examining whether signal is propagated through the other input of the gate only when accompanied by the signal value, passing point acquiring means for acquiring a passing point of the other signal line connected to the other input of the gate if signal is propagated, and false path specifying means for specifying a false path by the passing point.
The above and other objects, features and advantages of the present invention will become apparent from the following description when taken in conjunction with the accompanying drawings which illustrate preferred embodiments of the present invention by way of example.
The principles of the present invention will be hereinafter described in detail with reference to the drawings.
As shown in
The storing means 1a receives circuit information about a circuit designed by a designer, and stores the circuit information in the storage device 1f. The signal value generating means 1b generates an impossible signal value with respect to a signal line in the designed circuit. The signal propagation inspecting means 1c assigns the signal value generated by the signal value generating means 1b to an input of a gate connected to the signal line with respect to which the signal value has been generated, and then examines whether signal is propagated through the other input of the gate only when accompanied by the signal value. If signal is propagated through the other input of the gate when accompanied by the generated signal value, the passing point acquiring means 1d acquires a passing point of the other signal line connected to the other input of the gate. The false path specifying means 1e specifies a false path by the passing point acquired by the passing point acquiring means 1d.
Thus, instead of detecting each path, the passing point of signal lines constituting a false path is directly detected, whereby the processing time necessary for the false path detection can be shortened. Also, the detected false path is specified by the passing point, thus permitting compact description of the false path.
A first embodiment of the present invention will be now described in detail with reference to the drawings. First, the hardware configuration of a computer for executing a false path detection program according to the present invention will be described.
The computer 10 is in its entirety under the control of a CPU (Central Processing Unit) 10a. To the CPU 10a are connected, via a bus 10g, a RAM (Random Access Memory) 10b, a hard disk drive (HDD) 10c, a graphics processor 10d, an input interface 10e, and a communication interface 10f.
The RAM 10b temporarily stores at least part of OS (Operating System) programs and application programs executed by the CPU 10a, the application programs including a CAD program and a false path detection program. Also, the RAM 10b stores various other data necessary for the processing by the CPU 10a. The HDD 10c stores the OS and application programs as well as various data.
The graphics processor 10d is connected with a monitor 10h. In accordance with instructions from the CPU 10a, the graphics processor 10d causes the monitor 10h to display image on a display screen thereof. The input interface 10e is connected with a keyboard 10i and a mouse 10j, and supplies signals from the keyboard 10i and the mouse 10j to the CPU 10a via the bus 10g. The communication interface 10f permits the computer 10 to communicate with other computers, not shown, connected via a network.
The false path detection program is executed by the computer having the hardware configuration described above.
The following describes functions accomplished by the computer 10 when the false path detection program is executed.
The computer 10 has functional blocks shown in
The circuit input section 11 receives circuit information from the designer. The circuit information is information about a circuit designed by the designer and includes, for example, signal lines, circuit elements, identifiers assigned to the input/output terminals of the circuit elements, and relationships of signal line-circuit element connections. The circuit input section 11 stores the received circuit information in, for example, the RAM 10b or the HDD 10c shown in
Based on the circuit information received from the designer, the constant signal line detection section 12 detects a signal line (constant signal line) to which is input a constant signal (signal which remains only in a constant state). The constant signal is specified by the designer in the case where the designer wishes to perform timing analysis in a certain mode of the circuit, for example.
The paired signal line detection section 13 detects a pair of signal lines (equivalent signal lines) whose signal values are always equal to each other within the circuit, or a pair of signal lines (exclusive signal lines) whose signal values are always different from each other. For example, fan-out signal lines are equivalent signal lines. Also, where an inverter is inserted in a signal line, the input and output sides of the signal line with respect to the inverter are exclusive signal lines.
The implication relation detection section 14 detects signal lines which are in an implication relation. For example, where signal lines satisfy an implication relation such that if the value of one signal line s is a, then the value of the other signal line t is always b (s=a→t=b), such signal lines are detected.
The set implication relation detection section 15 detects a signal line which is in an implication relation with a signal line set having size k (k is a natural number equal to or greater than “2”). For example, where there exists a set implication relation such that if the values of a set of signal lines (s1, s2, . . . , sk) are (a1, a2, . . . , ak), then the value of a different signal line t is always b ((s1, s2, . . . , sk)=(a1, a2, . . . , ak)→t=b), the signal line t is detected.
The constant signal line detection section 12, the paired signal line detection section 13, the implication relation detection section 14 and the set implication relation detection section 15 operate in accordance with instructions input by the designer. It is therefore possible to operate only the constant signal line detection section 12 and the paired signal line detection section 13, for example.
The combination generation section 16 generates impossible combinations of signal values with respect to the signal lines detected by the constant signal line detection section 12, paired signal line detection section 13, implication relation detection section 14 and set implication relation detection section 15. Then, the combination generation section 16 outputs the generated signal line value to the detected signal line to apply the generated value to a gate connected to the signal line.
If, with the impossible signal line value input to the signal line connected to the gate, signal is propagated through the other signal line of the gate only when accompanied by the impossible signal line value, the passing point acquisition section 17 acquires a passing point of the other signal line. The passing point of the acquired signal line is represented, for example, by an identifier assigned to the signal line or by the terminal of the gate. The passing point acquisition section 17 then determines whether a path (signal line) passing through the acquired passing point (or connecting between the passing points if the number of acquired passing points is “2” or more) exists or not. The number of passing points to be acquired may be input by the designer so that the passing point acquisition section 17 may acquire passing points not exceeding the specified number.
The expression “signal is propagated” means that the signal is not blocked by the gate. For example, “signal is propagated” if the output of an AND gate, with “1” input to one terminal thereof, varies depending on the input to the other terminal. Signal is “blocked” in a situation where, for example, “0” is input to one terminal of an AND gate and thus the AND gate always outputs a constant value “0” regardless of the input to the other terminal.
If it is judged by the passing point acquisition section 17 that a path exists, the false path output section 18 outputs the passing point as a false path (passing point of false path). The output false path is stored in the RAM 10b or the HDD 10c shown in
For a constant signal line detected by the constant signal line detection section 12, the combination generation section 16 generates an impossible value of the constant signal line, that is, a NOT signal which is negation of the constant signal. The combination generation section 16 then inputs the generated impossible value to a gate connected to the constant signal line. If signal is propagated through the other signal line of the gate only when accompanied by the impossible signal line value, the passing point acquisition section 17 acquires a passing point of the other signal line. Then, the passing point acquisition section 17 determines whether a path passing through the acquired passing point exists or not. If it is judged by the passing point acquisition section 17 that a path passing through the passing point exists, the false path output section 18 outputs the passing point as a false path.
Also, for equivalent signal lines or exclusive signal lines detected by the paired signal line detection section 13, the combination generation section 16 generates an impossible combination of signal values of such signal lines. The combination generation section 16 then assigns the generated impossible signal line values to respective inputs of gates connected to the equivalent or exclusive signal lines. If signal is propagated through the other signal lines of the gates which are input with the impossible signal line values, the passing point acquisition section 17 acquires passing points of the other signal lines. Then, the passing point acquisition section 17 determines whether a path connecting between the acquired passing points exists or not. If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a false path.
For implication-related signal lines detected by the implication relation detection section 14, the combination generation section 16 generates an impossible combination of signal values of such signal lines. The combination generation section 16 then outputs the generated impossible signal line values to gates connected to the implication-related signal lines. If signal is propagated through the other signal lines of the gates only when accompanied by the generated impossible signal line values, the passing point acquisition section 17 acquires passing points of the other signal lines. Then, the passing point acquisition section 17 determines whether a path connecting between the acquired passing points exists or not. If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a false path.
Also, for implication-related signal lines detected by the set implication relation detection section 15, the combination generation section 16 generates an impossible combination of signal values of such signal lines. The combination generation section 16 then outputs the generated impossible signal line values to gates connected to the implication-related signal lines. If signal is propagated through the other signal lines of the gates which are input with the generated impossible signal line values, the passing point acquisition section 17 acquires passing points of the other signal lines. Then, the passing point acquisition section 17 determines whether a path connecting between the acquired passing points exists or not. If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a false path.
An exemplary circuit of which the false paths are detected will be now described.
An inverter Z1 has a signal input terminal t1 and a signal output terminal t2. The terminal t1 is connected with a signal line L14 and is input with a signal s2. The inverter Z1 inverts the signal input to the terminal t1 and outputs the inverted signal from the terminal t2.
An AND gate Z2 has signal input terminals t3 and t4 and a signal output terminal t5. The terminal t3 is connected to the terminal t2 of the inverter Z1 by a signal line L2. The AND gate Z2 computes a logical product of the signals input to the terminals t3 and t4, and outputs the result from the terminal t5.
A signal line L3 is input with a signal s3 and connected to signal lines L4 and L5. The signal line L4 is connected to the terminal t4 of the AND gate Z2.
An OR gate Z3 has signal input terminals t6 and t7 and a signal output terminal t8. The terminal t6 is connected with the signal line L1 and thus is input with the signal s1. The terminal t7 is connected to the terminal t5 of the AND gate Z2 by a signal line L6. The terminal t8 is connected with a signal line L7 which is connected to signal lines L8 and L9. The OR gate Z3 computes a logical sum of the signals input to the terminals t6 and t7, and outputs the result to the terminal t8. The signal appearing at the terminal t8 is output to the signal line L8 as a signal o1.
An OR gate Z4 has signal input terminals t9 and t10 and a signal output terminal t11. The terminal t9 is connected with the signal line L9 which is connected to the signal lines L7 and L8. The terminal t10 is connected with the signal line L5 which is connected to the signal lines L3 and L4. The terminal t11 is connected to a signal line L10. The OR gate Z4 computes a logical sum of the signals input to the terminals t9 and t10, and outputs the result from the terminal t11.
A multiplexer Z5 has signal input terminals t12 to t14 and a signal output terminal t15. The terminal t12 is connected with the signal line L10. The terminal t13 is connected with a signal line L11 to which a signal s4 is input, and the terminal t14 is connected with a signal line L12 to which a signal s5 is input. The terminal t15 is connected to a signal line L13. The multiplexer Z5 outputs one of the signals input to the terminals t12 and t13, selected in accordance with the signal s5 input to the terminal t14, to the terminal t15. Specifically, when the signal S5 is “1,” the multiplexer Z5 outputs the signal input to the terminal t13 to the terminal t15, and when the signal s5 is “0,” the multiplexer Z5 outputs the signal input to the terminal t12 to the terminal t15. The signal appearing at the terminal t15 is output to the signal line L13 as a signal o2.
The designer inputs circuit information about the circuit designed as shown in
Examples of data structures created when the computer 10 executes respective processes will be now described.
As shown in
Under the column “CONSTANT SIGNAL LINE” is stored the identifier of a signal line (e.g., name or number assigned to the signal line) whose signal line value is constant in the circuit which is subjected to the false path detection. Under the column “CONSTANT SIGNAL” is stored the signal value of the constant signal line. Under the column “PASSING POINT OF NODE THROUGH WHICH . . . ” is stored the passing point of a node through which signal is propagated.
The constant signal line and the constant signal are input by the designer and are stored under the columns “CONSTANT SIGNAL LINE” and “CONSTANT SIGNAL,” respectively, by the circuit input section 11. The passing point of a node through which signal is propagated is calculated by the constant signal line detection section 12, the combination generation section 16 and the passing point acquisition section 17, and is stored under the column “PASSING POINT OF NODE THROUGH WHICH . . . .”
It is assumed, for example, that in the circuit of
It is not necessary that all of the constant signal line data 21 be stored in the storage device. After one row is processed and a false path corresponding thereto is output, the content of the row may be deleted, whereby the storage area can be saved.
As shown in
Under “NODE 1” and “NODE 2” of the column “PAIRED SIGNAL LINES” are stored the identifiers of signal lines (equivalent signal lines) whose signal values are equal to each other, as well as the identifiers of signal lines (exclusive signal lines) whose signal values are different from each other. Under “PHASE DIFFERENCE” is stored a phase difference between the signals propagated through the signal lines, wherein “0” indicates a phase difference of “0” and “1” indicates a phase difference of π. Under the column “PASSING POINTS OF NODE PAIR THROUGH WHICH . . . ” are stored passing points of nodes through which signal is propagated. Under the column “EXISTENCE OF PATH PASSING THROUGH NODE PAIR THROUGH WHICH . . . ” is stored information which indicates, by “0” or “1,” whether or not a path exists between the passing points of the node pair through which signal is propagated. “0” indicates that no path exists, and “1” indicates that a path exists.
In the example of
It is not necessary that all of the paired signal line data 22 be stored in the storage device. After one row is processed and a false path corresponding thereto is output, the content of the row may be deleted, whereby the storage area can be saved.
As shown in
Under “NODE” of the column “ANTECEDENT OF IMPLICATION” is stored the identifier of a signal line as an antecedent of implication, and under “VALUE” of the column “ANTECEDENT OF IMPLICATION” is stored the signal value of the signal line as the antecedent of implication. Under “NODE” of the column “CONSEQUENT OF IMPLICATION” is stored the identifier of a signal line as a consequent of implication, and under “VALUE” of the column “CONSEQUENT OF IMPLICATION” is stored the signal value that the signal line as the consequent of implication assumes under the condition of the implication antecedent. Under the column “PASSING POINT OF NODE PAIR THROUGH WHICH . . . ” is stored the passing point of a node through which signal is propagated. Under the column “EXISTENCE OF PATH PASSING THROUGH NODE PAIR THROUGH WHICH . . . ” is stored information which indicates, by “0” or “1,” whether or not a path exists between the passing points of the node pair through which signal is propagated. “0” indicates that no path exists, and “1” indicates that a path exists.
For example, in the circuit of
It is not necessary that all of the implication signal line data 23 be stored in the storage device. After one row is processed and a false path corresponding thereto is output, the content of the row may be deleted, whereby the storage area can be saved.
As shown in
Under the column “ANTECEDENT OF IMPLICATION” are stored the identifiers of signal lines as an antecedent of set implication. Under “NODE” of the column “CONSEQUENT OF IMPLICATION” is stored the identifier of a signal line as a consequent of implication, and under “VALUE” of the column “CONSEQUENT OF IMPLICATION” is stored the signal value that the signal line as the consequent of implication assumes under the condition of the implication antecedent. Under the column “NODE SET THROUGH WHICH . . . ” is stored the passing points of nodes through which signal is propagated. Under the column “EXISTENCE OF PATH PASSING THROUGH NODE SET THROUGH WHICH . . . ” is stored information which indicates, by “0” or “1,” whether or not a path exists between the passing points through which signal is propagated. “0” indicates that no path exists, and “1” indicates that a path exists.
In the example of
It is not necessary that all of the set implication signal line data 24 be stored in the storage device. After one row is processed and a false path corresponding thereto is output, the content of the row may be deleted, whereby the storage area can be saved.
In the following, operations of the sections shown in the functional block diagram of
A flowchart of
First, the flowchart will be outlined. It is assumed that the exemplary circuit shown in
In Steps S2 to S4, false path detection is performed with respect to combinations of signal line values having the smallest number of elements, that is, 1, among impossible combinations of signal line values. Namely, false paths are detected with respect to constant signal lines. With the impossible signal line value applied to a gate connected to the signal line, a false path is specified and output by means of the passing point of the other signal line connected to the gate.
In Steps S5 to S10, false path detection is performed with respect to combinations of signal line values having the second smallest number of elements, that is, 2, among impossible combinations of signal line values. Namely, false paths are detected with respect to pairs of signal lines. Such pairs of signal lines fall under three types of relation, that is, equivalence relation, exclusion relation which is negation of equivalence relation, and implication relation. For the equivalence and exclusion relations, false path detection is performed in Steps S5 to S7, and for the implication relation, false path detection is performed in Steps S8 to S10.
In Steps S11 to S16, false path detection is performed with respect to combinations of signal line values having three or more elements among impossible combinations of signal line values. Namely, false path detection is performed with respect to set implication relations. In this case, with the number of elements increased one by one, false path detection is performed with respect to k (k≧2)-to-1 implication relations.
The flowchart will be now described in detail. The process shown in the functional block diagram of
In Step S1, the circuit input section 11 accepts the circuit information and kmax input by the designer. It is assumed that in the input circuit information, the signal s5 input to the signal line L12 shown in
In Step S2, the constant signal line detection section 12 determines whether or not there exists an undetected constant signal line in the circuit of
In Step S3, the combination generation section 16 generates an impossible signal value of the constant signal line detected by the constant signal line detection section 12, and outputs the generated signal value to a gate connected to the constant signal line. If, with the generated signal value output to the gate, signal is propagated through the other signal line of the gate, the passing point acquisition section 17 acquires a passing point of the other signal line. Then, the passing point acquisition section 17 determines whether a path passing through the passing point exists or not.
For example, the circuit information input in Step S1 indicates that the signal line L12 in
If it is judged by the passing point acquisition section 17 that a path passing through the passing point exists, the false path output section 18 outputs the passing point as a set of false paths, in Step S4. In the above example, the false path set is expressed as {t13} by using the terminal t13 which is the passing point of the signal line L11. The number of false path-specifying passing points output in Step S4 invariably takes a minimum value of “1.” The constant signal line detection section 12 detects, in addition to the constant signal lines specified as explained above, constant signal lines which are identified with a specified constant value propagated, and constant signal lines which always assume the constant “0” because of the operation of the circuit.
In Step S5, the paired signal line detection section 13 detects a pair of equivalent/exclusive signal lines. If such a pair is detected, the flow proceeds to Step S6; if no such pair is detected, the flow proceeds to Step S8.
In Step S6, the combination generation section 16 generates an impossible combination of signal line values with respect to the detected pair of equivalent/exclusive signal lines. Then, the combination generation section 16 outputs the generated impossible combination of signal line values to gates connected to the equivalent/exclusive signal line pair. If, with the impossible signal line values output to the gates, signal is propagated through the other signal lines of the gates, the passing point acquisition section 17 acquires passing points of the other signal lines. Then, the passing point acquisition section 17 determines whether or not a path exists between the acquired passing points.
In the circuit of
If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a set of false paths, in Step S7. In the above example, the false path set is expressed as {t3, t9} by using the terminals t3 and t9 which are the passing points of the signal lines L2 and L9. Thus, the path set passing through the passing points {t3, t9} is a logical false path. In the case where additional false path analysis is performed taking account of delay, the delay relationship between the terminals t3 and t4 and between the terminals t9 and t10 is examined to determine whether the path is really a false path or not. The number of false path-specifying passing points output in Step S7 invariably takes a value of “2.”
In Step S8, the implication relation detection section 14 detects signal lines which are in an implication relation. If such signal lines are detected, the flow proceeds to Step S9; if no such signal lines are detected, the flow proceeds to Step S11.
In Step S9, the combination generation section 16 generates an impossible combination of signal line values with respect to the detected implication-related signal lines. Then, the combination generation section 16 outputs the generated impossible signal line values to gates connected to the implication-related signal lines. If signal is propagated through the other signal lines connected to the gates, the passing point acquisition section 17 acquires passing points of the other signal lines. Then, the passing point acquisition section 17 determines whether a path connecting between the acquired passing points exists or not.
In the circuit of
If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a set of false paths, in Step S10. In the above example, since there is no path between the passing points, no false path set is output.
In Step S11, the set implication relation detection section 15 substitutes “2” for the variable k. The value substituted for the variable k can be changed by the user.
In Step S12, the set implication relation detection section 15 determines whether either of the following two conditions is fulfilled or not, that is, the condition that the variable k is smaller than or equal to kmax and the condition that the variable k is smaller than or equal to a maximum number of gate stages. If the variable k is smaller than or equal to kmax or the maximum number of gate stages, the flow proceeds to Step S13; if the variable k is greater than kmax and the maximum number of gate stages, the process is ended.
In Step S13, the set implication relation detection section 15 determines whether or not there exist undetected signal lines which are in k-to-1 implication relation. If there is no undetected implication relation, the flow proceeds to Step S14; if there exists an undetected implication relation, the flow proceeds to Step S15. Where k=2, for example, the relation in the circuit of
In Step S14, the set implication relation detection section 15 adds “1” to the variable k.
In Step S15, the combination generation section 16 generates an impossible combination of signal line values with respect to the detected implication-related signal lines. Then, the combination generation section 16 assigns the generated impossible signal line values to inputs of gates connected to the implication-related signal lines. If signal is propagated through the other signal lines connected to the gates only when the generated values are input, passing points of the other signal lines are acquired. The passing point acquisition section 17 then determines whether a path connecting between the acquired passing points exists or not.
If it is judged by the passing point acquisition section 17 that a path connecting between the passing points exists, the false path output section 18 outputs the passing points as a set of false paths, in Step S16.
In the flowchart shown in
Thus, impossible combinations of signal line values in the circuit are generated by the constant signal line detection section 12, the paired signal line detection section 13, the implication relation detection section 14 and the set implication relation detection section 15. Since a plurality of paths can be simultaneously detected without regard to delay values, it is possible to prevent explosion of computation time from being caused due to the counting of paths or delay values.
Also, false paths are specified by the passing points of signal lines, and this makes it possible to describe false paths compactly.
In the case where false path analysis is performed while counting up input vectors, it is necessary that the analysis be performed on each of 2n (n: natural number) input vectors. If the analysis is performed with respect to a smaller number of input vectors only, circuit delay is underestimated because the analysis performed does not cover the circuit operation in full. According to the present invention, by increasing/decreasing the number of impossible combinations of signal values or the number of elements in such combinations, it is possible to flexibly vary the detection capability without entailing underestimation of circuit delay.
Also, the constant signal line detection section 12, the paired signal line detection section 13, the implication relation detection section 14 and the set implication relation detection section 15 are activated in this order so that impossible combinations of signal line values in the circuit may be generated in ascending order of the number of elements in such combinations. Accordingly, false paths can be detected and output in ascending order of the number of false path-specifying passing points. The number of passing points can exert an exponential influence on the processing speed of a timing optimization system or timing analysis system that utilizes false paths. According to the invention, false paths can be generated in a manner convenient for such systems utilizing false paths. Further, by externally specifying the number of false paths to be generated, it is possible to generate most convenient sets of false paths not exceeding the specified number.
A second embodiment of the present invention will be now described in detail with reference to the drawings. A computer according to the second embodiment can also be used for compressing the description amount of false paths specified by passing points. The computer accepts false paths described by passing points, and performs a process similar to that shown in the flowchart of
As shown in
The false path set input section 31 accepts, from the designer, a false path description specified by passing points.
Only with respect to signal lines which the false paths specified by passing points pass through, the false path signal line value generation section 32 generates impossible combinations of signal line values in ascending order of the number of elements in such combinations.
The false path generation section 33 generates false paths corresponding to the impossible combinations of signal line values.
The false path specification section 34 outputs the false paths which are each specified by the number of passing points equal to the number of elements in the combination of signal line values.
In the second embodiment, the computer 30 is input with a false path description specified by passing points, instead of the circuit information. Namely, in Step S1 of the flowchart shown in
In this manner, signal lines associated with a false path are specified by passing points, and false path detection is performed with respect to the signal lines. Consequently, the input false path description is output in compressed form, making it possible to more specifically locate false paths in the circuit.
According to the false path detection program of the present invention, impossible signal values are generated with respect to signal lines in the designed circuit, and the passing points of signal lines constituting false paths are directly detected, whereby the processing time necessary for the false path detection can be shortened. Also, false paths are specified by passing points, and this makes it possible to describe false paths compactly.
The foregoing is considered as illustrative only of the principles of the present invention. Further, since numerous modifications and changes will readily occur to those skilled in the art, it is not desired to limit the invention to the exact construction and applications shown and described, and accordingly, all suitable modifications and equivalents may be regarded as falling within the scope of the invention in the appended claims and their equivalents.
Number | Date | Country | Kind |
---|---|---|---|
2003-389185 | Nov 2003 | JP | national |