US7290229B2 - Method and system for optimized handling of constraints during symbolic simulation - Google Patents
Method and system for optimized handling of constraints during symbolic simulation Download PDFInfo
- Publication number
- US7290229B2 US7290229B2 US11/050,592 US5059205A US7290229B2 US 7290229 B2 US7290229 B2 US 7290229B2 US 5059205 A US5059205 A US 5059205A US 7290229 B2 US7290229 B2 US 7290229B2
- Authority
- US
- United States
- Prior art keywords
- binary decision
- targets
- constraints
- decision diagram
- design
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 116
- 238000004088 simulation Methods 0.000 title claims abstract description 28
- 238000010586 diagram Methods 0.000 claims abstract description 170
- 238000013461 design Methods 0.000 claims abstract description 80
- 230000001902 propagating effect Effects 0.000 claims abstract description 7
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 12
- 230000002194 synthesizing effect Effects 0.000 claims 3
- 230000008569 process Effects 0.000 description 54
- 230000006870 function Effects 0.000 description 33
- 238000012795 verification Methods 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 230000014509 gene expression Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000011960 computer-aided design Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012854 evaluation process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3323—Design verification, e.g. functional simulation or model checking using formal methods, e.g. equivalence checking or property checking
Definitions
- the present invention relates in general to verifying designs and in particular to representing a logic function in a decision diagram. Still more particularly, the present invention relates to a system, method and computer program product for handling constraints during symbolic simulation of a design.
- Formal and semiformal verification techniques provide powerful tools for discovering errors in verifying the correctness of logic designs.
- Formal and semiformal verification techniques frequently expose probabilistically uncommon scenarios that may result in a functional design failure.
- formal and semiformal verification techniques provide the opportunity to prove that a design is correct (i.e., that no failing scenario exists).
- BDDs Binary Decision Diagrams
- sink nodes include the output node or nodes in an equivalence checking or a false-paths analysis context.
- sink nodes also include targets in a property-checking or model-checking context.
- formal verification techniques require computational resources which are exponential with respect to the size of the design under test.
- formal analysis techniques require exponential resources with respect to the number of state elements in the design under test.
- Semi-formal verification techniques leverage formal algorithms on larger designs by applying them only in a resource-bounded manner, though at the expense of incomplete verification coverage; generally, coverage decreases as design size increases.
- Constraints are often used in verification to prune the possible input stimulus in certain states of the design. For example, a constraint may state “if the design's buffer is full, then constrain the input stimulus to prevent new transfers into the design”. Semantically, the verification tool will typically discard any states for which a constraint evaluates to a 0 (i.e., the verification tool may never produce a failing scenario showing a violation of some property of the design, if that scenario does not adhere to all the constraints for all time-steps prior to the failure).
- Symbolic simulation is a symbolic exploration approach that has been used to exhaustively check designs for a bounded number of steps, starting at the initial states. This method verifies a set of scalar tests with a single symbolic vector. Symbolic inputs (represented as BDDs) are assigned to the inputs and propagated through the circuit to the outputs. This technique has the advantage that large input spaces are covered in parallel with a single symbolic sweep of the circuit. The bottleneck of the approach lies in the explosion of the BDD representations.
- What is needed is a technique to handle constraints optimally in a sound and complete manner in a symbolic simulation setting, and thereby ensure that the sizes of intermediate BDDs are minimized with an optimal schedule for building BDDs for nodes in a netlist representation of a circuit.
- a method for verifying a design through symbolic simulation comprises creating one or more binary decision diagram variables for one or more inputs in a design containing one or more state variables and building a binary decision diagram for a first node of one or more nodes of the design.
- a binary decision diagram for the initial state function of one or more state variables of the design is generated and the design is subsequently initialized.
- Binary decisions diagrams for one or more constraints are synthesized.
- a set of constraint values is accumulated over time by combining the binary decision diagrams for the one or more constraints with a set of previously generated binary decision diagrams for a set of constraints previously used in one or more previous time-steps.
- a binary decision diagram for the next state function of the one or more state variables in the design is constructed in the presence of the constraints.
- the one or more state variables in the design are updated by propagating the binary decision diagram for the next state function to the one or more state variables and a set of binary decision diagrams for the one or more targets in the presence of the one or more constraints is calculated.
- the set of binary decision diagrams for one or more targets is constrained and the design is verified by determining whether the one or more targets were hit.
- FIG. 1 is a block diagram of a general-purpose data processing system with which the present invention of a method, system and computer program product for optimized handling of constraints during symbolic simulation may be performed;
- FIG. 2 is a flow diagram of a process for optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention
- FIG. 3 is a flow diagram of a process for building constrained binary decision diagrams with optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention.
- FIG. 4 is a flow diagram of a process for constraining binary decision diagrams with optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention.
- the present invention provides a method, system, and computer program product to optimize handling of constraints in a symbolic simulation setting.
- the method of the invention minimizes the size of binary decision diagrams by factoring in constraints on a circuit as ‘don't cares’, resulting in an optimized handling of constraints for building binary decision diagrams for nodes in a netlist representation of a circuit.
- the present invention's optimization of intermediate binary decision diagrams enables significant performance improvements over the methods available in the prior art.
- the present invention alleviates the problems of exponential complexity and associated resource consumption by managing available resources more efficiently than conventional techniques.
- Data processing system 100 contains a processing storage unit (e.g., RAM 102 ) and a processor 104 .
- Data processing system 100 also includes non-volatile storage 106 such as a hard disk drive or other direct-access storage device.
- An Input/Output (I/O) controller 108 provides connectivity to a network 110 through a wired or wireless link, such as a network cable 112 .
- I/O controller 108 also connects to user I/O devices 114 such as a keyboard, a display device, a mouse, or a printer through wired or wireless link 116 , such as cables or a radio-frequency connection.
- System interconnect 118 connects processor 104 , RAM 102 , storage 106 , and I/O controller 108 .
- data processing system 100 stores several items of data and instructions while operating in accordance with a preferred embodiment of the present invention. These include a design netlist 120 and an output table 122 for interaction with a logic simulator 124 and a binary decision diagram builder 126 . Other applications 128 and logic simulator 124 interface with processor 104 , RAM 102 , I/O control 108 , and storage 106 through operating system 130 .
- processor 104 processor 104
- RAM 102 RAM 102
- I/O control 108 I/O control 108
- storage 106 storage 106 through operating system 130 .
- Other data structures in RAM 102 include an initial state data structure 132 containing an initial state of design netlist 120 , a constraints data structure 134 , and a targets and cycles data structure 136 detailing operational characteristics of the simulation run by logic simulator 124 .
- a netlist graph such as design netlist 120
- design netlist 120 is a popular means of compactly representing problems derived from circuit structures in computer-aided design of digital circuits. Such a representation is non-canonical and offers limited ability to analyze the function from the nodes in the graph.
- a netlist contains a directed graph with vertices representing gates and edges representing interconnections between those gates.
- the gates have associated functions, such as constants, primary inputs, combinational logic (e.g., AND gates), and sequential elements (hereafter referred to as registers). Registers have two associated components; their next-state functions and their initial-value functions, which are represented as other gates in the graph. Certain gates in the netlist may be labeled as “primary outputs”, “targets”, “constraints”, etc.
- Binary decision diagrams 138 are a popular choice for efficiently applying Boolean reasoning to problems derived from circuit structures, which are frequently represented in netlist graphs.
- Binary decision diagrams 138 offer a compact and canonical representation of the Boolean function of a graph node, which expedites reasoning regarding a node's function.
- Processor 104 executes instructions from programs, often stored in RAM 102 , in the course of performing the present invention.
- processor 104 executes logic simulator 124 .
- Logic simulator 124 performs the creation of binary decision diagrams 138 through the operation of binary decision diagram builder 126 on the circuit specifications contained in design netlist 120 , which contains instructions for modeling a simulated item of logical hardware.
- Design netlist 120 contains a directed graph with vertices representing gates, and edges representing interconnections between those gates.
- the gates have associated functions, such as constants, primary inputs (hereafter referred to as RANDOM gates), combinational logic such as AND gates, and sequential elements (hereafter referred to as registers).
- the present invention is applied to a netlist representation where the only combinational gate type is a 2-input AND, and inverters are represented implicitly as edge attributes.
- Registers have two associated components, their next-state functions, and their initial-value functions. Both are represented as other gates in design netlist 120 . Semantically, for a given register, the value appearing at its initial-value gate at time ‘0’ (“initialization” or “reset” time) will be applied as the value of the register itself; the value appearing at its next-state function gate at time “i” will be applied to the register itself at time “i+1”. Certain gates are labeled as “targets” and/or “constraints”.
- Targets within targets and cycles 136 represent nodes whose Boolean expressions are of interest and need to be computed.
- the goal of the verification process is to find a way to drive a ‘1’ on a target node, or to prove that no such assertion of the target is possible.
- a “counterexample trace” showing the sequence of assignments to the inputs in every cycle leading up to the fail event getting triggered is generated and recorded to output table 122 .
- Logic simulator 124 includes a computer program product, stored in RAM 102 and executed on processor 104 , which provides a series of tools for activities such as equivalence checking, property checking, logic synthesis and false-paths analysis. Generally speaking, logic simulator 124 contains rule-based instructions for predicting the behavior of logically modeled items of hardware.
- Logic simulator 124 uses the series of rules contained in its own instructions, in conjunction with design netlist 120 , to represent the underlying logical problem structurally (as a circuit graph), and uses binary decision diagram builder 126 to construct binary decision diagrams 138 , thereby converting the structural representation into a functionally canonical form.
- logic simulator 124 is a Cycle-Based Symbolic Simulator (CBSS), which performs a cycle-by-cycle simulation on design netlist 120 symbolically by applying unique random, or non-deterministic, variables to the netlist inputs in every cycle.
- CBSS Cycle-Based Symbolic Simulator
- the Boolean expressions represented as BDDs 138 , corresponding to each node in design netlist 120 are computed until the expressions for all “sink” nodes (i.e. nodes labeled as primary outputs, targets, constraints and next-state functions of registers) are obtained.
- the Boolean expressions of the target nodes are tested for being non-zero. If so, a counterexample trace leading up to the failure (represented by the assertion of the target node to a ‘1’) is returned.
- the constraints need to be factored in before this check for the targets being hit can be done. This factoring is typically accomplished by simply ANDing the Boolean expression for the target with the Boolean expression for each of the constraints.
- a Cycle-Based Symbolic Simulator such as logic simulator 124 , performs a cycle-by-cycle symbolic simulation on a netlist representation of the design in design netlist 124 .
- Logic simulator 124 essentially performs forward BDD-based bounded symbolic simulation, starting from initial state 132 .
- Logic simulator 124 extends the cycle simulation methodology to symbolic values.
- Logic simulator 124 applies symbolic functions to the inputs in every cycle and propagates them to the targets within targets and cycles data structure 136 .
- state-variables/next-state functions and the targets are expressed in terms of the symbolic values applied in the various cycles, if the target is hit and counterexamples are generated simply by assigning concrete values to the symbolic values in the cycles leading up to the fail.
- BDD-based symbolic simulation can be computationally intensive; in the worst case BDD sizes are exponential with respect to the number of inputs of the design and the depth of the simulation. This exponential expansion may practically limit the number of cycles that can be checked exhaustively or the size of designs that may be symbolically simulated.
- primary goals during the simulation process are to keep BDD sizes of all nodes as small as possible and to retain only those BDDs 138 that are needed.
- Logic simulator 124 records results in output table 122 .
- Logic simulator 124 may also report the contents of output table 122 or the status selected indicators of the status of design netlist 120 to user I/O 114 or applications 128 . Additionally, all or part of logic simulator 124 , operating system 130 , design netlist 120 , and output table 122 may, at times, be stored in storage 106 and/or in RAM 102 .
- a preferred embodiment of the present invention employs several types of BDDs 138 in every cycle, including BDDs for design 140 containing BDDs for state variables 142 , BDDs for targets 154 , BDDs for variables for each of the inputs of the current cycle 146 , BDDs for next-state nodes 148 , BDDs for constraints for previous cycles 150 , and BDDs for constraints 156 .
- constraints 134 as follows:
- BDD builder 126 applies constraints 134 as don't-cares in an attempt to reduce the sizes of BDDs 138 and thus the overall memory requirements. In a sense, this ‘don't-caring’ heuristically factors in constraints 134 early in the process of building BDDs 138 , and, in so doing helps to reduce the Boolean expression representation of intermediate nodes.
- constraints 134 are applied as don't-cares by using one of three operations within BDD builder 126 : bdd-constrain, bdd-restrict and bdd-compact (in that order).
- BDD builder 126 applies the cheapest, or the least computationally intensive don't-caring operation (bdd-constrain) first and, based on size thresholds, dynamically switches to more expensive functions.
- This use of multiple operations by BDD builder 126 creates a dynamic compromise between the time requirement and the memory requirement (as the more expensive ‘don't-caring’ operations take longer, but are more optimal i.e., render larger reductions in BDD 138 size).
- constraints 134 are applied as “hard-constraints”, or ANDed with the target BDDs 154 obtained for the target nodes, before they are checked for having been hit.
- Constraints 134 are used to “artificially” limit the stimulus that can be applied to the RANDOM gates of the design; in particular, when searching for a way to drive a ‘1’ to a target, the verification process must adhere to the rule that “every constraint gate must evaluate to a logical “1” for every time-step up to and including the time-step at which the target is asserted”; valuations for which the constraint gate evaluates to a ‘0’ are considered invalid. For example, a constraint 134 could be added which drives a ‘1’ exactly when a vector of RANDOM gates evaluates to even parity.
- the verification tool would consider valuations with even or odd parity to those RANDOM gates; with the constraint, only even parity would be explored.
- constraints impose “hard restrictions” to the evaluations performed by the verification tool; there is no freedom to selectively enforce or ignore the constraints when evaluating targets.
- Constraints 134 at intermediate points in the evaluation are treated as don't cares.
- the constraints define a care-set for the valuations to the RANDOM gates when evaluating the targets, and all values outside of the care-set (e.g., where the constraint evaluates to false) may be added/discarded at intermediate points. This don't-caring simplifies the evaluation process and peak BDD sizes. Later, prior to evaluating the targets, the constraints 134 are used as hard restrictions on the resulting BDDs 138 , which are already smaller due to the prior don't-caring, ensuring that verification semantics are strictly preserved.
- the method of the preferred embodiment dynamically adjusts resource utilization parameters to converge on a heuristically-optimized schedule.
- the method of switching between depth-first and modified breadth-first methods for building binary decision diagrams includes setting a first size limit for a first set of one or more m-ary decision representations describing a logic function and setting a second size limit for a second set of one or more m-ary decision representations describing a logic function.
- the first set of m-ary decision representations of the logic function is then built with one of the set of a depth-first technique or a breadth-first technique until the first size limit is reached, and a second set of m-ary decision representations of the logic function is built with the other technique until the second size limit is reached.
- the first and second size limits are increased, and the steps of building the first and second set are repeated.
- the union is reported.
- the method of the preferred embodiment allows BDD builder 126 to suspend construction of a given binary decision diagram by either of a depth-first or a breadth-first method, when the binary decision diagram under construction exceeds a certain pre-determined size threshold, and return later, with higher resource limits, to building the abandoned binary decision diagram.
- DVO Dynamic Variable Ordering
- the method of building binary decision diagrams of the present invention is optimized by building smaller binary decision diagrams before building larger binary decision diagrams. Building smaller builder decision diagrams before building larger builder decision diagrams significantly reduces overall runtime and memory requirements.
- FIG. 2 a flow diagram of a process for optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention, is depicted.
- the process starts at step 200 and then moves to step 202 , which depicts logic simulator 124 setting a variable for the maximum number of cycles to a value appropriate to the maximum number of cycles allowable for each of the unresolved targets remaining.
- the process next proceeds to step 204 .
- logic simulator 124 sets a cycle counter equal to zero.
- step 206 which illustrates logic simulator 124 determining whether the current value of the cycle counter equals the maximum number of cycles set in step 202 . If the current value of the cycle counter is equal to the maximum number of cycles set in step 202 , then the process ends at step 208 . If the cycle counter does not equal the maximum numbers of cycles set in step 202 , then the process next proceeds to step 210 .
- step 210 logic simulator 124 determines whether the current cycle is the first cycle. If the current cycle is not the first cycle, the process next moves to step 212 , which illustrates logic simulator 124 updating BDDs for state variables 142 by propagating BDDs for next state nodes 148 to BDDs for state variables 142 .
- step 212 illustrates logic simulator 124 updating BDDs for state variables 142 by propagating BDDs for next state nodes 148 to BDDs for state variables 142 .
- step 214 BDD builder 126 reviews initial state 132 for design netlist 120 and builds BDDs for initial state 164 .
- Logic simulator 124 then initializes the design from design netlist 120 in its initial state by incorporating BDDs for initial state 164 into BDDs for design 140 . The process then proceeds to step 216 , which is described below.
- step 212 the process next moves to step 216 , which depicts BDD builder 126 creating new BDD variables for the each of the inputs of the current cycle 146 .
- step 218 BDD builder 126 builds BDDs for constraints for cycle n 156 .
- step 220 which illustrates logic simulator 124 performing an AND operation between BDDs for constraints for previous cycles 150 and BDDs for constraints for cycle n 156 to accumulate constraint values over time.
- binary decision diagram builder 126 builds BDDs for the targets 154 .
- the process next moves to step 224 , which depicts logic simulator 124 constraining target BDDs.
- the process then proceeds to step 226 .
- logic simulator determines whether targets from targets and cycles data structure 136 have been hit. If targets from targets and cycles 136 have been hit, then the process next moves to step 228 .
- hits are recorded to output table 122 .
- the process then proceeds to step 230 , which illustrates BDD builder 126 building BDDs for the next functions in the presence of constraints.
- step 226 if logic simulator 124 determines that no targets were hit, then the process next moves to step 230 , which is describe above. From step 230 , the process returns to step 206 , which is described above.
- FIG. 2 discloses a broad method for building BDDs constraints in cycle n 156 and using them as don't-cares (during steps 222 - 230 ) to minimize the BDDs created for next state nodes 148 .
- steps 224 - 226 the present invention applies constraints 134 as hard restrictions to the target BDDs 154 , such that any behaviors precluded by the constraints 134 are “weeded out” when checking the targets for being hit.
- the BDDs for the targets 154 , BDDs for constraints 156 , and next-state nodes 148 for functions and registers in any cycle always are a function of the inputs applied at the current and previous cycles; the BDDs at these nodes represent the possible values these nodes may assume at any point in time in terms of all possible inputs applied to the design in the different cycles.
- the building of BDDs for sinks i.e. “end-points”, in a netlist representation of the design—such as targets and next-state functions, is handled in a levelized manner as described above.
- the technique relies on building BDDs for each node in the representation until BDDs for the sinks are obtained. That technique may be enhanced using the present invention to additionally factor in constraints 134 .
- the present invention treats the BDDs for the constraints for cycle n 156 as don't-cares to minimize the size of the BDD at each node, (i.e. behaviors outside of the specified constraint are a don't-care and hence may assume either a ‘0’ or a ‘1’ value).
- the present invention relies on treating the constraints as don't-cares by using safe BDD minimization algorithms, which are known in the art. Such algorithms ensure that the constraints are adhered to, but for all values outside of the care-set defined by the constraint they are free to chose a ‘0’ or a ‘1’ value towards the goal of minimizing the size of the BDD. The behaviors added will ultimately be eliminated during that final stage as well.
- step 300 a flow diagram of the process for building constrained binary decision diagrams with optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention is illustrated.
- the process starts at step 300 .
- the process next proceeds to step 302 .
- BDD builder 126 identifies the gate that sources an individual edge.
- the process then moves to step 304 , which depicts BDD builder 126 determining whether the edge under consideration is inverted and next proceeds to step 306 .
- BDD builder 126 determines whether a BDD has already been built for the node under consideration. If a BDD has been built for the node under consideration, then the process next moves to step 308 , which illustrates BDD builder 126 getting the BDD for the current node. The process then proceeds to step 310 .
- binary decision diagram builder 126 determines whether to return the IVT, representing whether the edge is inverted. If binary decision diagram builder 126 determines to return the IVT, then the process ends at step 312 . If the binary decision diagram builder 126 determines not to return the IVT then the process returns to step 302 , which is described above.
- step 306 if BDD builder 126 determines that a BDD for the current node is not already built, then the process proceeds to step 314 , which depicts BDD builder defining the left half of the BDD in terms of its left child nodes. The process next moves to step 316 . At step 316 , BDD builder 126 builds the right half of the BDD for the current node in terms of the nodes' child nodes. The process then moves to step 318 , which illustrates binary decision diagram builder combining the left and right halves. The process next moves to step 320 . At step 320 , binary decision diagram builder 126 constrains the BDD assembled in steps 314 through 318 .
- the present invention performs don't-caring by applying one of three minimization algorithms, in order of increasing computational complexity—bdd-constrain, bdd-restrict and bdd-compact.
- the present invention extends this technique further by dynamically switching between each of these minimization techniques based on thresholds for the required reduction in the size of the BDD at the node.
- step 400 a flow diagram of a process for constraining binary decision diagrams with optimized handling of constraints during symbolic simulation, in accordance with the preferred embodiment of the present invention is depicted.
- the process starts at step 400 , the process next proceeds to step 402 .
- step 404 depicts BDD builder 126 constraining the current BDD received in step 402 using the BDD constraint operation 158 .
- step 406 depicts BDD builder 126 constraining the current BDD received in step 402 using the BDD constraint operation 158 .
- BDD builder 126 determines whether the size of the resulting BDD from step 404 is greater than the size of the original BDD in step 402 . If the size of the resulting BDD in step 404 is greater than the size of the original BDD in step 402 , then the process moves to step 408 , which illustrates BDD builder 126 reversing the constrained operation performed in step 404 . The process next proceeds to step 410 . If, at step 406 , BDD builder 126 determines that the size of resulting BDD from step 404 is not greater than the size of the original BDD in step 402 , then the process moves to step 410 .
- binary decision diagram builder 126 determines whether the size of the BDD under consideration is greater than a specified threshold. If the size of the BDD under consideration is greater than the specified threshold, then the process moves to step 412 . At step 412 , BDD builder 126 constrains the current BDD using a bdd-restrict function 126 that guarantees that the BDD size is not greater than the size of the original BDD. The process then proceeds to step 414 . If, at step 410 , the BDD is not greater than the specified threshold, then the process moves to step 414 .
- BDD builder 126 determines whether the size of the BDD under consideration is still greater than the specified threshold. If the size of the BDD is not still greater than the specified threshold, then the process next proceeds to step 416 , which depicts BDD builder returning the current BDD to logic simulator. If, at step 414 , the size of the BDD under consideration is still greater than the specified threshold, then the process moves to step 418 . At step 418 , binary decision diagram builder applies a BDD compact operation 160 to minimize the size of the BDD. The process then proceeds to step 416 , which is described above. From step 416 , the process ends at step 420 .
- the present invention guaranteed that the size of the BDD at a node will not increase. If at all, the BDD size will decrease—possible dramatically—and facilitate building of subsequent larger BDDs which may otherwise be infeasible due to an explosion in the size of the BDD. In a sense, the present invention removes and/or adds behaviors precluded by the constraints early on by a smart application of the constraints during intermediate BDD building as opposed to doing this only at the end once all the “exact” BDDs have been built.
- any such don't-caring first checks for the intersection of the cone-of-influence of the constraints with the cone-of-influence of the node, and applies only those constraints at the node as don't-cares that do have some overlap (otherwise the constraint does not influence the function at the node in any way).
- the target BDDs 154 built using don't cares as per the above algorithms—are hard-restricted with the BDDs for the constraints 156 before checking whether they are hit. This hard-restriction is accomplished by ANDing the constraint BDD 156 with the BDD 154 for the targets, thus disallowing all behaviors outside of those specified as legal by the constraints. Note that it is safe to perform such a hard-constraining (as opposed to don't-caring) at the targets only, versus at all intermediate nodes, because the targets are the only points of “externally visible design behavior” while all other nodes are internal to the design. The constraining can thus be strictly enforced only at the targets without risking the verification toolset producing an illegal result which violates the constraints.
- the bdd-AND operation restricts the valuations at the targets to the care-set defined by the constraint, and rules out behaviors that violate this set, or lie outside of this set—some of which may have been introduced by the earlier don't caring of our invention for optimality, and some of which are intrinsic in the netlist and are disallowed only by the presence of the constraints.
- the present invention provides a method, system, and computer program product to optimize handling of constraints in a symbolic simulation setting.
- the method of the invention minimizes the size of intermediate binary decision diagrams by factoring in constraints on a circuit as ‘don't cares’, resulting in an optimized handling of constraints for building binary decision diagrams for nodes in a netlist representation of a circuit.
- the present invention's optimization of intermediate binary decision diagrams enables significant performance improvements over the methods available in the prior art.
- the present invention alleviates the problems of exponential complexity and associated resource consumption by managing available resources more efficiently than conventional techniques.
- the method described above will typically be carried out in software running on one or more processors (not shown), and that the software may be provided as a computer program element carried on any suitable data carrier (also not shown) such as a magnetic or optical computer disc.
- the channels for the transmission of data likewise may include storage media of all descriptions as well as signal carrying media, such as wired or wireless signal media.
- the present invention may suitably be embodied as a computer program product for use with a computer system.
- Such an implementation may comprise a series of computer readable instructions either fixed on a tangible medium, such as a computer readable medium, for example, diskette, CD-ROM, ROM, or hard disk, or transmittable to a computer system, via a modem or other interface device, over either a tangible medium, including but not limited to optical or analog communications lines, or intangibly using wireless techniques, including but not limited to microwave, infrared or other transmission techniques.
- the series of computer readable instructions embodies all or part of the functionality previously described herein.
- Such computer readable instructions can be written in a number of programming languages for use with many computer architectures or operating systems. Further, such instructions may be stored using any memory technology, present or future, including but not limited to, semiconductor, magnetic, or optical, or transmitted using any communications technology, present or future, including but not limited to optical, infrared, or microwave. It is contemplated that such a computer program product may be distributed as a removable medium with accompanying printed or electronic documentation, for example, shrink-wrapped software, pre-loaded with a computer system, for example, on a system RON or fixed disk, or distributed from a server or electronic bulletin board over a network, for example, the Internet or World Wide Web.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
Description
-
- 1. cycle-num=0;
- 2. while (cycle-num<(no. of cycles to be simulated) && (unsolved targets remaining)) do
- 3. if(cycle-num==0) {Build BDDs for the initial states and initialize the design in its initial state}
- 4. else {Update state-vars by propagating BDDs for the next-state nodes to the state-vars}
- 5. Create new BDD variables for each of the inputs for the Current cycle
- 6. Build BDDs for the constraints; AND these BDDs to those of the constraints for any earlier time-steps to accumulate the constraint values over time.
- 7. Build BDDs for the targets in the presence of constraints
- 8. Constrain target BDDs and check for targets hit
- 9. Build BDDs for the next-functions in the presence of the constraints
- 10. endwhile
-
- 1. Function build-node-bdd(Edge edge)
- 2. Node node=source(edge); [see the gate which sources the edge]
- 3. bool ivt=is-inverted(edge); [see if the edge was inverted]
- 4. If(bdd-already-built(node)) bdd=get-node-bdd(node); [check if already built]
- 5. else {
- 6. BDD left=build-node-bdd(get-left-child(node));
- 7. BDD right=build-node-bdd(get-right-child(node));
- 8. bdd=bdd-and(left, right);
- 9. bdd=constrain-bdd(bdd);
- 10. }
- 11. return ivt? bdd-not(bdd): bdd;
-
- 1. Function constrain-bdd(BDD bdd)
- 2. Begin
- 3. BDD c-bdd=get-constraint-bdd0;
- 4. BDD t-bdd=bdd-constrain(bdd, c-bdd) [constrain using the bdd-constrain operation]
- 5. if(bdd-size(t-bdd)>bdd-size(bdd)) t-bdd=bdd [undo constrain if size of resulting BDD exceeds the size of the original BDD]
- 6. if(bdd-size(t-bdd)>BDD-SIZE-THRESHOLD) [if size of BDD is greater than a specified threshold]
- 7. t-bdd=bdd-restdct-threshold(t-bdd, c-bdd) [then constrain using bdd-restrict-threshold—this operation guarantees that bdd-size(t-bdd)<=bdd-size(bdd)]
- 8. if(bdd-size(t-bdd)>BDD-SIZE-THRESHOLD) [if size of BDD still exceeds the specified threshold]
- 9. t-bdd=bdd-compact(t-bdd, c-bdd) [then apply the bdd-compact operation—this operation too guarantees that bdd-size(t-bdd)<=bdd-size(bdd)]
- 10. return t-bdd;
- 11. End
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/050,592 US7290229B2 (en) | 2005-02-03 | 2005-02-03 | Method and system for optimized handling of constraints during symbolic simulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/050,592 US7290229B2 (en) | 2005-02-03 | 2005-02-03 | Method and system for optimized handling of constraints during symbolic simulation |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060190868A1 US20060190868A1 (en) | 2006-08-24 |
US7290229B2 true US7290229B2 (en) | 2007-10-30 |
Family
ID=36914314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/050,592 Expired - Fee Related US7290229B2 (en) | 2005-02-03 | 2005-02-03 | Method and system for optimized handling of constraints during symbolic simulation |
Country Status (1)
Country | Link |
---|---|
US (1) | US7290229B2 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090164966A1 (en) * | 2004-08-26 | 2009-06-25 | Viresh Paruthi | Method and System for Building Binary Decision Diagrams Efficiently in a Structural Network Representation of a Digital Circuit |
US20100275169A1 (en) * | 2009-04-27 | 2010-10-28 | Synopsys, Inc. | Adaptive state-to-symbolic transformation in a canonical representation |
US20130080381A1 (en) * | 2011-09-23 | 2013-03-28 | Fujitsu Limited | Combining Medical Binary Decision Diagrams for Size Optimization |
US8495536B2 (en) * | 2011-08-31 | 2013-07-23 | International Business Machines Corporation | Computing validation coverage of integrated circuit model |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US9075908B2 (en) | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US9176819B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Detecting sensor malfunctions using compression analysis of binary decision diagrams |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9405819B2 (en) * | 2007-02-07 | 2016-08-02 | Fujitsu Limited | Efficient indexing using compact decision diagrams |
US7949968B2 (en) * | 2007-03-08 | 2011-05-24 | International Business Machines Corporation | Method and system for building binary decision diagrams optimally for nodes in a netlist graph using don't-caring |
US11527165B2 (en) * | 2019-08-29 | 2022-12-13 | The Boeing Company | Automated aircraft system with goal driven action planning |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163876A (en) * | 1998-11-06 | 2000-12-19 | Nec Usa, Inc. | Method for verification of RTL generated from scheduled behavior in a high-level synthesis flow |
US7020856B2 (en) * | 2002-05-03 | 2006-03-28 | Jasper Design Automation, Inc. | Method for verifying properties of a circuit model |
US20070061765A1 (en) * | 2005-09-13 | 2007-03-15 | Christian Jacobi | Method and system for case-splitting on nodes in a symbolic simulation framework |
-
2005
- 2005-02-03 US US11/050,592 patent/US7290229B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163876A (en) * | 1998-11-06 | 2000-12-19 | Nec Usa, Inc. | Method for verification of RTL generated from scheduled behavior in a high-level synthesis flow |
US7020856B2 (en) * | 2002-05-03 | 2006-03-28 | Jasper Design Automation, Inc. | Method for verifying properties of a circuit model |
US20070061765A1 (en) * | 2005-09-13 | 2007-03-15 | Christian Jacobi | Method and system for case-splitting on nodes in a symbolic simulation framework |
Non-Patent Citations (5)
Title |
---|
H. Andersen, An Introduction to Binary Decision Diagrams, Technical University of Denmark, Oct. 1997. |
Hong et al., Safe BDD Minimization Using Don't Cares, Proceedings of the 34<SUP>th </SUP>Annual Conference on Design Automation, 1997, pp. 208-213. |
L. Turbak, Depth-First Search and Related Graph Algorithms, Wellesley College, Nov. 28, 2001. |
R. Bryant, Graph-Based Algorithms for Boolean Function Manipulation, IEEE published Aug. 1986. |
R. Rudell, Dynamic Variable Ordering for Ordered Binary Decisions Diagrams, IEEE, 1993, pp. 42-47. |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100138805A9 (en) * | 2004-08-26 | 2010-06-03 | Viresh Paruthi | Method and System for Building Binary Decision Diagrams Efficiently in a Structural Network Representation of a Digital Circuit |
US7836413B2 (en) * | 2004-08-26 | 2010-11-16 | International Business Machines Corporation | Building binary decision diagrams efficiently in a structural network representation of a digital circuit |
US7853917B2 (en) * | 2004-08-26 | 2010-12-14 | International Business Machines Corporation | System for building binary decision diagrams efficiently in a structural network representation of a digital circuit |
US20090164966A1 (en) * | 2004-08-26 | 2009-06-25 | Viresh Paruthi | Method and System for Building Binary Decision Diagrams Efficiently in a Structural Network Representation of a Digital Circuit |
US20100275169A1 (en) * | 2009-04-27 | 2010-10-28 | Synopsys, Inc. | Adaptive state-to-symbolic transformation in a canonical representation |
WO2010129126A3 (en) * | 2009-04-27 | 2011-01-20 | Synopsys, Inc. | Adaptive state-to-symbolic transformation in a canonical representation |
US8099690B2 (en) | 2009-04-27 | 2012-01-17 | Synopsys, Inc. | Adaptive state-to-symbolic transformation in a canonical representation |
US9002781B2 (en) | 2010-08-17 | 2015-04-07 | Fujitsu Limited | Annotating environmental data represented by characteristic functions |
US9138143B2 (en) | 2010-08-17 | 2015-09-22 | Fujitsu Limited | Annotating medical data represented by characteristic functions |
US8495536B2 (en) * | 2011-08-31 | 2013-07-23 | International Business Machines Corporation | Computing validation coverage of integrated circuit model |
US8909592B2 (en) * | 2011-09-23 | 2014-12-09 | Fujitsu Limited | Combining medical binary decision diagrams to determine data correlations |
US8838523B2 (en) | 2011-09-23 | 2014-09-16 | Fujitsu Limited | Compression threshold analysis of binary decision diagrams |
US9075908B2 (en) | 2011-09-23 | 2015-07-07 | Fujitsu Limited | Partitioning medical binary decision diagrams for size optimization |
US20130080381A1 (en) * | 2011-09-23 | 2013-03-28 | Fujitsu Limited | Combining Medical Binary Decision Diagrams for Size Optimization |
US9177247B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Partitioning medical binary decision diagrams for analysis optimization |
US9176819B2 (en) | 2011-09-23 | 2015-11-03 | Fujitsu Limited | Detecting sensor malfunctions using compression analysis of binary decision diagrams |
Also Published As
Publication number | Publication date |
---|---|
US20060190868A1 (en) | 2006-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7793242B2 (en) | Method and system for performing heuristic constraint simplification | |
US7448005B2 (en) | Method and system for performing utilization of traces for incremental refinement in coupling a structural overapproximation algorithm and a satisfiability solver | |
US7743353B2 (en) | Enhanced verification by closely coupling a structural overapproximation algorithm and a structural satisfiability solver | |
US7856609B2 (en) | Using constraints in design verification | |
US7290229B2 (en) | Method and system for optimized handling of constraints during symbolic simulation | |
US7913218B2 (en) | Reduction of XOR/XNOR subexpressions in structural design representations | |
US7506290B2 (en) | Method and system for case-splitting on nodes in a symbolic simulation framework | |
US8181129B2 (en) | Acyclic modeling of combinational loops | |
Plaza et al. | Node mergers in the presence of don't cares | |
US7203915B2 (en) | Method for retiming in the presence of verification constraints | |
US7823093B2 (en) | Method and system for reduction of and/or subexpressions in structural design representations | |
Clarke et al. | Predicate abstraction and refinement techniques for verifying Verilog | |
US20080092096A1 (en) | Method and system for optimized automated case-splitting via constraints in a symbolic simulation framework | |
US7949968B2 (en) | Method and system for building binary decision diagrams optimally for nodes in a netlist graph using don't-caring | |
Sunkari et al. | A scalable symbolic simulator for Verilog RTL | |
Hoque et al. | MDG-SAT: an automated methodology for efficient safety checking | |
Prothero | Modelling and implementation of petri nets using VHDL | |
Chen et al. | Optimizing automatic abstraction refinement for generalized symbolic trajectory evaluation | |
Wang et al. | Formal Verification on Deep Learning Instructions of GPU | |
Hasan | Design of data abstraction structure for MDG-HOL hybrid tool | |
JPH08329129A (en) | Functional verification method of increment of integrated system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BAUMGARTNER, JASON RAYMOND;JACOBI, CHRISTIAN;PARUTHI, VIRESH;AND OTHERS;REEL/FRAME:015816/0743 Effective date: 20050128 |
|
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
REMI | Maintenance fee reminder mailed | ||
FPAY | Fee payment |
Year of fee payment: 8 |
|
SULP | Surcharge for late payment |
Year of fee payment: 7 |
|
AS | Assignment |
Owner name: GLOBALFOUNDRIES U.S. 2 LLC, NEW YORK Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:036550/0001 Effective date: 20150629 |
|
AS | Assignment |
Owner name: GLOBALFOUNDRIES INC., CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GLOBALFOUNDRIES U.S. 2 LLC;GLOBALFOUNDRIES U.S. INC.;REEL/FRAME:036779/0001 Effective date: 20150910 |
|
AS | Assignment |
Owner name: WILMINGTON TRUST, NATIONAL ASSOCIATION, DELAWARE Free format text: SECURITY AGREEMENT;ASSIGNOR:GLOBALFOUNDRIES INC.;REEL/FRAME:049490/0001 Effective date: 20181127 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20191030 |
|
AS | Assignment |
Owner name: GLOBALFOUNDRIES INC., CAYMAN ISLANDS Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WILMINGTON TRUST, NATIONAL ASSOCIATION;REEL/FRAME:054636/0001 Effective date: 20201117 |
|
AS | Assignment |
Owner name: GLOBALFOUNDRIES U.S. INC., NEW YORK Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WILMINGTON TRUST, NATIONAL ASSOCIATION;REEL/FRAME:056987/0001 Effective date: 20201117 |