WO2004104871A2 - Combined formal and non-formal circuit verification - Google Patents

Combined formal and non-formal circuit verification Download PDF

Info

Publication number
WO2004104871A2
WO2004104871A2 PCT/US2004/015093 US2004015093W WO2004104871A2 WO 2004104871 A2 WO2004104871 A2 WO 2004104871A2 US 2004015093 W US2004015093 W US 2004015093W WO 2004104871 A2 WO2004104871 A2 WO 2004104871A2
Authority
WO
WIPO (PCT)
Prior art keywords
properties
verification
nonformal
metric
circuit design
Prior art date
Application number
PCT/US2004/015093
Other languages
French (fr)
Other versions
WO2004104871A3 (en
Inventor
Kuang-Chien Chen
Bow-Yaw Wang
Original Assignee
Cadence Design Systems, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cadence Design Systems, Inc. filed Critical Cadence Design Systems, Inc.
Publication of WO2004104871A2 publication Critical patent/WO2004104871A2/en
Publication of WO2004104871A3 publication Critical patent/WO2004104871A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3323Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking

Definitions

  • the present invention relates generally to functional verification of properties associated with circuit designs and, more particularly, to an integrated proof flow for the verification of such properties.
  • Verification is typically the most time-consuming component in a circuit design process. Failing to detect functional design errors early in the design stages usually leads to expensive re-spin of the designs. This re-spin includes diagnosis and correction of the errors, logic and physical re-synthesis, and even re-manufacturing of the chips that can be very time-consuming, costly and delay the time-to-market of a product. If the chip designs are already used in some released products, this can even lead to product recalls that are very devastating to a company.
  • Property checking is an approach for verifying the functionality of a circuit design. It involves proving one or more properties specified for a circuit design.
  • a property which can also be called an assertion, maybe logical (e.g., Boolean) and/or temporal, and describes behavior of one or more signals in the circuit design.
  • Formal verification of a property verifies that the property holds for all combinations of input signals and sequences over time. For example, to verify that a property holds, formal verification tools or methods attempt to check all states possible during operation of the circuit design, where the operation starts from one or more initial states of the circuit design. Successfully checking all the states ensures that the property is not violated. During the state space search, if a contradiction is found, the property is disproved and a counter example can usually be generated to demonstrate how the violation occurs. Formal verification is therefore very useful for uncovering corner-case bugs because it determines whether or not a property is true in the circuit design by exercising all possible behavior of the circuit design. However, due to the exceedingly large and complex circuits that are being designed today, formal verification is subject to the classical state explosion problem.
  • a typical circuit design may contain hundreds of thousands of state variables (state-holding elements, i.e. flip flops), where each state variable may have one of two values, either 0 or 1.
  • state variables state-holding elements, i.e. flip flops
  • each state variable may have one of two values, either 0 or 1.
  • the number of possible value combinations (or states) that are required to be checked by formal verification techniques is extremely large, and some states can only be reached after a very large number of cycles. It is therefore very difficult to perform state space search exhaustively for large designs. Such complexity presents memory and time constraints that make formal verification for large, but typical, circuit designs intractable.
  • Nonformal verification (also called semi-formal verification), is another approach to handle difficult and complex circuits and properties.
  • Nonformal verification checks the property over a subset of the states that are of concern in formal verification.
  • One or more types of nonformal verification may be performed. Although nonformal verification does not search all the possible states of a circuit, it can usually handle large circuits and may find bugs that cannot be found by formal verification techniques.
  • One or more nonformal verification techniques may be performed on a circuit for a given set of properties, and one nonformal verification technique may find bugs which are missed by another nonformal verification technique.
  • nonformal verification determines whether or not a property is true in the circuit design for a specific number of cycles.
  • bounded verification In contrast to the exhaustive search associated with formal verification (also known as unbounded verification), bounded verification is called nonformal because it only checks the behavior exhaustively for a limited number of cycles. Its main benefit is that the limitation on the number of cycles usually greatly reduces the complexity of the verification problem.
  • nonformal verification technique is the local search based multi-point proof method.
  • bounded search up to a limited number of cycles is performed by starting from different states. These different starting states can be determined by the program automatically and/or can be specified by the user. By starting from different states and performing limited cycle searches from those states, the chance of finding bugs in the design is increased, in contrast with using just a single starting state.
  • Simulation is another nonformal verification approach used to verify a circuit design. Simulation techniques typically utilize simulation vectors to determine whether or not a circuit design functions in an expected manner. Such simulation runs are usually non-exhaustive, and various coverage metrics, for example, hardware description language (HDL)-based code coverages, are used to assess the quality of the simulation vectors and determine when to stop the simulation process.
  • HDL hardware description language
  • simulation techniques do not maintain prior test or coverage information, and the verification vectors are derived independent of prior test or coverage information.
  • simulation vectors are typically manually derived by designers or randomly generated from the high-level description of the design and its environment. Therefore, the number of simulation vectors necessary to suitably verify a circuit design can be prohibitive.
  • Techniques have been proposed to derive more effective simulation vectors, so that specific target states can be reached more easily and also consider the states that have been reached by prior simulation to avoid redundant work. Such techniques hold the promise to provide a more effective simulation environment.
  • Formal verification, and nonformal verification are verification techniques that have their own advantages and disadvantages. There is a need to tightly integrate all these techniques in a unified verification framework to provide a robust verification solution. It is also necessary to further improve the vector based simulation process so that more effective simulation vectors can be generated to improve the overall functional coverage.
  • Integrated proof flow refers to attempting both formal verification and nonformal verification.
  • a coverage metric can.be changed by both attempting formal verification and by attempting nonformal verification.
  • Some embodiments of the present invention provide proof flow methods that integrate formal verification and nonformal verification (e.g., bounded verification, multi-point proof, and/or vector-based simulation) to prove one or more properties in a circuit design.
  • Figure 1 shows an example of an overall proof flow.
  • Figure 2 shows an example of modifying a coverage metric of a property.
  • Figure 3 shows an example of attempting nonformal verification.
  • Figure 4 shows an example of a computer capable of executing proof flow.
  • one embodiment of a proof flow method for a set of properties associated with a circuit design of the present invention is illustrated.
  • one or more coverage metrics can be defined. If a multiple coverage metrics are defined for a given property, the multiple coverage metrics can be of the same or of different kinds. In the case where at least two coverage metrics of the same kind exist, different criteria can be used (e.g., if at least two metrics are of the toggle-based metric type, the sequential elements can have different weights when calculating the overall coverage).
  • One such metric is the state-based metric, where the goal is to search all the reachable states of the circuit and check the correctness of the property in each of the states. If the property can be verified by formal verification, it means all the reachable states are searched and therefore the coverage is 100%. However, if only a partial set of reachable states can be searched due to, for example, memory and/or runtime constraint, then the coverage metric can be some measure of the number of states searched, for example, the number of states searched divided by the total number of reachable states.
  • toggle-based metric Another metric is the toggle-based metric. For every signal driven by a sequential element in the cone of logic of the property, the goal is to toggle the signal during the checking of the property. In some embodiments, the more such signals are toggled, the more thoroughly the property is checked. In some embodiments, some such signals may not toggle, and such situations should be taken into account. If a property can be verified by formal verification, the toggle based coverage is 100%.
  • the coverage metric can be a measure of toggled elements (e.g., sequential elements), for example, the number of sequential elements that are toggled during the property verification divided by (N-M).
  • Code structure based coverage metrics can measure the effectiveness of simulation.
  • code structure based metrics are line coverage metrics (i.e., how many lines of the RTL code have been exercised in simulation), branch coverage metrics (i.e., in all the possible execution branching conditions, how many of them are exercised in simulation), and path coverage metrics (i.e., in all the possible execution paths of the code, how many of them are exercised in simulation).
  • line coverage metrics i.e., how many lines of the RTL code have been exercised in simulation
  • branch coverage metrics i.e., in all the possible execution branching conditions, how many of them are exercised in simulation
  • path coverage metrics i.e., in all the possible execution paths of the code, how many of them are exercised in simulation.
  • Another kind of coverage metric is the user-defined metric and there can be many variations.
  • One example of user-defined metric is a set of key signals in the logic cone of the property that are selected by the user, and the goal of the verification is to exhaustively check all possible combinations of the set of key signals during property verification. Some combinations of the key signals may not be reachable, and such situation should be taken into account. If a property can be verified by formal verification, the key signal combination coverage is 100%. Otherwise, the coverage metric can be a measure of key signal combinations, for example, the number of key signal combinations divided by the total number of possible combinations of the set of key signals.
  • Yet another coverage metric can combine multiple kinds of coverage metrics.
  • the following steps can be performed for each of the properties, at least partly concurrently, at least partly before, and/or at least partly after, one another:
  • a coverage metric is defined for one or more properties.
  • a coverage metric that defines how well a property is proved can be defined by the tool automatically and/or by the user. If a property is proven by formal verification successfully, its coverage is 100%. The coverage of a property is less than 100% if it cannot be proven successfully by formal or nonformal verification due to, for example, a space or time limit.
  • Using multiple techniques can increase the coverage of a property, to help satisfy the goal of verification by obtaining a high coverage for a property.
  • By defining a coverage metric for a property different techniques can be guided by the same coverage metric, and try to modify it, such as by increasing it.
  • a formal verification is attempted for one or more properties
  • a nonformal verification is attempted of one or more properties.
  • Formal verification can include one or more formal verification steps.
  • Unbounded formal verification of a property is attempted, and the attempt may succeed or fail.
  • Coverage information based on the coverage metric is calculated during or after the verification step.
  • Nonformal verification can include one or more nonformal verification steps.
  • the nonformal verification steps can be selected from, for example, (a) attempting a bounded verification of a property with increasing numbers of cycles starting from an initial state, (b) attempting a bounded verification of a property with a limited number of cycles (which can be the same or different from each starting point, and can be determined by heuristics and/or manually by the user, etc.) beginning with different starting states, and (c) attempting a coverage-driven simulation of the property.
  • Coverage information based on the coverage metric selected in (i), can be calculated and updated in any of the nonformal verification steps (a), (b), and (c).
  • Each property can have identical or different optional nonformal verification steps of (a), (b), and (c).
  • the bounds of the bounded verification of step (a) of the optional nonformal verification can be selected by the user or automatically by a program.
  • the limited number of cycles and the different starting states of step (b) of the optional nonformal verification (from step (b)) can be selected by the user or automatically by a program.
  • Figure 1 shows an example of a proof flow.
  • a property of a circuit design is accessed.
  • the property can be retrieved from a local location and/or remote location, and/or the property can be generated and accessed.
  • a coverage metric of the property is modified.
  • the proof flow can be repeated with another property.
  • Parts can be added, removed, rearranged, and/or changed.
  • multiple properties can be accessed, and/or multiple coverage metrics of one or more properties can be modified at least partly concurrently. Accessing the property and modifying the coverage metric can occur at least partly concurrently.
  • Figure 2 shows an example of modifying a coverage metric of a property.
  • formal verification is attempted.
  • the coverage metric of the property is modified based on the attempted formal verification.
  • nonformal verification is attempted.
  • the coverage metric of the property is modified based on the attempted nonformal verification.
  • the coverage metric is modified based on the attempted nonformal verification.
  • the coverage metric can be further modified.
  • the coverage metric can be modified at least partly concurrently with attempted verification. Attempted formal verification can occur after and/or at least partly concurrently with attempted nonformal verification.
  • Figure 3 shows an example of attempting nonformal verification.
  • a nonformal verification technique is chosen.
  • a particular nonformal verification technique is attempted, such as bounded verification 320, multi-point proof 330, and vector-based simulation 340.
  • the coverage metric is modified based on the attempted nonformal verification.
  • 360 if more nonformal verification is to be attempted, then the above can occur again.
  • Parts can be added, removed, rearranged, and/or changed.
  • multiple nonformal verification techniques can be attempted, at least partly concurrently and/or at least partly sequentially.
  • the coverage metric can be modified at least partly concurrently with attempted verification.
  • the different nonformal verification techniques can be coverage driven.
  • an accessed property states that the counter never counts beyond 10,000.
  • resources are exhausted beyond 4,000 cycles and the attempted formal verification failed.
  • the coverage metric is state-based and 30,000 states have been searched during the formal verification proof.
  • Nonformal verification is attempted.
  • Bounded verification is attempted from each time frame number in a list of time frame numbers, e.g., ⁇ 0, 2,000, 4,000, 5,000 ⁇ , and results in an increase of the coverage metric from 30,000 states to 55,000 states out of the possible 65,536 states of the counter.
  • Vector-based simulation is attempted to increase the coverage metric. Vectors are generated to simulate the accessed property that the counter never counts beyond 10,000. Unfortunately, due to resource limitations, such as time, only 6,000 additional states are reached in the vector-based simulation. The final coverage metric result is 61,000 states out of 65,536 states, or approximately 93%.
  • an accessed property about 2 signals, A and B, of a control circuit is that whenever A is true, B becomes true after 3 clock cycles.
  • formal verification is attempted but fails after searching for 50 cycles.
  • Figure 4 shows an example of a computer 400 that can execute a proof flow, which can be code 420.
  • the computer 400 can be comiected to a network 410.
  • the computer 400 can execute code 420 with instructions to execute the proof flow.
  • the computer 400 can have the code 420 preinstalled.
  • the computer 400 can receive the code 420 over the network 410, which can be connected to the computer via a link 430, which can be a wireless and/or wired link.
  • the code 400 can be in a temporary state (e.g., electrical, magnetic, and/or optical signal) and/or at least partly hardware, such as in a relatively permanent state (e.g., optical disk, magnetic disk, hard disk, temporary memory such as RAM, flash memory, processor).
  • the computer 400 can have the code 420 installed via such a temporary and/or relatively permanent state hardware. Multiprocessor, multicomputer, and/or multithread implementations can be practiced.

Abstract

Integrated proof flow methods and apparatuses are discussed. Integrated proof flow refers to attempting both formal verification and nonformal verification. A coverage metric can be changed by both attempting formal verification and by attempting nonformal verification. Some embodiments of the present invention provide proof flow methods that integrate verification and nonformal verification (e.g., bounded verification, multi-point proof, and/or vector-based simulation) to prove one or more properties in a circuit design.

Description

INTEGRATED PROOF FLOW SYSTEM AND METHOD
BACKGROUND OF THE INVENTION
The present invention relates generally to functional verification of properties associated with circuit designs and, more particularly, to an integrated proof flow for the verification of such properties.
DESCRIPTION OF THE RELATED ART
Verification is typically the most time-consuming component in a circuit design process. Failing to detect functional design errors early in the design stages usually leads to expensive re-spin of the designs. This re-spin includes diagnosis and correction of the errors, logic and physical re-synthesis, and even re-manufacturing of the chips that can be very time-consuming, costly and delay the time-to-market of a product. If the chip designs are already used in some released products, this can even lead to product recalls that are very devastating to a company.
Property checking is an approach for verifying the functionality of a circuit design. It involves proving one or more properties specified for a circuit design. A property, which can also be called an assertion, maybe logical (e.g., Boolean) and/or temporal, and describes behavior of one or more signals in the circuit design.
Formal verification of a property verifies that the property holds for all combinations of input signals and sequences over time. For example, to verify that a property holds, formal verification tools or methods attempt to check all states possible during operation of the circuit design, where the operation starts from one or more initial states of the circuit design. Successfully checking all the states ensures that the property is not violated. During the state space search, if a contradiction is found, the property is disproved and a counter example can usually be generated to demonstrate how the violation occurs. Formal verification is therefore very useful for uncovering corner-case bugs because it determines whether or not a property is true in the circuit design by exercising all possible behavior of the circuit design. However, due to the exceedingly large and complex circuits that are being designed today, formal verification is subject to the classical state explosion problem. For example, a typical circuit design may contain hundreds of thousands of state variables (state-holding elements, i.e. flip flops), where each state variable may have one of two values, either 0 or 1. The number of possible value combinations (or states) that are required to be checked by formal verification techniques is extremely large, and some states can only be reached after a very large number of cycles. It is therefore very difficult to perform state space search exhaustively for large designs. Such complexity presents memory and time constraints that make formal verification for large, but typical, circuit designs intractable.
Nonformal verification, (also called semi-formal verification), is another approach to handle difficult and complex circuits and properties. Nonformal verification checks the property over a subset of the states that are of concern in formal verification. One or more types of nonformal verification may be performed. Although nonformal verification does not search all the possible states of a circuit, it can usually handle large circuits and may find bugs that cannot be found by formal verification techniques. One or more nonformal verification techniques may be performed on a circuit for a given set of properties, and one nonformal verification technique may find bugs which are missed by another nonformal verification technique.
One example of nonformal verification is bounded verification, which determines whether or not a property is true in the circuit design for a specific number of cycles. In contrast to the exhaustive search associated with formal verification (also known as unbounded verification), bounded verification is called nonformal because it only checks the behavior exhaustively for a limited number of cycles. Its main benefit is that the limitation on the number of cycles usually greatly reduces the complexity of the verification problem.
Another example of nonformal verification technique is the local search based multi-point proof method. In this method, bounded search up to a limited number of cycles is performed by starting from different states. These different starting states can be determined by the program automatically and/or can be specified by the user. By starting from different states and performing limited cycle searches from those states, the chance of finding bugs in the design is increased, in contrast with using just a single starting state. Simulation is another nonformal verification approach used to verify a circuit design. Simulation techniques typically utilize simulation vectors to determine whether or not a circuit design functions in an expected manner. Such simulation runs are usually non-exhaustive, and various coverage metrics, for example, hardware description language (HDL)-based code coverages, are used to assess the quality of the simulation vectors and determine when to stop the simulation process. Conventional simulation techniques do not maintain prior test or coverage information, and the verification vectors are derived independent of prior test or coverage information. For example, simulation vectors are typically manually derived by designers or randomly generated from the high-level description of the design and its environment. Therefore, the number of simulation vectors necessary to suitably verify a circuit design can be prohibitive. Techniques have been proposed to derive more effective simulation vectors, so that specific target states can be reached more easily and also consider the states that have been reached by prior simulation to avoid redundant work. Such techniques hold the promise to provide a more effective simulation environment.
Formal verification, and nonformal verification (e.g., bounded verification, multi-point proof, and vector-based simulation) are verification techniques that have their own advantages and disadvantages. There is a need to tightly integrate all these techniques in a unified verification framework to provide a robust verification solution. It is also necessary to further improve the vector based simulation process so that more effective simulation vectors can be generated to improve the overall functional coverage.
SUMMARY
Accordingly, some embodiments of the present invention provide integrated proof flow methods and apparatuses. Integrated proof flow refers to attempting both formal verification and nonformal verification. A coverage metric can.be changed by both attempting formal verification and by attempting nonformal verification. Some embodiments of the present invention provide proof flow methods that integrate formal verification and nonformal verification (e.g., bounded verification, multi-point proof, and/or vector-based simulation) to prove one or more properties in a circuit design.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 shows an example of an overall proof flow.
Figure 2 shows an example of modifying a coverage metric of a property.
Figure 3 shows an example of attempting nonformal verification.
Figure 4 shows an example of a computer capable of executing proof flow.
DETAILED DESCRIPTION
Referring to Figure 1, one embodiment of a proof flow method for a set of properties associated with a circuit design of the present invention is illustrated. Examples of properties are "signal A should be always True" and "signals A, B and C should always satisfy the relationship that A x B = C for all clock cycles"). For a given property, one or more coverage metrics can be defined. If a multiple coverage metrics are defined for a given property, the multiple coverage metrics can be of the same or of different kinds. In the case where at least two coverage metrics of the same kind exist, different criteria can be used (e.g., if at least two metrics are of the toggle-based metric type, the sequential elements can have different weights when calculating the overall coverage).
One such metric is the state-based metric, where the goal is to search all the reachable states of the circuit and check the correctness of the property in each of the states. If the property can be verified by formal verification, it means all the reachable states are searched and therefore the coverage is 100%. However, if only a partial set of reachable states can be searched due to, for example, memory and/or runtime constraint, then the coverage metric can be some measure of the number of states searched, for example, the number of states searched divided by the total number of reachable states.
Another metric is the toggle-based metric. For every signal driven by a sequential element in the cone of logic of the property, the goal is to toggle the signal during the checking of the property. In some embodiments, the more such signals are toggled, the more thoroughly the property is checked. In some embodiments, some such signals may not toggle, and such situations should be taken into account. If a property can be verified by formal verification, the toggle based coverage is 100%. Otherwise, if there are N sequential elements in the logic cone of the property, and M out of the N elements can not be toggled (e.g., their value is either constant 0 or 1), then the coverage metric can be a measure of toggled elements (e.g., sequential elements), for example, the number of sequential elements that are toggled during the property verification divided by (N-M).
Another kind of coverage metric is the code structure based metric. Code structure based coverage metrics can measure the effectiveness of simulation.
Examples of code structure based metrics are line coverage metrics (i.e., how many lines of the RTL code have been exercised in simulation), branch coverage metrics (i.e., in all the possible execution branching conditions, how many of them are exercised in simulation), and path coverage metrics (i.e., in all the possible execution paths of the code, how many of them are exercised in simulation). For the verification of a particular property, the correspondence between the logic cone of the property and the RTL code can be established. Then, one or more code structure based coverage metrics can be used to measure how well a property is verified. For example, for a line coverage metric, during the search process of verifying a property, the number of lines of the RTL code (corresponding to the property logic cone) which have been exercised can be kept track of. This information can be used to calculate the line coverage metric.
Another kind of coverage metric is the user-defined metric and there can be many variations. One example of user-defined metric is a set of key signals in the logic cone of the property that are selected by the user, and the goal of the verification is to exhaustively check all possible combinations of the set of key signals during property verification. Some combinations of the key signals may not be reachable, and such situation should be taken into account. If a property can be verified by formal verification, the key signal combination coverage is 100%. Otherwise, the coverage metric can be a measure of key signal combinations, for example, the number of key signal combinations divided by the total number of possible combinations of the set of key signals.
Yet another coverage metric can combine multiple kinds of coverage metrics. For the given set of properties of a circuit design, the following steps can be performed for each of the properties, at least partly concurrently, at least partly before, and/or at least partly after, one another:
(i) a coverage metric is defined for one or more properties. A coverage metric that defines how well a property is proved can be defined by the tool automatically and/or by the user. If a property is proven by formal verification successfully, its coverage is 100%. The coverage of a property is less than 100% if it cannot be proven successfully by formal or nonformal verification due to, for example, a space or time limit. Using multiple techniques can increase the coverage of a property, to help satisfy the goal of verification by obtaining a high coverage for a property. By defining a coverage metric for a property, different techniques can be guided by the same coverage metric, and try to modify it, such as by increasing it. (ii) a formal verification is attempted for one or more properties, and (iii) a nonformal verification is attempted of one or more properties. Formal verification can include one or more formal verification steps.
Unbounded formal verification of a property is attempted, and the attempt may succeed or fail. Coverage information based on the coverage metric is calculated during or after the verification step.
Nonformal verification can include one or more nonformal verification steps. The nonformal verification steps can be selected from, for example, (a) attempting a bounded verification of a property with increasing numbers of cycles starting from an initial state, (b) attempting a bounded verification of a property with a limited number of cycles (which can be the same or different from each starting point, and can be determined by heuristics and/or manually by the user, etc.) beginning with different starting states, and (c) attempting a coverage-driven simulation of the property.
Coverage information, based on the coverage metric selected in (i), can be calculated and updated in any of the nonformal verification steps (a), (b), and (c).
Each property can have identical or different optional nonformal verification steps of (a), (b), and (c). The bounds of the bounded verification of step (a) of the optional nonformal verification can be selected by the user or automatically by a program. The limited number of cycles and the different starting states of step (b) of the optional nonformal verification (from step (b)) can be selected by the user or automatically by a program. Figure 1 shows an example of a proof flow. In 110, a property of a circuit design is accessed. For example, the property can be retrieved from a local location and/or remote location, and/or the property can be generated and accessed. In 120, a coverage metric of the property is modified. In 130, if more properties of interest exist, the proof flow can be repeated with another property.
Many other proof flow embodiments exist. Parts can be added, removed, rearranged, and/or changed. For example, multiple properties can be accessed, and/or multiple coverage metrics of one or more properties can be modified at least partly concurrently. Accessing the property and modifying the coverage metric can occur at least partly concurrently.
Figure 2 shows an example of modifying a coverage metric of a property. In 210, formal verification is attempted. In 220, the coverage metric of the property is modified based on the attempted formal verification. In 230, nonformal verification is attempted. In 240, the coverage metric of the property is modified based on the attempted nonformal verification. In 250, if more verification is to be attempted, the above can occur again, and the coverage metric can be further modified.
Many other embodiments exist for modifying the coverage metric. Parts can be added, removed, rearranged, and/or changed. For example, the coverage metric can be modified at least partly concurrently with attempted verification. Attempted formal verification can occur after and/or at least partly concurrently with attempted nonformal verification.
Figure 3 shows an example of attempting nonformal verification. In 310, a nonformal verification technique is chosen. Depending on the result of 310, a particular nonformal verification technique is attempted, such as bounded verification 320, multi-point proof 330, and vector-based simulation 340. In 350, the coverage metric is modified based on the attempted nonformal verification. In 360, if more nonformal verification is to be attempted, then the above can occur again.
Many other embodiments exist for attempting nonformal verification. Parts can be added, removed, rearranged, and/or changed. For example, multiple nonformal verification techniques can be attempted, at least partly concurrently and/or at least partly sequentially. The coverage metric can be modified at least partly concurrently with attempted verification. In some embodiments, the different nonformal verification techniques can be coverage driven.
In one example of a proof flow, given a 16-bit counter initialized to 0, an accessed property states that the counter never counts beyond 10,000. In this example, resources are exhausted beyond 4,000 cycles and the attempted formal verification failed. The coverage metric is state-based and 30,000 states have been searched during the formal verification proof. Nonformal verification is attempted. Bounded verification is attempted from each time frame number in a list of time frame numbers, e.g., {0, 2,000, 4,000, 5,000}, and results in an increase of the coverage metric from 30,000 states to 55,000 states out of the possible 65,536 states of the counter. Vector-based simulation is attempted to increase the coverage metric. Vectors are generated to simulate the accessed property that the counter never counts beyond 10,000. Unfortunately, due to resource limitations, such as time, only 6,000 additional states are reached in the vector-based simulation. The final coverage metric result is 61,000 states out of 65,536 states, or approximately 93%.
In another example of a proof flow, an accessed property about 2 signals, A and B, of a control circuit is that whenever A is true, B becomes true after 3 clock cycles. There are 330 flip-flops in the logic cone representing this property and a toggle-based coverage metric is used. Starting from an initial state, formal verification is attempted but fails after searching for 50 cycles. 150 flip-flops are determined to have both 0 and 1 configurations examined during the search and it is also found that 30 flip-flops cannot be toggled due to certain constraints of the circuit. The resulting coverage is therefore 150 / (330-30) = 50%. Multi-point proof nonformal verification is then attempted to increase the coverage. A set of starting states, which have been confirmed to be reachable since they are extracted from an existing simulation result of the circuit, are provided, and then limited-cycle searches are performed by starting from each of the set of starting states. 75 additional flip- flops are determined to have both 0 and 1 configurations examined during the multipoint nonformal proof. Therefore the coverage is increased to 225 / (330-30) = 75%. Finally coverage-driven vector-based simulation nonformal verification is attempted to target those flip-flops which have not been toggled. After generating and simulating 2500 vectors, an additional 50 flip-flops are toggled. The final coverage is increased to 275 (330-30) = 91%. The property is still not proven to be true because not all possible reachable states are searched. But there is a high confidence because 91% of the flip-flops have both 0 and 1 configurations examined during the application of formal and nonformal verification techniques.
Figure 4 shows an example of a computer 400 that can execute a proof flow, which can be code 420. The computer 400 can be comiected to a network 410. The computer 400 can execute code 420 with instructions to execute the proof flow. The computer 400 can have the code 420 preinstalled. The computer 400 can receive the code 420 over the network 410, which can be connected to the computer via a link 430, which can be a wireless and/or wired link. The code 400 can be in a temporary state (e.g., electrical, magnetic, and/or optical signal) and/or at least partly hardware, such as in a relatively permanent state (e.g., optical disk, magnetic disk, hard disk, temporary memory such as RAM, flash memory, processor). The computer 400 can have the code 420 installed via such a temporary and/or relatively permanent state hardware. Multiprocessor, multicomputer, and/or multithread implementations can be practiced.

Claims

What is Claimed is:
1. A method of checking a circuit design, comprising: accessing a plurality of one or more properties of the circuit design, wherein each property of the plurality , of one or more properties describes behavior of one or more signals in at least part of the circuit design; and modifying at least a first coverage metric of at least one property of the plurality of one or more properties of the circuit design, based on at least: attempting formal verification and attempting nonformal verification.
2. The method of claim 1 , wherein formal verification on one or more properties of the plurality of one or more properties is attempted at least partly before nonformal verification is attempted on at least one of the one or more properties of the plurality of one or more properties.
3. The method of claim 1 , wherein formal verification on one or more properties of the plurality of one or more properties is attempted at least partly after nonformal verification is attempted on at least one of the one or more properties of the plurality of one or more properties.
4. The method of claim 1 , wherein formal verification on one or more properties of the plurality of one or more properties is attempted at least partly while nonformal verification is attempted on at least one of the one or more properties of the plurality of one or more properties.
5. The method of claim 1 , wherein attempting formal verification on one or more properties of the plurality of one or more properties includes failing to perform formal verification on at least one of the one or more properties of the plurality of one or more properties.
6. The method of claim 1 , wherein attempting formal verification on one or more properties of the plurality of one or more properties includes successfully performing formal verification on at least one of the one or more properties of the plurality of one or more properties.
7. The method of claim 1 , wherein attempting nonformal verification on one or more properties of the plurality of one or more properties includes failing to perform nonformal verification on at least one of the one or more properties of the plurality of one or more properties.
8. The method of claim 1, wherein attempting nonformal verification on one or more properties of the plurality of one or more properties includes successfully performing nonformal verification on at least one of the one or more properties of the plurality of one or more properties.
9. The method of claim 1, wherein at least the first coverage metric includes at least a toggle-based metric.
10. The method of claim 1, wherein at least the first coverage metric includes at least a state-based metric.
11. The method of claim 1 , wherein at least the first coverage metric includes at least a code structure-based metric.
12. The method of claim 11, wherein the code structure metric includes at least a line coverage metric.
13. The method of claim 11 , wherein the code structure metric includes at least a path coverage metric.
14. The method of claim 11, wherein the code structure metric includes at least a branch coverage metric.
15. The method of claim 1, wherein at least the first coverage metric includes at least a user-based metric.
16. The method of claim 15, wherein at least the first coverage metric measures at least key signal combinations.
17. The method of claim 1 , wherein the nonformal verification includes bounded verification.
18. The method of claim 1 , wherein the nonformal verification includes multipoint proof.
19. The method of claim 1 , wherein the nonformal verification includes vector- based simulation.
20. The method of claim 1 in which the circuit design comprises a plurality of flip flops adapted to hold a plurality of values and a plurality of combinational elements, the method further comprising: wherein formal verification at least checks behavior defined in the at least one property over all states possible during operation of the circuit design, the operation starting from one or more initial states of the circuit design, and each state of the all states is characterized by the plurality of values held in the plurality of flip-flops of the circuit design, and wherein nonformal verification checks at least the behavior defined in the at least one property over a subset of the all states possible during operation of the circuit design, the operation starting from the one or more initial states of the circuit design.
21. Computer code for performing any of the methods of claims 1 -20.
22. The computer code of claim 21, wherein at least part of the computer code is software.
23. The computer code of claim 21, wherein at least part of the computer code is hardware.
24. An apparatus comprising means for performing the actions of any of the methods of claims 1-20.
PCT/US2004/015093 2003-05-15 2004-05-14 Combined formal and non-formal circuit verification WO2004104871A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/440,436 2003-05-15
US10/440,436 US7124383B2 (en) 2003-05-15 2003-05-15 Integrated proof flow system and method

Publications (2)

Publication Number Publication Date
WO2004104871A2 true WO2004104871A2 (en) 2004-12-02
WO2004104871A3 WO2004104871A3 (en) 2005-09-15

Family

ID=33418001

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2004/015093 WO2004104871A2 (en) 2003-05-15 2004-05-14 Combined formal and non-formal circuit verification

Country Status (2)

Country Link
US (1) US7124383B2 (en)
WO (1) WO2004104871A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594195B2 (en) * 2005-06-07 2009-09-22 Fujitsu Limited Multithreaded reachability
ATE488808T1 (en) * 2005-09-15 2010-12-15 Onespin Solutions Gmbh METHOD FOR DETERMINING THE QUALITY OF A SET OF PROPERTIES USABLE FOR VERIFICATION AND SPECIFICATION OF CIRCUITS
US7415684B2 (en) * 2006-01-27 2008-08-19 Synopsys, Inc. Facilitating structural coverage of a design during design verification
US8099695B1 (en) 2006-08-02 2012-01-17 Cadence Design Systems, Inc. Automated debugging method and system for over-constrained circuit verification environment
US8234105B1 (en) * 2008-01-08 2012-07-31 The Mathworks, Inc. Mapping between code coverage and model coverage for a design
US8209647B1 (en) 2008-02-20 2012-06-26 Cadence Design Systems, Inc. Extensible verification system
CN102968515B (en) * 2011-08-31 2016-03-30 国际商业机器公司 For calculating the method and apparatus of the checking coverage rate of integrated circuit model
US8826201B1 (en) 2013-03-14 2014-09-02 Jasper Design Automation, Inc. Formal verification coverage metrics for circuit design properties
US10409941B2 (en) * 2013-10-31 2019-09-10 Synopsys, Inc. Visual representation of circuit related data
US9158874B1 (en) * 2013-11-06 2015-10-13 Cadence Design Systems, Inc. Formal verification coverage metrics of covered events for circuit design properties
WO2015117283A1 (en) * 2014-02-10 2015-08-13 华为技术有限公司 Method for configuring prach resource, method for obtaining resource configuration, base station, and user equipment
US10283978B2 (en) * 2016-06-27 2019-05-07 Lg Chem, Ltd. Diagnostic system for a battery system
US10108767B1 (en) * 2016-09-30 2018-10-23 Cadence Design Systems, Inc. Methods, systems, and computer program product for implementing deadlock detection with formal verification techniques in an electronic design
US10915683B2 (en) * 2018-03-08 2021-02-09 Synopsys, Inc. Methodology to create constraints and leverage formal coverage analyzer to achieve faster code coverage closure for an electronic structure
GB2572440B (en) * 2018-03-29 2020-09-23 Imagination Tech Ltd Verifying a hardware design for a component that implements a permutation respecting function

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001088765A2 (en) * 2000-05-08 2001-11-22 Real Intent, Inc. Intent-driven functional verification of digital designs
US6553514B1 (en) * 1999-09-23 2003-04-22 International Business Machines Corporation Digital circuit verification

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212675B1 (en) * 1998-09-16 2001-04-03 International Business Machines Corporation Presentation of visual program test coverage information
US6484134B1 (en) * 1999-06-20 2002-11-19 Intel Corporation Property coverage in formal verification
US6490711B2 (en) * 2000-12-18 2002-12-03 Yardstick Research, Llc Method for creating a design verification test bench
US6742166B2 (en) * 2001-07-20 2004-05-25 Hewlett-Packard Development Company, L.P. System and method for evaluating functional coverage linked to a verification test plan
US6813201B2 (en) * 2001-10-24 2004-11-02 Sun Microsystems, Inc. Automatic generation and validation of memory test models
US6745374B2 (en) * 2002-06-10 2004-06-01 Sun Microsystems, Inc. Algorithms for determining path coverages and activity

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553514B1 (en) * 1999-09-23 2003-04-22 International Business Machines Corporation Digital circuit verification
WO2001088765A2 (en) * 2000-05-08 2001-11-22 Real Intent, Inc. Intent-driven functional verification of digital designs

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AZZONI P ET AL: "An error simulation based approach to measure error coverage of formal properties" GLSVLSI '02. PROCEEDINGS OF THE 12TH ACM GREAT LAKES SYMPOSIUM ON VLSI ACM NEW YORK, NY, USA, 2002, pages 53-58, XP002336669 ISBN: 1-58113-462-2 *
EMMITT J: "Open Verification Library Aids Formal Verification and Simulation Methodology" TECHONLINE, [Online] February 2001 (2001-02), pages 1-6, XP002336670 Retrieved from the Internet: URL:http://www.techonline.com/community/ed _resource/feature_article/12462?print> [retrieved on 2005-07-19] *
FERRANDI F ET AL: "Functional test generation for behaviorally sequential models" DESIGN, AUTOMATION AND TEST IN EUROPE, 2001. CONFERENCE AND EXHIBITION 2001. PROCEEDINGS 13-16 MARCH 2001, PISCATAWAY, NJ, USA,IEEE, 13 March 2001 (2001-03-13), pages 403-410, XP010538223 ISBN: 0-7695-0993-2 *
YUAN LU ET AL: "A semi-formal verification methodology" ASIC, 2001. PROCEEDINGS. 4TH INTERNATIONAL CONFERENCE ON OCT. 23-25, 2001, PISCATAWAY, NJ, USA,IEEE, 23 October 2001 (2001-10-23), pages 33-37, XP010576703 ISBN: 0-7803-6677-8 *

Also Published As

Publication number Publication date
US20040230927A1 (en) 2004-11-18
WO2004104871A3 (en) 2005-09-15
US7124383B2 (en) 2006-10-17

Similar Documents

Publication Publication Date Title
US9684760B2 (en) Measure of analysis performed in property checking
US7124383B2 (en) Integrated proof flow system and method
US6993470B2 (en) Method of evaluating test cases in a simulation environment by harvesting
CN116663462B (en) Assertion verification method, assertion verification platform, electronic device and readable storage medium
US11416662B1 (en) Estimating diagnostic coverage in IC design based on static COI analysis of gate-level netlist and RTL fault simulation
Chupilko et al. A TLM-based approach to functional verification of hardware components at different abstraction levels
US9721058B2 (en) System and method for reactive initialization based formal verification of electronic logic design
US10831956B2 (en) Efficient execution of alternating automaton representing a safety assertion for a circuit
US10268556B2 (en) System and method for simulation results analysis and failures debug using a descriptive tracking header
US6983435B2 (en) Integrated design verification and design simplification system
Hunger et al. ATPG-Based grading of strong fault-secureness
US7051303B1 (en) Method and apparatus for detection and isolation during large scale circuit verification
Cantoro et al. Automated test program reordering for efficient SBST
US7266793B1 (en) Extended model checking hardware verification
US10769332B2 (en) Automatic simulation failures analysis flow for functional verification
US11023357B1 (en) Method and system for sequential equivalence checking
US7447621B1 (en) PLI-less co-simulation of ISS-based verification systems in hardware simulators
US7133818B2 (en) Method and apparatus for accelerated post-silicon testing and random number generation
Azarpeyvand et al. CIVA: Custom instruction vulnerability analysis framework
US20180189435A1 (en) System and method for capturing transaction specific stage-wise log data
US11249135B2 (en) System and method for providing an inference associated with delays in processing input data packet(s)
Yang et al. Automated data analysis techniques for a modern silicon debug environment
Hantson et al. Mutation analysis with high-level decision diagrams
Jenihhin et al. PSL assertion checking with temporally extended high-level decision diagrams
Berryhill et al. Diagnosing unreachable states using property directed reachability

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase