E N D
1. 1 ECE 667Spring 2011Synthesis and Verificationof Digital Systems Unate Recursive Paradigm
2.
ECE 667 - Synthesis & Verification 2 Shannon Expansion Boolean function f : Bn ? B
Shannon Expansion:
Theorem: F is a cover of f. Then
We say that f (F) is expanded about xi.
xi is called the splitting variable.
3.
ECE 667 - Synthesis & Verification 3 Example
Cube bc ist split into two cubes
Shannon Expansion (cont.)
4.
ECE 667 - Synthesis & Verification 4 List of Cubes (Cover Matrix) We often use matrix notation to represent a cover:
Example: F = ac + cd + bcd
a b c d a b c d
a c 1 2 1 2 1 - 1 -
cd 2 2 0 1 or - - 0 1
bcd 2 1 1 0 - 1 1 0
Each row represents a cube
1 means that the positive literal appears in the cube
0 means that the negative literal appears in the cube
The 2 (or -) represents that the variable does not appear in the cube
Finding cofactors from matrix representation is easy. TRY it !
5.
ECE 667 - Synthesis & Verification 5 Fundamental Theorem Theorem: Let c be a cube and f a function. Then
c ? f ? fc ? 1.
Proof. We use the fact that x fx = x f, and fx is independent of x.
If : Suppose fc ? 1. Then cf = c fc = c. Thus, c ? f.
6.
ECE 667 - Synthesis & Verification 6 Proof (cont.) Only if. Assume c ? f
Then c ? cf = cfc. But fc is independent of literals i ? c.
If fc ?1, then ? m ? Bn, fc(m)=0.
We will construct a m from m and c in the following manner:
mi=mi, if xi?c and xi?c,
mi=1, if xi ? c,
mi=0, if xi ? c.
i.e., we made the literals of m agree with c, i.e. m ? c c(m)=1
Also, fc is independent of literals xi,xi ? c fc(m) = fc(m) = 0
fc(m) c(m)= 0
contradicting c ? cfc.
7.
ECE 667 - Synthesis & Verification 7 Application of Containment Test: c ? F
8.
ECE 667 - Synthesis & Verification 8 Definition: A function f : Bn ? B is symmetric with respect to variables xi and xj iff
f(x1,,xi,,xj,,xn) = f(x1,,xj,,xi,,xn)
Definition: A function f : Bn ? B is totally symmetric iff any permutation of the variables in f does not change the function Some Special Functions
9.
ECE 667 - Synthesis & Verification 9 Definition: A function f : Bn ? B is positive unate in variable xi iff
This is equivalent to monotone increasing in xi:
for all minterm pairs (m-, m+) where
For example, m-3=1001, m+3=1011 (where i =3) Unate Functions
10.
ECE 667 - Synthesis & Verification 10 Similarly for negative unate
monotone decreasing:
A function is unate in xi if it is either positive unate or negative unate in xi.
Definition: A function is unate if it is unate in each variable.
Definition: A cover F is positive unate in xi iff ?xi ? cj for all cubes cj?F Unate Functions
11.
ECE 667 - Synthesis & Verification 11 Example - unateness
12.
ECE 667 - Synthesis & Verification 12 The Unate Recursive Paradigm Key pruning technique based on exploiting the properties of unate functions
based on the fact that unate leaf cases can be solved efficiently
New case splitting heuristic
splitting variable is chosen so that the functions at lower nodes of the recursion tree become unate
13.
ECE 667 - Synthesis & Verification 13 Unate covers F have many extraordinary properties:
If a cover F is minimal with respect to single-cube containment, all of its cubes are essential primes.
In this case F is the unique minimum cube representation of its logic function.
A unate cover represents the tautology iff it contains a cube with no literals (constant 1).
Positive unate: f = x fx + fx
Negative unate: f = fx + xfx
This type of implicit enumeration applies to many sub-problems (prime generation, reduction, complementation, etc.).
14.
ECE 667 - Synthesis & Verification 14 Unate Recursive Paradigm Create cofactoring tree stopping at unate covers
choose, at each node, the most binate variable for splitting
recurse until no binate variable left (unate leaf)
Operate on the unate cover at each leaf to obtain the result for that leaf. Return the result
At each non-leaf node, merge (appropriately) the results of the two children.
Main idea: Operation on unate leaf is computationally less complex
Operations: complement, simplify, tautology, generate-primes,...etc.
15.
ECE 667 - Synthesis & Verification 15 Two Useful Theorems - Tautology Theorem:
Checking for tatutology for is simplified for unate functions
Positive unate (f = x fx + fx ) f ? 1 ? fx = 1
Negative unate (f = fx + xfx) f ? 1 ? fx = 1
Theorem: Let A be a unate cover matrix.
Then A?1 if and only if A has a row of all -s (dont cares, or 2s).
Proof:
If. A row of all -s is the tautology cube.
Only if. Assume no row of all -s. Without loss of generality, suppose function is positive unate. Then each row has at least one 1 in it. Consider the point (0,0,,0). This is not contained in any row of A. Hence A?1.
16.
ECE 667 - Synthesis & Verification 16 Recursive Tautology termination rules
17.
ECE 667 - Synthesis & Verification 17 Recursive Tautology - example
18.
ECE 667 - Synthesis & Verification 18 Recursive Complement Operation
19.
ECE 667 - Synthesis & Verification 19 COMPLEMENT Operation
20.
ECE 667 - Synthesis & Verification 20 Recursive Complement termination rules
21.
ECE 667 - Synthesis & Verification 21 Recursive Complement example (split)
22.
ECE 667 - Synthesis & Verification 22 Recursive Complement example (merge)
23.
ECE 667 - Synthesis & Verification 23 Incompletely Specified Boolean Functions F = (f, d, r) : Bn ? {0, 1, *}
where * represents a dont care.
f = onset function - f(x)=1 ? F(x)=1
r = offset function - r(x)=1 ? F(x)=0
d = dont care function - d(x)=1 ? F(x)=*
(f,d,r) forms a partition of Bn, i.e.
f + d + r = Bn
fd = fr = dr = ? (pairwise disjoint)
24.
ECE 667 - Synthesis & Verification 24 A completely specified Boolean function g is a cover for F = (f,d,r) if
f ? g ? f+d
Note:
g r = ?
if x?d , then g(x) = 0 or 1 (dont care)
if x?f , then g(x)=1
if x?r , then g(x)=0.
Also: r = fd ? g ? f Incompletely Specified Boolean Functions
25.
ECE 667 - Synthesis & Verification 25 Example: Logic Minimization (single output) Consider F(a,b,c)=(f,d,r), where f={abc, abc, abc} and d ={abc, abc}, and the sequence of covers illustrated below:
26.
ECE 667 - Synthesis & Verification 26 Two-level minimization (multiple-outputs)
27.
ECE 667 - Synthesis & Verification 27
28.
ECE 667 - Synthesis & Verification 28