Mihir Choudhury Kartik Mohanram ICCAD10 best paper nominee Presentor ABert Liu Introduction Terminology Algorithm Illustration Experimental Result Conclusion Outline ID: 257648
Download Presentation The PPT/PDF document "Bi-decomposition of large Boolean functi..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Bi-decomposition of large Boolean functions using blocking edge graphs
Mihir
Choudhury
,
Kartik
Mohanram
(
ICCAD’10 best paper nominee)
Presentor
:
ABert
LiuSlide2
IntroductionTerminology
Algorithm
IllustrationExperimental ResultConclusion
OutlineSlide3
IntroductionSlide4
Bi-decomposition is a special kind of functional decompositionFunctional
decomposition
Break a large function into a network ofsmaller functionsReduce circuit and communication complexity
and thus simplify physical
design
Bi-decomposition plays an important role in logic synthesis for restructuring Boolean
networks
IntroductionSlide5
Problem
f
f
A
f
B
h
X
A
X
B
X
C
X
B
X
C
Bi-decompose
X
ASlide6
TerminologySlide7
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.
TerminologySlide8
( 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
a
b
d
c
a
b
d
c
XOR
a
bdcSlide9
AlgorithmSlide10
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)
AlgorithmSlide11
IllustrationSlide12
Giving a function f with variable set V. To construct BEG for f:
1.Choose a variable pair { i, j }.
2.Give an assignment c to V/{ i, j}.
(Restricting
the K-map of function to 2x2 squares
.)
(There are
2x2 K-maps for each pair { i, j
})
3.Test the blocking condition to add edges ( i, j) to BEGs.
4. Go back to 1. until all the pairs have been tested.
Construct BEGSlide13
Blocking condition:One square blocks the others.
Construct BEGSlide14
K-map
ij
\k 0
1
00 1 1
01 1 0
11 0 1
10 1 0
Example
AND
i
k
j
OR
i
k
j
XOR
ikjFor { 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 squareBlocking all { i, j} in all BEGs.Other pair do the same thing to finish constructing the BEGs.Slide15
K-map
ij
\k 0
1
00 1 0
01 1 0
11 0 0
10 0 0
Example
AND
i
k
j
OR
i
k
j
XORikjFor { 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 squareSlide16
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-setSlide17
The same for or and
and
:
Construct BEG
i
j
k
On-Set
Off-setSlide18
Whether the function is bi-decomposable or not?
Guarantee the
existence of
variable
partition.
Variable PartitionSlide19
Who can be common variable?
Vertex cut is necessary but not sufficient condition
.
Variable PartitionSlide20
Vertex Cut: A set of vertices whose removal renders a connected graph disconnected.Examples:
Variable Partition
a
b
d
c
Legal cut
Not a vertex cut
a
b
d
c
e
Legal cut
Another legal cutSlide21
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.Slide22
For xor :
Decomposed FunctionSlide23
ExampleSlide24
Experimental ResultSlide25
Experimental ResultSlide26
Experimental ResultSlide27
ConclusionSlide28
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.
ConclusionSlide29
Thanks for Attention