You are on page 1of 30

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Exclusive OR/Exclusive NOR (XOR/XNOR)

XOR and XNOR are useful logic functions.


Both have two or more inputs. The truth
table for two inputs is shown at right.
a XOR b = 1 if and only if (iff) a b.
a XNOR b = 1 if and only if (iff) a = b.
Both may also have many inputs. For >2
inputs, the XOR output is 1 for an odd
number of 1 inputs; XNOR has a 1 output
for an even number of 1 inputs.
Symbols are shown below and to the right.
Like NAND and
a
a b NOR, XOR and
XOR b
XNOR are not

XNOR
1

a
b

XOR/XNOR Truth Table


a b a XOR b a XNOR b
0

basic Boolean functions,


a b but can be made from
AND, OR and NOT.
Lecture #6: More Complex Combinational Logic Circuits

XNOR = ab + ab

XOR = ab + ab
N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Quick Simplification Review

The first technique we studied to simplify a


Boolean expression used algebraic techniques.
For instance, consider the truth table at right.
The minterms shown represent the SOP
expression: f = abc + abc + abc
The Boolean expression is easily simplifiable
using the Boolean identities:

f = abc + abc + abc


f = abc + abc + abc + abc
1
1
f= ab( c + c ) + ac ( b + b )
=
f ab + ac

The simplified circuit is shown below the


truth table.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Quick Simplification Review (2)

We can also plot the minterms on a K-map


and graphically simplify the expression (and
the circuit).
On the K-map below, the three minterms
( abc , abc , abc ) are plotted.
The simplified expression derived from the
two prime implicants is the same as that
using algebraic simplification.

bc bc bc bc

a
a
3

000

001

011

010

100

101

111

110

Identical circuit
solution using
K-map method:

=
f ab + ac

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Exercise 1

Lets do another simplification exercise before moving on.


Consider this spec: The function f of three variables, x, y, and z,
is 1 when x and y are both 1 or when x and z are both 1. Find the
SOP expression, the simplified expression, and the simplified
circuit. Use the K-map on the next slide to perform the same
simplification.

0
0
0
0
0
1
1
1

1
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

K-Map Solution

y z yz yz yz

x
x

000

001

011

010

100

101

111

110

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Decoders

An n-to-2n decoder is a combinational logic circuit that has n inputs and


up to 2n outputs. That is, it can have 2n outputs, but it may have less.
Each output of a decoder will normally be true (i.e., go to logic 1) for only
one combination of the n inputs.
Consider the case of an n = 2 decoder. The decoder will have 2 inputs and
up to 2n = 22 = 4 outputs.
Assume that the decoder has the maximum possible number of outputs
(4). Then the truth table for the 2-input decoder will show that for each
combination of y and x (00, 01, 10, 11), one of the outputs will go high
(logic 1).
Let us call the inputs y and x and the outputs a, b, c, and d (here, x is the
more significant bit). Then let us define a = 1 for x = 0, y = 0; b = 1 for x =
0 and y = 1; c = 1 for x = 1 and y = 0, and d = 1 for x = 1 and y = 1.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Decoders (2)
The truth tables for a-d in our 2-to-4 decoder are:
x
y *
a
b
c
d
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
Using the truth tables above, we can define a-d in terms of x and y.

a = xy
b = xy
c = xy
d = xy

Boolean expressions for a, b, c,


and d in terms of x and y.

* Note that we put x first because we regard the xy pair as a number, with x the more significant bit.
Lecture #6: More Complex Combinational Logic Circuits
N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Decoders (3)

Remembering that
=
a x=
y, b xy
=
, c x y,=
and xy :
If we consider xy a binary number with x
the MSB and y the LSB, then a-d represent a
x
true condition for each of the four possible
y
binary numbers that x and y can represent.
Thus we say that each output a-d has an
address, which is a unique combination of
the two bits in the binary number yx:

For
=
xy 00,
=
a 1; for
=
xy 01,
=
b 1;
for
=
xy 10,
=
c 1; for
=
xy 11,
=
d 1.

a
b
c
d

Based on the logic expressions above, we can


draw the decoder circuit as shown at right.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Decoders (4)

In the same way, a decoder with 3 inputs


may have up to 23 = 8 outputs, and each
output will have a unique address that
x
represents one of the eight possible
combinations of the three inputs.
Such a circuit is shown to the right.
y
In the same way, a 4-input decoder could
have up to 24 = 16 outputs, each of which z
is a unique combination of the inputs.
Etc., for 5, 6, 7
Two Notes:
Any n-input decoder can have up to 2n
outputs, but it may have less.
In general, each output for an n-input
decoder is created by a single n-input
AND gate. Its inputs are the n decoder
inputs, some of which may be inverted.

a
b
c
d
e
f
g
h

3-input,
eightoutput
decoder

xy
z

Lecture #6: More Complex Combinational Logic Circuits

g
N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Definition of a Multiplexer
A multiplexer is a combinational logic circuit that has up to 2n
inputs, an n-bit address, and one output.
The multiplexer connects one of the inputs to the output,
depending on the value of the n-bit address.
The n-bit address is decoded, just as we have studied in the last
five slides.
Thus the multiplexer uses a decoder and a selector circuit (which
we will see in a subsequent slide) to tie one of its inputs to its
output.
The multiplexer is usually symbolized by the abbreviation MUX as
the symbol for its function.
10

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

Multiplexer: An Input to Output Selector

The truth table for a multiplexer is shown below.


Assume a 4-input MUX, with inputs labeled a, b, c, d.
Then there must be two address lines, x (MSB) and y (LSB).
The output is denoted as f.

x
0
0
1
1
11

y
0
1
0
1

f
a
b
c
d

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Components of a Multiplexer
a
b
c

Output*

x
y

12

Selector
* Note that the multiplexer has
a 1-bit output.

Decoder
The multiplexer is shown above, with the various parts of the circuit labeled.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Differences in Decoder and Multiplexer


Decoder:
A decoder has n inputs, which are called the address.
A decoder has up to 2n outputs (it can have that many, maximum; but it
might have less). Each output line is true (or 1) for a specific
combinations of the input lines, called the address.

Multiplexer:
A multiplexer has two sets of inputs: n address lines (just like the
decoder) and as many as 2n inputs, one of which is selected by each
address for output (it may have less inputs).
A multiplexer has only one output. The output is the value of the input
selected by the address.

Thus we see that a decoder makes up a part of a multiplexer.


13

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Exercise 2
Lets design a simple decoder
and multiplexer.

A decoder has a three-input


address, x-z, with x = MSB, but
although it may have up to 23, or
8 outputs, in this case, it has only
three. Output 1 is true on
address 3, 2 on address 6, and 3
on address 7. Design the
decoder.
Now using the decoder and
adding a selector circuit,
design a MUX to output the
inputs a-c on addresses 3, 6,
and 7, respectively.

14

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Binary Arithmetic Circuits


A binary adder is a large part of a computer central processor unit
(CPU). The CPU figuring unit is sometimes called the ALU, or
arithmetic/logic unit, (Patterson and Hennessey call it the datapath).
The ALU or datapath is a combinational logic unit that can add,
subtract, or do logical operations such as AND, OR, NOT, etc.
Consider the rules of addition (adding two numbers only*):
Numbers are added on a columnar basis, starting on the right.
If the sum of one column is a 2-digit number, the right number goes in
current column, and the left number (always a 1) becomes a carry to the
next column to the left.
Column addition always includes the carry from the column to the right.
The resulting sum in any column will be only a single digit.
* A computer never adds but two numbers together at one time.
15

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

Principles of Addition

Decimal addition example:


1 1

Carries

5 8 7
6 4 3
1
2 3 0
Binary numbers are added in exactly the same way:
Carries

16

1 1 1 1

1 1 1

10101000111
+ 01111110101
(1) 0 0 1 0 0 1 1 1 1 0 0
Basic principles for an n-column addition:
Add column i plus carry from column i1 (ci1).
If a one-digit result, that number is the sum of column i, si.
If a 2-digit result, the right digit is si. The left digit is carry i, or ci.
The column i carry, ci, will be added to column (i+1).
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

A Half-Adder Circuit

17

We would now like to design a digital


adder for two binary numbers.
Since addition is done on a columnar
basis, all that is necessary to add two nbit numbers, is to use one binary
column adder for each of the n bits.
Thus, to add two 8-bit numbers, we
simply use eight column adders.
First we consider a 2-bit half-adder.
The truth table on the right shows sum
and carry bits for the 2 input bits a & b.
Thus, sum is the simple SOP
expression: =
S ab + ab .
Likewise, carry out is defined as: Co = ab
The SOP representation of the 2-bit half
adder is at the right.

a b S co
0

S Exp

co Exp

ab
ab

ab

a
S

Co
Half-Adder Circuit

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Alternate Construction of a Half-Adder

We note that in a half-adder, the sum s


is expressed as:

=
s ab + ab

As noted on the first slide today, this is


the expression for the XOR gate.
Thus an alternate expression for s is:

s= a b

18

Note that carry out is still: Co = ab .


We can then construct the logic gate
equivalent of the half-adder as shown
on the right.
Note that this is no longer a standard
SOP representation, but it is easier to
build!
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Half-Adder in Action

= 0,
19

=1
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

The Full Adder

20

The half-adder circuit is an important step in


Col (i+1) Col (i) Col (i1)
building a digital adder, but it is not the total
solution to the binary addition problem.
(ci) (ci1) (ci2)
When adding binary numbers on a columnar
basis, in addition to the column bits, ai and bi,
+
+
+
there is also the possibility of a carry bit, ci-1
from the column to the right. Thus the 2-bit
ai1
ai+1 ai
column adder must be a 3-bit adder.
+
+
+
This 3-bit adder is called a full adder.
In adding two n-bit binary numbers, the rightbi1
bi+1 bi
most bits of the two numbers of two numbers
si+1
could be added with a half-adder (no carry in).
si
si1
However, most adder circuits use all fulladders, since carry-in for the least significant
bit can be useful; we will see that use later in
Columnar Addition
this lecture.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

Full Adder Boolean Equations


The full column adder
truth table is shown, along
with SOP terms for the 1s
in the S and co columns.
For the sum SOP
function:*

ci

co

S = abc + abc + abc + abc


For the carry out SOP
function:

Co = abc + abc + abc + abc


The SOP circuit for the
full adder is shown on the
next slide.
21

S Exp co Exp
abc *
abc
abc
abc

abc

abc
abc
abc

* For simplicity, we represent carry in

above simply as c.

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

SOP Circuit for a Full Adder

Above is the SOP equivalent circuit for a full adder. Note


that sum and carry have a common term.
22

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Alternate Construction of Full Adder

23

We note that since we can construct


a full-adder similarly to a halfadder, then we should be able to use
the alternate half-adder (XOR logic)
to construct a full adder.
That is, for the full adder,
S = (a b) c
C = ab + ( a b )c
o
Where c = cin

The equivalent logic construction is


shown in the circuit on the right.
The exact proof is left to the student.
Although this is an easier circuit to
build (XORs simplify the circuit), it
is NOT in correct SOP or POS form.
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

32-Bit Adder

1-digit (2-bit)
full adder

24

32-digit (2-bit) adder

May be a
half-adder

A 32-bit adder would be made up like this: The 32 1-digit full


adders would be wired up so that each would add one column of
two 32-bit numbers (a half-adder could be used in column 1).
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Subtraction

In the past, digital subtractors were constructed as well as digital adders.


However, it quickly became apparent that the subtraction function could
be added very easily to a digital adder.
Consider the following:
A 1-bit full adder produces carry out (cO) and sum (s) outputs from carry in
(ci) and numerical (a and b) inputs.

We note that ( a b ) = a + ( b2's complement ) = a + b + 1 , so that we can


subtract using an adder if we:

Invert b (can obtain via an XOR).


Set the carry in input (ci) of bit 0 to 1 (which is why we would need a full adder
even in column 1 of the binary adder circuit).

25

To select subtraction, we need two control signals:


Invert b which selects b instead of b.
Carry in, column 1 which sets ci = 1 for bit 0.
We can combine these into one control signal, Add/Sub+
Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

Four-Bit Binary Add/Subtract Circuit


Carry in = 1
for subtract.

Ci

A
C0

A0
A1
A2
A3

1-Bit Full Adder


(Used 4 Times)

B
Ci

Inputs

If the Add/Sub+
input is high, the
XORs invert the
B input, while if
it is low, the B
input is not
changed.
26

B0
B1
B2
B3

C1
S0
S1
S2
S3

B
Ci

C3
C2

Add-/Sub+

Ci

Outputs
Note that the
Add/Sub+ line
must be XORed
with the C3 line
to be correct for
the subtract case.

B
4-Bit Adder Section
Add/Subtract Selector
Lecture #6: More Complex Combinational Logic Circuits
N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

The ALU or Datapath


We have already noted that the arithmetic/logical unit (ALU, or what
P&H call the datapath) is the calculating unit of the computer
central processor.
The amazing thing about the ALU is that it is mostly combinational
logic composed of the very logic functions that we have studied so far!
Patterson & Hennessy discuss a simple version ALU in Chapter 4 of
their book that only functions as an AND/OR/add/subtract/compare
unit.
This ALU takes the columnar approach we have discussed for a
binary adder.
Their 32-bit ALU (the prototype for the MIPS R2000 computer we
will learn to program later on) is composed of 32 of the 1-bit ALUs.
27

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

Erik Jonsson School of Engineering and


Computer Science

The University of Texas at Dallas

A 1-Bit ALU
2-Bit MUX Select Address

OR

AND

Carry In

1-bit
Full Adder/
Subtractor

Sum
Carry/
Borrow

1-Bit Result Out

4-to-1 MUX

The 1-bit ALU provides all the possible results of logic/arithmetical analysis to
the 4-1 MUX. The 2-bit select address (derived from decoding a part of the
computer instruction) selects the desired result and outputs it. For instance,
outputting the borrow signal provides a comparison of a and b.
28

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Bit Slicing: N 1-bit ALUs = N-Bit Processor


Thirty-two of the one-bit ALUs shown on the previous page may be
combined to form a 32-bit MIPS CPU (which we will study later).
In the 32-bit ALU, an operation is performed on all bits at once using
the 32 separate 1-bit ALUs. This slices the data into 32 bits, which is
where the name bit slicing comes from.
This approach works well for AND and OR functions.
For add and subtract, we have to propagate carries from each lower
column to the next higher column. This means that in a 32-bit
computer, we have 32 carries (the 32nd carry would be overflow).
All these carries/borrows are VERY time-consuming, and so some
special digital fast carry circuits have been developed to accelerate the
carry/borrow action (they are not shown on the 1-bit ALU diagram).
These accelerators are not covered in EE 2310.
29

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

The University of Texas at Dallas

Erik Jonsson School of Engineering and


Computer Science

Exercise 3
As a special exercise in reviewing the
digital adder plus some of the
principles we learned earlier,
consider the following:
The SOP Boolean expression for a full
adder carry out is:

Co = abc + abc + abc + abc , where c = ci


This expression can be simplified to
three terms. Do so. Then show the
circuit design.

30

Lecture #6: More Complex Combinational Logic Circuits

N. B. Dodge 9/15

You might also like