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)
1D and 2D switches
A lattice of 2D switches 3 × 3 2D switching network and its lattice form
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.
Logic synthesis problem How can we implement a given target Boolean function fT with a lattice of 2D switches? Example: fT = x1x2x3+x1x4
Logic synthesis problem Example: fT = x1x2x3+x1x4+x1x5 9 TOP-TO-BOTTOM PATHS!
Our synthesis method Example: fT = x1x2x3+x1x4+x1x5 fTD = (x1+x2+x3)(x1+x4)(x1+x5) fTD = x1 + x2x4x5 + x3x4x5 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.
Our synthesis method
Math behind the method – Theorem 1 Theorem 1 allows us to only consider column-paths. We do not need to enumerate all paths!
Math behind the method – Theorem 2 Theorem 2 explains the relation between intersection sets and column-paths. Each column is for each product!
Our method’s performance The time complexity: O(m2n2) Area of the lattice: m×n n and m are the number of products of the target function fT and its dual fTD, 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!