Advanced Digital Logic Design EECS 303

Similar documents
Definitions Homework. Quine McCluskey Optimal solutions are possible for some large functions Espresso heuristic. Definitions Homework

Advanced Digital Logic Design EECS 303

Unit 4: Formal Verification

1 Construct implication chart, one square for each combination of states. 2 Square labeled S i, S j, if outputs differ than square gets X (0).

CSE241 VLSI Digital Circuits UC San Diego

VLSI System Design Part II : Logic Synthesis (1) Oct Feb.2007

Two-Level Logic Optimization ( Introduction to Computer-Aided Design) School of EECS Seoul National University

ECE260B CSE241A Winter Logic Synthesis

1/28/2013. Synthesis. The Y-diagram Revisited. Structural Behavioral. More abstract designs Physical. CAD for VLSI 2

Synthesis 1. 1 Figures in this chapter taken from S. H. Gerez, Algorithms for VLSI Design Automation, Wiley, Typeset by FoilTEX 1

Homework 3 Handout 19 February 18, 2016

Design of Framework for Logic Synthesis Engine

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

Synthesis of 2-level Logic Heuristic Method. Two Approaches

ICS 252 Introduction to Computer Design

ECE260B CSE241A Winter Logic Synthesis

Logic Synthesis & Optimization Lectures 4, 5 Boolean Algebra - Basics

L3: Representations of functions

ece5745-pla-notes.txt

Simplification of Boolean Functions

Advanced Digital Logic Design EECS 303

A New Algorithm to Create Prime Irredundant Boolean Expressions

CS470: Computer Architecture. AMD Quad Core

ESE535: Electronic Design Automation. Today. EDA Use. Problem PLA. Programmable Logic Arrays (PLAs) Two-Level Logic Optimization

Binary recursion. Unate functions. If a cover C(f) is unate in xj, x, then f is unate in xj. x

Advanced Digital Logic Design EECS 303

2.6 BOOLEAN FUNCTIONS

Specifying logic functions

LOGIC SYNTHESIS AND VERIFICATION ALGORITHMS. Gary D. Hachtel University of Colorado. Fabio Somenzi University of Colorado.

Logic Synthesis and Verification

CHAPTER-2 STRUCTURE OF BOOLEAN FUNCTION USING GATES, K-Map and Quine-McCluskey

Supplement to. Logic and Computer Design Fundamentals 4th Edition 1

Combinational Logic Circuits Part III -Theoretical Foundations

Introduction. The Quine-McCluskey Method Handout 5 January 24, CSEE E6861y Prof. Steven Nowick

COPYRIGHTED MATERIAL INDEX

Gate-Level Minimization

CS8803: Advanced Digital Design for Embedded Hardware

1. Fill in the entries in the truth table below to specify the logic function described by the expression, AB AC A B C Z

3.4 QUINE MCCLUSKEY METHOD 73. f(a, B, C, D, E)¼AC ĒþB CD þ BCDþĀBD.

Gate-Level Minimization

(Refer Slide Time 3:31)

Digital Logic Lecture 7 Gate Level Minimization

Combinational Logic & Circuits

ELCT201: DIGITAL LOGIC DESIGN

IT 201 Digital System Design Module II Notes

ELCT201: DIGITAL LOGIC DESIGN

Gate-Level Minimization. BME208 Logic Circuits Yalçın İŞLER

(Refer Slide Time 6:48)

A B AB CD Objectives:

ESOP CIRCUIT MINIMIZATION BASED ON THE FUNCTION ON-SET. Likai Chai

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

SEPP: a New Compact Three-Level Logic Form

(Refer Slide Time 04:53)

Heuristic Minimization of Boolean Relations Using Testing Techniques

B.Tech II Year I Semester (R13) Regular Examinations December 2014 DIGITAL LOGIC DESIGN

POWR IP PZ1/17

Optimized Implementation of Logic Functions

Experiment 4 Boolean Functions Implementation

Switching Circuits & Logic Design

ECE380 Digital Logic

Module -7. Karnaugh Maps

Chapter 3. Gate-Level Minimization. Outlines

Chapter 2 Combinational Logic Circuits

Chapter 8. 8 Minimization Techniques. 8.1 Introduction. 8.2 Single-Output Minimization Design Constraints

ABC basics (compilation from different articles)

ADAPTIVE MAP FOR SIMPLIFYING BOOLEAN EXPRESSIONS

Experiment 3: Logic Simplification

Chapter 2 Combinational Logic Circuits

Combinational Logic Circuits

Slide Set 5. for ENEL 353 Fall Steve Norman, PhD, PEng. Electrical & Computer Engineering Schulich School of Engineering University of Calgary

CMPE223/CMSE222 Digital Logic

Lecture Outline. Adam Teman, 2018

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

Chapter 2 Combinational

University of Technology

Gate-Level Minimization. section instructor: Ufuk Çelikcan

Unit-IV Boolean Algebra

ON AN OPTIMIZATION TECHNIQUE USING BINARY DECISION DIAGRAM

Assign auniquecodeto each state to produce a. Given jsj states, needed at least dlog jsje state bits. (minimum width encoding), at most jsj state bits

Overview. Design flow. Principles of logic synthesis. Logic Synthesis with the common tools. Conclusions

Breakup Algorithm for Switching Circuit Simplifications

UNIT I BOOLEAN ALGEBRA AND COMBINATIONAL CIRCUITS PART-A (2 MARKS)

Lecture Notes on Binary Decision Diagrams

EECS 140/141 Introduction to Digital Logic Design Spring Semester 2017 Exam #1 Date: 27 February 2017

CSCI 220: Computer Architecture I Instructor: Pranava K. Jha. Simplification of Boolean Functions using a Karnaugh Map

Introduction to synthesis. Logic Synthesis

CSEE 6861 CAD of Digital Systems Handout: Lecture #3

Points Addressed in this Lecture. Standard form of Boolean Expressions. Lecture 4: Logic Simplication & Karnaugh Map

Two-Level Boolean Minimization. 1956; McCluskey

Karnaugh Map (K-Map) Karnaugh Map. Karnaugh Map Examples. Ch. 2.4 Ch. 2.5 Simplification using K-map

Incompletely Specified Functions with Don t Cares 2-Level Transformation Review Boolean Cube Karnaugh-Map Representation and Methods Examples

Combinational Circuits Digital Logic (Materials taken primarily from:

CprE 281: Digital Logic

An Introduction to Zero-Suppressed Binary Decision Diagrams

EECS 140/141 Introduction to Digital Logic Design Fall Semester 2016 Exam #1 Date: 3 October 2016

Working with Combinational Logic

VALLIAMMAI ENGINEERING COLLEGE. SRM Nagar, Kattankulathur DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING EC6302 DIGITAL ELECTRONICS

Don't Cares in Multi-Level Network Optimization. Hamid Savoj. Abstract

ICS 252 Introduction to Computer Design

An Introduction to Zero-Suppressed Binary Decision Diagrams

Transcription:

Advanced Digital Logic Design EECS 303 http://ziyang.eecs.northwestern.edu/eecs303/ Teacher: Robert Dick Office: L477 Tech Email: dickrp@northwestern.edu Phone: 847 467 2298

Outline 1. 2. 2 Robert Dick Advanced Digital Logic Design

There be Dragons here Today s material might at first appear difficult Perhaps even a bit dry... but follow closely Trust me, if you really get it, there is great depth and beauty here 3 Robert Dick Advanced Digital Logic Design

Section outline 1. 4 Robert Dick Advanced Digital Logic Design

Two-level logic minimization Goal: two-level logic realizations with fewest gates and fewest number of gate inputs Algebraic Karnaugh map Quine McCluskey Espresso heuristic 5 Robert Dick Advanced Digital Logic Design

Optimal two-level logic synthesis is N P-complete Upper bound on number of prime implicants grows 3n /n where n is the number of inputs Given > 16 inputs, can be intractable However, there have been advances in complete solvers for many functions Optimal solutions are possible for some large functions 6 Robert Dick Advanced Digital Logic Design

Logic minimization methods For difficult and large functions, solve by heuristic search Multi-level logic minimization is also best solved by search The general search problem can be introduced via two-level minimization Examine simplified version of the algorithms in Espresso 7 Robert Dick Advanced Digital Logic Design

Section outline 1. 8 Robert Dick Advanced Digital Logic Design

Espresso two-level logic minimization heuristic Generate only a subset of prime implicants Carefully select prime implicants in this subset covering on-set Guaranteed to be correct May not be minimal Usually high-quality in practice 9 Robert Dick Advanced Digital Logic Design

Espresso Start with a potentially optimal algorithm Add numerous techniques for constraining the search space Use efficient move order to allow pruning Disable backtracking to arrive at a heuristic solver Widely used in industry Still has room for improvement E.g., early recursion termination 10 Robert Dick Advanced Digital Logic Design

Boolean space 0 b 1 1 a 0 1 c 0 If g and h are two Boolean functions s.t. the on-set of g is a subset of the on-set of h then h covers g or...... g h 11 Robert Dick Advanced Digital Logic Design

Boolean space 0 b 1 1 a 0 1 c 0 If g and h are two Boolean functions s.t. the on-set of g is a subset of the on-set of h then h covers g or...... g h 11 Robert Dick Advanced Digital Logic Design

Boolean space 0 b 1 1 a 0 1 c 0 If g and h are two Boolean functions s.t. the on-set of g is a subset of the on-set of h then h covers g or...... g h 11 Robert Dick Advanced Digital Logic Design

Redundancy in Boolean space If a formula contains AB and B, AB B AB is redundant Sometimes redundancy is difficult to observe If f = BC + AB + AC, then AB is redundant 12 Robert Dick Advanced Digital Logic Design

Section outline 1. 13 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Add a literal to a cube (reduce) Remove a literal from a cube (expansion) Remove redundant cubes (irredundant cover) 14 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Add a literal to a cube (reduce) Remove a literal from a cube (expansion) Remove redundant cubes (irredundant cover) 14 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Add a literal to a cube (reduce) Remove a literal from a cube (expansion) Remove redundant cubes (irredundant cover) 14 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Add a literal to a cube (reduce) Remove a literal from a cube (expansion) Remove redundant cubes (irredundant cover) 14 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Add a literal to a cube (reduce) Remove a literal from a cube (expansion) Remove redundant cubes (irredundant cover) 14 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Sometimes necessary to increase cost to escape local minima Add a literal to a cube (reduction) 15 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Sometimes necessary to increase cost to escape local minima Add a literal to a cube (reduction) To later allow expansion in another dimension 15 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Sometimes necessary to increase cost to escape local minima Add a literal to a cube (reduction) 15 Robert Dick Advanced Digital Logic Design

Espresso moves f(a,b,c) c 0 00 1 ab 01 11 10 0 1 1 1 1 1 1 Sometimes necessary to increase cost to escape local minima Add a literal to a cube (reduction) 15 Robert Dick Advanced Digital Logic Design

Irredundant functions need not be minimal f(a,b,c) 0 c 1 ab 00 01 11 10 0 0 0 1 1 1 0 1 16 Robert Dick Advanced Digital Logic Design

Irredundant functions need not be minimal f(a,b,c) 0 c 1 ab 00 01 11 10 0 0 0 1 1 1 0 1 B C + A C + AB C 16 Robert Dick Advanced Digital Logic Design

Irredundant functions need not be minimal f(a,b,c) 0 c 1 ab 00 01 11 10 0 0 0 1 1 1 0 1 B C + A C + AB C Reduce: AB C + A C + AB C 16 Robert Dick Advanced Digital Logic Design

Irredundant functions need not be minimal f(a,b,c) 0 c 1 ab 00 01 11 10 0 0 0 1 1 1 0 1 B C + A C + AB C Reduce: AB C + A C + AB C Expand: AB + A C + AB C 16 Robert Dick Advanced Digital Logic Design

Irredundant functions need not be minimal f(a,b,c) 0 c 1 ab 00 01 11 10 0 0 0 1 1 1 0 1 B C + A C + AB C Reduce: AB C + A C + AB C Expand: AB + A C + AB C Irredundant cover: AB + A C 16 Robert Dick Advanced Digital Logic Design

Repeat the following 1 Reduce sometimes necessary to contain cubes within others 2 An Irredundant Cover is extracted from the expanded primes 3 Expand implicants to their maximum size 17 Robert Dick Advanced Digital Logic Design

Repeat the following 1 Reduce sometimes necessary to contain cubes within others Another cover with fewer terms or fewer literals might exist Shrink prime implicants to allow expansion in another variable 2 An Irredundant Cover is extracted from the expanded primes 3 Expand implicants to their maximum size 17 Robert Dick Advanced Digital Logic Design

Repeat the following 1 Reduce sometimes necessary to contain cubes within others 2 An Irredundant Cover is extracted from the expanded primes Similar goals to the Quine-McCluskey prime implicant chart Good performance requires a few tricks 3 Expand implicants to their maximum size 17 Robert Dick Advanced Digital Logic Design

Repeat the following 1 Reduce sometimes necessary to contain cubes within others 2 An Irredundant Cover is extracted from the expanded primes 3 Expand implicants to their maximum size Implicants covered by an expanded implicant are removed from further consideration Quality of result depends on order of implicant expansion Heuristic methods used to determine order 17 Robert Dick Advanced Digital Logic Design

Repeat sequence Reduce, Expand, Irredundant Cover to find alternative prime implicants Keep doing this as long as new covers improve on last solution A number of optimizations are tried, e.g., identify and remove essential primes early in the process 18 Robert Dick Advanced Digital Logic Design

Espresso pseudocode Procedure Espresso(F, D, R) 1: /* F is ON set, D is don t care, R OFF */ 2: R = Compliment(F+D); /* Compute complement */ 3: F = Expand(F, R); /* Initial expansion */ 4: F = Irredundant(F,D); /* Initial irredundant cover */ 5: E = Essential(F,D) /* Detecting essential primes */ 6: F = F - E; /* Remove essential primes from F */ 7: D = D + E; /* Add essential primes to D */ 8: while Cost(F) keeps decreasing do 9: F = Reduce(F,D); /* Perform reduction, heuristic which cubes */ 10: F = Expand(F,R); /* Perform expansion, heuristic which cubes */ 11: F = Irredundant(F,D); /* Perform irredundant cover */ 12: end while 13: F = F + E; 14: return F; 19 Robert Dick Advanced Digital Logic Design

Espresso example f(a,b,c,d) 00 01 cd 11 10 ab 00 01 11 10 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 20 Robert Dick Advanced Digital Logic Design

Espresso example f(a,b,c,d) 00 01 cd 11 10 ab 00 01 11 10 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 Irredundant but not minimal 20 Robert Dick Advanced Digital Logic Design

Espresso example f(a,b,c,d) 00 01 cd 11 10 ab 00 01 11 10 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 Reduce 20 Robert Dick Advanced Digital Logic Design

Espresso example f(a,b,c,d) 00 01 cd 11 10 ab 00 01 11 10 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 Expand 20 Robert Dick Advanced Digital Logic Design

Espresso example f(a,b,c,d) 00 01 cd 11 10 ab 00 01 11 10 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 Irredundant Cover 20 Robert Dick Advanced Digital Logic Design

Espresso input f (A, B, C, D) = P (4, 5, 6, 8, 9, 10, 13) + d(0, 7, 15) Input Meaning.i 4 # inputs.o 1 # outputs.ilb a b c d input names.ob f output name.p 10 number of product terms 0100 1 A B C D = 1 0101 1 A B C D = 1 0110 1 A B C D = 1 1000 1 A B C D = 1 1001 1 A B C D = 1 1010 1 A B CD = 1 1101 1 A B C D = 1 0000 - A B C D = X 0111 - A B C D = X 1111 - A B C D = X.e end 21 Robert Dick Advanced Digital Logic Design

Espresso output f (A, B, C, D) = P (4, 5, 6, 8, 9, 10, 13) + d(0, 7, 15) Output Meaning.i 4 # inputs.o 1 # outputs.ilb a b c d input names.ob f output name.p 3 number of product terms 1-01 1 A C D = 1 10-0 1 A B D = 1 01 1 A B = 1.e end g(a, B, C, D) = AC D + AB D + A B 22 Robert Dick Advanced Digital Logic Design

Two-level heuristic minimization summary Generating all prime implicants can be too expensive Make incremental changes: Expand, Reduce, and Irredundant Cover to improve cover Determining whether incremental change represents same function is difficult Need to use clever algorithms to speed it up 23 Robert Dick Advanced Digital Logic Design

Section outline 1. 24 Robert Dick Advanced Digital Logic Design

Irredundant cover After expansion, it s necessary to remove redundant cubes to reach a local minimum First, find the relatively essential cubes For each other cube, check to see whether it is covered by relatively essential cubes or don t-cares If so, it s totally redundant If not, it s partially redundant 25 Robert Dick Advanced Digital Logic Design

Irredundant cover Relatively essential cubes must be kept Totally redundant cubes can clearly be eliminated A subset of the partially redundant cubes need to be kept Formulate as a unate covering problem We ll come back to this in a moment 26 Robert Dick Advanced Digital Logic Design

Irredundant cover After expansion, it s necessary to remove redundant cubes to reach a local minimum First, find the relatively essential cubes For each other cube, check to see whether it is covered by relatively essential cubes or don t-cares If so, it s totally redundant If not, it s partially redundant 27 Robert Dick Advanced Digital Logic Design

Section outline 1. 28 Robert Dick Advanced Digital Logic Design

Tautology check for relatively essential cubes c is a 1-cube Check to see whether the union of 1-cubes and don t-care cubes minus c, cofactored by c, is a tautology Let A be the set of 1-cubes Let D be the set of don t-care cubes ((A D) c) c 1 c is relatively essential That s it: You can use tautology checking to determine whether a cube is relatively essential Of course, an example would make it clearer 29 Robert Dick Advanced Digital Logic Design

Terminology example a b c f 0 X X 1 X 0 X 1 X X 1 1 1 X 1 1 1 0 0 X Find the relatively essential cubes Find totally redundant cubes Find partially redundant cubes 30 Robert Dick Advanced Digital Logic Design

Detecting relatively essential cubes How to determine whether a cube is fully covered by other 1 and don t-care cubes? Could decompose everything to minterm canonical form 31 Robert Dick Advanced Digital Logic Design

Detecting relatively essential cubes How to determine whether a cube is fully covered by other 1 and don t-care cubes? Could decompose everything to minterm canonical form Recall that there may be 2 n minterms, given n variables Decomposition is a bad idea Exponential 31 Robert Dick Advanced Digital Logic Design

Recursive pivoting? Could also recursively pivot on variables if inclusion fails 0XX 1 00X 1, 01X 1 000 1, 001 1, 010 1, 011 1 Lets us terminate recursion as soon as cube is covered by single other cube, e.g., 01X X However, even with pruning, this is still slow in practice Worst-case time complexity? 32 Robert Dick Advanced Digital Logic Design

Definition: Cofactor by variable Note that it s commutative, f x1 = f(1, x 2,..., x n ) f x1 = f(0, x 2,..., x n ) (f x1 ) x2 = (f x2 ) x1 33 Robert Dick Advanced Digital Logic Design

Definition: Cofactor by cube, usage Given that c is a cube, and literals l 1, l 2,... l n c, cofactoring the function by the cube is equivalent to sequentially cofactoring by all cube literals, i.e., f c = f l1,l 2,...l n c f f c = 1 A tautology is a function that is always true A cube is less than or equal to a function, i.e., is fully covered by the function, if and only if the function cofactored by the cube is a tautology 34 Robert Dick Advanced Digital Logic Design

Problem conversion Thus, we have taken the problem Determine whether a cube, c, is covered by a set of 1-cubes, A, or don t-care, D, cubes. and converted it to Determine whether a set of 1-cubes, A, and don t-care cubes, D, cofactored by cube c is a tautology. 35 Robert Dick Advanced Digital Logic Design

Conversion benefits Cofactoring eliminates variables, speeding analysis Tautology is a straight-forward and well-understood problem However, tautology checking is not easy Could pivot on all variables...... but this is too slow Example? 36 Robert Dick Advanced Digital Logic Design

Unate functions f(x 1, x 2,..., x n ) is monotonically increasing in x 1 if and only if x 2,..., x n : f(0, x 2,..., x n ) f(1, x 2,..., x n ) f(x 1, x 2,..., x n ) is monotonically decreasing in x 1 if and only if x 2,..., x n : f(0, x 2,..., x n ) f(1, x 2,..., x n ) A function that is neither monotonically increasing or monotonically decreasing in x 1 is non-monotonic in x 1 A function that is monotonically increasing or monotonically decreasing in x 1 is unate in x 1 A function that is unate in all its variables is unate 37 Robert Dick Advanced Digital Logic Design

Unate functions 0 b 1 1 a 0 0 c 1 38 Robert Dick Advanced Digital Logic Design

Unate functions 0 b 1 1 a 0 0 c 1 Unate in c, not in a or b 38 Robert Dick Advanced Digital Logic Design

Unate functions 0 b 1 1 a 0 0 c 1 Unate in a and b, not in c 38 Robert Dick Advanced Digital Logic Design

Unate functions 0 b 1 1 a 0 0 c 1 Unate 38 Robert Dick Advanced Digital Logic Design

Unate functions 0 b 1 1 a 0 0 c 1 Unate 38 Robert Dick Advanced Digital Logic Design

Unate covers Unate functions are difficult to identify A cover is unate as long as the complemented and uncomplimented literals for the same variable do not both appear Identifying unate covers is easy 39 Robert Dick Advanced Digital Logic Design

Identifying unate covers is easy a b c f 0 0 X 1 X 1 1 1 X 1 0 1 0 1 1 X 40 Robert Dick Advanced Digital Logic Design

Identifying unate covers is easy a b c f 0 0 X 1 X 1 1 1 X 1 0 1 0 1 1 X Scan the columns for the presence of a 0 and 1 40 Robert Dick Advanced Digital Logic Design

Identifying unate covers is easy a b c f 0 0 X 1 X 1 1 1 X 1 0 1 0 1 1 X Scan the columns for the presence of a 0 and 1 Note, some unate functions can have non-unate covers Unate covers always express a unate function 40 Robert Dick Advanced Digital Logic Design

Unate cover tautology checking A unate cover is a tautology if and only if it contains a 1, i.e., XXX 1 Think of it this way: There is some point or cube in the input space of the function at which all cubes intersect Thus, the only way to have a tautology is for one of the cubes to be a tautology Thus, it s trivial to check unate covers for tautology Search for a tautology cube 41 Robert Dick Advanced Digital Logic Design

Fast tautology checking using unate covers Given that C is a cover containing cubes composed of variables x 1, x 2,..., x n Tautology(C) if C is unate then if C contains a 1-row then Return true end if else Return Tautology(C x1 ) Tautology(C x1 ) end if 42 Robert Dick Advanced Digital Logic Design

Fast tautology checking using unate covers What if the cover isn t unate? Can still accelerate If cover C is unate in a variable, x 1, then factor out x 1 C = x 1 F 1 (x 2,..., x n ) + F 2 (x 2,..., x n ) or C = x 1 F 1 (x 2,..., x n ) + F 2 (x 2,..., x n ) 43 Robert Dick Advanced Digital Logic Design

Example of unate cofactoring a c + bc + a b c Cover unate only in a ( a c + bc + a b c ) a = bc ( a c + bc + a b c ) a = c + bc + b c Notice anything nice about this? 44 Robert Dick Advanced Digital Logic Design

Example of unate cofactoring a c + bc + a b c Cover unate only in a ( a c + bc + a b c ) a = bc ( a c + bc + a b c ) a = c + bc + b c Notice anything nice about this? 44 Robert Dick Advanced Digital Logic Design

Fast tautology checking using unate covers Assume C = x 1 F 1 (x 2,..., x n ) + F 2 (x 2,..., x n ) Then the C x1 cofactor is F 1 (x 2,..., x n ) + F 2 (x 2,..., x n ) and the C x1 cofactor is F 2 (x 2,..., x n ) 45 Robert Dick Advanced Digital Logic Design

Example of unate cofactoring a c + bc + a b c Cover unate only in a ( a c + bc + a b c ) a = bc ( a c + bc + a b c ) a = c + bc + b c F 1 = c + b c F 2 = bc 46 Robert Dick Advanced Digital Logic Design

Fast tautology checking using unate covers C x1 = F 1 (x 2,..., x n ) + F 2 (x 2,..., x n ) C x1 = F 2 (x 2,..., x n ) Clearly, C x1 C x1 Therefore we need only consider C x1 for tautology checking, significantly simplifying the problem, i.e., if C x1 is a tautology, then is obviously also a tautology. C x1 47 Robert Dick Advanced Digital Logic Design

final version Given that C is a cover containing cubes composed of variables x 1, x 2,..., x n Tautology(C) if C is unate then if C contains a 1-row then Return true end if else Return Tautology(C x1 ) end if 48 Robert Dick Advanced Digital Logic Design

final version Given that C is a cover containing cubes composed of variables x 1, x 2,..., x n Tautology(C) if C is unate then if C contains a 1-row then Return true end if else Return Tautology(C x1 ) end if 48 Robert Dick Advanced Digital Logic Design

Summary: Fast tautology checking Identify unate covers No columns with 1s and zeros If unate, scan for an XXX 1 row If not unate, cofactor on (preferable) unate variable Only need to consider uncomplemented or uncomplemented cofactor Why? F 2 F 1 + F 2 49 Robert Dick Advanced Digital Logic Design

More complicated example a b c f 0 X 0 1 1 0 X 1 X 1 1 1 1 X 1 1 X 0 0 1 1 0 0 X Relatively essential check for 0X 0 1? Full check on c. 50 Robert Dick Advanced Digital Logic Design

Two-level heuristic minimization summary Generating all prime implicants can be too expensive Make incremental changes: Expand, Reduce, and Irredundant Cover Determining whether incremental change represents same function is too expensive Use cofactoring to convert it to a tautology check Use unateness to make the tautology check fast in most cases 51 Robert Dick Advanced Digital Logic Design

Espresso summary Reduce: Allows expansion in another direction, get out of local minima Expand: Decreases complexity, in practice blocking matrix used for expansion. Search with would also work but would be slower in most cases. Irredundant cover: Remove redundant cubes Tautology check used in many places, gave example of use in Irredundant cover use We have only scratched the surface! 52 Robert Dick Advanced Digital Logic Design

CAD Computer Aided Design (of Integrated Circuits and Systems) Also called Electronics Design Automation (EDA) Without it, computers wouldn t work 53 Robert Dick Advanced Digital Logic Design

Questions What is the unate covering problem? Where have we seen it used? What can tautology checking be used for? How do we make it fast? 54 Robert Dick Advanced Digital Logic Design

Next lecture: Implementation technologies PALs, PLAs MUX, DEMUX review Steering logic 55 Robert Dick Advanced Digital Logic Design

Outline 1. 2. 56 Robert Dick Advanced Digital Logic Design

Reading assignment M. Morris Mano and Charles R. Kime. Logic and Computer Design Fundamentals. Prentice-Hall, NJ, fourth edition, 2008 Chapter 4 M. Morris Mano and Charles R. Kime. Web supplements to Logic and Computer Design Fundamentals. Prentice-Hall, NJ. http://www.writphotec.com/mano4/supplements VLSI Programmable Logic Devices, document 1 57 Robert Dick Advanced Digital Logic Design