Method and System for Conjunctive BDD Building and Variable Quantification Using Case-Splitting
First Claim
1. A method in a computer system for building binary decision diagrams of a circuit design comprising:
- building a binary decision diagram for at least one node in a netlist graph representation of a circuit design;
selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design;
building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero;
building a second binary decision diagram for the case of said at least one variable having a constant logical value of one;
determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all;
in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram;
in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram;
generating said binary decision diagrams in said computer system; and
storing one or more of said binary decision diagrams in a computer-readable medium, whereby said one or more binary decision diagrams has a reduced number of peak live nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, apparatus and computer-readable medium for conjunctive binary decision diagram building and variable quantification using case-splitting are presented. A BDD building program builds a BDD for at least one node in a netlist graph representation of a circuit design. One or more variables are selected for case-splitting. The variable is set to a constant logical value and then the other. A BDD is built for each case. The program determines whether the variable is scheduled to be quantified out. If so, the program combines the BDDs for each case according to whether the quantification is existential or universal. If the variable is not scheduled to be quantified, the program combines the BDDs for each case so that the variable is introduced back into the resulting BDD, which has a reduced number of peak live nodes.
-
Citations
20 Claims
-
1. A method in a computer system for building binary decision diagrams of a circuit design comprising:
-
building a binary decision diagram for at least one node in a netlist graph representation of a circuit design; selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design; building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero; building a second binary decision diagram for the case of said at least one variable having a constant logical value of one; determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all; in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram; generating said binary decision diagrams in said computer system; and storing one or more of said binary decision diagrams in a computer-readable medium, whereby said one or more binary decision diagrams has a reduced number of peak live nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for building binary decision diagrams of a circuit design comprising:
- a processor;
a data bus coupled to the processor; and a computer-usable medium embodying computer program code, the computer-usable medium being coupled to the data bus, the computer program code comprising instructions executable by the processor and configured for; building a binary decision diagram for at least one node in a netlist graph representation of a circuit design; selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design; building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero; building a second binary decision diagram for the case of said at least one variable having a constant logical value of one; determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all; in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram; and storing one or more of said binary decision diagrams in a computer-readable medium, whereby said one or more binary decision diagrams has a reduced number of peak live nodes. - View Dependent Claims (9, 10, 11, 12, 13, 14)
- a processor;
-
15. A computer-readable medium encoded with a computer program that, when executed, performs the steps of:
-
building a binary decision diagram for at least one node in a netlist graph representation of a circuit design; selecting at least one variable for case-splitting from a plurality of variables in said netlist graph representation of a circuit design; building a first binary decision diagram for the case of said at least one variable having a constant logical value of zero; building a second binary decision diagram for the case of said at least one variable having a constant logical value of one; determining whether said at least one variable is scheduled to be existentially quantified, universally quantified, or not quantified at all; in response to determining that said at least one variable is scheduled to be existentially quantified, building a third binary decision diagram equal to the logical disjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is scheduled to be universally quantified, building a third binary decision diagram equal to the logical conjunction of said first binary decision diagram and said second binary decision diagram; in response to determining that said at least one variable is not scheduled to be quantified, building a third binary decision diagram by logically combining said first binary decision diagram with said second binary decision diagram, whereby said variable is introduced into said third binary decision diagram; generating said binary decision diagrams in said computer system; and storing one or more of said binary decision diagrams in a computer-readable medium, whereby said one or more binary decision diagrams has a reduced number of peak live nodes. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification