Synthesis of 2-level Logic Heuristic Method. Two Approaches

Similar documents
Unit 4: Formal Verification

Logic Synthesis and Verification

Combinatorial Algorithms. Unate Covering Binate Covering Graph Coloring Maximum Clique

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

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

ICS 252 Introduction to Computer Design

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

Advanced Digital Logic Design EECS 303

ICS 252 Introduction to Computer Design

Homework 3 Handout 19 February 18, 2016

Standard Forms of Expression. Minterms and Maxterms

Giovanni De Micheli. Integrated Systems Centre EPF Lausanne

CSEE 6861 CAD of Digital Systems Handout: Lecture #3

CS February 17

Permutation Matrices. Permutation Matrices. Permutation Matrices. Permutation Matrices. Isomorphisms of Graphs. 19 Nov 2015

Chapter 2 Combinational Logic Circuits

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

Gate Level Minimization Map Method

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

Chapter 3. Gate-Level Minimization. Outlines

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

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

CSE 140: Logic Minimization Lecture

ECE 5775 (Fall 17) High-Level Digital Design Automation. Binary Decision Diagrams Static Timing Analysis

Menu. Algebraic Simplification - Boolean Algebra EEL3701 EEL3701. MSOP, MPOS, Simplification

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

Review: Standard forms of expressions

CS8803: Advanced Digital Design for Embedded Hardware

Philadelphia University Faculty of Information Technology Department of Computer Science. Computer Logic Design. By Dareen Hamoudeh.

Specifying logic functions

Experiment 3: Logic Simplification

Digital Logic Lecture 7 Gate Level Minimization

EECS 219C: Formal Methods Binary Decision Diagrams (BDDs) Sanjit A. Seshia EECS, UC Berkeley

Definitions. 03 Logic networks Boolean algebra. Boolean set: B 0,

Digital Design. Chapter 4. Principles Of. Simplification of Boolean Functions

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

Math 414 Lecture 30. The greedy algorithm provides the initial transportation matrix.

Unate Recursive Complement Algorithm

Systems of Inequalities

ELCT201: DIGITAL LOGIC DESIGN

1. Mark the correct statement(s)

A B AB CD Objectives:

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

A New Algorithm to Create Prime Irredundant Boolean Expressions

Outcomes. Unit 9. Logic Function Synthesis KARNAUGH MAPS. Implementing Combinational Functions with Karnaugh Maps

Gate Level Minimization

Simplification of Boolean Functions

Gate-Level Minimization

Gate-Level Minimization

CprE 281: Digital Logic

Linear and Integer Programming :Algorithms in the Real World. Related Optimization Problems. How important is optimization?

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

Boolean algebra. June 17, Howard Huang 1

Chapter 2 Combinational

L3: Representations of functions

Outline: Finish uncapacitated simplex method Negative cost cycle algorithm The max-flow problem Max-flow min-cut theorem

Binary Decision Diagrams (BDD)

Literal Cost F = BD + A B C + A C D F = BD + A B C + A BD + AB C F = (A + B)(A + D)(B + C + D )( B + C + D) L = 10

QUESTION BANK FOR TEST

Reductions. Linear Time Reductions. Desiderata. Reduction. Desiderata. Classify problems according to their computational requirements.

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

Steven Skiena. skiena

2.1 Binary Logic and Gates

Gate-Level Minimization

IEEE Transactions on computers

Digital Logic Design. Outline

Bawar Abid Abdalla. Assistant Lecturer Software Engineering Department Koya University

Chapter 3 Simplification of Boolean functions

Spring 2010 CPE231 Digital Logic Section 1 Quiz 1-A. Convert the following numbers from the given base to the other three bases listed in the table:

Karnaugh Maps. Kiril Solovey. Tel-Aviv University, Israel. April 8, Kiril Solovey (TAU) Karnaugh Maps April 8, / 22

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

Computer Organization

Symbolic Model Checking

S1 Teknik Telekomunikasi Fakultas Teknik Elektro FEH2H3 2016/2017

Boolean Reasoning. The Logic of Boolean Equations. Frank Markham Brown Air Force Institute of Technology

ECE 5745 Complex Digital ASIC Design Topic 12: Synthesis Algorithms

COPYRIGHTED MATERIAL INDEX

University of Technology

Simplification of Boolean Functions

ENGINEERS ACADEMY. 7. Given Boolean theorem. (a) A B A C B C A B A C. (b) AB AC BC AB BC. (c) AB AC BC A B A C B C.

DSAS Laboratory no 4. Laboratory 4. Logic forms

ECE260B CSE241A Winter Logic Synthesis

Binary Decision Diagrams (BDDs) Pingqiang Zhou ShanghaiTech University

ECE380 Digital Logic

Lecture 21: Other Reductions Steven Skiena

Lecture 4: Implementation AND, OR, NOT Gates and Complement

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

9.1 Cook-Levin Theorem

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

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

Chapter 6. Logic Design Optimization Chapter 6

Binary logic. Dr.Abu-Arqoub

CS 2750 Machine Learning. Lecture 19. Clustering. CS 2750 Machine Learning. Clustering. Groups together similar instances in the data sample

NP-Hardness. We start by defining types of problem, and then move on to defining the polynomial-time reductions.

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Approximation algorithms Date: 11/27/18

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

Chapter 2. Boolean Expressions:

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

CSE241 VLSI Digital Circuits UC San Diego

EC422 Mathematical Economics 2

Transcription:

Synthesis of 2-level Logic Heuristic Method Lecture 8 Exact Two Approaches Find all primes Find a complete sum Find a minimum cover (covering problem) Heuristic Take an initial cover of cubes Repeat Expand a cube Remove another cube Eliminate consensus terms 1

The exact method Only work for functions with small numbers of inputs For a 16-input function, there can be too many prime implicants to start with The constraint matrix can be too big Store it can be a problem Processing it can take a long time However, the exact method can still be a good building block in a synthesis framework Local Search Local search is a heuristic method Start with an initial solution Extend the solution to its neighboring solutions Evaluate the solutions to find the best one Repeat until a satisfactory solution is found or run out of time Local search does not guarantee finding the optimal solution But it is a practical approach for solving a complex optimization problem 2

Non-Convex Optimization Problem Most problems are non-convex Convex problems can be solved efficiently Local search for logic minimization The initial solution is a set of cubes that cover the function (a cube cover) The neighboring solution is obtained by Adding or removing a literal from a cube Ex. Given xyz, we obtain yz The new cube cover is feasible if it is equivalent to the original one How to decide this feasibility quickly? 3

Example Consider a cover (based on 3 variables, x,y,z) {x y z, x y, yz} Let s make a move by removing y in x y z We obtain {x z, x y, yz} = {x z, yz} Example 4

Example (Cont) This move actual increases the cost Because f2 now includes 1 more cube Example (Cont) Increasing the cost in a move can lead to decreasing the cost in the final result 5

Example 0 Add a literal to the second cube Again, increasing the cost in a move can lead to reduced-cost result Minimization loop Increase the overlap of the cubes Remove redundant cubes Reducing the cubes 6

Two problems So far, we have assumed we could tell valid expansions and reductions This is not trivial for large functions Two problems What is the best move out of many? EXPRESSO uses many heuristics to decide on this The new cover is equivalent to the original one? Two checks When a cube expands, it covers more min-terms We need to check none of these min-terms belongs to the OFF set When a cube reduces, it removes some min-terms We need to check these removed min-terms are covered by other cubes Containment check Let F be the equation of cubes (product terms) covering of the ON set Let D be the equation of cubes (product terms) cover of the DC set Let Ci be the cube (as a product term) of F that is altered (expanded or removed) Let Či be the new cube that contains the newly added or removed min-terms The expansion or removal is valid iff Či (F-{Ci}) D 7

The check is not easy Consider xz xy + y z We cannot just scan the list of cubes in (F-{Ci}) D and compare it one by one to see if anyone contains Či Let f(x1,x2,,xn) be an n-input function. Given a cube C, let f C be the cofactor with respect to C Theorem:C f f C 1 So containment check now becomes tautology check! Theorem: f 1 fx 1 and fx 1 Pick a variable and split Split and Check Let f be a positive unate function in all of its variables Then, f is a tautology iff f(0,0,,0) = 1 We can easily generate this to f being a unate function For a unate function, the check is easy The split-and-check paradigm in general can still be an exponential algorithm Detect special cases (see page 197) Partition Partition a cover F = G + H Where G and H involves different subsets of variables F is a tautology iff G or H is a tautology 8

Example of partition Start from row 1, collect variables {1,3} From row 3, add variable 4: {1,3,4} Form a partition as shown Unate variables If F is cover for f that is positive unate in x Then, F 1 Fx 1 Similarly, If F is cover for f that is negative unate in x Then, F 1 Fx 1 With the above two theorems, we can simplify the problem by finding unate variables first 9

Example The cover is positive unate in w and negative unate in x Set w = 0 and x = 1 The result is not a tautology Unate Reduction for Tautology Procedure TAUTOLOGY(F, C) // C is a cube returned if F 1. Then C // contains a minterm m where F(m)=0 T SPECIAL_CASES(F) if (T -1) return T F UNATE_REDUCTION(F) if (F= ) print C; return 0; j BINATE_SELECT(F) T TAUTOLOGY(F x j, C {x j }) if(t=0) print (C {x j }), return 0 T TAUTOLOGY(F x j, C {x j }) if(t=0) print (C {x j }), return 0 return 1 end 10

Complementation To guide the expansion process, it is often helpful to have the cover of the OFF set This means that we need to get the OFF set cover from { F D } Given a Boolean function f We have f = x f x + x f x Think about the OBDD How do you do complementation? We we can follow a split-and-complement paradigm to construct the complement cover Example complement x=1 x=0 y=1 y=0 Merge results from x=1 and result from x=0 and obtain: 11