LSyn3 Unate
LSyn3 Unate
LSyn3 Unate
Spring 2007
1
ECE 667 - Synthesis & Verification - Lecture 11
Shannon Expansion
f : Bn → B
Shannon Expansion:
f xi f xi x i f xi
F% x i Fxi x i Fx i
ab ac abc abc
ac
bc
ab
c c
b b
a a
Cube bc ist split into two cubes
a b c d ab c d
ac 1 2 1 2 1 - 1 -
c’d 2 2 0 1 or - - 0 1
bcd’ 2 1 1 0 - 1 1 0
f(x1,…,xi,…,xj,…,xn) = f(x1,…,xj,…,xi,…,xn)
Definition: A cover F is positive unate in xi iff xi ∉ cj for all cubes cj∈F
b c
merge
Theorem: f x f x x f x
g x f x x f x
Proof:
f x f x x f x
f g 0
g f
f g 1
Algorithm COMPLEMENT(List_of_Cubes C) {
if(C contains single cube c) {
Cres = complement_cube(c) // generate one cube per
return Cres // literal l in c with ^l
}
else {
xi = SELECT_VARIABLE(C)
C0 = COMPLEMENT(COFACTOR(C,^xi)) Ù ^xi
C1 = COMPLEMENT(COFACTOR(C,xi)) Ù xi
return OR(C0,C1)
}
}
F = (f, d, r) : Bn → {0, 1, *}
where * represents a don’t care.
Also: r = f’d’ ⊆ g’ ⊆ f’
F4= a+bc