Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Combinational Logic: 7.1. Functional Specifications

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 5

7.

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.

7.1. Functional 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

examples; an equivalent truth table specification for


this example is shown to the left. A concise alternative
to the truth table is a Boolean expression:
Y= C B A+ C BA+CB A +CBA
represents the same 3-input function as the truth table and informal
algorithmic specification. In each case, the combinational device abstraction
requires that the functional description specify a logical (0 or 1) value for each
combination of input values.

7.2. Boolean Expressions

Boolean expressions are a ubiquitous notation in the engineering of digital systems.


They constitute a simple algebra for functions defined on the domain of truth values
(0 and 1), and define three basic operations:

Multiplication (logical AND): AB or simply AB represents the logical


conjunction of the values A and B: the result is 1 only if A and B are both 1
Addition (logical OR): A+B represents the logical disjunction of the values
A and B; the result is 1 if A=1 or B=1 or both.

Negation (logical NOT or inversion): A represents the logical inverse of

A: A =1 if A=0, A =0 if A=1

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

OR rules: a+1=1 a+0=a


a+a=a

AND rules: a1=a a0=0


aa=a

Commutativity: a+b=b+a ab=ba


Associativity: (a+b)+c=a+(b+c) (ab)c=a(bc)
Distributivity: a(b+c)=ab+ac a+bc=(a+b)(a+c)
Complements: a+ a =1 a a =0
a =a

Absorption: a+ab=a a+ a b=a+b


a(a+b)=a a( a +b)=ab

Reduction: ab+ a b=b (a+b)( a +b)=b


a a
DeMorgan's Law: + b = ab b = a+b

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

7.3. Truth Table Arithmetic

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

Circuit symbols for commonly-used 2-input combinational logic


components are shown to the right; some of these (NAND and
NOR) we've already seen in connection with their direct
implementation as CMOS gates. The others require multiple CMOS
gates to implement. The 2-input AND of A and B can be easily
implented as a NAND gate followed by an inverter, since AB=
A B = NAND( A , B)
; similarly, OR can be implemented as a
CMOS NOR gate followed by an inverter. The more complex

XOR(A,B)=A B + A B requires several CMOS gates to
implement, as does its inverse XNOR(A,B).
Note the consistent use of small circles -- "inversion bubbles" -- to
indicate inversion of logic levels. 2-input gate symbols

7.5. Universal Gates

Although there are 2k k-input logic functions we may wish to implement as


combinational devices, the ability to synthesize new devices as acyclic circuits
implies that we can begin with a small repertoire of basic gates and design circuits
using them to build arbitrary functionality. Indeed, the observation that Boolean
expressions are built using only three operations (AND, OR, and NOT) implies that a
starting toolkit containing only AND, OR, and inverter modules is sufficient.
Moreover, since we can synthesize k-input AND and OR devices from circuits of 2-
input gates, it follows that an unlimited supply of 2-input AND and OR devices, along
with inverters, will allow us to synthesize any logic functions we might wish. We term
such a set universal, in that it contains all we need to implement arbitrary logic
functions.

You might also like