2 Representation: Sums of Products and Products of Sums
We know that input/output of an RTL circuit can be represented by a Boolean function. In logic synthesis, we need to design a circuit to implement the Boolean function. It may be noted that more the number of terms (will be defined precisely latter) in the function, more the number of gates in the circuit. Therefore, the primary objective of logic synthesis is to determine a minimal gate representation of the function; this is called “minimizing Boolean functions”. From the context of two level implementation, our objective is to find the simplest two-level formula that represents a given function. Simplicity is measured, in terms of the number of gates and gate inputs of the circuit.
Now we formally define a two-level formulae. Formula consists of constants, variables, parentheses and operators. A letter is a constant or a variable. A literal is a letter or its complement. For example, for 0,1,x,y are letters and
are literals;
are constant literals and
variable literals. The following definitions are introduced.
Definition 4: A Product of Sums (POS) formula is one of the following:
1;
a sum term;
a conjunction of sum terms.
Example,![]()
The cost of a POS formula is determined by the number of sum terms and the number of literals. Broadly, speaking, number of sum terms determine the number of OR gates and number of literals determine the number of inputs of a gate.
has two sum terms and four literals.
A two-level formula is either a SOP or a POS. The two forms are, one is the dual of the other [1], which can be shown by De-Morgan's theorem. In this module, we will restrict all our discussions on SOP based representation of a Boolean formula.
3. Prime Implicants
There are two basic steps for minimizing Boolean functions namely, determining prime implicants and then finding subset such implicants that cover all product terms of a function. In this section, we introduce the concept of prime implicants and schemes to determine prime implicants.
Definition 5: An implicant of a function is a product term that is included in the function.
For instance,
is an implicant of
.
Definition 6: A prime implicant of a function is an implicant that is not included in any other implicant of the function.
For instance,
is not a prime implicant of
because
is contained in
.
is a prime implicant of
because it is not contained in
. So, if is an implicant is not prime, then it is possible to obtain prime implicant of by removing some literals from it.
Definition 7: If a prime implicant includes a minterm that is not included in any other prime implicant, then that prime implicant is essential.
For example,
has two prime implicants namely,
and
. Prime implicant
is essential because
contains
and
which are not contained in any other prime implicant (i.e.,
). In another function
, prime implicants are
,
and
. Among them,
is not essential because
and
is in
and
is in
.
Now we will discuss two schemes of determining prime implicants namely, Tabular method and Iterative consensus.