Combinational Logic: 7.1. Functional Specifications
Combinational Logic: 7.1. Functional Specifications
Combinational Logic: 7.1. Functional Specifications
Combinational Logic
Armed with the abstract model of combinational devices outlined in Chapter 5 and the
concrete implementation technology for simple gates of Chapter 6, we turn out
attention to techniques for constructing combinational circuits that perform arbitrarily
complex useful functions. To this end, we use the constructive property of
combinational devices outlined in Section 5.3.2: an acyclic circuit whose components
are combinational devices is itself a combinational device. That is, the behavior of
such a circuit can be described by the combination of a functional and timing
specification derived from the circuit topology and the component specifications.
There are a variety of notations we can use to specify the functional specification of a
combinational device such as the 3-input, single-output module shown to the
right. We might simply use a sentence or algorithmic description of each
output such as that shown in the box. A more
systematic specification is the truth tables that have
been used in prior
The use of familiar algebraic notation -- multiplication and addition -- for logical
AND and OR operations takes a bit of time for the unitiated to assimilate. The
following list summarizes some properties of Boolean expressions that are worth
internalizing:
Boolean Identities
As the identities in the above table shows, there are many equivalent ways of
representing a given logic function as a Boolean expression, and a variety of
techniques for simplifying a Boolean expression or converting it to a form that is
convenient for one's purposes.
While there are many Boolean expressions that represent a given Boolean function,
there is essentially only one truth table for each function: modulo permutation of
inputs, a truth table can be viewed as a canonical representation. One can verify the
equivalence of two Boolean expressions with k variables by building truth tables that
enumerate their values for each of the 2k combinations of variable values, and
checking that the tables are identical
The truth table for a k-input, single-output logic function has 2k rows, listing the
single-bit output for each of the 2 k potential combinations of input values. Each such
k-input truth table has the identical form: input values are listed, conventionally in a
systematic order corresponding to binary counting order; truth tables for different k-
input functions thus differ only in the 2k single-bit values in their output column.
There is a one-to-one correspondence between these truth tables and the set of k-input
logic functions. As there are 2k output bits that distinguish a particular k-input
function, and each output bit may be 0 or 1, it follows that the total number of
k
2
possible k-input functions is just 2 -- precisely the number of distinct k -input
truth tables.
2
There are, for example, a total of 22 =16 2-input functions, whose truth tables are
summarized below:
Note that the full set of 2-input functions includes degenerate cases of functions
whose output is independent of one or both input values. It is worth noting that, of
these sixteen 2-input functions, only six can be implemented directly as single CMOS
gates: NOR(A,B)= A + B and NAND(A,B)= A B , as well as the degnerate cases
A , B , , 0, and 1. Other 2-input functions must be synthesized using multiple
CMOS gates in a combinational circuit.
7.4. Gates and Gate Symbols