Grid Controls:Drawing Controls:
Term Type: Sum-of-Products Product-of-Sums
Prime Indicants: 0
Introduction: This application demonstrates the use of Karnaugh maps to identify a basic cost optimization, and accompanying circuit design, of a logical expression specified as a six-variable truth table.
Grid: Click on selected cells in the grid to toggle the Boolean value for each combination of variables. (Note that each axis of the grid represents the lower two variables in gray-code order. This allows for a conceptual overlap between each 4x4 grid and its adjacent neighbors.)
Term Types: These radio buttons will specify whether the expression is represented as a sum-of-products form or a product-of-sums form.
Circuit: Clicking on a gate in the first level of the circuit diagram will select the gate and highlight the fields in the grid that represent the product or sum implemented by the gate. This pane can also be scrolled vertically by dragging up and down.
This application demonstrates a calculation of a cost-optimized logical expression for a six-variable Boolean truth table. The calculation is internally achieved by using a simple Karnaugh map algorithm that identifies groups of minterms or maxterms, and consolidates down to a low-cost combination of terms.
The results are displayed as a sum-of-products or a product-of-sums, along with a basic circuit implementation of the sum or product. In the sum-of-products representation, the result is the sum (logical OR) of the groups of cells captured by every gate; in the product-of-sums representation, the result is the product (logical AND) of the groups of cells captured by every gate.
The most significant challenge for this application (besides properly drawing the gate traces) was processing a three-dimensional cube to identify clusters of all-one or all-zero (2^x)(2^y)(2^z) cubes. The algorithm exhaustively searches the space to find a complete set of all such cubes (even 1x1x1 cubes). The set is then consolidates down to a minimum-cost combination by attempting to remove each individual cube, and seeing if the remaining set contains all of the minterms or maxterms.
Trivia: Expression ABCDEF = internal identifier 42. It just worked out that way.