Download presentation
Presentation is loading. Please wait.
Published byImogen Rose Modified over 9 years ago
1
Mihir Choudhury, Kartik Mohanram (ICCAD’10 best paper nominee) Presentor: ABert Liu
2
Introduction Terminology Algorithm Illustration Experimental Result Conclusion Outline
3
Introduction
4
Bi-decomposition is a special kind of functional decomposition Functional decomposition Break a large function into a network of smaller functions Reduce circuit and communication complexity and thus simplify physical design Bi-decomposition plays an important role in logic synthesis for restructuring Boolean networks Introduction
5
Problem f fAfA f B h XAXA XBXB XCXC XBXB XCXC Bi-decompose XAXA
6
Terminology
7
Blocking Edge Graph (BEG): It’s an undirected graph. Every vertex represent a variable. One graph represents only one non-decomposability of and, or, or xor. The edges connected variable pair {i, j} means no variable partition can decompose this variable pair. BEG can extract variable partition. Terminology
8
( a, b) and ( b, d) are not blocked in the and BEG. ( c, d) and ( c, b) are not blocked in the or BEG. The xor BEG is complete graph. BEG Example OR AND ab dc ab dc XOR ab dc
9
Algorithm
10
1.Construct BEG 2.Do variable partition on the BEG. 3.Compute the decomposed functions. 4.Recursively bi-decompose the decomposed functions from 3. In 4. if the function is not decomposable it will do some relaxation to make further decompose. (It’s not bi-decomposition) Algorithm
11
Illustration
12
Construct BEG
13
Blocking condition: One square blocks the others. Construct BEG
14
K-map ij\k 0 1 00 1 1 01 1 0 11 0 1 10 1 0 Example AND i kj OR i kj XOR i kj For { i, j } pair : assign k=0 assign k=1 i\j 0 1 i\j 0 1 0 1 1 or 0 1 0 xor 1 1 0 square 1 0 1 square Blocking all { i, j} in all BEGs. Other pair do the same thing to finish constructing the BEGs.
15
K-map ij\k 0 1 00 1 0 01 1 0 11 0 0 10 0 0 Example AND i kj OR i kj XOR i kj For { i, j } pair : assign k=0 assign k=1 i\j 0 1 i\j 0 1 0 1 1 Literal 0 0 0 Zero 1 0 0 square 1 0 0 square
16
We can compute whether the edge ( i, j) should be added or not in and and or BEGs by compute x. If x is not constant 0 the edge will be added. Construct BEG i j k On-Set Off-set
17
The same for or and and : Construct BEG i j k On-Set Off-set
18
Whether the function is bi-decomposable or not? Guarantee the existence of variable partition. Variable Partition
19
Who can be common variable? Vertex cut is necessary but not sufficient condition. Variable Partition
20
Vertex Cut: A set of vertices whose removal renders a connected graph disconnected. Examples: Variable Partition ab dc Legal cut Not a vertex cut a b d c e Legal cut Another legal cut
21
Decomposed function for or and and : For an or bi-decomposition. Decomposed Function Off-set On-set An and bi-decomposition can be obtained in a similar manner by interchanging the off-set and the on-set of f. It’s subset of off-set of f. It’s obtained from expanding on-set of f and does not overlap with off-set of decomposed function.
22
For xor : Decomposed Function
23
Example
24
Experimental Result
25
26
27
Conclusion
28
The experimental result looks good. This work implemented in ABC using CUDD package, it might have memory problem when function is large. Solving problem with new graph structure might be a good idea. The BEG has global view of the decomposability of every variable pairs to choose the best partition. Maybe we can improve our bi-decomposition work. Conclusion
29
Thanks for Attention
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.