Title: FENA poster
1Abstract
A classical problem in logic synthesis is to find
a sum-of-product (SOP) Boolean expression with
the minimum number of product terms that
implements a Boolean function. In this work, we
focus on a related yet different synthesis
problem targeted toward probabilistic
computation. In our scenario, we want to
synthesize a Boolean function that covers an
exact number of minterms, say m minterms. This is
the only requirement which m minterms are
covered does not matter. The objective is to find
a SOP Boolean expression with the minimum number
of product terms with this property. Solving this
problem provides a solution to the problem of
generating arbitrary probability values from
unbiased input probabilities values of 0.5 with
combinational logic. We first show a method for
constructing a set of product terms to cover
exactly m minterms this gives an upper bound.
Then, as our major contribution, we propose a
method for deriving a lower bound. We show that
the problem of finding such a lower bound can be
converted into an optimization problem which we
call the optimal subtraction problem. We solve it
with dynamic programming. Experiments on
benchmarks show that for some numbers m, the
lower bound meets the upper bound, indicating
that the solution corresponding to the upper
bound is optimal. For some other numbers m, the
gap between the lower bound and the upper bound
is small, indicating that the solution
corresponding to the upper bound is nearly
optimal.
Two-Level Logic Synthesis for Probabilistic
Computation
Weikang Qian and Marc D. Riedel
ECE Department, University of Minnesota
Probabilistic Computation
Problem A Special One
Question 2 How to implement q m/2n?
What is it?
How to design it?
Why need it?
Answer choose m minterms, BUT
- In test Weighted random pattern generation
- Hardware implementation of probabilistic
algorithm
- Digital circuit operating on random bit streams
- Transform probabilities into probabilities
A Hard Question Which m minterms to choose?
Example q 7/16
?
Question 1 What could q be?
Answer q m/2n
- Each input combination has probability 1/2n
- If the Boolean function has m minterms, then q
m/2n
Definitions and Preliminaries
Upper Bound
Two-Level Logic Synthesis
Lower Bound and Optimal Subtraction Problem (OSP)
Optimal Subtraction Problem
Example m (101101)2
Theorem 1 If B(m) ?, then an upper bound is ?
Theorem 2 If there exists ? cubes to cover m
minterms, then we can find a, b 0 such that m
a - b B(a) 2? - 1 B (b) 2? - 1 - 1
Ultimate Question Given number of inputs n and
integer m, find a SOP expression with the minimum
number of products to cover m minterms.
- Proof
-
- Synthesize cubes so that cube ck has n - ik
literals and cubes ck and cl are disjoint, for
any 0 k lt l ? - 1.
a - b (101101)2
- Given m, t 0, find a, b 0 tominimize B(a)
such that - B(b) t
- m a - b
X
? 2
Optimization Flow
- Proof
- In equation of Inclusion-Exclusion Principle, put
plus terms together to get a put minus terms
together to get b - We can show B(a) 2? - 1, B (b) 2? - 1 - 1
- m a - b
- B(a) 2? - 1 2
- B(b) 2? - 1 - 1 1
- No solution!
Example m (1011)2, n 4
Inclusion-Exclusion Principle
- Find lower bound by solving optimal subtraction
problem - Set t 2? - 1 - 1
- If min B(a) gt 2? - 1, then lower bound gt ?
? 3
MutuallyDisjoint
- B(a) 2? - 1 4
- B(b) 2? - 1 - 1 3
- a (110001)2, b (100)2
Lower bound is the minimum ? satisfying the above
property
Lower bound ? 3
Generalization of Optimal Subtraction Problem
Solving Optimal Subtraction Problem by Dynamic
Programming
Optimization Problem Q
Observation of Optimal Solution of OSP
Optimal Cost Table T
Example m (01100101111)2, t 3
- Treat m as alternating zeros and ones Exist 0
i0 lt i1 lt lt i2q d 1 - mi2r 1 - 1, i2r (11), mi2r 2 - 1, i2r
1 (00)
- Given m (mdm0)2, 0 i d, l, ? in 0, 1,
define problem Q(i, l, ?) as - Find a, b 0 to minimize B(a) such that
- B(b) l
- a (mdmi)2 b ?
- Optimal solution a(i, l, ?) and b(i, l, ?).
- Optimal cost A(i, l, ?) B(a(i, l, ?))
- 2q 6
- i0 0, i1 4, i2 5, i3 6, i4 8, i5 10
- T(2r, l) A(i2r, l, 0)
- T(2r - 1, l) A(i2r - 1, l, 1)
0 1 2 3
5 1 1 1 1
4 2 1 1 1
3 3 2 1 1
2 3 2 2 1
1 4 3 2 1
0 7 4 3 2
Case mi2r 1 - 1, i2r (11) mi2r -
1, i2r - 1 (00)
Case mi2r 2 - 1, i2r 1 (00)
mi2r 1 - 1, i2r (11)
(a, b denotes optimal solution)
Optimal Cost 2
0 1 2 t
2q - 1 1 1 1 1
2q - 2 y 1 1 1
2q - 3
2q - 4
? ? ? ? ? ?
0
Optimal Solution
- b (100010001)2
- a (10001000000)2
Optimal Subtraction Problem Q(0, t, 0)
Optimal Structure of Problem Q
Experimental Results
Results on modified Espresso benchmarks
A(i2r, l, 0) minA(i2r 1, l - 1, 1), A(i2r
2, l, 0) i2r 1 - i2r
A(i2r - 1, l, 1) minA(i2r, l, 0) 1, A(i2r
1, l - i2r i2r - 1, 1)
- Base Case
- T(2q - 1, ) and T(2q - 2, )
- General Cases
- T(2r, l) minT(2r 1, l - 1), T(2r 2, l)
i2r 1 - i2r - T(2r - 1, l) minT(2r, l) 1, T(2r 1, l -
i2r i2r - 1)
circuit cubes inputs minterms (hex) lower bound upper bound
newapla1 6 12 109 3 3
exp 14 8 59 3 4
shift 21 19 7FF01 2 12
newcond 28 11 288 3 3
in2 30 19 66950 4 8
in1 55 16 6900 3 4
bca 72 26 94000 3 3
x1dn 80 27 49E0D80 3 10
ts10 128 22 7FFF8 2 16
Recursive Relation
Upper Bound Optimal!