1.3.6 MIN Declaration Statements

The MIN declaration permits specifying different levels for different outputs in the same design, such as no reduction for outputs requiring redundancy or containing product terms (to avoid asynchronous hazard conditions), and maximum reduction for a state machine application.

The MIN declaration statement overrides, for specified variables, the minimization level specified on the command line when running CUPL. The format is as follows:
MIN var [.ext] = level ;

MIN is a keyword to override the command line minimization level.

var is a single variable declared in the file or a list of variables grouped using the list notation; that is,

MIN [var, var, ... var] = level
.ext is an optional extension that identifies the function of the variable

level is an integer between 0 and 4.

; is a semicolon to mark the end of the statement.

Levels 0 to 4 correspond to the minimization levels available: None, Quick, Quine McClusky, Presto, Espresso.

The following are examples of valid MIN declarations:

MIN async_out = 0; /* no reduction */

MIN [outa, outb] = 1; /* Quine McClusky reduction */

MIN count.d = 4; /* Espresso reduction */

Note that the last declaration in the example above uses the .D extension to specify that the registered output variable is the one to be reduced.