1 SPFDs - A new method for specifying flexibility Sets of Pairs of Functions to be Distinguished From the paper: “A new Method to Express Functional Permissibilities.

Slides:



Advertisements
Similar presentations
NP-Hard Nattee Niparnan.
Advertisements

1 EECS 219B Spring 2001 Node minimization Andreas Kuehlmann.
FPGA-Based System Design: Chapter 4 Copyright  2004 Prentice Hall PTR Topics n Logic synthesis. n Placement and routing.
NP-Completeness: Reductions
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Boolean Algebra and Combinational Logic
Complexity 11-1 Complexity Andrei Bulatov NP-Completeness.
Computability and Complexity 23-1 Computability and Complexity Andrei Bulatov Search and Optimization.
Complexity 15-1 Complexity Andrei Bulatov Hierarchy Theorem.
February 23, 2015CS21 Lecture 201 CS21 Decidability and Tractability Lecture 20 February 23, 2015.
A Robust Algorithm for Approximate Compatible Observability Don’t Care (CODC) Computation Nikhil S. Saluja University of Colorado Boulder, CO Sunil P.
Multilevel Logic Minimization -- Introduction. ENEE 6442 Outline > Multi-level minimization: technology independent local optimization. > What to optimize:
Computability and Complexity 15-1 Computability and Complexity Andrei Bulatov NP-Completeness.
1 Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley.
NP-Complete Problems Reading Material: Chapter 10 Sections 1, 2, 3, and 4 only.
Logic Synthesis 5 Outline –Multi-Level Logic Optimization –Recursive Learning - HANNIBAL Goal –Understand recursive learning –Understand HANNIBAL algorithms.
SPFD-Based Wire Removal in a Network of PLAs Sunil P. Khatri* Subarnarekha Sinha* Andreas Kuehlmann** Robert K. Brayton* Alberto Sangiovanni-Vincentelli*
Nov. 13, 2002ICCAD 2002 Simplification of Non-Deterministic Multi-Valued Networks Alan Mishchenko Electrical and Computer Engineering Portland State University.
CSE 421 Algorithms Richard Anderson Lecture 27 NP Completeness.
Sept. 19, 2002Workshop on Boolean Problems A Theory of Non-Deterministic Networks R. K. Brayton EECS Dept. University of California Berkeley.
ECE 667 Synthesis and Verification of Digital Systems
Applying Edge Partitioning to SPFD's 1 Applying Edge Partitioning to SPFD’s 219B Project Presentation Trevor Meyerowitz Mentor: Subarna Sinha Professor:
Logic Decomposition ECE1769 Jianwen Zhu (Courtesy Dennis Wu)
PLACEMENT USING DON’T CARE WIRES Fan Mo Don’t Care Wire Group: P.Chong, Y-J.Jiang, S.Singha and R.K.Brayton.
Advanced Algorithms Piyush Kumar (Lecture 5: Weighted Matching) Welcome to COT5405 Based on Kevin Wayne’s slides.
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
Nattee Niparnan. Easy & Hard Problem What is “difficulty” of problem? Difficult for computer scientist to derive algorithm for the problem? Difficult.
Combinatorial Algorithms Unate Covering Binate Covering Graph Coloring Maximum Clique.
Lecture 22 More NPC problems
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 8 Lecture 8 Network Flow Based Modeling Mustafa Ozdal Computer Engineering Department,
INHERENT LIMITATIONS OF COMPUTER PROGRAMS CSci 4011.
Techniques for Proving NP-Completeness Show that a special case of the problem you are interested in is NP- complete. For example: The problem of finding.
1 Design and Analysis of Algorithms Yoram Moses Lecture 11 June 3, 2010
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
Why consider ND-MV networks? Multi-Values: Multi-valued domains can be used to explore larger optimization spaces. Several interesting direct applications.
Technology Mapping. 2 Technology mapping is the phase of logic synthesis when gates are selected from a technology library to implement the circuit. Technology.
NP-Completeness (Nondeterministic Polynomial Completeness) Sushanth Sivaram Vallath & Z. Joseph.
CS 3343: Analysis of Algorithms Lecture 25: P and NP Some slides courtesy of Carola Wenk.
Courtesy RK Brayton (UCB) and A Kuehlmann (Cadence) 1 Logic Synthesis Multi-Level Logic Synthesis.
Mihir Choudhury, Kartik Mohanram (ICCAD’10 best paper nominee) Presentor: ABert Liu.
Inspiration Versus Perspiration: The P = ? NP Question.
1 CS612 Algorithms for Electronic Design Automation CS 612 – Lecture 8 Lecture 8 Network Flow Based Modeling Mustafa Ozdal Computer Engineering Department,
Discrete Optimization Lecture 4 M. Pawan Kumar
Boolean Functions 1 ECE 667 ECE 667 Synthesis and Verification of Digital Circuits Boolean Functions Basics Maciej Ciesielski Univ.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. Fast.
1 Using Don’t Cares - full_simplify command Major command in SIS - uses SDC, ODC, XDC Key Questions: How do we represent XDC to a network? How do we relate.
1 Chapter 7 Network Flow Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
The NP class. NP-completeness Lecture2. The NP-class The NP class is a class that contains all the problems that can be decided by a Non-Deterministic.
CHAPTER 2 Boolean algebra and Logic gates
TU/e Algorithms (2IL15) – Lecture 10 1 NP-Completeness, II.
Theory of Computational Complexity Probability and Computing Chapter Hikaru Inada Iwama and Ito lab M1.
The NP class. NP-completeness
Richard Anderson Lecture 26 NP-Completeness
Bipartite Matching Lecture 8: Oct 7.
Richard Anderson Lecture 26 NP-Completeness
Boolean Algebra and Combinational Logic
NP-Completeness Yin Tat Lee
Computability and Complexity
Reconfigurable Computing
A Boolean Paradigm in Multi-Valued Logic Synthesis
CS154, Lecture 16: More NP-Complete Problems; PCPs
ICS 353: Design and Analysis of Algorithms
Richard Anderson Lecture 25 NP-Completeness
SAT-Based Optimization with Don’t-Cares Revisited
Robert Brayton UC Berkeley
Topics Logic synthesis. Placement and routing..
Heuristic Minimization of Two Level Circuits
NP-Completeness Yin Tat Lee
CS154, Lecture 16: More NP-Complete Problems; PCPs
Illustrative Example p p Lookup Table for Digits of h g f e ) ( d c b
Presentation transcript:

1 SPFDs - A new method for specifying flexibility Sets of Pairs of Functions to be Distinguished From the paper: “A new Method to Express Functional Permissibilities for LUT Based FPGAs and Its Applications ” by S. Yamashita, H. Sawada, and A. Nagoya, NTT Communications Science Lab., Kyoto, Japan ICCAD’96 BUT: this paper is more about a new kind of “don’t cares”, rather than about application to FPGAs

2 Methods for Expressing Sets of Functions Don’t Cares (=> incompletely specified functions (ISFs))Don’t Cares (=> incompletely specified functions (ISFs)) –Satisfiability DCs –Observability DCs –XDCs ATPG Redundancy RemovalATPG Redundancy Removal Boolean RelationsBoolean Relations Sets of Boolean RelationsSets of Boolean Relations SPFDs. (Actually, they are sets of ISFs).SPFDs. (Actually, they are sets of ISFs).

3 ODCs and SPFDs ODCs: –Different ways to compute them Full method (difficult)Full method (difficult) SubsetsSubsets –Compatible Sets of Permissible functions (CSPFs) »(Easier to compute) –Compatible observability don’t cares (CODCs) »see Savoj thesis - generalization of CSPFs –CSPFs and CODCs have advantage that they can be computed fast - from outputs to inputshave advantage that they can be computed fast - from outputs to inputs are independentare independent

4 ODCs and SPFDs SPFDs: like CSPFs/CODCslike CSPFs/CODCs –can be computed fast from outputs to inputs –are independent but more powerful andbut more powerful and not a subset of DCs (they are a sets of ISFs)not a subset of DCs (they are a sets of ISFs)

5 ISFs Usually we deal with binary ISFs. –They can be represented as complete bipartite graphs on minterms. –Vertices are minterms. Set of vertices may be subset of all minterms –An edge means that we need to build a function that distinguishes (i.e. has different values) the two minterms on the edge. A connected bipartite graph has only two colorings, one the onset and the other the offset and vice versa (onset, offset) offsetonset

6 Building F We start with a complete bipartite graph (ISF) for F. This gives a set of minterms that must be distinguished. F g1g1g1g1 g2g2g2g2 g3g3g3g3 y1y1y1y1 y2y2y2y2 y3y3y3y3 x Y space is (y 1,y 2,y 3 ). Each y i is a minterm in Y y1y1y1y1 y3y3y3y3 y2y2y2y2 y4y4y4y4 y5y5y5y5

7 Building F Suppose that the inputs to F are y = (g 1 (x), g 2 (x), g 3 (x)). As long as {y 1, y 2, y 3 } are encoded differently from {y 4, y 5 } by g(x), there exists a function F which implements the ISF. y1y1y1y1 y3y3y3y3 y2y2y2y2 y4y4y4y4 y5y5y5y5 oldnew oldnew New F:

8 Distributing the job We can distribute the “encoding” job separately to the input wires. Note: as long as each edge is distinguished by one of the inputs, this is sufficient for a new encoding. y1y1y1y1 y3y3y3y3 y2y2y2y2 y4y4y4y4 y5y5y5y5 y1y1y1y1 y2y2y2y2 y5y5y5y5 y4y4y4y4 input 1 y2y2y2y2 y3y3y3y3 y5y5y5y5 y4y4y4y4 input 2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5 input 3

9 Input Graphs Each of the edges on the input graphs means that the input signal g i (x) has to have a different value for the two nodes. Note: the graphs are bipartite, but not complete and may be disconnected. In the above case, each graph has 4 different legal colorings. y1y1y1y1 y2y2y2y2 y5y5y5y5 y4y4y4y4 input 1 y2y2y2y2 y3y3y3y3 y5y5y5y5 y4y4y4y4 input 2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5 input 3

10 Assigning Values Now we can assign values to the graphs (color the graphs). Thus, for example y 1 =1*1, y 2 =00*, y 3 =*10, y 4 =011, y 5 =100 y1y1y1y1 y2y2y2y2 y5y5y5y5 y4y4y4y4 input 1 y2y2y2y2 y3y3y3y3 y5y5y5y5 y4y4y4y4 input 2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5 input 3

11 Assigning Values Note that y 1, y 2, y 3, y 4, y 5 are all distinctly encoded in this case. But, in general, that is not necessary, e.g. could have y 1 y 2 y 3 all encoded with the same value. The original ISF can be implemented with either encoding F(y 1 ) = F(y 2 ) = F(y 3 ) = 1 and F(y 4 ) = F(y 5 ) = 0 Now just call ESPRESSO to get a minimized F. y1y1y2y2y3y3y4y4y5y5y1y1y2y2y3y3y4y4y5y5 y1y1y1y1 y2y2y2y2 y5y5y5y5 y4y4y4y4 input 1 y2y2y2y2 y3y3y3y3 y5y5y5y5 y4y4y4y4 input 2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5 input 3 y1y1y1y1 y2y2y2y2 y5y5y5y5 y4y4y4y4 input 1 y2y2y2y2 y3y3y3y3 y5y5y5y5 y4y4y4y4 input 2 y1y1y1y1 y3y3y3y3 y4y4y4y4 y5y5y5y5 input 3

12 SPFDs Now we generalize this because 1.we can 2.it is more powerful (can be applied to multiple outputs and multiple valued variables) 3.it improves understanding Definition 1: A SPFD F(y) on domain Y is an undirected graph (V,E) where each v  V is associated with a minterm m = (y 1,...,y k )  Y y1y1y1y1 y2y2y2y2 y6y6y6y6 y5y5y5y5 y4y4y4y4 y3y3y3y3

13 Implements Definition 2: A function f(y) implements F(y) = (V,E) iff f(y) is a valid coloring of F, i.e. (y 1, y 2 )  E iff f(y 1 )  f(y 2 ), Three Colorings Must have at least 3 colors since the chromatic number of graph is 3

14 Compatible Definition 3: A mapping y(x) = (y 1 (x),...,y k (x)) is F(z)-compatible if  ( (z i,z j )  F(z)) y(X(z i ))  y(X(z j )) = 0 where X(z i ) = { x | z(x) = z i }. X(z j ) y(x) Y-space PrimaryInputSpace z(x) X(z i ) y(x) z(x) zizizizi zjzjzjzj F(z) Z-space g Boolean Network Y-space Z-space x-space (primary inputs)

15 Re-implementing a Function Theorem 1: If y(x) is F(z)-compatible, then there exists a function g(y) which implements F(z). Proof. Translate SPFD F(z) into F(y). Thus for each (z i, z j )  F(z)), put an edge for every pair (y k, y l ) where y k  y(X(z i )) and y l  y(X(z j )). Since y(X(z i ))  y(X(z j )) = 0, there is no self edge in F(y). Hence a coloring exists. X(z j ) y(x) Y-space PrimaryInputSpace z(x) X(z i ) y(x) z(x) zizizizi zjzjzjzj F(z) Z-space

16 Re-implementing a Function Color F(y) and implement the corresponding ISF by some function g(y). Each y(X(z i )) creates an equivalence class which can all be colored with the same color, (but different colors can be used if preferred.)

17 Re-implementing the Inputs to a Function We want to build new functions y’(x) at the inputs to G. G Boolean Network Y-space Z-space x-space (primary inputs)

18 Re-implementing the Inputs to a Function For new functions y’(x), just need for each edge in F(y), at least one input that has different values for the two minterms of the vertices of the edge Theorem 2: y’(x) is F(z)-compatible if  (z i,z j )  F,  k,  ( (x i,x j )  (X(z i ),X(z j ))), y’ k (x i )  y’ k (x j ) Proof. Since y’ k (x i )  y’ k (x j ), then y’(x i )  y’(x j ). Hence y’(X(z i ))  y’(X(z j )) = 0.

19 Re-using Old Topology Note: up to now we could have assigned any edge of the node SPFD to any of the inputs An efficient way of building a new mapping y’(x) is to use part of the old implementation. G Boolean Network Y-space Z-space x-space (primary inputs) w1w1w1w1 w2w2w2w2 w3w3w3w3

20 Re-using Old Topology Construct SPFDs {F 1 (y),...,F r (y)} (for each local input) such that 1.F k (y) = { (y i,y j )  F(y) only if } i.e. the k th input currently distinguishes (y i,y j ) for all those x which map to y i, or to y j 2.  (y i,y j )  F(y),  k, (y i,y j )  F k (y) i.e. each edge is assigned to one of the inputs yy j k i k 

21 Efficient Re-implementation Theorem 3: Suppose the current implementation of the global functions at y, y(x), are implemented with sets of intermediate variables w = (w 1,...,w r ), i.e. y(x) = (f 1 (w 1 (x)),...,f r (w r (x))). Then for each k, any coloring of F k (y) can be implemented with some function f’ k (w k (x)). (i.e. the new fanins of G can be implemented with the same inputs w 1,...,w r as the old fanins) Thus a new set of input functions y’(x) can be obtained as y’ = (f’ 1 (w 1 (x)),...,(f’ r (w r (x))) i.e. a set of functions of the current intermediate inputs to f 1,...,f r. G Y-space w1w1w1w1 w2w2w2w2 wrwrwrwr …

22 End of lecture 15

23 Efficient Re-implementation Proof. Consider F k (y) for some input k. The current f k implements F k (y) since for (y i,y j )  F k, f k (y i )  f k (y j ), i.e. f k (X(y i ))  f k (X(y j )) = 0 Thus for all x i  X(y i ), x j  X(y j ), we must have w k (x i )  w k (x j ). Otherwise, f k (w k (x i )) = f k (w k (x j )) contradicting that f k (y i )  f k (y j ). Since w k distinguishes x i from x j (i.e. the information is available at the inputs of node k), functions f’ k (w k ) exist which distinguish x i and x j.

24 How Do We Use This Note: since y(x) is F(z)-compatible, then so is y + = (y(x),y k+1 (x)). Theorem 4: Wire y 1 can be removed if and only if (y 2,...,y k+1 ) is F(z)-compatible. G Boolean Network y-space z-space x-space (primary inputs)

25 Conclusions and future SPFDs offer greater choice in implementing a circuitSPFDs offer greater choice in implementing a circuit –Can change both a node and its inputs –An SPFD can be colored in many ways New way to obtain Boolean divisorsNew way to obtain Boolean divisors Implementation using MDDs in progressImplementation using MDDs in progress Implementation using SAT in progressImplementation using SAT in progress Useful for DSM for rewiring for noise avoidance or better layoutUseful for DSM for rewiring for noise avoidance or better layout Can be used to define “don’t care wires”Can be used to define “don’t care wires”

26 Ruggedizing SPFD computation Currently done using BDDs –Works for medium sized circuits Have developed a method using SAT –Implementation almost done Z-space Y-space SPFD(Z) SPFD(Y) Primary inputs X Image computation: which minterms in Z which minterms in Z are mapped into which are mapped into which minterms in Y? minterms in Y? z -> y if exists x such that f Z (x) = z and f Y (x) = y

27 MV-SPFDs and Wire Removal An MV-SPFD represents the information content of a wire in a network. –the MV-SPFD of each fanin to a node, gives the information that it must provide. The sum total of the information content of a node’s fanin wires must cover the information required of the output of the node. We determine a minimal subset of fanins at each node which cover the required information by solving a covering problem.

28 Wire Removal and Wire Substitution SPFD out SPFD in2 SPFD in1 SPFD in3 SPFD in4 SPFD in5 SPFD out  SPFD in3 U SPFD in4 U SPFD in5 Wire removal: suppose Then, can remove in1 and in2 Important: Because wires are changed, the internal logic of a block may change. SPFD in4  SPFD in6 Wire substitution: suppose Then, can replace in4 by in6

29 Don’t Care Wires Each input pin  will have a set of sources, S  (among which we can choose any one). Each source  (driver of a wire) distinguishes a set of pairs of minterms (SPFD) in the primary input space Wire  is assigned as a candidate source for input pin  if: SPFD   SPFD 

30 Compatible sets of don’t care wires Want to be able to select one source from each set S  independent of the selection made from any other set S  ’ (compatible set of candidate sets of sources) Theorem: A set of sets {S s } of candidate wires is compatible if –it can never produce a cyclic network –for each wire  e S s, SPFD   SPFD 

31 Choosing best subset of wires AWC: alternate wire choice problem Given: a point placement of pins and a set of candidate wires for each input pin Find: a selection of wires for each input pin that minimizes the total half-perimeters of the nets’ bounding boxes. (The problem is NP-complete)

32 Placement using don’t care wires Current placement by Mincut/Annealing or by a Force Directed Method: –wire choices considered in move to determine cost of move use semi-greedy AWC algorithm during each placement move use semi-greedy AWC algorithm during each placement move

33 Experiments – total wire length (placement, no routing) Initial PLA netlist Alternate wires (13.5%) Re-synthesis Place Wire choices 13.7% Wire removal and Re-synthesis Place 8.5% Wire removal Place 14.4% Place 6.6% Place 0% Max Alternates (15%) Place 10.2% Notes: 13.5% -> 15% in alternate wires results in 6.6% -> 10.2% improvement in wire length Wire removal currently does not use placement information Wire removal Place ? %

34 Primary outputs: information required (in terms of PIs) ? ? ? ? ? ? ? ? ? Information Arrives - PIs A block logic function exists iff the information at the inputs covers the information required at the output Function inside block only needs to provide the information required of its fanouts ? Wireplanning before decomposition

35 Information Flow Theorem Theorem: A set of logic functions exists for the blocks if and only if there exists a path from input I k to output O j whenever O j depends on I k. ? ? ? ? ? ? ? ? ? Open question: How do you make the assignment of SPFD edges so that the resulting logic in the blocks is as simple as possible? Open question: How do you make the assignment of SPFD edges so that the resulting logic in the blocks is as simple as possible?