june 17, 2002basic circuit analysis and design1 example k-map simplification let’s consider...

33
June 17, 2002 Basic circuit analysis and desi gn 1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert the expression into a sum of minterms form, if it’s not already. The easiest way to do this is to make a truth table for the function, and then read off the minterms. You can either write out the literals or use the minterm shorthand. Here is the truth table and sum of minterms for our example: x y z f(x,y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 f(x,y,z) = x’y’z + xy’z + xyz’ + xyz = m 1 + m 5 + m 6 + m 7

Upload: alicia-small

Post on 05-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 1

Example K-map simplification

• Let’s consider simplifying f(x,y,z) = xy + y’z + xz.

• First, you should convert the expression into a sum of minterms form, if it’s not already.

– The easiest way to do this is to make a truth table for the function, and then read off the minterms.

– You can either write out the literals or use the minterm shorthand.

• Here is the truth table and sum of minterms for our example:x y z f (x,y,z)

0 0 0 00 0 1 10 1 0 00 1 1 0

1 0 0 01 0 1 11 1 0 11 1 1 1

f(x,y,z) = x’y’z + xy’z + xyz’ + xyz

= m1 + m5 + m6 + m7

Page 2: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 2

Unsimplifying expressions

• You can also convert the expression to a sum of minterms with Boolean algebra.

– Apply the distributive law in reverse to add in missing variables.

– Very few people actually do this, but it’s occasionally useful.

• In both cases, we’re actually “unsimplifying” our example expression.

– The resulting expression is larger than the original one!

– But having all the individual minterms makes it easy to combine them together with the K-map.

xy + y’z + xz = (xy 1) + (y’z 1) + (xz 1)= (xy (z’ + z)) + (y’z (x’ + x)) + (xz (y’ + y))= (xyz’ + xyz) + (x’y’z + xy’z) + (xy’z + xyz)= xyz’ + xyz + x’y’z + xy’z

Page 3: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 3

Example: Simplify m0+m2+m5+m8+m10+m13

• The expression is already a sum of minterms, so here’s the K-map:

• We can make the following groups, resulting in the MSP x’z’ + xy’z.

Y

1 0 0 1

0 1 0 0

0 1 0 0X

W1 0 0 1

Z

Y

m0 m1 m3 m2

m4 m5 m7 m6

m12 m13 m15 m14X

Wm8 m9 m11 m10

Z

Y

1 0 0 1

0 1 0 0

0 1 0 0X

W1 0 0 1

Z

Y

w’x’y’z’ w’x’y’z w’x’yz w’x’yz’

w’xy’z’ w’xy’z w’xyz w’xyz’

wxy’z’ wxy’z wxyz wxyz’X

Wwx’y’z’ wx’y’z wx’yz wx’yz’

Z

Page 4: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 4

K-maps can be tricky!

• There may not necessarily be a unique MSP. The K-map below yields two valid and equivalent MSPs, because there are two possible ways to include minterm m7.

• Remember that overlapping groups is possible, as shown above.

Y

0 1 0 1

X 0 1 1 1

Z

y’z + yz’ + xy y’z + yz’ + xz

Y

0 1 0 1

X 0 1 1 1

Z

Y

0 1 0 1

X 0 1 1 1

Z

Page 5: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 5

Prime implicants

• The challenge in using K-maps is selecting the right groups. If you don’t minimize the number of groups and maximize the size of each group:

– Your resulting expression will still be equivalent to the original one.

– But it won’t be a minimal sum of products.

• What’s a good approach to finding an actual MSP?

• First find all of the largest possible groupings of 1s.

– These are called the prime implicants.

– The final MSP will contain a subset of these prime implicants.

• Here is an example Karnaugh map with prime implicants marked:Y

1 1 0 0

1 1 0 0

0 1 1 0X

W0 0 1 1

Z

Page 6: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 6

Essential prime implicants

• If any group contains a minterm that is not also covered by another overlapping group, then that is an essential prime implicant.

• Essential prime implicants must appear in the MSP, since they contain minterms that no other terms include.

• Our example has just two essential prime implicants:

– The red group (w’y’) is essential, because of m0, m1 and m4.

– The green group (wx’y) is essential, because of m10.

Y

1 1 0 0

1 1 0 0

0 1 1 0X

W0 0 1 1

Z

Page 7: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 7

Covering the other minterms

• Finally pick as few other prime implicants as necessary to ensure that all the minterms are covered.

• After choosing the red and green rectangles in our example, there are just two minterms left to be covered, m13 and m15.

– These are both included in the blue prime implicant, wxz.

– The resulting MSP is w’y’ + wxz + wx’y.

• The black and yellow groups are not needed, since all the minterms are covered by the other three groups.

Y

1 1 0 0

1 1 0 0

0 1 1 0X

W0 0 1 1

Z

Page 8: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 8

Practice K-map 2

• Simplify for the following K-map:

Y

0 0 1 0

1 0 1 1

1 1 1 1X

W0 0 1 0

Z

Page 9: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 9

Solutions for practice K-map 2

• Simplify for the following K-map:

All prime implicants are circled.

Essential prime implicants are xz’, wx and yz.

The MSP is xz’ + wx + yz.(Including the group xy would be redundant.)

Y

0 0 1 0

1 0 1 1

1 1 1 1X

W0 0 1 0

Z

Page 10: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 10

I don’t care!

• You don’t always need all 2n input combinations in an n-variable function.– If you can guarantee that certain input combinations never occur.– If some outputs aren’t used in the rest of the circuit.

• We mark don’t-care outputs in truth tables and K-maps with Xs.

• Within a K-map, each X can be considered as either 0 or 1. You should pick the interpretation that allows for the most simplification.

x y z f (x,y,z)

0 0 0 00 0 1 10 1 0 X0 1 1 0

1 0 0 01 0 1 11 1 0 X1 1 1 1

Page 11: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 11

Example: Seven Segment DisplayA B C D e

0 0 0 0 0 1

1 0 0 0 1 0

2 0 0 1 0 1

3 0 0 1 1 0

4 0 1 0 0 0

5 0 1 0 1 0

6 0 1 1 0 1

7 0 1 1 1 0

8 1 0 0 0 1

9 1 0 0 1 0

X X

X X

X X

X X

X X

X X

e

ba

f

gc

d

Table for e

CDAB

00 01 11 10

00 1 0 0 1

01 0 0 0 1

11 X X X X

10 1 0 X X

CD’ + B’D’

Assumption: Input represents a legal digit (0-9)

Input: digit encoded as 4 bits: ABCD

Page 12: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 12

Example: Seven Segment DisplayA B C D a

0 0 0 0 0 1

1 0 0 0 1 0

2 0 0 1 0 1

3 0 0 1 1 1

4 0 1 0 0 0

5 0 1 0 1 1

6 0 1 1 0 1

7 0 1 1 1 1

8 1 0 0 0 1

9 1 0 0 1 1

X X

X X

X X

X X

X X

X X

a

f

ge

b

c

d

Table for a

CDAB

00 01 11 10

00 1 1 1

01 1 1 1

11 X X X X

10 1 1 X X

A + C + BD + B’D’

Page 13: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 13

Y

1 0 0 1

1 1 x 0

0 x 1 1 X

W 1 0 0 x

Z

Practice K-map 3

• Find a MSP for

f(w,x,y,z) = m(0,2,4,5,8,14,15), d(w,x,y,z) = m(7,10,13)

This notation means that input combinations wxyz = 0111, 1010 and 1101 (corresponding to minterms m7, m10 and m13) are unused.

Page 14: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 14

Y

1 0 0 1

1 1 x 0 X

W 0 x 1 1

1 0 0 x

Z

Solutions for practice K-map 3

• Find a MSP for:

f(w,x,y,z) = m(0,2,4,5,8,14,15), d(w,x,y,z) = m(7,10,13)

All prime implicants are circled. We can treat X’s as 1s if we want, so the red group includes two X’s, and the light blue group includes one X.

The only essential prime implicant is x’z’. The red group is not essential because the minterms in it also appear in other groups.

The MSP is x’z’ + wxy + w’xy’. It turns out the red group is redundant; we can cover all of the minterms in the map without it.

Page 15: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 15

Summary

• K-maps are an alternative to algebra for simplifying expressions.

– The result is a minimal sum of products, which leads to a minimal two-level circuit.

– It’s easy to handle don’t-care conditions.

– K-maps are really only good for manual simplification of small expressions... but that’s good enough for CS231!

• Things to keep in mind:

– Remember the correct order of minterms on the K-map.

– When grouping, you can wrap around all sides of the K-map, and your groups can overlap.

– Make as few rectangles as possible, but make each of them as large as possible. This leads to fewer, but simpler, product terms.

– There may be more than one valid solution.

Page 16: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 ©2000-2002 Howard Huang 16

Basic circuit analysis and design

• W have learned all the prerequisite material:

– Truth tables and Boolean expressions describe functions.

– Expressions can be converted into hardware circuits.

– Boolean algebra and K-maps help simplify expressions and circuits.

• Now, let us put all of these foundations to good use, to analyze and design some larger circuits.

Page 17: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 17

Circuit analysis

• Circuit analysis involves figuring out what some circuit does.

– Every circuit computes some function, which can be described with Boolean expressions or truth tables.

– So, the goal is to find an expression or truth table for the circuit.

• The first thing to do is figure out what the inputs and outputs of the overall circuit are.

– This step is often overlooked!

– The example circuit here has three inputs x, y, z and one output f.

Page 18: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 18

Write algebraic expressions...

• Next, write expressions for the outputs of each individual gate, based on that gate’s inputs.

– Start from the inputs and work towards the outputs.

– It might help to do some algebraic simplification along the way.

• Here is the example again.

– We did a little simplification for the top AND gate.

– You can see the circuit computes f(x,y,z) = xz + y’z + x’yz’

Page 19: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 19

...or make a truth table

• It’s also possible to find a truth table directly from the circuit.

• Once you know the number of inputs and outputs, list all the possible input combinations in your truth table.

– A circuit with n inputs should have a truth table with 2n rows.

– Our example has three inputs, so the truth table will have 23 = 8 rows. All the possible input combinations are shown.

x y z f

0 0 00 0 10 1 00 1 11 0 01 0 11 1 01 1 1

Page 20: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 20

Simulating the circuit

• Then you can simulate the circuit, either by hand or with a program like LogicWorks, to find the output for each possible combination of inputs.

• For example, when xyz = 101, the gate outputs would be as shown below.

– Use truth tables for AND, OR and NOT to find the gate outputs.

– For the final output, we find that f(1,0,1) = 1.

x y z f

0 0 00 0 10 1 00 1 11 0 01 0 1 11 1 01 1 1

1

0

1

1

0

0

1

1

0

1

Page 21: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 21

Finishing the truth table

• Doing the same thing for all the other input combinations yields the complete truth table.

• This is simple, but tedious.

x y z f

0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 01 0 1 11 1 0 01 1 1 1

Page 22: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 22

Expressions and truth tables

• Remember that if you already have a Boolean expression, you can use that to easily make a truth table.

• For example, since we already found that the circuit computes the function f(x,y,z) = xz + y’z + x’yz’, we can use that to fill in a table:

– We show intermediate columns for the terms xz, y’z and x’yz’.

– Then, f is obtained by just OR’ing the intermediate columns.

x y z xz y’z x’yz’ f

0 0 0 0 0 0 00 0 1 0 1 0 10 1 0 0 0 1 10 1 1 0 0 0 01 0 0 0 0 0 01 0 1 1 1 0 11 1 0 0 0 0 01 1 1 1 0 0 1

Page 23: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 23

Truth tables and expressions

• The opposite is also true: it’s easy to come up with an expression if you already have a truth table.

• We saw that you can quickly convert a truth table into a sum of minterms expression. The minterms correspond to the truth table rows where the output is 1.

• You can then simplify this sum of minterms if desired—using a K-map, for example.

x y z f

0 0 0 00 0 1 10 1 0 10 1 1 01 0 0 01 0 1 11 1 0 01 1 1 1

f(x,y,z) = x’y’z + x’yz’ + xy’z + xyz

= m1 + m2 + m5 + m7

Page 24: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 24

Circuit analysis summary

• After finding the circuit inputs and outputs, you can come up with either an expression or a truth table to describe what the circuit does.

• You can easily convert between expressions and truth tables.

Find the circuit’sinputs and outputs

Find a Booleanexpression

for the circuit

Find a truth tablefor the circuit

Page 25: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 25

Basic circuit design

• The goal of circuit design is to build hardware that computes some given function.

• The basic idea is to write the function as a Boolean expression, and then convert that to a circuit.

Step 1:Figure out how many inputs and outputs you have.

Step 2:Make sure you have a description of the function, either as atruth table or a Boolean expression.

Step 3:Convert this into a simplified Boolean expression. (For this course,we’ll expect you to find MSPs, unless otherwise stated.)

Step 4:Build the circuit based on your simplified expression.

Page 26: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 26

Design example: Comparing 2-bit numbers

• Let’s design a circuit that compares two 2-bit numbers, A and B. The circuit should have three outputs:

– G (“Greater”) should be 1 only when A > B.

– E (“Equal”) should be 1 only when A = B.

– L (“Lesser”) should be 1 only when A < B.

• Make sure you understand the problem.

– Inputs A and B will be 00, 01, 10, or 11 (0, 1, 2 or 3 indecimal).

– For any inputs A and B, exactly one of the three outputs will be 1.

Page 27: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 27

Step 1: How many inputs and outputs?

• Two 2-bit numbers means a total of four inputs.

– We should name each of them.

– Let’s say the first number consists of digits A1 and A0 from left to right, and the second number is B1 and B0.

• The problem specifies three outputs: G, E and L.

• Here is a block diagram that shows the inputs and outputs explicitly.

• Now we just have to design the circuitry that goes into the box.

Page 28: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 28

Step 2: Functional specification

• For this problem, it’s probably easiest to start with a truth table. This way, we can explicitly show the relationship (>, =, <) between inputs.

• A four-input function has a sixteen-row truth table.

• It’s usually clearest to put the truth table rows in binary numeric order; in this case, from 0000 to 1111 for A1, A0, B1 and B0.

• Example: 01 < 10, so the sixth row of the truth table (corresponding to inputs A=01 and B=10) shows that output L=1, while G and E are both 0.

A1 A0 B1 B0 G E L

0 0 0 0 0 1 00 0 0 1 0 0 10 0 1 0 0 0 10 0 1 1 0 0 1

0 1 0 0 1 0 00 1 0 1 0 1 00 1 1 0 0 0 10 1 1 1 0 0 1

1 0 0 0 1 0 01 0 0 1 1 0 01 0 1 0 0 1 01 0 1 1 0 0 1

1 1 0 0 1 0 01 1 0 1 1 0 01 1 1 0 1 0 01 1 1 1 0 1 0

Page 29: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 29

Step 3: Simplified Boolean expressions

• Let’s use K-maps. There are three functions (each with the same inputs A1 A0 B1 B0), so we need three K-maps.

G(A1,A0,B1,B0) =

A1 A0 B0’ + A0 B1’ B0’ + A1 B1’

E(A1,A0,B1,B0) =A1’ A0’ B1’ B0’ +A1’ A0 B1’ B0 +A1 A0 B1 B0 +A1 A0’ B1 B0’

L(A1,A0,B1,B0) =A1’ A0’ B0 + A0’ B1 B0 +A1’ B1

B1

0 0 0 0

1 0 0 0

1 1 0 1A0

A11 1 0 0

B0

B1

1 0 0 0

0 1 0 0

0 0 1 0A0

A10 0 0 1

B0

B1

0 1 1 1

0 0 1 1

0 0 0 0A0

A10 0 1 0

B0

Page 30: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 30

Step 4: Drawing the circuits

G = A1 A0 B0’ + A0 B1’ B0’ + A1 B1’E = A1’ A0’ B1’ B0’ + A1’ A0 B1’ B0 + A1 A0 B1 B0 + A1 A0’ B1 B0’L = A1’ A0’ B0 + A0’ B1 B0 + A1’ B1

LogicWorks has gates with NOTs attached (small bubbles) for clearer diagrams.

Page 31: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 31

Testing this in LogicWorks

• Where do the inputs come from? Binary switches, in LogicWorks

• How do you view outputs? Use binary probes.

switches

probe

Page 32: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 32

Example wrap-up

• Data representations.

– We used three outputs, one for each possible scenario of the numbers being greater, equal or less than each other.

– This is sometimes called a “one out of three” code.

• K-map advantages and limitations.

– Our circuits are two-level implementations, which are relatively easy to draw and follow.

– But, E(A1,A0,B1,B0) couldn’t be simplified at all via K-maps. Can you do better using Boolean algebra?

• Extensibility.

– We used a brute-force approach, listing all possible inputs and outputs. This makes it difficult to extend our circuit to compare three-bit numbers, for instance.

– We’ll have a better solution after we talk about computer arithmetic.

Page 33: June 17, 2002Basic circuit analysis and design1 Example K-map simplification Let’s consider simplifying f(x,y,z) = xy + y’z + xz. First, you should convert

June 17, 2002 Basic circuit analysis and design 33

Summary

• Functions can be represented with expressions, truth tables or circuits. These are all equivalent, and we can arbitrarily transform between them.

• Circuit analysis involves finding an expression or truth table from a given logic diagram.

• Designing a circuit requires you to first find a (simplified) Boolean expression for the function you want to compute. You can then convert the expression into a circuit.

• Next time we’ll talk about some building blocks for making larger combinational circuits, and the role of abstraction in designing large systems.