RTL Design Flow - Computation Structures Group
RTL Design Flow - Computation Structures Group
RTL Design Flow - Computation Structures Group
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Algebraic vs. Boolean Methods<br />
Algebraic techniques view equations as<br />
polynomials and attempt to factor equations or<br />
“divide” them<br />
Do not exploit Boolean identities e.g., a a = 0<br />
In algebraic substitution (or division) if a function<br />
f = f(a, b, c) is divided by g = g(a, b), a and b<br />
will not appear in f / g<br />
Algebraic division: O(n log n) time<br />
Boolean division: 2-level minimization required<br />
Strong (or Boolean) Division<br />
Given a function f to be strong divided by g<br />
Add an extra input to f corresponding to g,<br />
namely G and obtain function h as follows<br />
h DC = Gg+ Gg<br />
h ON = f ON − h DC<br />
Minimize h using two-level minimizer<br />
9<br />
11<br />
Comparison<br />
f = ab + ac+ ba+ bc + ca + cb<br />
Algebraic factorization procedures<br />
f = a( b + c ) + a ( b + c ) + bc + cb<br />
Boolean factorization produces<br />
f = ( a + b + c ) ( a + b + c )<br />
l = ( bf+ bf ) ( a + e)+<br />
ae( b f + bf )<br />
r = ( bf+ b f ) ( a + e)+<br />
ae( b f + bf )<br />
Algebraic substitution of l into r fails<br />
Boolean substitution<br />
r = a( el + el ) + a( el + el )<br />
l = a( er + e r ) + a( er + er)<br />
Strong Division Example<br />
f=a bc +abc +abc +a b c<br />
g = ab+ab<br />
bc<br />
00<br />
01<br />
11<br />
10<br />
Ga<br />
00 01 11 10<br />
1<br />
x<br />
x<br />
x<br />
x x<br />
Minimization gives h = G c + G c<br />
1<br />
h DC = G (a b + a b) + G (a b + a b)<br />
h ON = f ON − h DC<br />
1<br />
x<br />
x<br />
x<br />
1<br />
Function h<br />
10<br />
12