BOOMII: the PLA minimizer 

Description Download Program manual References Contact 
Program Manual  BOOMII ver. 2.7 (May 2008)Commandline syntaxBOOM [options] [source] [destination] [report]Options
Special Functions (cannot be combined with minimization):
FCMin:BOOM ratioDefines the ratio between BOOM and FCMin.0 means that only BOOM will be run, 100 that only FCMin FCMin depth factorDefines the depth factor. For low values, the minimization will be faster, however solutions having a bigger number of terms will be produced.High values slow down the minimization, however better solutions are often found. It applies to FCMin only. FCMin Depth Factor DirectionSwitches between 1:x and x:1 for the Depth factor.It applies to FCMin only. CDSearch mutations ratioThis argument specifies the ratio of forced randomness of the CDsearch. In some cases, by increasing this value you may reach better solution.It applies to BOOM only. Implicant reduction mutations ratioThis argument specifies the ratio of forced randomness of the IR phase. In some cases, by increasing this value you may reach better solution.It applies to BOOM only. Implicant expansionYou can specify the implicant expansion method. It applies to BOOM only.The Multiple Expansion is more efficient, since it produces more PIs in one iteration. It is suggested to use this option. The Exhaustive Expansion produces all the PIs from one implicant in each iteration. Sometimes can be very slow (the complexity is exponential). The distributed versions of IE split the expansion among several consecutive iterations. The expansion is then faster, but more iterations have to be done. Covering problem solutionThis switch selects the covering problem solution algorithm.The Exact Cover always finds the best solution (of the CP problem, not the whole minimization!), but can be extremely slow for large problems. Stopping criterionBOOM performs an iterative minimization. The more iterations are processed, the better the result that can be archieved. The number of iterations can be specified by the user. Moreover, the minimization can be stopped after a given time, or when a satisfactory result is reached.The stopping criteria can be combined, if in a reasonable way. Optimization criterionDuring iterative minimization the best result found so far is remembered. The measure of the quality can be specified by the user.Singleoutput minimizationDoes not perform a multioutput minimization, thus BOOM tries to find a solution having a least number of terms in each output function separately.Cover at the end onlyWhen this option is selected, the covering problem is solved only once at the end of the minimizaion process. Thus, the whole process is sped up. This option cannot be combined with optimization criteria based stopping condition.Substitute output don't caresNormally, when a term in the resulting PLA is not a necessary implicant of some output function (but it is necessary for other function), it is assigned as an output don't care.When this option is on, the don't cares are substituted with zero values. Output formatDefines the format, in which will be the output function saved. Standard PLA, VHDL, Verilog and BLIF formats are supported. Additionally, the function can me saved as a set of equations or as a HTML truth table.Don't check the input function for consistenceThe function is implicitly checked for consistency before the minimization is run. This option switches the consistency check off. It slightly reduces the total minimization time, but it may cause the program hang, if an inconsistent function is submitted as an input.Don't perform the implicant reductionThis option prevents CDsearch from generating group implicants. This phase is often very timedemanding, especially for functions with many outputs. However, when FCMin is employer as well (i.e., by FR50 option), the group implicants are produced by it, so the IR phase needs not be necessarily performed.Implicitly name the variablesIf the names of the variables are not specified in the input file, the program automatically names the input variables as x_{0}  x_{n}, the output variables as y_{0}  y_{m}.Information about the PLA functionPrints the info on the number of the variables, terms and the complexity of the given function.Checks the input function for consistenceFor the PLA, type fr, there is a possibility of inconsistence. Thus, both the 0 and 1 values are defined for some minterm. In this case the minimization cannot be performed. However, the minimization process will start, but most probabely it will fail or it will never stop. Hence checking the funcion for inconsistence is recommended.Splits intersecting termsSplits the function (PLA type fr) so that no terms are intersecting.It may be rather timeconsuming for functions with a large number of inputs. Splits function into mintermsSplits the function (PLA type fr) into minterms, by evaluating its output for each of 2^{n} minterms.It may be rather timeconsuming for functions with a large number of inputs. Source functionThe source for minimization will be a PLA file. Type .fr is required (onset and offset specified).Destination functionThe output of BOOM is a PLA file type .fd. This corresponds to the physical PLA representation of the function. When no destination is specified, the function is printed to the standard output.Report fileThe minimization report is written to a file, if specified.ExampleWe have a Boolean function of 4 input variables and 3 output variables described by the following Karnaugh maps:
This function can be described by a PLA file as follows: .i 4 This will be an input for the BOOM minimizer. This function can be minimized by the following command: BOOM fnct.pla The function will be minimized to the form: .i 4 Another Examples
