Boolean Minimizer FC-Min: Coverage Finding Process Petr Fišer, Hana Kubátová Czech Technical University Department of Computer Science and Engineering
Outline Main Features of FC-Min Main Features of FC-Min Basic Principles Basic Principles An Example An Example Details on the Find Cover Phase Details on the Find Cover Phase Experimental Results Experimental Results Conclusions Conclusions
Main Features Extremely fast two-level Boolean minimizer Extremely fast two-level Boolean minimizer Capable to handle functions with a large number of input & output variables Capable to handle functions with a large number of input & output variables Advantageous for highly unspecified functions Advantageous for highly unspecified functions Low memory demands Low memory demands
Principles Implicant generation is different from standard methods (Q-M based) Implicant generation is different from standard methods (Q-M based) No prime implicants are being generated No prime implicants are being generated Only necessary group implicants are produced Only necessary group implicants are produced The cover of the on-set is found first The cover of the on-set is found first Then the implicants with the properties of the cover are computed Then the implicants with the properties of the cover are computed
Preliminaries Given: Input matrix I[n, p] Output matrix O[m, p] A Boolean function of: n input variables m output variables p defined terms, the rest are don’t cares
Three Main Phases Find Cover (thus FC-Min) Find Implicants Expand Input
Three Main Phases Find Cover (thus FC-Min) Find Implicants Expand Input
Find Cover Phase We try to find a rectangle cover of the on-set The elements of the cover will determine the implicants of the final solution The tentative implicants are being derived from the Output matrix only!
Example
The Algorithm Find Cover is NP-hard Some heuristic has to be used We use a greedy heuristic based on a gradual search for coverage elements consisting of the maximum number of “1”s We use a greedy heuristic based on a gradual search for coverage elements consisting of the maximum number of “1”s
The Algorithm 1. Select a row containing the most of “1”s 2. Continue the search for a next row to add in order to increase the number of the covered “1”s 3. Repeat 2. until the number of “1”s increases (or stop – see next slide) 4. Repeat all until the whole on-set is covered
The Depth Factor Finding a cover consisting of many “1”s in the output matrix is advantageous – but the implicants are hard to find – and the IG phase fails Finding a cover consisting of many “1”s in the output matrix is advantageous – but the implicants are hard to find – and the IG phase fails Solution – the Depth Factor DF Solution – the Depth Factor DF With a given probability we decide whether to “prolong” C(t i ) or not
The Depth Factor
Find Implicants Phase Main Idea: When a term (cube) should cover a particular output vector, the corresponding input vector must be contained in this cube Thus the minimum term satisfying the particular cover can be constructed as a minimum supercube of all the input vectors corresponding to C(t i )
Find Implicants Phase Both Matrices: t 1 covers 4, 6 and
Find Implicants Phase t 1 : t 2 : t 3 : t 4 : t 5 : t 6 : All the implicants: SOP Forms: y 0 = t 3 + t 5 = x 0 x 2 x 3 ' + x 0 x 2 ' x 4 ’ y 1 = t 2 + t 4 = x 2 'x 3 ' + x 0 ' x 1 x 2 x 3 x 4 y 2 = t 2 + t 3 + t 6 = x 2 'x 3 ' + x 0 x 2 x 3 ' + x 0 ' x 1 ' y 3 = t 1 + t 4 = x 1 'x 2 + x 0 ' x 1 x 2 x 3 x 4 y 4 = t 1 + t 6 = x 1 'x 2 + x 0 ' x 1 '
Experimental Results Significantly faster than ESPRESSO Result quality comparable to ESPRESSO & BOOM Produces results having a low number of terms Details in the Proceedings
MCNC Benchmarks 120 Benchmarks were solved 120 Benchmarks were solved 72% were solved in a shorter time than ESPRESSO 72% were solved in a shorter time than ESPRESSO In 86% FC-Min reached the same or better result In 86% FC-Min reached the same or better result In 67% both In 67% both
Time Complexity
Conclusions A new two-level Boolean minimizer has been proposed Novel method of implicant generation Usable for extremely large problems Extremely good for problems with a large number of output variables