CSEE 6861 CAD of Digital Systems Handout: Lecture #3

Similar documents
ICS 252 Introduction to Computer Design

Synthesis of 2-level Logic Heuristic Method. Two Approaches

Homework 3 Handout 19 February 18, 2016

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

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

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

Unit 4: Formal Verification

Advanced Digital Logic Design EECS 303

ICS 252 Introduction to Computer Design

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

9/10/2016. ECE 120: Introduction to Computing. The Domain of a Boolean Function is a Hypercube. List All Implicants for One Variable A

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

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

CSE241 VLSI Digital Circuits UC San Diego

University of Technology

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

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

Combinational Logic Circuits Part III -Theoretical Foundations

CSE 140: Logic Minimization Lecture

ECE260B CSE241A Winter Logic Synthesis

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

Simplification of two-level combinational logic

Quine-McCluskey Algorithm

Working with Combinational Logic

Specifying logic functions

ECE260B CSE241A Winter Logic Synthesis

(Refer Slide Time 6:48)

ELCT201: DIGITAL LOGIC DESIGN

SEPP: a New Compact Three-Level Logic Form

Logic Synthesis and Verification

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

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

Graph Algorithms Maximum Flow Applications

1 Introduction Asynchronous design has been the focus of much recent research activity. In fact, asynchronous designs have been applied to several lar

User s Manual. Ronwaldo A. Collado Diosdado Y. Tejoso Jr. CMSC 130 Logistic Design and Digital Computer Circuits Second Semester, A. Y.

Design of Framework for Logic Synthesis Engine

Heuristic Minimization of Boolean Relations Using Testing Techniques

COPYRIGHTED MATERIAL INDEX

ECE380 Digital Logic

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

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

Optimization of Robust Asynchronous Circuits by Local Input Completeness Relaxation. Computer Science Department Columbia University

9 Conclusions. References [1] V. Akella and G. Gopalakrishnan. Shilpa: a high-level synthesis system for self-timed circuits. In ICCAD-1992.

ELCT201: DIGITAL LOGIC DESIGN

Espresso-HF: A Heuristic Hazard-Free Minimizer for Two-Level Logic

Inadmissible Class of Boolean Functions under Stuck-at Faults

A New Algorithm to Create Prime Irredundant Boolean Expressions

Larger K-maps. So far we have only discussed 2 and 3-variable K-maps. We can now create a 4-variable map in the

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

Lecture 5 Heuristics. Last Time: A* Search

CS8803: Advanced Digital Design for Embedded Hardware

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

2/8/2017. SOP Form Gives Good Performance. ECE 120: Introduction to Computing. K-Maps Can Identify Single-Gate Functions

Graduate Institute of Electronics Engineering, NTU. CH5 Karnaugh Maps. Lecturer: 吳安宇教授 Date:2006/10/20 ACCESS IC LAB

Digital Circuits ECS 371

ece5745-pla-notes.txt

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

Sung-Eui Yoon ( 윤성의 )

Slides for Lecture 15

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

9.1 Cook-Levin Theorem

Symbolic Hazard-Free Minimization and Encoding of Asynchronous Finite State Machines

Setting Parameters for Simulated Annealing

Minimization of Multiple-Valued Functions in Post Algebra

Chapter 2 Combinational Logic Circuits

Informed Search and Exploration for Agents

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

Minimum Satisfying Assignments for SMT. Işıl Dillig, Tom Dillig Ken McMillan Alex Aiken College of William & Mary Microsoft Research Stanford U.

A Fast Two-level Logic Minimizer

Lecture 21: Other Reductions Steven Skiena

Lecture 21: Other Reductions Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY

Routers & Routing : Computer Networking. Binary Search on Ranges. Speeding up Prefix Match - Alternatives

A B AB CD Objectives:

Lecture 6: Faces, Facets

11.1. Definitions. 11. Domination in Graphs

VLSI Test Technology and Reliability (ET4076)

CMPE223/CMSE222 Digital Logic

Flexible Two-Level Boolean Minimizer BOOM-II and Its Applications

Homework. Update on website issue Reading: Chapter 7 Homework: All exercises at end of Chapter 7 Due 9/26

Software Implementation of Break-Up Algorithm for Logic Minimization

Informed search algorithms. Chapter 4

WWW-BASED BOOLEAN FUNCTION MINIMIZATION

CSE 140 Homework Three

EE552 Extra Credit Project

Gate-Level Minimization. section instructor: Ufuk Çelikcan

Breakup Algorithm for Switching Circuit Simplifications

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

Languages and Compiler Design II IR Code Optimization

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

Lecture 22: Implementing Combinational Logic

Simplification of Boolean Functions

Blind, Greedy, and Random: Algorithms for Matching and Clustering Using only Ordinal Information

Contents. Chapter 3 Combinational Circuits Page 1 of 34

Variables vs. Registers/Memory. Simple Approach. Register Allocation. Interference Graph. Register Allocation Algorithm CS412/CS413

Switching Circuits & Logic Design

Decision tables. Combinational Models. Necessary Characteristics of the Implementation. Decision tables. Deriving decision tables

ON AN OPTIMIZATION TECHNIQUE USING BINARY DECISION DIAGRAM

Symbolic Hazard-Free Minimization and Encoding of Asynchronous Finite State Machines

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

Transcription:

SEE 6861 D of Digital Systems Handout: Lecture #3 2/4/16 Prof. Steven M. Nowick nowick@cs.columbia.edu Department of omputer Science (and Elect. Eng.) olumbia University New York, NY, US ESPRESSO lgorithm: The EPND Step, continued 1

EPND Step: Expansion Direction (REVIEW) asic idea: - Once cube c in cover F is selected for expansion, expand it in good directions 3 Heuristic Expansion Steps (in sequence): to expand a cube c 1. Expand c to completely contain (i.e. swallow up ) as many other cubes of cover F as possible - delete these completely-contained cubes immediately! 2. Once #1 done -- continue to expand c to partially overlap as many other cubes of cover F as possible - the goal is to induce redundancies, which then get deleted in the IRRED step 3. Once #2 done -- continue to expand c into a maximal size prime implicant New Focus: Step #2 and #3 #3 EPND Step: Expansion Direction Example #1: illustrates Step #1 + Step #2 Suppose cube has been picked for expansion! - 1 1 0 1 1-0 1 1 1 - D 1 0 0 - E #4 2

EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2! - 1 1 0 1 1-0 STEP #1: expand cube to fully contain as many other cubes as possible 1 1 1 - D 1 0 0 - E #5 EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2! - 1 1 0 1 1-0 STEP #1: expand cube to fully contain as many other cubes as possible - expand cube to fully contain cube 1 1 1 - D 1 0 0 - E #6 3

EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2! - 1 1 0 1 1-0 1 1 1 - D 1 0 0 - STEP #1: expand cube to fully contain as many other cubes as possible - expand cube to fully contain cube - delete cube E #7 EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2! - 1 1 0 1 1-0 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible 1 1 1 - D 1 0 0 - E #8 4

EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible! - 1 1 0 1 1-0 Option 1: expand cube in z dimension : overlaps 1 additional cube () 1 1 1 - D 1 0 0 - E #9 EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible! - 1 1 0 1 1-0 Option 2: expand cube in y dimension : overlaps 2 additional cubes (D, E) 1 1 1 - D 1 0 0 - E # 5

EPND Step: Expansion Direction Example #1 (cont.): illustrates Step #1 + Step #2 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible! - 1 1 0 1 1-0 Final choice = Option 2: expand cube in y dimension 1 1 1 - D 1 0 0 - E # EPND Step: Expansion Direction Example #2: illustrates Step #2 + Step #3 Suppose cube has been picked for expansion! - 0-0 - - 1 - - 1 1 1 0 1 1 1 #12 6

EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible! - 0-0 - - 1 - Final choice = expand cube in y dimension overlaps cubes & - 1 1 1 0 1 1 1 #13 EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #2: expand cube, by 1 variable at a time, to overlap as many other cubes as possible! - 0-0 - - 1 - Final choice = expand cube in y dimension - 1 1 1 0 1 1 1 #14 7

EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #3: expand cube into a maximal size prime implicant! - 0-0 - - 1 - - 1 1 1 0 1 1 1 #15 EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #3: expand cube into a maximal size prime implicant! - 0-0 - - 1 - Option 1: expand cube in z dimension - becomes - 1 1 1 0 1 1 1 #16 8

EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #3: expand cube into a maximal size prime implicant! - 0-0 - - 1 - - 1 1 1 Option 2: expand cube in w /x dimensions - becomes z 0 1 1 1 #17 EPND Step: Expansion Direction Example #2 (cont.): illustrates Step #2 + Step #3 STEP #3: expand cube into a maximal size prime implicant! - 0-0 - - 1 - - 1 1 1 Final choice = Option 2 - larger prime ( = z) has fewer literals 0 1 1 1 #18 9

ESPRESSO lgorithm: The IRREDUNDNT Step The IRREDUNDNT Step Example over: after expand = prime cover Given: cover F (after EPND) P1! 1 1 0 0 P3 P2 0 1 1 0 0 0 P4 1 1 P5 - - 1 P6 0 Goal: make F irredundant = delete max # of implicants while still maintaining a valid cover #20

The IRREDUNDNT Step pproach #1 (SUOPTIML!): greedily remove one redundant cube at a time P1! 1 1 0 0 P3 P2 0 1 1 0 P1! 1 1 0 0 P2 0 1 1 0 0 0 P4 1 1 P5 0 0 P4 1 1 P5 - - 1 P6 0 - - 1 P6 0 before: after deleting P3: irredundant suboptimal cover #21 The IRREDUNDNT Step pproach #2 (OPTIML!): form & solve an exact optimization problem This is approach used in ESPRESSO : P1! 1 1 0 0 P3 P2 0 1 1 0 0 0 P4 1 1 P5 - - 1 P6 0 Goal: set up a simplified PI table, and solve it exactly, to determine min # of cubes to keep (delete all others) before: #22

The IRREDUNDNT Step Simplified PI Table: prime implicants P1 P2 P3 P4 P5 P6 ON-set minterms #23 The IRREDUNDNT Step pproach: solve PI table exactly Simplified PI Table: prime implicants P1 P2 P3 P4 P5 P6 ON-set minterms Optimal Solution: - select {P1,P2,P5,P6} - discard rest. #24 12

The IRREDUNDNT Step n Issue: - How can afford to compute an exact solution to prime implicant table (like the expensive Quine-Mcluskey method!) in the inner loop of a fast heuristic algorithm (espresso)? Justification: - This is not the same as the QM method! Key Observation: columns in this table are only the primes in current cover, -- not all the primes of the function! Hence, there is no prime generation step, and often a (much) smaller table! #25 The IRREDUNDNT Step pproach #2 (OPTIML): final solution P1! 1 1 0 0 P3 P2 0 1 1 0 P1! 1 1 0 0 0 P3 1 1 0 0 0 P4 1 1 P5 0 0 1 1 P5 - - 1 P6 0 - - 1 P6 0 before: after: irredundant optimal cover #26 13

ESPRESSO lgorithm: The REDUE Step The REDUE Step Example over: after expand and irredundant = prime irredundant cover z y x (D) #28 14

The REDUE Step Example over: after expand and irredundant = prime irredundant cover Given: cover F (after EPND/IRRED) z y x (D) Goal: maximally reduce all cubes of cover F, in some order, while still maintaining a valid cover #29 The REDUE Step Key Observation: reduce operation is order-dependent z y (D) z y x (D) x ube Reduction Order #1:,, - only can be reduced #30 15

The REDUE Step Key Observation: reduce operation is order-dependent z y x (D) z (D) y x ube Reduction Order #1:,, z y x (D) ube Reduction Order #2:,, - cubes and can be reduced #31 16