Download presentation
Presentation is loading. Please wait.
1
1 Multi-Valued Logic Synthesis R. K. Brayton and S. P. Khatri University of California Berkeley
2
2 Motivation More natural way of describing designsMore natural way of describing designs At a higher level of specificationAt a higher level of specification –more possibility of optimization Is a generalizationIs a generalization –leads to improved understanding even of the binary case.
3
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
4 Outline MV-NotationMV-Notation Algorithms for Multi-valued LogicAlgorithms for Multi-valued Logic –Redundancy Removal - see next talk –MV-factorization extracting common divisors in an MV settingextracting common divisors in an MV setting –SPFDs using flexibility to optimize circuitusing flexibility to optimize circuit –Decomposition f(x) = h(x1,g(x2))f(x) = h(x1,g(x2)) Conclusions and commentsConclusions and comments
5
5 Notation - I Definition - A multi-valued variable can take on values from a set Definition - A multi-valued function is a function which maps
6
6 Notation - II Definition - A multi-valued literal is a binary logic function of the form where where Definition - A cube can be written as the product of MV-literals:
7
7 Multi-valued Factorization Example We will show that this can be rewritten as:
8
8 Binary Encode First?
9
9 MV-Kerneling (S. Malik) ExpressionCo-kernelkernel
10
10 Co-kernel cube matrix ExpressionCo-kernelkernel
11
11 Common Divisors and Rectangles Rectangle: { } (2,4) (1,2) (1,2)
12
12 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). satisfiable not satisfiable satisfiable
13
13 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 5. OR these together + 4. AND these with column labels. common divisor factor in f1 factor in f2 f1f1f2f2 f1f2
14
14 Final Result + common divisor factor in f1 factor in f2
15
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
16 Binary Encoding
17
17 Sets of Pairs of Functions to be Distinguished (SPFDs) An SPFD is equivalent to a set of incompletely specified functions (ISFs)An SPFD is equivalent to a set of incompletely specified functions (ISFs) Proposed by Yamashita, Sawada and Nagoya for simplifying binary FPGAsProposed by Yamashita, Sawada and Nagoya for simplifying binary FPGAs Implemented in SISImplemented in SIS For binary functions, can be represented by a bipartite graphFor binary functions, can be represented by a bipartite graph
18
18 Example of SPFD computation for MV-functions Consider the MV-function: 0 0 R 11 1 1 0 1 0 2 2 R Y G G Y0 XZF 00 11 01 21 1020 SPFD F (X,Z)Red Green Yellow xz Old network
19
19 Assign Edges to Inputs 00 11 01 21 1020 SPFD F (X,Z)RedGreen Yellow xz 00 11 01 21 1020 SPFD X (X,Z)xz 00 11 01 21 1020 SPFD Z (X,Z)xz
20
20 Re-synthesize X 1 0 00 11 01 21 1020 W=SPFD X (X,Z)xz 0 0 R 11 1 1 0 1 0 2 2 R Y G G Y0 XZF W1 1 0 0 0 0 Old network New network
21
21 SPFDs Allows more flexibility than simple don’t caresAllows more flexibility than simple don’t cares Changes both function and some of its inputs simultaneouslyChanges both function and some of its inputs simultaneously Extended to multi-valued functions.Extended to multi-valued functions.
22
22 Decomposition of Multi- Valued Functions (Brzozowski and Lou) is a finite non-empty set and Consider partially-specified MV-functions with n inputs and m outputs. with n inputs and m outputs. is the set of subsets of Decomposition is finding a function g such that where
23
23 Set Matrices A function f is represented by a set matrix, e.g. with n+m columns which must be consistent. {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} inputsoutputsn=2m=1 Notconsistent000 0
24
24 Decomposition of MV- functions Definition: Given a set S, a blanket B=(b 1,b 2,b 3,…,b k ) 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 B 1 and B 2 is given by 1) forming the cross product of intersections of blocks 1) forming the cross product of intersections of blocks 2) removing duplicates and null intersections 2) removing duplicates and null intersections Example: S={1,2,3}, B 1 ={(1,2),(2,3),(1)}, B 2 ={(1,2),(3)} B 1 x B 2 = {(1,2),(2),(3), (1)} B 1 x B 2 = {(1,2),(2),(3), (1)}
25
25 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. {1} {0,1,2} {0} {1} {1} {0,2} {0,1,2} {0,1} {0} {1} {0,1} {0} {0} {0,1} {1,2} inputsoutputs 000 - 3 001 - 5 002 - 5 010 - 3 … 100 - 1,3,4... So row blanket for this is B f ={(3),(5),(1,3,4),(1,2,3,4),(2),(1)}
26
26 Example of Decomposition 0 0 0,2 0,1 0 11,20,20,2 1 20,1,201,22 1,20,20,20,11,2 x1x2x2f1f2u=x1v=x2,x3 001,3,41,3,422 021,41,2,4 1,3,40,22 102,32,3,411 1221,2,4 2,3,40,11 202,3,42,3,411 222,41,2,4 2,3,40,10 x2x3B V < B g codes g(v) f(x)=h(u,g(v)) Find a blanket B g that B V <B g and B U x B g <B f Encode the row sets of B g Choose a code for each minterm in the V space. To find g(v), form the blanket B v.
27
27 0 0 0,2 0,1 0 2 11,20,20,2 1 0,1 20,1,201,22 1,2 1,20,20,20,11,2 0,1,2 x1x2x2f1f2g 001,3,41,3,422 021,41,2,4 1,3,40,22 102,32,3,411 1221,2,4 2,3,40,11 202,3,42,3,411 222,41,2,4 2,3,40,10 x2x3B V < B g codes g(v)
28
28 0121,3,4110,10 12,421,3,442,4 4 3,40,11,2 01,2,42,42,401 01,2,42,42,401 12,3,42,42,401 12,3,42,42,401 23,421,3,43,43,412 01,2,442,4 4 3,40,11,2 01,2,442,4 4 3,40,11,2 12,3,43,43,412 12,3,43,43,412 X1B U gB g B U *B g < B f h1 h2 Computing h(u,g) The outputs h1 and h2 are obtained by intersecting the outputs of the chosen rows. 1. List each minterm of U 2. List rows that cover it = B U 3. List possible codes of g that can correspond to these minterms can correspond to these minterms 4. List corresponding blocks of B g with these codes with these codes 5. List all blocks of B f that cover B U *B g 6. Choose one block of B f for the implementation implementation 0 0 0,2 0,1 0 2 11,20,20,2 1 0,1 20,1,201,22 1,2 1,20,20,20,11,2 0,1,2 x1x2x2f1f2g
29
29 Final Result 0 0 2 11,2 0,1 20,1,2 1,2 1,20,2 0,1,2 x1x2g 020,1 0 120,1 1,2 1 00 1 1 10 1 221 2 2 00,1 1,2 2 11 2 X1g h1 h2 Note that the results are incompletely specified functions =g(x1,x2) h1(x1,g) h1(x1,g)= h2(x1,g) h2(x1,g)
30
30 Conclusions and Comments Methods have been developed for representing and manipulating multi-valued functionsMethods have been developed for representing and manipulating multi-valued functions Conceptually, the best way to deal with MV-logic isConceptually, 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.We require such a logic package to experiment more fully with these methods - but this has not been developed to date.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.