690 likes | 702 Views
Combinational Logic (mostly review!). Logic functions, truth tables, and switches NOT, AND, OR, NAND, NOR, XOR, . . . Minimal set Axioms and theorems of Boolean algebra Proofs by re-writing Proofs by perfect induction Gate logic Networks of Boolean functions Time behavior Canonical forms
E N D
Combinational Logic (mostly review!) • Logic functions, truth tables, and switches • NOT, AND, OR, NAND, NOR, XOR, . . . • Minimal set • Axioms and theorems of Boolean algebra • Proofs by re-writing • Proofs by perfect induction • Gate logic • Networks of Boolean functions • Time behavior • Canonical forms • Two-level • Incompletely specified functions • Two-level minimization CS 150 - Spring 2008 – Lec #3: Combinational Logic - 1
0 1 X not X Y not Y X xor Y X = Y X and Y X nand Ynot (X and Y) X or Y X nor Ynot (X or Y) Possible Logic Functions of Two Variables • 16 possible functions of 2 input variables: • 2**(2**n) functions of n inputs X F Y • X Y 16 possible functions (F0–F15)0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 10 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 • 1 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 • 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 2
Cost of Different Logic Functions • Some are easier, others harder, to implement • Each has a cost associated with the number of switches needed • 0 (F0) and 1 (F15): require 0 switches, directly connect output to low/high • X (F3) and Y (F5): require 0 switches, output is one of inputs • X' (F12) and Y' (F10): require 2 switches for "inverter" or NOT-gate • X nor Y (F4) and X nand Y (F14): require 4 switches • X or Y (F7) and X and Y (F1): require 6 switches • X = Y (F9) and X Y (F6): require 16 switches • Because NOT, NOR, and NAND are the cheapest they are the functions we implement the most in practice CS 150 - Spring 2008 – Lec #3: Combinational Logic - 3
X Y X nor Y0 0 11 1 0 X Y X nand Y0 0 11 1 0 Minimal Set of Functions • Implement any logic functions from NOT, NOR, and NAND? • For example, implementing X and Yis the same as implementing not (X nand Y) • Do it with only NOR or only NAND • NOT is just a NAND or a NOR with both inputs tied together • and NAND and NOR are "duals", i.e., easy to implement one using the other • Based on the mathematical foundations of logic: Boolean Algebra X nand Y not ( (not X) nor (not Y) ) X nor Y not ( (not X) nand (not Y) ) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 4
Logic Functions and Boolean Algebra • Any logic function that can be expressed as a truth table can be written as an expression in Boolean algebra using the operators: ', +, and • X Y X • Y0 0 00 1 01 0 0 1 1 1 X Y X' X' • Y0 0 1 00 1 1 11 0 0 0 1 1 0 0 X Y X' Y' X • Y X' • Y' ( X • Y ) + ( X' • Y' )0 0 1 1 0 1 10 1 1 0 0 0 01 0 0 1 0 0 0 1 1 0 0 1 0 1 ( X • Y ) + ( X' • Y' ) º X = Y Boolean expression that is true when the variables X and Y have the same value and false, otherwise X, Y are Boolean algebra variables CS 150 - Spring 2008 – Lec #3: Combinational Logic - 7
A S B Cout Cin A B Cin S Cout 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1 Simple Example • 1-bit binary adder • Inputs: A, B, Carry-in • Outputs: Sum, Carry-out S = A' B' Cin + A' B Cin' + A B' Cin' + A B Cin Cout = A' B Cin + A B' Cin + A B Cin' + A B Cin CS 150 - Spring 2008 – Lec #3: Combinational Logic - 14
Apply the Theorems to Simplify Expressions • Theorems of Boolean algebra can simplify Boolean expressions • e.g., full adder's carry-out function (same rules apply to any function) Cout = A' B Cin + A B' Cin + A B Cin' + A B Cin = A' B Cin + A B' Cin + A B Cin' + A B Cin + A B Cin = A' B Cin + A B Cin + A B' Cin + A B Cin' + A B Cin = (A' + A) B Cin + A B' Cin + A B Cin' + A B Cin = (1) B Cin + A B' Cin + A B Cin' + A B Cin = B Cin + A B' Cin + A B Cin' + A B Cin + A B Cin = B Cin + A B' Cin + A B Cin + A B Cin' + A B Cin = B Cin + A (B' + B) Cin + A B Cin' + A B Cin = B Cin + A (1) Cin + A B Cin' + A B Cin = B Cin + A Cin + A B (Cin' + Cin) = B Cin + A Cin + A B (1) = B Cin + A Cin + A B CS 150 - Spring 2008 – Lec #3: Combinational Logic - 15
From Boolean Expressions to Logic Gates (cont’d) • More than one way to map expressions to gates • e.g., Z = A' • B' • (C + D) = (A' • (B' • (C + D))) T2 T1 use of 3-input gate A Z A B T1 B Z C C T2 D D CS 150 - Spring 2008 – Lec #3: Combinational Logic - 18
Waveform View of Logic Functions • Just a sideways truth table • But note how edges don't line up exactly • It takes time for a gate to switch its output! time change in Y takes time to "propagate" through gates CS 150 - Spring 2008 – Lec #3: Combinational Logic - 19
A B C Z0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 Choosing Different Realizations of a Function two-level realization(we don't count NOT gates) multi-level realization(gates with fewer inputs) XOR gate (easier to draw but costlier to build) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 20
Which Realization is Best? • Reduce number of inputs • literal: input variable (complemented or not) • can approximate cost of logic gate as 2 transistors per literal • why not count inverters? • Fewer literals means less transistors • smaller circuits • Fewer inputs implies faster gates • gates are smaller and thus also faster • Fan-ins (# of gate inputs) are limited in some technologies • Reduce number of gates • Fewer gates (and the packages they come in) means smaller circuits • directly influences manufacturing costs CS 150 - Spring 2008 – Lec #3: Combinational Logic - 21
Which is the Best Realization? (cont’d) • Reduce number of levels of gates • Fewer level of gates implies reduced signal propagation delays • Minimum delay configuration typically requires more gates • wider, less deep circuits • How do we explore tradeoffs between increased circuit delay and size? • Automated tools to generate different solutions • Logic minimization: reduce number of gates and complexity • Logic optimization: reduction while trading off against delay CS 150 - Spring 2008 – Lec #3: Combinational Logic - 22
Canonical Forms • Truth table is the unique signature of a Boolean function • Many alternative gate realizations may have the same truth table • Canonical forms • Standard forms for a Boolean expression • Provides a unique algebraic signature CS 150 - Spring 2008 – Lec #3: Combinational Logic - 25
A B C F F'0 0 0 0 1 0 0 1 1 0 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 + A'BC + AB'C + ABC' + ABC A'B'C Sum-of-Products Canonical Forms • Also known as disjunctive normal form • Also known as minterm expansion F = 001 011 101 110 111 F = F' = A'B'C' + A'BC' + AB'C' CS 150 - Spring 2008 – Lec #3: Combinational Logic - 26
A B C minterms0 0 0 A'B'C' m0 0 0 1 A'B'C m1 0 1 0 A'BC' m2 0 1 1 A'BC m3 1 0 0 AB'C' m4 1 0 1 AB'C m5 1 1 0 ABC' m6 1 1 1 ABC m7 Sum-of-Products Canonical Form (cont’d) • Product term (or minterm) • ANDed product of literals – input combination for which output is true • Each variable appears exactly once, in true or inverted form (but not both) • F in canonical form:F(A, B, C) =m(1,3,5,6,7)= m1 + m3 + m5 + m6 + m7 • = A'B'C + A'BC + AB'C + ABC' + ABC • canonical formminimal formF(A, B, C) = A'B'C + A'BC + AB'C + ABC + ABC' • = (A'B' + A'B + AB' + AB)C + ABC' • = ((A' + A)(B' + B))C + ABC'= C + ABC'= ABC' + C • = AB + C short-hand notation forminterms of 3 variables CS 150 - Spring 2008 – Lec #3: Combinational Logic - 27
Four Alternative Two-level Implementations of F = AB + C A canonical sum-of-productsminimized sum-of-productscanonical product-of-sumsminimized product-of-sums B F1 C F2 F3 F4 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 31
Waveforms for the Four Alternatives • Waveforms are essentially identical • Except for timing hazards (glitches) • Delays almost identical (modeled as a delay per level, not type of gate or number of inputs to gate) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 32
off-set of W on-set of W don't care (DC) set of W these inputs patterns should never be encountered in practice – "don't care" about associated output values, can be exploitedin minimization Incompletely Specified Functions • Example: binary coded decimal increment by 1 • BCD digits encode decimal digits 0 – 9 in bit patterns 0000 – 1001 A B C D W X Y Z0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 X X X X 1 0 1 1 X X X X 1 1 0 0 X X X X 1 1 0 1 X X X X 1 1 1 0 X X X X 1 1 1 1 X X X X CS 150 - Spring 2008 – Lec #3: Combinational Logic - 34
Notation for Incompletely Specified Functions • Don't cares and canonical forms • So far, only represented on-set • Also represent don't-care-set • Need two of the three sets (on-set, off-set, dc-set) • Canonical representations of the BCD increment by 1 function: • Z = m0 + m2 + m4 + m6 + m8 + d10 + d11 + d12 + d13 + d14 + d15 • Z = [ m(0,2,4,6,8) + d(10,11,12,13,14,15) ] • Z = M1 • M3 • M5 • M7 • M9 • D10 • D11 • D12 • D13 • D14 • D15 • Z = [ M(1,3,5,7,9) • D(10,11,12,13,14,15) ] CS 150 - Spring 2008 – Lec #3: Combinational Logic - 35
B has the same value in both on-set rows– B remains A has a different value in the two rows– A is eliminated The Uniting Theorem • Key tool for simplification: A (B' + B) = A • Essence of simplification: • Find two element subsets of the ON-set where only one variable changes its value – this single varying variable can be eliminated and a single product term used to represent both elements F = A'B'+AB' = (A'+A)B' = B' A B F 0 0 1 0 1 0 1 0 1 1 1 0 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 37
11 01 0 1 Y 2-cube 1-cube X 10 00 X 111 1111 0111 4-cube 3-cube Y 101 Z Y Z 000 W X 1000 0000 X Boolean Cubes • Visual technique for indentifying when the uniting theorem can be applied • n input variables = n-dimensional "cube" CS 150 - Spring 2008 – Lec #3: Combinational Logic - 38
11 01 0 1 Y 2-cube 1-cube X 10 00 X 111 3-cube Y 101 Z 000 X Boolean Cubes • Visual technique for indentifying when the uniting theorem can be applied • n input variables = n-dimensional "cube" 1111 0000 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 39
two faces of size 0 (nodes) combine into a face of size 1(line) A varies within face, B does notthis face represents the literal B' 11 01 B 10 00 A Mapping Truth Tables onto Boolean Cubes • Uniting theorem combines two "faces" of a cube into a larger "face" • Example: F A B F 0 0 1 0 1 0 1 0 1 1 1 0 ON-set = solid nodesOFF-set = empty nodesDC-set = 'd nodes CS 150 - Spring 2008 – Lec #3: Combinational Logic - 40
(A'+A)BCin AB(Cin'+Cin) A(B+B')Cin 111 B 101 C 000 A Three Variable Example • Binary full-adder carry-out logic A B Cin Cout 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 the on-set is completely covered by the combination (OR) of the subcubes of lower dimensionality - note that “111”is covered three times Cout = BCin+AB+ACin CS 150 - Spring 2008 – Lec #3: Combinational Logic - 41
011 111 110 010 001 B 101 C 100 000 A Higher Dimensional Cubes • Sub-cubes of higher dimension than 2 F(A,B,C) = m(4,5,6,7) on-set forms a squarei.e., a cube of dimension 2 represents an expression in one variable i.e., 3 dimensions – 2 dimensions A is asserted (true) and unchanged B and C vary This subcube represents the literal A CS 150 - Spring 2008 – Lec #3: Combinational Logic - 42
m-Dimensional Cubes in an n-Dimensional Boolean Space • In a 3-cube (three variables): • 0-cube, i.e., a single node, yields a term in 3 literals • 1-cube, i.e., a line of two nodes, yields a term in 2 literals • 2-cube, i.e., a plane of four nodes, yields a term in 1 literal • 3-cube, i.e., a cube of eight nodes, yields a constant term "1" • In general, • m-subcube within an n-cube (m < n) yields a term with n – m literals CS 150 - Spring 2008 – Lec #3: Combinational Logic - 43
A A B F 0 0 1 0 1 0 1 0 1 1 1 0 0 1 B 1 1 0 0 2 1 3 1 0 0 Karnaugh Maps • Flat map of Boolean cube • Wrap–around at edges • Hard to draw and visualize for more than 4 dimensions • Virtually impossible for more than 6 dimensions • Alternative to truth-tables to help visualize adjacencies • Guide to applying the uniting theorem • On-set elements with only one variable changing value are adjacent unlike the situation in a linear truth-table CS 150 - Spring 2008 – Lec #3: Combinational Logic - 44
A A AB 12 8 13 9 0 4 1 5 11 10 00 01 C 0 6 4 7 5 0 2 1 3 D 1 C 15 11 14 10 3 7 2 6 A C B 6 4 7 5 0 2 1 3 B C B Karnaugh Maps (cont’d) • Numbering scheme based on Gray–code • e.g., 00, 01, 11, 10 • Only a single bit changes in code for adjacent map cells 13 = 1101= ABC’D CS 150 - Spring 2008 – Lec #3: Combinational Logic - 45
A 000 010 001 011 110 100 111 101 C B Adjacencies in Karnaugh Maps • Wrap from first to last column • Wrap top row to bottom row 011 111 110 010 001 B 101 C 100 000 A CS 150 - Spring 2008 – Lec #3: Combinational Logic - 46
B’ A 1 1 0 0 AB + ACin + BCin A B 0 0 0 1 1 0 1 1 Cin A 1 0 0 0 0 1 1 1 B C AC + B’C’ + AB’ B Karnaugh Map Examples • F = • Cout = • f(A,B,C) = m(0,4,6,7) obtain thecomplementof the function by covering 0swith subcubes CS 150 - Spring 2008 – Lec #3: Combinational Logic - 47
A A A A 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 C C C = AC + B’C’ B B B = BC’ + A’C More Karnaugh Map Examples G(A,B,C) = F(A,B,C) = m(0,4,5,7) F' simply replace 1's with 0's and vice versa F'(A,B,C) = m(1,2,3,6) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 48
C + A’BD + B’D’ 1111 0111 0 1 0 0 1 0 0 1 C D A 1000 1 1 1 1 1 1 1 1 0000 B C Karnaugh Map: 4-Variable Example • F(A,B,C,D) =m(0,2,3,5,6,7,8,10,11,14,15)F = A D B find the smallest number of the largest possible subcubes to cover the ON-set (fewer terms with fewer inputs per term) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 49
A’D + B’C’D A X 0 X 1 0 0 1 1 D 0 0 0 0 1 1 0 X C B Karnaugh Maps: Don’t Cares • f(A,B,C,D) = m(1,3,5,7,9) + d(6,12,13) • without don't cares • f = CS 150 - Spring 2008 – Lec #3: Combinational Logic - 50
+ C'D A'D by using don't care as a "1"a 2-cube can be formed rather than a 1-cube to coverthis node A X 0 X 1 0 0 1 1 D 0 0 0 0 1 1 0 X C B Karnaugh Maps: Don’t Cares (cont’d) • f(A,B,C,D) = m(1,3,5,7,9) + d(6,12,13) • f = A'D + B'C'D without don't cares • f = with don't cares don't cares can be treated as1s or 0sdepending on which is more advantageous CS 150 - Spring 2008 – Lec #3: Combinational Logic - 51
A1 A2B1 B2 P1 P2P4 P8 Design Example: 2x2-bit Multiplier A2 A1 B2 B1 P8 P4 P2 P1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 block diagram and truth table 4-variable K-map for each of the 4 output functions CS 150 - Spring 2008 – Lec #3: Combinational Logic - 55
A2 A2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B1 B1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 B2 B2 A1 A1 A2 A2 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 B1 B1 0 1 1 0 1 0 0 0 0 1 0 1 0 1 0 0 B2 B2 A1 A1 Design Example: 2x2-bit Multiplier (cont’d) K-map for P4 K-map for P8 P4 = A2B2B1' + A2A1'B2 P8 = A2A1B2B1 K-map for P2 K-map for P1 P1 = A1B1 P2 = A2'A1B2 + A1B2B1' + A2B2'B1 + A2A1'B1 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 56
Basic Two-Level Logic Simplification Algorithm • Enumerate all the minterms of the function • Enumerate all the primes of the function • Form the “Covering Table” of Primes vs Minterms • Choose the smallest set of primes that cover all the minterms • Every minterm is contained in at least one prime CS 150 - Spring 2008 – Lec #3: Combinational Logic - 61
Ex: F=a’b’d’ + abd’ +a’b ON = (0,2,4,5,6,7,12,14) DC=15 OFF=(1,3,8,9,10,11,13) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 62
Ex: F=a’b’d’ + abd’ +a’b Primes = a’d’,bd’,a’b,bc CS 150 - Spring 2008 – Lec #3: Combinational Logic - 63
Covering Table Rows are minterms Columns are primes “1” in Square x/y if prime y covers minterm x E.g., “1” in Square 6/01xx because prime a’b contains a’bcd’ (minterm 6) CS 150 - Spring 2008 – Lec #3: Combinational Logic - 64
Solving the Covering Table Choose minimum set of columns so that every row is “covered” by a column “Covered” == has a ‘1’ in some chosen column CS 150 - Spring 2008 – Lec #3: Combinational Logic - 65
“Dominated” Rows Row x dominates row y if covering x automatically covers y Primes covering x are a subset of primes covering y Must choose Prime 1 or Prime 2 to cover x But then y automatically covered => x dominates y CS 150 - Spring 2008 – Lec #3: Combinational Logic - 66
“Dominated” Columns Column 1 dominates Column 2 if Column covers every row covered by Column 2 Minterms covered by 1 are a superset of minterms covered by 2 Choose prime 1 = > cover x or y or z Choose prime 2 => cover x or z Always better to choose 1 over 2 => 1 dominates 2 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 67
1 1 1 • 1 1 1 1 • 1 1 1 1 • …. K-ary Essential Primes Cyclic core Algorithm (again) • While there are dominated rows or columns • Eliminate dominated rows • Eliminate dominated columns 1 1 1 1 1 1 • Solve Cyclic Core by branch-and-bound • Solution is k-ary essential primes + Cyclic Core Solution CS 150 - Spring 2008 – Lec #3: Combinational Logic - 68
Solving the Covering Table Step 1: Eliminate “dominated” rows Rows automatically “covered” by another Ex: row 4 dominated by rows 0 and 2 Cover 0 => automatically cover 4 CS 150 - Spring 2008 – Lec #3: Combinational Logic - 69
Solving the Covering Table Done! (Not usually so lucky) Minimum cover is a’d’+bd’+a’b CS 150 - Spring 2008 – Lec #3: Combinational Logic - 70
What can go wrong? • Too Many primes! • Can have as many as 3n/n (McMullen) • Too Many Minterms! • In general, have about 2n/k • All subproblems are NP-Hard • Is cube c a prime of F? • Find the minimum cover of a covering table • NP-Hard == Computer Scientist-speak for “no fast algorithm exists (we believe)” • Best known algorithm = “try all solutions” • 2**(3**n/n) possible solutions! • n = 4 implies 2**20 (approx 1,000,000) solutions • n = 5 implies 2**49 (approx 10,000,000,000,000,000,000 solutions) • Easy to generate problems with 100 or so variables CS 150 - Spring 2008 – Lec #3: Combinational Logic - 71
What do we do about it? • Inpractice, things are not so bad! • Circuits people actually build usually have “reasonable” number of primes • Covering tables for circuits people actually build are usually easy to solve • => Use algorithms that are in practice efficient for generating primes, covering table, solve covering table • Use heuristics • Don’t necessarily need minimum form • Given one sum-of-products, generate a better form • Iterate until we run out of time/get answer that is good enough CS 150 - Spring 2008 – Lec #3: Combinational Logic - 72
What do we mean by “usually”? Circuits People Actually build Circuits we can prove we do well on Circuits we in practice do well on CS 150 - Spring 2008 – Lec #3: Combinational Logic - 73
What do we mean by “usually”? All 2^2^n n-input circuits Circuits we see… CS 150 - Spring 2008 – Lec #3: Combinational Logic - 74