IP Library Granted Patent US 7,475,371
Granted Patent B2
US 7,475,371 · App. 11/963,290 · Granted Jan 6, 2009

Method and system for case-splitting on nodes in a symbolic simulation framework

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,475,371
App. No.
11/963,290
Granted
Jan 6, 2009
Kind
B2
Abstract

A method for performing verification includes receiving a design and building for the design an intermediate binary decision diagram set containing one or more nodes representing one or more variables. A first case-splitting is performed upon a first fattest variable from among the one or more variables represented by the one or more nodes by setting the first fattest variable to a primary value, and a first cofactoring is performed upon the intermediate binary decision diagram set with respect to the one or more nodes using an inverse of the primary value to generate a first cofactored binary decision diagram set. A second cofactoring is performed upon the intermediate binary decision diagram set with respect to the one or more nodes using the primary value to generate a second cofactored binary decision diagram set, and verification of the design is performed by evaluating a property of the second cofactored binary decision diagram set.

Claims (24)

1. A machine-readable recordable type storage medium having a plurality of instructions processable by a machine embodied therein, wherein said plurality of instructions, when processed by said machine, causes said machine to perform a method comprising:

receiving a design;

determining a number of simulation cycles necessary to simulate said design for verification;

building for said design an intermediate binary decision diagram set containing one or more nodes representing one or more variables;

in response to building said intermediate binary decision diagram set, initializing a plurality of registers associated with said design with initial values;

creating a binary decision diagram variable for each input to said design;

performing verification of said design by evaluating a property of said intermediate binary decision diagram;

building for said design a subsequent intermediate binary decision diagram set containing one or more nodes representing one or more variables;

updating said plurality of registers with a set of next state function values;

case splitting upon a first fattest variable from among said one or more variables represented by said one or more nodes by setting said first fattest variable to a first value;

first cofactoring said intermediate binary decision diagram set with respect to said one or more nodes using an inverse of said first value to generate a first cofactored binary decision diagram set;

second cofactoring said intermediate binary decision diagram set with respect to said one or more nodes using said first value to generate a second cofactored binary decision diagram set;

in response to determining at least one simulation cycle remains, repeating said building for said design said subsequent intermediate binary decision diagram set; and

in response to determining that at least one simulation cycle does not remain, outputting results of said verification.

2. The machine-readable recordable type storage medium of claim 1 , wherein said method further comprises performing verification of said design by evaluating a property of said first cofactored binary decision diagram set.

3. The machine-readable recordable type storage medium of claim 1 , wherein said method further comprises storing said first cofactored binary decision diagram set on a stack.

4. The machine-readable recordable type storage medium of claim 1 , wherein said method further comprises, in response to a size of said intermediate binary decision diagram set exceeding a size threshold, selecting for case-splitting said fattest variable from among said one or more variables represented by said one or more nodes.

5. The machine-readable recordable type storage medium of claim 4 , wherein:

selecting for case-splitting fattest variable from among said one or more variables represented by said one or more nodes further comprises selecting for case-splitting a set of multiple fattest variables from among said one or more variables represented by said one or more nodes; and

said method further comprises repeating said first case-splitting, first cofactoring, and first performing steps on each of said set of multiple fattest variables from among said one or more variables represented by said one or more nodes.

6. The machine-readable recordable type storage medium of claim 1 , wherein:

said step of first case-splitting upon a fattest variable from among said one or more variables represented by said one or more nodes by setting said fattest variable to a primary value further comprises first case-splitting upon a fattest from among said one or more variables represented by said one or more nodes by setting said fattest variable from among said one or more variables represented by said one or more nodes to a primary value at an identified time step.

7. The machine-readable storage medium of claim 1 , wherein said method further comprises:

constraining a target binary decision diagram with at least one constraint.

Assignments (1)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058553/0802 →