1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, 121 35 Prague 2 e-mail:

Slides:



Advertisements
Similar presentations
CSEE 4823 Advanced Logic Design Handout: Lecture #2 1/22/15
Advertisements

Figure 4.1. The function f (x1, x2, x3) =  m(0, 2, 4, 5, 6).
EEE324 Digital Electronics Ian McCrumRoom 5B18, Lecture 5: Software for.
Universal logic design algorithm and its application to the synthesis of two-level switching circuits §H.-J.Mathony §IEEE Proceedings 1989.
ECE C03 Lecture 31 Lecture 3 Two-Level Logic Minimization Algorithms Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
©GoldSim Technology Group LLC., 2012 Optimization in GoldSim Jason Lillywhite and Ryan Roper June 2012 Webinar.
It Is Better to Run Iterative Resynthesis on Parts of the Circuit Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
Two-Level Logic Synthesis -- Heuristic Method (ESPRESSO)
ECE 331 – Digital System Design
Logic Synthesis 2 Outline –Two-Level Logic Optimization –ESPRESSO Goal –Understand two-level optimization –Understand ESPRESSO operation.
EDA (CS286.5b) Day 15 Logic Synthesis: Two-Level.
Chapter 3 Simplification of Switching Functions
1 CK Cheng CSE Dept. UC San Diego CS 140, Lecture 2 Combinational Logic.
Logic Synthesis Outline –Logic Synthesis Problem –Logic Specification –Two-Level Logic Optimization Goal –Understand logic synthesis problem –Understand.
Logic Synthesis 1 Outline –Logic Synthesis Problem –Logic Specification –Two-Level Logic Optimization Goal –Understand logic synthesis problem –Understand.
Penn ESE535 Spring DeHon 1 ESE535: Electronic Design Automation Day 4: February 25, 2009 Two-Level Logic-Synthesis.
Give qualifications of instructors: DAP
Gate Logic: Two Level Canonical Forms
Contemporary Logic Design Two-Level Logic © R.H. Katz Transparency No. 4-1 Chapter #2: Two-Level Combinational Logic Section 2.3, Switches and Tools.
ECE Synthesis & Verification 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Exact Two-level Minimization Quine-McCluskey Procedure.
ECE 667 Synthesis and Verification of Digital Systems
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Two-Level Minimization II.
1 A Flexible Minimization and Partitioning Method Petr Fišer, Jan Hlavička Czech Technical University in Prague
Flexible Two-Level Boolean Minimizer BOOM ‑ II and Its Applications Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l inference l all learning.
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Valued Logic.
Optimization Algorithm
Two-Level Simplification Approaches Algebraic Simplification: - algorithm/systematic procedure is not always possible - No method for knowing when the.
The Fast Optimal Voltage Partitioning Algorithm For Peak Power Density Minimization Jia Wang, Shiyan Hu Department of Electrical and Computer Engineering.
Two Level and Multi level Minimization
BoolTool: A Tool for Manipulation of Boolean Functions Petr Fišer, David Toman Czech Technical University in Prague Dept. of Computer Science and Engineering.
How Much Randomness Makes a Tool Randomized? Petr Fišer, Jan Schmidt Faculty of Information Technology Czech Technical University in Prague
Boolean Minimizer FC-Min: Coverage Finding Process Petr Fišer, Hana Kubátová Czech Technical University Department of Computer Science and Engineering.
UM EECS 270 Spring 2011 – Taken from Dr.Karem Sakallah Logic Synthesis: From Specs to Circuits Implementation Styles –Random –Regular Optimization Criteria.
ICS 252 Introduction to Computer Design Lecture 10 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Two Level Networks. Two-Level Networks Slide 2 SOPs A function has, in general many SOPs Functions can be simplified using Boolean algebra Compare the.
2-1 Introduction Gate Logic: Two-Level Simplification Design Example: Two Bit Comparator Block Diagram and Truth Table A 4-Variable K-map for each of the.
CALTECH CS137 Fall DeHon 1 CS137: Electronic Design Automation Day 4: October 5, 2005 Two-Level Logic-Synthesis.
Simplification of incompletely specified functions using QM Tech.
07 KM Page 1 ECEn/CS 224 Karnaugh Maps. 07 KM Page 2 ECEn/CS 224 What are Karnaugh Maps? A simpler way to handle most (but not all) jobs of manipulating.
Two-Level Boolean Minimizer BOOM-II Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University Karlovo nam. 13,
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
Survey of the Algorithms in the Column-Matching BIST Method Survey of the Algorithms in the Column-Matching BIST Method Petr Fišer, Hana Kubátová Department.
Output Grouping Method Based on a Similarity of Boolean Functions Petr Fišer, Pavel Kubalík, Hana Kubátová Czech Technical University in Prague Department.
CALTECH CS137 Winter DeHon CS137: Electronic Design Automation Day 15: March 4, 2002 Two-Level Logic-Synthesis.
1 Example: Groupings on 3-Variable K-Maps BC F(A,B,C) = A ’ B ’ A BC F(A,B,C) = B ’ A
CSE 140: Components and Design Techniques for Digital Systems Lecture 3: Incompletely Specified Functions and K Maps CK Cheng Dept. of Computer Science.
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
Custom Computing Machines for the Set Covering Problem Paper Written By: Christian Plessl and Marco Platzner Swiss Federal Institute of Technology, 2002.
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
Output Grouping-Based Decomposition of Logic Functions Petr Fišer, Hana Kubátová Department of Computer Science and Engineering Czech Technical University.
Lecture 5: K-Map minimization in larger input dimensions and K-map minimization using max terms CSE 140: Components and Design Techniques for Digital Systems.
2009/6/30 CAV Quantifier Elimination via Functional Composition Jie-Hong Roland Jiang Dept. of Electrical Eng. / Grad. Inst. of Electronics Eng.
ICS 252 Introduction to Computer Design Lecture 8- Heuristics for Two-level Logic Synthesis Winter 2005 Eli Bozorgzadeh Computer Science Department-UCI.
ICS 252 Introduction to Computer Design Lecture 8 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
©2010 Cengage Learning SLIDES FOR CHAPTER 6 QUINE-McCLUSKEY METHOD Click the mouse to move to the next page. Use the ESC key to exit this chapter. This.
CHAPTER 6 Quine-McCluskey Method
Lecture 3: Incompletely Specified Functions and K Maps
SINGLE-LEVEL PARTITIONING SUPPORT IN BOOM-II
Lecture 3: Incompletely Specified Functions and K Maps
ICS 252 Introduction to Computer Design
SAT-Based Area Recovery in Technology Mapping
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth,
Alan Mishchenko UC Berkeley (With many thanks to Donald Knuth for
ICS 252 Introduction to Computer Design
SAT-based Methods: Logic Synthesis and Technology Mapping
Lecture 3: Incompletely Specified Functions and K Maps
Fast Boolean Minimizer for Completely Specified Functions
Presentation transcript:

1 Implicant Expansion Methods Used in The BOOM Minimizer Petr Fišer, Jan Hlavička Czech Technical University, Karlovo nám. 13, Prague 2

2 1. Introduction 2. Problem Statement 3. BOOM Structure 4. Iterative Minimization 5. CD-Search 6. Implicant Expansion 7. Tree Buffer 8. Experimental Results 9. Conclusions Outline

3 Problem Statement Given Boolean function of n input variables F(x 1, x 2, … x n,), by truth table: 1-terms (on-set) 0-terms (off-set) only few of the 2 n minterms have an output value assigned (care terms) the rest are don't care states. Task Formulate a synthesis algorithm, which will produce a two-level disjunctive form of F, whose complexity is close to the minimal disjunctive form.

4 BOOM Structure Single-output functions: CD-Search (generation of implicants) Implicant Expansion (generation of PIs) Covering problem solution Multi-output functions: CD-Search (generation of implicants) Implicant Expansion (generation of PIs) Implicant Reduction (generation of group implicants) Solution of the Group Covering Problem Output Reduction

5 Iterative Minimization The solution depends on random events CD-Search, IE and IR are repeated - more implicants, then covering problem is solved

6 CD - Search Combines the implicant generation with covering problem solution Greedy algorithm - implicants need not be prime CD_Search(F,R) { H =  do F’ = F t = 1 do l = most_frequent_literal(F’) t = t * l F’ = F’ – cubes_not_including(t) while (t  R   ) H = H  t F = F - F’ until (F ==  ) return H }

7 CD-Search Example abcde y

8 CD-Search Example abcde y abcde f(1):..... f(0):.....

9 CD-Search Example abcde y abcde f(1): f(0): 7....

10 CD-Search Example abcde y abcde f(1): f(0): 75...

11 CD-Search Example abcde y abcde f(1): f(0): 753..

12 CD-Search Example abcde y abcde f(1): f(0): 7536.

13 CD-Search Example abcde y abcde f(1): f(0): selected

14 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS a‘ SOLUTION selected

15 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS a‘c SOLUTION selected

16 CD-Search Example abcde y abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc

17 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS SOLUTION a‘bc selected

18 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘ SOLUTION a‘bc selected

19 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘e‘ SOLUTION a‘bc selected

20 CD-Search Example abcde y abcde f(1):..... f(0):..... TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘

21 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS SOLUTION a‘bc + b‘e‘d‘ selected

22 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘ SOLUTION a‘bc + b‘e‘d‘ selected

23 CD-Search Example abcde y abcde f(1): f(0): TERM IN PROGRESS b‘e‘ SOLUTION a‘bc + b‘e‘d‘ selected

24 CD-Search Example abcde y SOLUTION a‘bc + b‘e‘d‘ + b‘e‘c‘

25 Implicant Expansion Methods Sequential Search candidates for rejection from a term are selected one by one Multiple Sequential Search more PIs are produced Exhaustive Expansion all primes are generated Distributed Exhaustive Expansion literal elimination distributed over several consecutive iterations

26 Multiple Sequential Search Example Term: Off - set:

27 Multiple Sequential Search Example Term: Off - set:

28 Multiple Sequential Search Example Term: Off - set: OK

29 Multiple Sequential Search Example Term: Off - set: OK COLLISION

30 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK

31 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION

32 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION COLLISION

33 Multiple Sequential Search Example Term: Off - set: OK COLLISION OK COLLISION COLLISION COLLISION PRIMES:

34 Multiple Sequential Search Example Term: Off - set: COLLISION OK COLLISION COLLISION COLLISION OK PRIMES: skip next position

35 Multiple Sequential Search Example Term: Off - set: OK OK COLLISION COLLISION COLLISION COLLISION PRIMES:

36 Multiple Sequential Search Example Term: Off - set: OK COLLISION COLLISION COLLISION COLLISION OK PRIMES:

37 Multiple Sequential Search Example Term: Off - set: COLLISION PRIMES: SAME AS FIRST POSITION

38 Multiple Sequential Search Example Term: Off - set: OK IGNORED OK ! COLLISION COLLISION PRIMES: BUT! => EXHAUSTIVE EXPANSION

39 Implicant Expansion Strategies Evaluation Time growth for different IE methods

40 Implicant Expansion Strategies Evaluation Primes growth for different IE methods

41 Accelerating Iterative Minimization Already processed implicants are not considered in next iterations

42 TREE BUFFER Main Features: High look-up speed Low memory demands Simple operations

43 TREE BUFFER Operations: Insert term Find term Find & Insert Find & Delete

44 TREE BUFFER Depth = number of input variables Tree buffer node: Ternary tree

45 Tree Buffer Example Inserting: a‘b‘c‘d (0001-)

46 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a

47 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b

48 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c

49 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d

50 Tree Buffer Example Inserting: a‘b‘c‘d (0001-) a b c d e 0001-

51 Tree Buffer Example a b c d e

52 Tree Buffer Example a b c d e Searching: ab‘c‘d (1001-) failure

53 Tree Buffer vs. Linear Buffer Tree bufferLinear buffer max. size< n * i, if i << 3 n n * i min. size< 3 n-1, if i ~ 3 n n * i ~ n * 3 n max. lookup timenn * i min. lookup time1i Input variables: n Inserted terms: i

54 Experimental Results Comparison with ESPRESSO : Percentage of time needed by BOOM

55 Experimental Results Time for one iteration on very large problems

56 Time Complexity Evaluation

57 Conclusions New Boolean minimization method was presented Applicable to problems of large dimensions Advantageous for problems with large DC set The results are comparable with ESPRESSO Run times are shorter For problems with more than 100 input variables beats ESPRESSO both in time and minimality