ECE 667 - Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology.

Slides:



Advertisements
Similar presentations
Logic Synthesis Technology Mapping.
Advertisements

Technology Mapping. Perform the final gate selection from a particular library Two basic approaches 1. ruled based technique 2. graph covering technique.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
ECE 667 Synthesis & Verification - SAT 1 ECE 667 ECE 667 Synthesis and Verification of Digital Systems Boolean SAT CNF Representation Slides adopted (with.
CSC5160 Topics in Algorithms Tutorial 2 Introduction to NP-Complete Problems Feb Jerry Le
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 C03 Lecture 21 Lecture 2 Two Level Minimization Hai Zhou ECE 303 Advanced Digital Design Spring 2002.
February 23, 2015CS21 Lecture 201 CS21 Decidability and Tractability Lecture 20 February 23, 2015.
ECE 331 – Digital System Design
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Circuits Introduction.
1 Boolean Satisfiability in Electronic Design Automation (EDA ) By Kunal P. Ganeshpure.
Technology Mapping.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
The Theory of NP-Completeness
1 Technology Mapping as a Binate Covering Problem Slides adapted from A. Kuehlmann, UC Berkeley 2003.
Boolean Functions and their Representations
ECE Synthesis & Verification - Lecture 19 1 ECE 667 Spring 2009 ECE 667 Spring 2009 Synthesis and Verification of Digital Systems Functional Decomposition.
Boolean Matching in Logic Synthesis. Equivalence of Functions Equivalence of two functions defined under l Negation of input variables l Permutation of.
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.
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
Propositional Calculus Math Foundations of Computer Science.
Combinational Logic Design
Two Level Logic Optimization. Two-Level Logic Minimization PLA Implementation Ex: F 0 = A + B’C’ F 1 = AC’ + AB F 2 = B’C’ + AB product term AB, AC’,
ECE Synthesis & Verification - Lecture 8 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Multi-level.
1 VLSI CAD Flow: Logic Synthesis, Lecture 13 by Ajay Joshi (Slides by S. Devadas)
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
Digitaalsüsteemide verifitseerimise kursus1 Formal verification: SAT SAT applied in equivalence checking.
Combinational Problems: Unate Covering, Binate Covering, Graph Coloring and Maximum Cliques Example of application: Decomposition.
EMIS 8373: Integer Programming NP-Complete Problems updated 21 April 2009.
Sneha.  Gates Gates  Characteristics of gates Characteristics of gates  Basic Gates Basic Gates  AND Gate AND Gate  OR gate OR gate  NOT gate NOT.
CS/EE 3700 : Fundamentals of Digital System Design Chris J. Myers Lecture 4: Logic Optimization Chapter 4.
Logic Functions: XOR, XNOR
Propositional Calculus CS 270: Mathematical Foundations of Computer Science Jeremy Johnson.
1 Technology Mapping Example: t t 1 = a + bc; t 2 = d + e; t 3 = ab + d; t 4 = t 1 t 2 + fg; t 5 = t 4 h + t 2 t 3 ; F = t 5 ’; This shows an unoptimized.
ICS 252 Introduction to Computer Design Lecture 12 Winter 2004 Eli Bozorgzadeh Computer Science Department-UCI.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Example: Base Functions & Pattern Trees inv 1 nand3 3 oai21 3 nor2 2nand2 2 Base Functions: Pattern Trees:
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
ELEC Digital Logic Circuits Fall 2015 Logic Synthesis (Chapters 2-5) Vishwani D. Agrawal James J. Danaher Professor Department of Electrical and.
© 2009 Pearson Education, Upper Saddle River, NJ All Rights ReservedFloyd, Digital Fundamentals, 10 th ed Digital Logic Design Dr. Oliver Faust.
The inverter performs the Boolean NOT operation. When the input is LOW, the output is HIGH; when the input is HIGH, the output is LOW. The Inverter AX.
CSCI 2670 Introduction to Theory of Computing December 2, 2004.
Reducing Structural Bias in Technology Mapping
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Digital Fundamentals Floyd Chapter 5 Tenth Edition
CS21 Decidability and Tractability
CSE 311 Foundations of Computing I
Propositional Calculus: Boolean Algebra and Simplification
SAT-Based Area Recovery in Technology Mapping
ECE 667 Synthesis and Verification of Digital Circuits
ELEC 7770 Advanced VLSI Design Spring 2014 Technology Mapping
ELEC 7770 Advanced VLSI Design Spring 2016 Technology Mapping
Sungho Kang Yonsei University
ECE 667 Synthesis and Verification of Digital Systems
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Improvements in FPGA Technology Mapping
Technology Mapping I based on tree covering
VLSI CAD Flow: Logic Synthesis, Placement and Routing Lecture 5
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Canonical Computation without Canonical Data Structure
Digital Fundamentals Floyd Chapter 5 Tenth Edition
Combinational Logic Circuit
Alan Mishchenko Department of EECS UC Berkeley
Presentation transcript:

ECE Synthesis & Verification, Lecture 17 1 ECE 697B (667) Spring 2006 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Technology Mapping II (binate covering) Slides adapted (with permission) from A. Kuehlmann, UC Berkeley 2003

ECE Synthesis & Verification, Lecture 172 DAG Covering as Binate Covering Problem Compute all possible matches {m k } for each node Using a variable m i for each match of a pattern graph in the subject graph, (m i = 1 if match is chosen; m i = 0 otherwise) Write a clause for each node of the subject graph indicating which matches cover this node. Each node has to be covered. –e.g., if a subject node is covered by matches {m 2, m 5, m 10 }, then the clause would be (m 2 + m 5 + m 10 ). Repeat for each subject node and take the product over all subject nodes (CNF). m 1 m 2... m k n1n2...nln1n2...nl nodes

ECE Synthesis & Verification, Lecture 173 DAG Covering as Binate Covering Problem Any satisfying assignment guarantees that all subject nodes are covered, but It does not guarantee that other matches create outputs needed as inputs for a given match (legal covering). Rectify this by adding additional clauses. not an output of a chosen match

ECE Synthesis & Verification, Lecture 174 DAG Covering as Binate Covering Problem Let match m i have subject nodes s i1,…,s in as inputs. If m i is chosen, one of the matches that realizes s ij must also be chosen for each intermediate input j Let S ij be the disjunctive expression in the variables m k giving the possible matches which realize s ij as an output node. Selecting match m i implies satisfying each of the expressions S ij for j = 1 … n. This can be written as: ( m i  (S i1 … S in ) )  (  m i + (S i1 … S in ) )  ((  m i + S i1 ) … (  m i + S in ) ) mimi s i1 s ij s in

ECE Synthesis & Verification, Lecture 175 DAG Covering as Binate Covering Problem Also, one of the matches for each primary output of the circuit must be selected. An assignment of values to variables m i that satisfies the above covering expression is a legal graph cover. For area optimization, each match m i has a cost c i : the area of the gate the match represents. The goal is a satisfying assignment with the least total cost. –Find a least-cost prime: if a variable m i = 0 its cost is 0, else its cost is c i m i = 1 means that match i is chosen m i = 0 means that match i is not chosen

ECE Synthesis & Verification, Lecture 176 Binate Covering This problem is more general than unate covering for two-level minimization because –variables are present in the covering expression in both their true and complemented forms. The covering expression is a binate logic function, and the problem is referred to as the binate covering problem.

ECE Synthesis & Verification, Lecture 177 Binate Covering: Example Gate Cost Inputs Produces Covers m 1 inv 1 b g 1 g 1 m 2 1 a g 2 g 2 m 3 nand2 2 g 1, g 2 g 3 g 3 m 4 nand2 2 a,b g 4 g 4 m 5 2 g 3, g 4 g 5 g 5 m 6 inv 1 g 4 g 6 g 6 m 7 nand2 2 g 6,c g 7 g 7 m 8 inv 1 g 7 g 8 g 8 m 9 nand2 2 g 8,d g 9 g 9 m 10 nand3 3 g 6,c,d g 9 g 7, g 8 9 m 11 nand3 3 a, b, c g 7 g 4, g 6 7 m 12 xnor2 5 a,b g 5 g 1, g m nand44 a, b, c,d g g, g m 14 oai21 3 a, b,g 4 g 5 g 1, g d a b c o1o1 o2o2 m 13 m 12 m 14 m 10 m 11

ECE Synthesis & Verification, Lecture 178 Binate Covering: Example Generate constraints that each node g i be covered by some match. (m 1 + m 12 + m 14 ) (m 2 + m 12 + m 14 ) (m 3 + m 12 + m 14 )(m 4 + m 11 + m 12 + m 13 ) (m 5 + m 12 + m 14 )(m 6 + m 11 + m 13 ) (m 7 + m 10 + m 11 + m 13 ) (m 8 + m 10 + m 13 ) (m 9 + m 10 + m 13 ) d a b c o1o1 o2o2 m 13 m 12 m 14 m 10 m 11 To ensure that a cover leads to a valid circuit, extra clauses are generated. For example, selecting m 3 requires that: a match be chosen which produces g 2 as an output, and a match be chosen which produces g 1 as an output. The only match which produces g 1 is m 1 ; same for g 2 and m 2, etc.

ECE Synthesis & Verification, Lecture 179 Binate Covering: Example The primary output nodes g 5 and g 9 must be realized as an output of some match. –The matches which realize g 5 as an output are m 5, m 12, m 14 ; –The matches which realize g 9 as an output are m 9, m 10, m 13 Note: –A match which requires a primary input as an input is satisfied trivially. –Matches m 1,m 2,m 4,m 11,m 12,m 13 are driven only by primary inputs and do not require additional clauses d a b c o1o1 o2o2 m 13 m 12 m 14 m 10 m 11

ECE Synthesis & Verification, Lecture 1710 Binate Covering: Example Finally, we get: (  m 3 + m 1 ) (  m 3 + m 2 ) (  m 5 + m 3 +) (  m 5 + m 4 ) (  m 6 + m 4 ) (  m 7 + m 6 ) (  m 8 + m 7 ) (  m 9 + m 8 ) (  m 10 + m 6 ) (  m 14 + m 4 ) (m 5 + m 12 + m 14 ) (m 9 + m 10 + m 13 ) The covering expression has 58 implicants The least cost prime implicant is  m 3  m 5  m 6  m 7  m 8  m 9  m 10  m 11 m 12 m 13  m 14 This uses two gates for a cost of nine gate units, for matches: m 12 (xor2) and m 13 (nand4).

ECE Synthesis & Verification, Lecture 1711 Gate Cost Inputs Produces Covers m 1 inv 1 b g 1 g 1 m 2 1 a g 2 g 2 m 3 nand2 2 g 1, g 2 g 3 g 3 m 4 nand2 2 a,b g 4 g 4 m 5 2 g 3, g 4 g 5 g 5 m 6 inv 1 g 4 g 6 g 6 m 7 nand2 2 g 6,c g 7 g 7 m 8 inv 1 g 7 g 8 g 8 m 9 nand2 2 g 8,d g 9 g 9 m 10 nand3 3 g 6,c,d g 9 g 7, g 8 9 m 11 nand3 3 a, b, c g 7 g 4, g 6 7 m 12 xnor2 5 a,b g 5 g 1, g m 13 nand4 4 a, b, c,d g 9 g 4, g m 14 oai21 3 a, b,g 4 g 5 g 1, g  m 3  m 5  m 6  m 7  m 8  m 9  m 10  m 11 m 12 m 13  m a b c d o1o1 o2o2 Note that the node g 4 is covered by both matches m 12 m 13

ECE Synthesis & Verification, Lecture 1712 Complexity of DAG covering More general than unate covering For unate covering, finding a feasible solution is easy Finding least cost prime of a binate function is NP hard Even finding a feasible solution is NP-complete (SAT). DAG-covering: covering + implication constraints Given a subject graph, the binate covering provides the exact solution to the technology-mapping problem. –However, better results may be obtained with a different initial decomposition into 2-input NANDS and inverters Methods to solve the binate covering problem : –Branch and bound [Thelen] –BDD-based [Lin and Somenzi] –use Constrained Programming methods [open problem] Even for moderate-size networks, these are expensive.

ECE Synthesis & Verification, Lecture 1713 Summary Two approaches to technology mapping –DAG (tree) covering –Binate mapping New approaches: combined logic decomposition and technology mapping –Lehman, Watanabe allgorithm [1994] –Efficiently encode a set on AND2/INV decompositions –Dynamically perform logic decomposition –Was implemented and used for commercial design projects (DEC/Compaq Alpha) Technology mapping for FPGAs –simpler, can be done during functional decomposition –directly on a BDD