Download presentation
Presentation is loading. Please wait.
Published byMarshall Merritt Modified over 5 years ago
1
Fast Boolean Minimizer for Completely Specified Functions
Petr Fišer1, Přemysl Rucký1, Irena Váňová2 1Czech Technical University in Prague Dept. of Computer Science and Engineering 2UTIA, CAS
2
Outline Motivation Ternary tree The minimization algorithm
Experimental results Conclusions DDECS’2008, Bratislava
3
Motivation Standard two-level minimizers are not able to handle “huge” functions “Normal” functions → Espresso Many input variables → BOOM Many output variables → FC-Min Many defined terms → ??? DDECS’2008, Bratislava
4
Motivation Functions having many (up to millions) product terms often emerge in logic synthesis (e.g., collapsing, Boolean manipulations with functions, etc.) These functions often contain redundancies, easily detectable absorptions, … Early detection of these would significantly reduce memory consumption and the computation time → There is a need for a two-level minimizer able to handle such functions. The priority is speed, not the result quality: “Do something with it, but I want the result immediately” DDECS’2008, Bratislava
5
Ternary Tree Recall: Many terms = tenths of thousands, millions
There could occur redundancies (duplicate terms) → An efficient storage structure is needed DDECS’2008, Bratislava
6
Ternary Tree Used as a storage of terms.
It is not a function representation (like BDDs)! Ternary tree node: 1 - Depth = number of input variables DDECS’2008, Bratislava
7
Ternary Tree a b c d e 00000 0001- -0-10 -0-11 101-1 11--0 11111
DDECS’2008, Bratislava
8
Ternary Tree Properties: Insertion of a term in O(n)
Looking up a term in O(n) Size: between n and 3n+1 Comparison of look-up speeds: On success On failure Ternary tree n 1 … (n-1) Truth table n … n.p n.p DDECS’2008, Bratislava
9
Ternary Tree Look-up Example
Searching: ab‘c‘d (1001-) a b failure c d e 00000 0001- -0-10 -0-11 101-1 11--0 11111 DDECS’2008, Bratislava
10
TT Minimization Absorption of one variable Complement property
Very simple. Only two rules applicable to the leaves only: Absorption of one variable a + ab = a (00-) + (001) = (00-) Complement property ab + a’b = b (000) + (001) = (00-) ???- ???1 ???- ???0 ???1 ???- DDECS’2008, Bratislava
11
TT Minimization Example
DDECS’2008, Bratislava
12
Tree Rotation The operations can be performed on leaves only => the tree must be rotated Cut off the root node → TT is split into three (at most) Append the root variable to all the leaves Merge the trees DDECS’2008, Bratislava
13
Tree Rotation Example DDECS’2008, Bratislava
14
TT Minimization Example cont.
… DDECS’2008, Bratislava
15
Experimental Results - Collapsing
Benchmark Size (n / p) Espresso TT-Min TT-min + Espresso Terms Time [s] c880_3 60 / 15673 470 57853 23.11 305 c880_4 60 / 67136 440 37 12046 6.44 439 8.5 c1908_4 33 / 32768 7040 20 20990 1.1 17 c1908_5 33 / 6464 2144 1 4640 0.19 2 c1908_6 33 / 13700 3200 4 8704 0.41 4.5 c3540_1 50 / 32455 4740 101512 32.9 32396 1569 c3540_2 50 / 42568 10202 254 19620 4.2 10065 193 c3540_3 50 / 4464 1022 2112 0.34 2.5 c3540_4 50 / 1912 184 0.1 459 0.07 c3540_5 50 / 6657 1516 5 3654 0.62 1522 c3540_6 50 / 14397 900 43442 9.09 382 c3540_7 50 / 6933 611 2360 0.37 DDECS’2008, Bratislava
16
Experimental Results - Collapsing
Benchmark Size (n / p) Espresso TT-Min TT-min + Espresso Terms Time [s] c880_3 60 / 15673 470 57853 23.11 305 c880_4 60 / 67136 440 37 12046 6.44 439 8.5 c1908_4 33 / 32768 7040 20 20990 1.1 17 c1908_5 33 / 6464 2144 1 4640 0.19 2 c1908_6 33 / 13700 3200 4 8704 0.41 4.5 c3540_1 50 / 32455 4740 101512 32.9 32396 1569 c3540_2 50 / 42568 10202 254 19620 4.2 10065 193 c3540_3 50 / 4464 1022 2112 0.34 2.5 c3540_4 50 / 1912 184 0.1 459 0.07 c3540_5 50 / 6657 1516 5 3654 0.62 1522 c3540_6 50 / 14397 900 43442 9.09 382 c3540_7 50 / 6933 611 2360 0.37 DDECS’2008, Bratislava
17
Experimental Results – Random Functions
Benchmark Espresso TT-Min Terms Time [s] 30 / 5000 35 17.82 1004 0.63 35 / 5000 1169 1719 1.01 35 / 8000 200 400.98 3703 2.41 40 / 5000 - > 24 h 3033 5.5 40 / 10000 5054 7.0 40 / 20000 6606 13.72 50 / 30000 13232 33.6 60 / 50000 38203 94.9 DDECS’2008, Bratislava
18
Conclusions A new two-level minimizer based on ternary trees
Good for functions described by many terms Ternary tree is a good “storage” for a large number of terms The minimization is very fast, the result quality is not optimum, though Anyway, we are lucky that at least some minimization is done, since standard tools are completely unusable for these functions Practice has shown that such a fast minimization is essential for many logic synthesis processes (multi-level network collapsing, Boolean manipulation with functions…) DDECS’2008, Bratislava
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.