DOC PREVIEW
U of I CS 231 - K-map Summary

This preview shows page 1-2-21-22 out of 22 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 22 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS231 Boolean Algebra 1K-map 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.CS231 Boolean Algebra 2Design 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 in decimal).– For any inputs A and B, exactly one of the three outputs will be 1.CS231 Boolean Algebra 3Step 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.CS231 Boolean Algebra 4Step 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 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1CS231 Boolean Algebra 5Step 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 L0000010000100100100010011 001010010001010100110001011100110001001001 100101001010110011100100110110011101001111010CS231 Boolean Algebra 6Step 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’ B1B1000010001101A0A11100B0B1100001000010A0A10001B0B10111001 10000A0A10010B0CS231 Boolean Algebra 7Step 4: Drawing the circuitsG = 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’ B1LogicWorks has gates with NOTs attached (small bubbles) for clearer diagrams.CS231 Boolean Algebra 8Testing this in LogicWorks• Where do the inputs come from? Binary switches, in LogicWorks• How do you view outputs? Use binary probes.switchesprobeCS231 Boolean Algebra 9Example 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.CS231 Boolean Algebra 10Summary• 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.CS231 Boolean Algebra 11Additional gates• We’ve already seen all the basic Boolean operations and the associated primitive logic gates.• There are a few additional gates that are often used in logic design.– They are all equivalent to some combination of primitive gates.– But they have some interesting properties in their own right.CS231 Boolean Algebra 12Additional Boolean operations x y (xy)’00 101 110 111 0x y (x+y)’00 101 010 011 0NAND(NOT-AND)NOR(NOT-OR)XOR(eXclusive OR)(xy)’ = x’ + y’ (x + y)’ = x’ y’ x ⊕ y = x’y + xy’Operation:Expressions:Truth table:Logic gates:x y x⊕y00 001 110 111 0CS231 Boolean Algebra 13NANDs are special!• The NAND gate is universal: it can replace all other gates!– NOT– AND– OR(xx)’ = x’ [ because xx = x ]((xy)’ (xy)’)’ = xy [ from NOT above ]((xx)’ (yy)’)’ = (x’ y’)’ [ xx = x, and yy = y ]= x + y [ DeMorgan’s law ]CS231 Boolean Algebra 14Making NAND circuits• The easiest way to make a NAND circuit is to start with a regular, primitive gate-based diagram.• Two-level circuits are trivial to convert, so


View Full Document

U of I CS 231 - K-map Summary

Documents in this Course
Counters

Counters

23 pages

Latches

Latches

22 pages

Lecture

Lecture

33 pages

Lecture

Lecture

16 pages

Lecture

Lecture

4 pages

Datapaths

Datapaths

30 pages

Lecture

Lecture

6 pages

Registers

Registers

17 pages

Datapaths

Datapaths

28 pages

Decoders

Decoders

20 pages

Load more
Download K-map Summary
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view K-map Summary and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view K-map Summary 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?