0% found this document useful (0 votes)
26 views31 pages

Dat Astruc T

The document discusses data structures for representing and performing operations on logic functions. It describes several representations of logic functions, including matrix representations and the positional cube notation. It then covers operations that can be performed on logic covers, such as computing cofactors, determining containment and complementation, using a recursive paradigm and heuristics to select variables to make the functions unate.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views31 pages

Dat Astruc T

The document discusses data structures for representing and performing operations on logic functions. It describes several representations of logic functions, including matrix representations and the positional cube notation. It then covers operations that can be performed on logic covers, such as computing cofactors, determining containment and complementation, using a recursive paradigm and heuristics to select variables to make the functions unate.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

DATA STRUCTURES

FOR LOGIC OPTIMIZATION


c Giovanni De Micheli
Stanford University
Outline
c GDM
Review of Boolean algebra.
Representations of logic functions.
Matrix representations of covers.
Operations on logic covers.
Background
c GDM
Function f(x
1
, x
2
, . . . , x
i
, . . . , x
n
).
Cofactor of f with respect to variable x
i
:
f
x
i
f(x
1
, x
2
, . . . , 1, . . . , x
n
).
Cofactor of f with respect to variable x

i
:
f
x

i
f(x
1
, x
2
, . . . , 0, . . . , x
n
).
Booles expansion theorem:
f(x
1
, x
2
, . . . , x
i
, . . . , x
n
) = x
i
f
x
i
+x

i
f
x

i
Example
c GDM
Function:f = ab +bc +ac
Cofactors:
f
a
= b +c
f
a
= bc
Expansion:
f = af
a
+a

f
a
= a(b +c) +a

bc
Background
c GDM
Function f(x
1
, x
2
, . . . , x
i
, . . . , x
n
).
Positive unate in x
i
when:
f
x
i
f
x

i
Negative unate in x
i
when:
f
x
i
f
x

i
A function is positive/negative unate when
positive/negative unate in all its variables.
Background
c GDM
Function f(x
1
, x
2
, . . . , x
i
, . . . , x
n
).
Boolean dierence of f w.r.t. variable x
i
:
f/x
i
f
x
i
f
x

i
.
Consensus of f w. r. to variable x
i
:
C
x
i
f
x
i
f
x

i
.
Smoothing of f w. r. to variable x
i
:
S
x
i
f
x
i
+f
x

i
.
Example
f = ab +bc +ac
c GDM
(a)
(b)
(c) (d)
a
b
c
The Boolean dierence f/a = f
a
f
a

= b

c +bc

.
The consensus C
a
= f
a
f
a

= bc.
The smoothing S
a
= f
a
+f
a

= b +c.
Generalized expansion
c GDM
Given:
A Boolean function f.
Orthonormal set of functions:

i
, i = 1, 2, . . . , k.
Then:
f =

k
i

i
f

i
Where f

i
is a generalized cofactor.
The generalized cofactor is not unique,
but satises:
f
i
f

i
f +

i
Example
c GDM
Function f = ab +bc +ac.
Basis:
1
= ab and
2
= a

+b

.
Bounds:
ab f

1
1
a

bc +ab

c f

2
ab +bc +ac.
Cofactors: f

1
= 1 and f

2
= a

bc +ab

c.
f =
1
f

1
+
2
f

2
= ab1 +(a

+b

)(a

bc +ab

c)
= ab +bc +ac
Generalized expansion theorem
c GDM
Given:
Two functions f and g.
Orthonormal set of functions:

i
, i = 1, 2, . . . , k.
Boolean operator .
Then:
f g =

k
i

i
(f

i
g

i
)
Corollary:
f g = x
i
(f
x
i
g
x
i
) +x

i
(f
x

i
g
x

i
)
Matrix representations of logic covers
c GDM
Used in logic minimizers.
Dierent formats.
Usually one row per implicant.
Symbols: 0,1,*. (and other)
The positional cube notation
c GDM
Encoding scheme:
00
0 10
1 01
11
Operations:
Intersection AND
Union OR
Example
f = a

+a

b +ab

+ac

d
c GDM
10 11 11 10
10 01 11 11
01 10 11 11
01 11 10 01
Cofactor computation
c GDM
Cofactor of w.r. to .
Void when does not intersect .
a
1
+b

1
a
2
+b

2
. . . a
n
+b

n
Cofactor of a set C = {
i
} w.r. to :
Set of cofactors of
i
w.r. to .
Example
f = a

+ab
c GDM
10 10
01 01
Cofactor w.r. to 01 11:
First row void.
Second row 11 01 .
Cofactor f
a
= b
Multiple-valued-input functions
c GDM
Input variables can have many values.
Representations:
Literals: set of valid values.
Sum of products of literals.
Extension of positional cube notation.
Key fact:
Multiple-output binary-valued functions
represented as mvi single-output functions.
Example
c GDM
2-input, 3-output function:
f
1
= a

+ab
f
2
= ab
f
3
= ab

+a

b
Mvi representation:
10 10 100
10 01 001
01 10 001
01 01 110
Operations on logic covers
c GDM
Recursive paradigm:
Expand about a mv-variable.
Apply operation to cofactors.
Merge results.
Unate heuristics:
Operations on unate functions are simpler.
Select variables so that
cofactors become unate functions.
Tautology
c GDM
Check if a function is always TRUE.
Recursive paradigm:
Expand about a mv-variable.
If all cofactors are TRUE
then function is a tautology.
Unate heuristics:
If cofactors are unate functions
additional criteria to determine tautology.
Faster decision.
Recursive tautology
c GDM
TAUTOLOGY: the cover has a row of all 1s.
(Tautology cube).
NO TAUT.: the cover has a column of 0s.
(A variable that never takes a value).
TAUTOLOGY:
the cover depends on one variable,
and there is no column of 0s in that eld.
When a cover is the union of two subcovers,
that depend on disoint subsets of variables,
then check tautology in both subcovers.
Example
f = ab +ac +ab

+a

a
b
c
a
ac
ab
bc
abc
c GDM
01 01 11
01 11 01
01 10 10
10 11 11
Select variable a.
Cofactor w.r.to a

is 11 11 11 Tautology.
Cofactor w.r.to a is:
11 01 11
11 11 01
11 10 10
Example
c GDM
11 01 11
11 11 01
11 10 10
Select variable b.
Cofactor w.r.to b

is:
11 11 01
11 11 10
No column of 0 Tautology.
Cofactor w.r.to b is: 11 11 11.
Function is a TAUTOLOGY.
Containment
c GDM
Theorem:
A cover F contains an implicant
i F

is a tautology.
Consequence:
Containment can be veried by the
tautology algorithm.
Example
f = ab +ac +a

a
b
c
a
ac
ab
bc
c GDM
Check covering of bc C(bc) = 11 01 01.
Take the cofactor:
01 11 11
01 11 11
10 11 11
Tautology bc is contained by f.
Complementation
c GDM
Recursive paradigm:
f

= x f

x
+x

Steps:
Select variable.
Compute cofactors.
Complement cofactors.
Recur until cofactors can be complemented
in a straightforward way.
Termination rules
c GDM
The cover F is void.
Hence its complement is the universal cube.
The cover F has a row of 1s.
Hence F is a tautology and its complement is void.
The cover F consists of one implicant.
Hence the complement is computed by
De Morgans law.
All the implicants of F depend on a single variable,
and there is not a column of 0s.
The function is a tautology, and its complement
is void.
Unate functions
c GDM
Theorem:
If f be positive unate: f

= f

x
+x

.
If f be negative unate: f

= x f

x
+f

.
Consequence:
Complement computation is simpler.
One branch to follow in the recursion.
Heuristic:
Select variables to make the cofactors
unate.
Example
f = ab +ac +a

a
b
c
a
ac
ab
abc
c GDM
Select binate variable a

.
Compute cofactors:
F
a
is a tautology, hence F

is void.
F
a
yields:
11 01 11
11 11 01
Example (2)
c GDM
Select unate variable b.
Compute cofactors:
F
ab
is a tautology, hence F

ab
is void.
F
ab
= 11 11 01 and its complement is
11 11 10.
Re-construct complement:
11 11 10 intersected with C(b

) = 11 10 11
yields 11 10 10.
11 10 10 intersected with C(a) = 01 11 11
yields 01 10 10.
Complement: F

= 01 10 10.
Example (3)
c GDM
a a
b b
F = TAUT
a
RECURSIVE SEARCH
COMP =

F = TAUT
ab
COMP =

ab
F = c
COMP =
c
Summary
c GDM
Matrix oriented representation:
Used in two-level logic minimizer.
May be wasteful of space (sparsity).
Good heuristics tied to this representation.
Ecient Boolean manipulation exploits
recursion.

You might also like