1 / 30

Multi-Valued Logic Synthesis

Multi-Valued Logic Synthesis. R. K. Brayton and S. P. Khatri University of California Berkeley. Motivation. More natural way of describing designs At a higher level of specification more possibility of optimization Is a generalization

adamma
Télécharger la présentation

Multi-Valued Logic Synthesis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley

  2. Motivation • More natural way of describing designs • At a higher level of specification • more possibility of optimization • Is a generalization • leads to improved understanding even of the binary case.

  3. This Talk Unlike paper in proceedings, this talk will concentrate on several algorithms used for optimizing a logic circuit with multi-valued variables. General setting is an MV network. An acyclic graph where each node is an MV-logic function and an arc connects two nodes if one function directly depends on the other. Each node is associated with a single MV-variable, and a set of MV-inputs from other nodes or primary inputs.

  4. Outline • MV-Notation • Algorithms for Multi-valued Logic • Redundancy Removal - see next talk • MV-factorization • extracting common divisors in an MV setting • SPFDs • using flexibility to optimize circuit • Decomposition • f(x) = h(x1,g(x2)) • Conclusions and comments

  5. Definition- A multi-valued variable can take on values from a set Definition- A multi-valued functionis a function which maps Notation - I

  6. Definition - A multi-valued literalis a binary logic function of the form where Definition - A cube can be written as the product of MV-literals: Notation - II

  7. Multi-valued Factorization Example We will show that this can be rewritten as:

  8. Binary Encode First?

  9. Expression Co-kernel kernel MV-Kerneling (S. Malik)

  10. Expression Co-kernel kernel Co-kernel cube matrix

  11. Common Divisors and Rectangles (2,4) (1,2) Rectangle: { }

  12. satisfiable not satisfiable satisfiable Satisfiable Rectangle Definition: A rectangle is satisfiable if for every variable: if a value appears somewhere in row i and the same value occurs somewhere in column j, then the same value must occur in M(i,j).

  13. f1 f1 f2 f2 f1 f2 Forming a Common Divisor 1. For each row of the rectangle, take the union or row entries 2. AND these with the co-kernel associated with that row 3. For each column take the union of the column entries 4. AND these with column labels. 5. OR these together factor in f1 factor in f2 + common divisor

  14. factor in f1 factor in f2 common divisor + Final Result

  15. Nice Result Theorem: If k is a kernel found by the usual Boolean kerneling process for some binary encoding, then it will be found by the MV factoring process. In addition, the MV process can find some “Boolean factors”

  16. Binary Encoding

  17. Sets of Pairs of Functions to be Distinguished (SPFDs) • An SPFD is equivalent to a set of incompletely specified functions (ISFs) • Proposed by Yamashita, Sawada and Nagoya for simplifying binary FPGAs • Implemented in SIS • For binary functions, can be represented by a bipartite graph

  18. SPFDF(X,Z) X Z F xz 0 R 0 20 10 21 00 11 01 1 1 R Green Red 2 0 Y 2 1 G 0 1 G 1 0 Y Yellow Old network Example of SPFD computation for MV-functions Consider the MV-function:

  19. SPFDX(X,Z) SPFDF(X,Z) xz xz 21 01 00 11 01 21 10 20 20 00 10 01 21 10 20 00 11 11 Red Green xz Yellow SPFDZ(X,Z) Assign Edges to Inputs

  20. W=SPFDX(X,Z) xz W X Z F 1 0 R 0 1 1 1 R 0 2 0 Y 1 0 2 1 G 0 0 0 1 G 00 11 01 21 10 20 0 1 0 Y New network Old network Re-synthesize X

  21. SPFDs • Allows more flexibility than simple don’t cares • Changes both function and some of its inputs simultaneously • Extended to multi-valued functions.

  22. Consider partially-specified MV-functions with n inputs and m outputs. is a finite non-empty set and is the set of subsets of Decomposition is finding a function g such that where Decomposition of Multi-Valued Functions (Brzozowski and Lou)

  23. inputs outputs {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} n=2 m=1 0 0 0 0 Set Matrices A function f is represented by a set matrix, e.g. Not consistent with n+m columns which must be consistent.

  24. Decomposition of MV-functions Definition: Given a set S, a blanketB=(b1,b2,b3,…,bk) is a set of nonempty distinct (but not necessarily disjoint) subsets of S, called blocks, whose union is S. Example: S={1,2,3}, B={(1,2),(2,3), (1)} Definition: A blanket product of two blankets B1 and B2 is given by 1) forming the cross product of intersections of blocks 2) removing duplicates and null intersections Example: S={1,2,3}, B1={(1,2),(2,3),(1)}, B2={(1,2),(3)} B1 x B2 = {(1,2),(2),(3), (1)}

  25. inputs outputs {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} Row blanket for a set matrix This is a list of unique sets of rows which cover each minterm in the input/output space, e.g. 000 - 3 001 - 5 002 - 5 010 - 3 … 100 - 1,3,4 ... So row blanket for this is Bf={(3),(5),(1,3,4),(1,2,3,4),(2),(1)}

  26. x1 x2 x2 f1 f2 0 0 0,2 0,1 0 1 1,2 0,2 0,2 1 2 0,1,2 0 1,2 2 1,2 0,2 0,2 0,1 1,2 x2 x3 BV < Bg codes g(v) 0 0 1,3,4 1,3,4 2 2 0 2 1,4 1,2,4 1,3,4 0,2 2 1 0 2,3 2,3,4 1 1 1 2 2 1,2,4 2,3,4 0,1 1 2 0 2,3,4 2,3,4 1 1 2 2 2,4 1,2,4 2,3,4 0,1 0 Example of Decomposition u=x1 v=x2,x3 f(x)=h(u,g(v)) To find g(v), form the blanket Bv. Find a blanket Bg that BV<Bg and BU x Bg <Bf Encode the row sets of Bg Choose a code for each minterm in the V space.

  27. g x2 x3 BV < Bg codes g(v) x1 x2 x2 f1 f2 0 0 1,3,4 1,3,4 2 2 0 2 1,4 1,2,4 1,3,4 0,2 2 1 0 2,3 2,3,4 1 1 1 2 2 1,2,4 2,3,4 0,1 1 2 0 2,3,4 2,3,4 1 1 2 2 2,4 1,2,4 2,3,4 0,1 0 0 0 0,2 0,1 0 2 1 1,2 0,2 0,2 1 0,1 2 0,1,2 0 1,2 2 1,2 1,2 0,2 0,2 0,1 1,2 0,1,2

  28. X1 BU g Bg BU*Bg < Bf h1 h2 0 1 2 1,3,4 1 1 0,1 0 1 2,4 2 1,3,4 4 2,4 4 3,4 0,1 1,2 0 1,2,4 2,4 2,4 0 1 1 2,3,4 2,4 2,4 0 1 2 3,4 2 1,3,4 3,4 3,4 1 2 0 1,2,4 4 2,4 4 3,4 0,1 1,2 1 2,3,4 3,4 3,4 1 2 g x1 x2 x2 f1 f2 0 0 0,2 0,1 0 2 1 1,2 0,2 0,2 1 0,1 2 0,1,2 0 1,2 2 1,2 1,2 0,2 0,2 0,1 1,2 0,1,2 Computing h(u,g) The outputs h1 and h2 are obtained by intersecting the outputs of the chosen rows. 2. List rows that cover it = BU 1. List each minterm of U 4. List corresponding blocks of Bg with these codes 3. List possible codes of g that can correspond to these minterms 6. Choose one block of Bf for the implementation 5. List all blocks of Bf that cover BU*Bg

  29. X1 g h1 h2 0 2 0,1 0 1 2 0,1 1,2 1 0 0 1 1 1 0 1 2 2 1 2 2 0 0,1 1,2 2 1 1 2 g x1 x2 0 0 2 1 1,2 0,1 2 0,1,2 1,2 1,2 0,2 0,1,2 Final Result =g(x1,x2) h1(x1,g) = h2(x1,g) Note that the results are incompletely specified functions

  30. Conclusions and Comments • Methods have been developed for representing and manipulating multi-valued functions • Conceptually, the best way to deal with MV-logic is • to manipulate them directly, • followed by intelligent binary encoding, • followed by binary manipulations • We require such a logic package to experiment more fully with these methods - but this has not been developed to date.

More Related