Date post: | 13-Jan-2016 |
Category: |
Documents |
Upload: | bryan-dennis |
View: | 219 times |
Download: | 0 times |
Lattice-Based Computation of Boolean Functions
Mustafa Altun and Marc Riedel
University of Minnesota
Switch-based Boolean computation
Shannon’s work: A Symbolic Analysis of Relay and Switching Circuits(1938)
x1
x2
x3
x1 x2 x3
x1
x2
x1 x2
Parallel: x1 + x2Series: x1 . x2
1D and 2D switches
2D switch
ON OFF
1D switch
A lattice of 2D switches
3 × 3 2D switching network and its lattice form
BOTTOM
LE
FT
RIG
HT
TOP
LE
FT
RIG
HT
BOTTOM
TOP
Boolean functionality and paths Switches are controlled by Boolean literals. fL evaluates to 1 iff there exists a top-to-bottom path.
gL evaluates to 1 iff there exists a left-to-right path.
x9
x1 x4
x2 x5
x7
x8
x3 x6
LE
FT
TOP
RIG
HT
BOTTOM
f L
gL
0
1 0
1 1
1
0
0 1
LE
FT
TOP
RIG
HT
BOTTOM
f L
gL
fL = 1gL = 0
Logic synthesis problemHow can we implement a given target Boolean function fT with a lattice of 2D switches?
Example: fT = x1x2x3+x1x4
x1x2x3 + x1x4 + x1x2 + x1x2x3x4 x1x2x3 + x1x4 + x1x2x4 + x1x2x3x4fL1 = fL2 =fL2 = x1x2x3 + x1x4fL1 = x1x2 + x1x4
x2 x1
x1 x4
x3 x1
BOTTOM
RIG
HTL
EF
T
TOP
x2 x4
x1 x1
x3 x4
BOTTOM
RIG
HTL
EF
T
TOP
Logic synthesis problem
x1
x1 x1
x2 x4
x5
x5
x3 x4
LE
FT
TOP
RIG
HT
BOTTOM
Example: fT = x1x2x3+x1x4+x1x5
9 TOP-TO-BOTTOM PATHS!
Our synthesis method Example: fT = x1x2x3+x1x4+x1x5
x1 x2 x3
x1 x4
x1 x5
x1
x2 x4 x5
x3 x4 x5 {x5}
{x1} {x1}
{x2} {x4}
{x1}
{x5}
{x3} {x4}
x1 x2 x3
x1 x4
x1 x5
x1
x2 x4 x5
x3 x4 x5
fTD = (x1+x2+x3)(x1+x4)(x1+x5)
fTD = x1 + x2x4x5 + x3x4x5
x5
x1 x1
x2 x4
x1
x5
x3 x4
x1 x2 x3
x1 x4
x1 x5
x1
x2 x4 x5
x3 x4 x5
Obtain the dual of fT.
Assign each product of fT to a
column. Assign each product of fT
D to
a row. Compute an intersection set
for each site. Arbitrarily select a literal from
an intersection set and assign it to the corresponding site.
x1 x1
x1 x1
x2
x3
x3 x4 x2
x1 x2 x3
x2
x4
x5
x3
x2 x3
x2 x4 x4 x5 x5
x1x4
x2 x3x4
x2 x4x5
x3x5
x1 x2 x5
x1 x3 x4
x2 x3 x4
x2 x4 x5
{x2, x3, x4}
Our synthesis methodExample: fT = x1x2x3+x1x4+x2x3x4+x2x4x5+x3x5
fTD= x1x2x5+x1x3x4+x2x3x4+x2x4x5
x1 x1
x1 x1
x2
x3
x3 x4 x2
x1 x2 x3
x2
x4
x5
x3
x2 x3
x2 x4 x4 x5 x5
x1x4
x2 x3x4
x2 x4x5
x3x5
x1 x2 x5
x1 x3 x4
x2 x3 x4
x2 x4 x5
Math behind the method – Theorem 1Example: fT = x1x2x3+x1x4+x2x3x4+x2x4x5+x3x5
Theorem 1 allows us to only consider column-paths. We do not need to enumerate all paths!
x1 x1
x1 x1
x2
x3
x3 x4 x2
x1 x2 x3
x2
x4
x5
x3
x2 x3
x2 x4 x4 x5 x5
x1x4
x2 x3x4
x2 x4x5
x3x5
x1 x2 x5
x1 x3 x4
x2 x3 x4
x2 x4 x5
Math behind the method – Theorem 2Example: fT = x1x2x3+x1x4+x2x3x4+x2x4x5+x3x5
Theorem 2 explains the relation between intersection sets and column-paths. Each column is for each product!
Our method’s performance
Area of the lattice: m×n
The time complexity:O(m2n2)
n and m are the number of products of the target function fT and its dual fT
D, respectively.
Future work We are investigating our method’s
applicability to different technologies. We are studying the applicability of the
Theorems to the famous problem of testing whether two given monotone Boolean functions are mutually dual.
Thank you!