190 likes | 295 Views
Fast Boolean Minimizer for Completely Specified Functions. Petr Fi š er 1 , P ř emysl Ruck ý 1 , Irena V áň ov á 2 1 Czech Technical University in Prague Dept. of Computer Science and Engineering 2 UTIA, CAS. Outline. Motivation Ternary tree The minimization algorithm
E N D
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
Outline • Motivation • Ternary tree • The minimization algorithm • Experimental results • Conclusions DDECS’2008, Bratislava
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
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
Ternary Tree Recall: • Many terms = tenths of thousands, millions • There could occur redundancies (duplicate terms) → An efficient storage structure is needed DDECS’2008, Bratislava
Ternary Tree Used as a storage of terms. It is not a function representation (like BDDs)! Ternary tree node: 0 1 - Depth = number of input variables DDECS’2008, Bratislava
Ternary Tree a b c d e 00000 0001- -0-10 -0-11 101-1 11--0 11111 DDECS’2008, Bratislava
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: DDECS’2008, Bratislava
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
TT Minimization 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 ???- ???1 ???- ???0 DDECS’2008, Bratislava
TT Minimization Example 001010011100101110111 00101-10-11- DDECS’2008, Bratislava
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
Tree Rotation Example DDECS’2008, Bratislava
TT Minimization Example cont. … 10-00-01-11- 001-1-10- DDECS’2008, Bratislava
Experimental Results - Collapsing DDECS’2008, Bratislava
Experimental Results - Collapsing DDECS’2008, Bratislava
Experimental Results – Random Functions DDECS’2008, Bratislava
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