The paper presents an efficient method for manipulating very large shared binary decision diagrams (SBDDs) which are too large to be stored within main memory. In contrast that the conventional depth-first algorithm causes random access of memory, the proposed method is intended to cause sequential access of memory. The main idea of our method is level-by-level manipulation of shared quasi-reduced BDD's (SQBDD's) upon a breadth-first algorithm. A garbage collection algorithm based on sliding type compaction is also introduced in order to reduce page faults in succeeding manipulation. We implemented and evaluated the proposed method on the workstation Sun SPARC Station 10 and 64 Mbyte main memory and a 1 Gbyte hard disk drive. As a result it took only 5.6 h to obtain an SQBDD of more than 12 million nodes, which represents all the primary outputs of a 15-bit multiplier, from its circuit description. If we use the conventional SBDD manipulator instead, it is estimated that it would take about 1900 h.
[1]
Hiroyuki Ochi,et al.
Breadth-first manipulation of SBDD of boolean functions for vector processing
,
1991,
28th ACM/IEEE Design Automation Conference.
[2]
Sheldon B. Akers,et al.
Binary Decision Diagrams
,
1978,
IEEE Transactions on Computers.
[3]
Randal E. Bryant,et al.
Graph-Based Algorithms for Boolean Function Manipulation
,
1986,
IEEE Transactions on Computers.
[4]
Randal E. Bryant,et al.
Efficient implementation of a BDD package
,
1991,
DAC '90.
[5]
Jacques Cohen,et al.
Garbage Collection of Linked Data Structures
,
1981,
CSUR.
[6]
Edmund M. Clarke,et al.
A parallel algorithm for constructing binary decision diagrams
,
1990,
Proceedings., 1990 IEEE International Conference on Computer Design: VLSI in Computers and Processors.