ECE 667 - Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.

Slides:



Advertisements
Similar presentations
Chapter 9 -- Simplification of Sequential Circuits.
Advertisements

ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
ECE C03 Lecture 31 Lecture 3 Two-Level Logic Minimization Algorithms Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
ECE 667 Synthesis & Verification - Boolean Functions 1 ECE 667 Spring 2013 ECE 667 Spring 2013 Synthesis and Verification of Digital Circuits Boolean Functions.
ECE 667 Synthesis and Verification of Digital Systems
ECE 301 – Digital Electronics Karnaugh Maps (Lecture #7) The slides included herein were taken from the materials accompanying Fundamentals of Logic Design,
ECE 331 – Digital System Design
ECE 331 – Digital System Design
ECEN 248: INTRODUCTION TO DIGITAL SYSTEMS DESIGN Lecture 6 Dr. Shi Dept. of Electrical and Computer Engineering.
Efficient Decomposition of Large Fuzzy Functions and Relations Marek Perkowski + Portland State University, Dept. Electrical Engineering, Portland, Oregon.
Logic Synthesis Part II
Chapter 3 Simplification of Switching Functions
ECE Synthesis & Verification - Lecture 18 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Word-level.
Boolean Functions and their Representations
A New Approach to Structural Analysis and Transformation of Networks Alan Mishchenko November 29, 1999.
Graph Coloring Algorithms for Fast Evaluation of Curtis Decomposition Marek Perkowski, Rahul Malvi, Stan Grygiel, Mike Burns, and Alan Mishchenko Portland.
Bi-Decomposition of Discrete Function SetsRM‘99 Bernd Steinbach, Christian Lang, Marek A. PerkowskiVictoria B.C. August , / 24 Bernd Steinbach.
Give qualifications of instructors: DAP
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
ECE Synthesis & Verification - Lecture 9b 1 ECE 697B (667) Fall 2004 ECE 697B (667) Fall 2004 Synthesis and Verification of Digital Systems Boolean.
ECE Synthesis & Verification - Lecture 14 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems BDD-based.
Taylor Expansion Diagrams (TED): Verification EC667: Synthesis and Verification of Digital Systems Spring 2011 Presented by: Sudhan.
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 - Lecture 10 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Binary.
Logic Synthesis 3 1 Logic Synthesis Part III Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
ECE 667 Synthesis and Verification of Digital Systems
Intro to Logic Synthesis 1 Introduction to Logic Synthesis Maciej Ciesielski Univ. of Massachusetts Amherst, MA.
ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.
Efficient Decomposition of Large Fuzzy Functions and Relations.
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
Overview Part 2 – Circuit Optimization 2-4 Two-Level Optimization
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Multi-level.
Zvi Kohavi and Niraj K. Jha 1 Capabilities, Minimization, and Transformation of Sequential Machines.
B-1 Appendix B - Reduction of Digital Logic Principles of Computer Architecture by M. Murdocca and V. Heuring © 1999 M. Murdocca and V. Heuring Principles.
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
Quine-McCluskey (Tabular) Minimization Two step process utilizing tabular listings to: Identify prime implicants (implicant tables) Identify minimal PI.
Graph Coloring. Introduction When a map is colored, two regions with a common border are customarily assigned different colors. We want to use a small.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
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.
Ahmad Almulhem, KFUPM 2010 COE 202: Digital Logic Design Combinational Logic Part 3 Dr. Ahmad Almulhem ahmadsm AT kfupm Phone: Office:
Digital Logic (Karnaugh Map). Karnaugh Maps Karnaugh maps (K-maps) are graphical representations of boolean functions. One map cell corresponds to a row.
Karnaugh Maps (K maps).
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
BDS – A BDD Based Logic Optimization System Presented by Nitin Prakash (ECE 667, Spring 2011)
ECE 301 – Digital Electronics Minimizing Boolean Expressions using K-maps, The Minimal Cover, and Incompletely Specified Boolean Functions (Lecture #6)
Binary Decision Diagrams Prof. Shobha Vasudevan ECE, UIUC ECE 462.
Chapter 3 Simplification of Switching Functions. Simplification Goals Goal -- minimize the cost of realizing a switching function Cost measures and other.
CHAPTER 6 Quine-McCluskey Method
Capabilities, Minimization, and Transformation of Sequential Machines
From Switches to Transistors and Gates
Lecture 3: Incompletely Specified Functions and K Maps
Optimized Implementation of Logic Function
A. Mishchenko S. Chatterjee1 R. Brayton UC Berkeley and Intel1
Example of application: Decomposition
A Boolean Paradigm in Multi-Valued Logic Synthesis
Lecture 3: Incompletely Specified Functions and K Maps
Optimized Implementation of Logic Function
EECS 465: Digital Systems Lecture Notes # 2
ECE 667 Synthesis and Verification of Digital Systems
Lecture 6 Logistics Last lecture Today’s lecture
Lecture 7 Logistics Last lecture Today HW2 due now Lab2 going on
Lecture 6 Karnaugh maps (K-maps) K-maps with “don’t cares”
Optimized Implementation of Logic Function
Synthesis and Verification of Finite State Machines
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Unit 6 part B.
3-Variable K-map AB/C AB/C A’B’ A’B AB AB’
design entry (schematic capture, VHDL, truth table and etc.)
Lecture 7 Logistics Last lecture Today HW2 due now Lab2 going on
Announcements Assignment 7 due now or tommorrow Assignment 8 posted
Lecture 3: Incompletely Specified Functions and K Maps
Presentation transcript:

ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition Slides adopted (with permission) from A. Mishchenko, 2003

ECE Synthesis & Verification - Lecture 19 2 Overview The concept of functional decomposition Two uses of BDDs for decomposition – –as a computation engine to implement algorithms – –as a representation that helps finding decompositions Two ways to direct decomposition using BDDs – –bound set on top (Lai/Pedram/Vardhula, DAC’93) – –free set on top (Stanion/Sechen, DAC’95) – –other approaches Disjoint and non-disjoint decomposition Applications of functional decomposition: – –Multi-level FPGA synthesis – –Finite state machine design – –Machine learning and data mining

ECE Synthesis & Verification - Lecture 19 3 Functional Decomposition – previous work Ashenhurst [1959], Curtis [1962] – –Tabular method based on cut: bound/free variables – –BDD implementation: Lai et al. [1993, 1996], Chang et al. [1996] Stanion et al. [1995] Roth, Karp [1962] – –Similar to Ashenhurst, but using cubes, covers – –Also used by SIS Factorization based – –SIS, algebraic factorization using cube notation – –Bertacco et al. [1997], BDD-based recursive bidecomp.

ECE Synthesis & Verification - Lecture 19 4 Two-Level Curtis Decomposition if B  A = , this is disjoint decomposition if B  A  , this is non-disjoint decomposition X B = bound set A= free set F(X) = H( G(B), A ), X = B  A F G H A B F

ECE Synthesis & Verification - Lecture 19 5 Decomposition Types Simple disjoint decomposition (Asenhurst) F H A GB B F G H A Disjoint decomposition (Curtis) Non-disjoint decomposition F G H A B

ECE Synthesis & Verification - Lecture 19 6 Decomposition Chart Bound Set = {a,b} Free Set = {c,d} Incompatibility Graph  =2 G G G G Definition 1: Column Compatibility Two columns i and j are compatible if each element in i is equal to the corresponding element in j or the element in either i or j is not specified Definition 2: Column Multiplicity  = the number of compatible sets (distinct column patterns)

ECE Synthesis & Verification - Lecture 19 7 Fundamental Decomposition Theorems Theorem (Asenhurst) Let m be the minimum number of compatible sets in the decomposition chart. Then function H must distinguish at least m values Theorem (Curtis) Let  (A | B) denote column multiplicity under decomposition into bound set B and free set A. Then:  (A | B)  2 k  F(B,A) = H(G 1 (B), G 2 (B), …, G k (B), A) F G H B A k

ECE Synthesis & Verification - Lecture 19 8 Asenhurst-Curtis Decomposition F(a,b,c,d) = (ab+ ab)c'+ (ab+ ab)(cd+cd) G(a,b)= ab+ab H(G,c,d) = Gc+ G(cd+cd) Bound Set = {a,b} Free Set = {c,d} Here  = 2, so function H must distinguish two values need 1 bit to encode inputs from G F G H a b c d

ECE Synthesis & Verification - Lecture 19 9 Two-level decomposition is iteratively applied to new functions H i and G i, until smaller functions G t and H t are created, that are not further decomposable. One of the possible cost functions is Decomposed Function Cardinality (DFC). It is the total cost of all blocks, where the cost of a binary block with n inputs and m outputs is m * 2 n. Multi-Level Curtis Decomposition

ECE Synthesis & Verification - Lecture Typical Decomposition Algorithm Find a set of partitions (B i, A i ) of input variables X into bound set variables B i and free set variables A i For each partition, find decomposition F(X) = H i (G i (B i ), A i ) such that the column multiplicity is minimal, and compute DFC Repeat the process for all partitions until the decomposition with minimum DFC is found.

ECE Synthesis & Verification - Lecture Uses of BDDs for Decomposition Whatever is the decomposition algorithm, BDDs can be used to store data and perform computation (using cubes, partitions, etc.) Alternatively, the algorithm may exploit the BDD structure of the function F to direct the decomposition in the bound set selection, column multiplicity computation, and deriving the decomposed functions G and H

ECE Synthesis & Verification - Lecture BDD-Based Decomposition Bound set on top (Lai/Pedram/Vardhula, DAC’93) Free set on top (Stanion/Sechen, DAC’95) Bi-decomposition using 1-, 0-, and EXOR-dominators (Yang/Ciesielski, ICDD’99) Recursive decomposition (Bertacco/Damiani,ICCAD’97) Implicit decomposition (Wurth/Eckl/Legl,DAC’95)

ECE Synthesis & Verification - Lecture Bound Set on Top (Function G) G={g 0,g 1 }, A=g 0 g 1, B=g 0 g 1, C=g 0 g 1 g 0 =abc+abc+abc, g 1 = abc+ abc A=00C=01 B=10 Bound Set Free Set A A ABBBC C = 1 = 0 01

ECE Synthesis & Verification - Lecture Bound Set on Top (Function H) A A ABBBC C F(a,b,c,d,e) = H( g 0 (a,b,c), g 1 (a,b,c), d, e ) H= Ae + Bd + Ce = g 0 g 1 e + g 0 g 1 d + g 0 g 1 e F A=00C=01 B=10 Bound Set Free Set = 1 = 0 01

ECE Synthesis & Verification - Lecture “Bound Set on Top” Algorithm Reorder variables in BDD for F and check column multiplicity for each bound set For the bound set with the smallest column multiplicity, perform decomposition : – –Encode the cut nodes with minimum number of bits (log  ) – –derive functions G and H (both depend on encoding) Iteratively repeat the process for functions G and H (typically, only H) This algorithm can be modified to work for non-disjoint decompositions but does not work with DCs

ECE Synthesis & Verification - Lecture Free Set on Top (Function G) Bound Set G={g 1,g 2 }, g 1 =cde+cd, g 2 =d+e A=00C=01 B=10 Free Set Bound Set g1g1 g2g2 F 10 = 1 = 0

ECE Synthesis & Verification - Lecture Free Set on Top (Function H) A=00C=01 B=10 Bound Set F(a,b,c,d,e) = H( a, b, g 1 (c,d,e), g 2 (c,d,e) ) H=(ab+ ab) g 1 + (ab+ ab) g 2 Free Set Bound Set g1g1 g2g2 F 10 = 1 = 0

ECE Synthesis & Verification - Lecture “Free Set on Top” Algorithm Find good variable order Derive implicit representation of all feasible cuts on the BDD representing F Use some cost function to find the best bound set and perform decomposition Repeat the process for functions G and H This algorithms is faster than “bound set on top” but it does not work for non-disjoint decompositions and incompletely specified functins (with DCs).

ECE Synthesis & Verification - Lecture Non-Disjoint Decomposition Non-disjoint decomposition can be reduced to disjoint decomposition by adding variables Bound Set = {a,b,c}, Free Set = {c,d} Disjoint decomposition can be generated by introducing variables c 1 =c 2 =c instead of c In terms of the Karnaugh map, it is equivalent to introducing two variables instead of one in such a way that c 1 c 2 +c 1 c 2 is a don’t care set. Why: c 1  c 2  c 1 c 2 +c 1 c 2 i.e., c 1 c 2 +c 1 c 2 cannot happen

ECE Synthesis & Verification - Lecture Non-Disjoint Decomposition Example There is no disjoint decomposition with any bound set; there is non-disjoint decomposition with bound set {a,b,c} AA A A B B B B A B CB