You are on page 1of 3

# Exam 1 Solution

1. Circuits
a) bubble pushing NOR-NOR circuit:

b) (i)(ii)(iii)(iv)
5
c) Number of Boolean functions is 22 = 232

2. Functions
a) Yes. We know that no product term is a subset of another. Consequently, no product
term can absorb another. Therefore no literals can be removed from any product term,
making all product terms prime.
b) No. We know that the sum of products is unate. Consequently no product terms
can be united. Therefore none of the product terms in the expression can be
reduced further.
c) Every product term is prime (i). Every product term is essential (ii). Therefore the
sum of products expression is both minimal and complete.
d) When x_i increases, F(x) does not decrease. This means that this function is
monotonically increasing, i.e. it is a unate function wrt x_i. This is true for every x_i
in the function. Hence, F(x) is a unate function.

## 3. ITEs and BDD

a) i) ITE(F’, G, F), ii) ITE(F, G, 1)
b) DeMorgan’s Lawn
ITE(F’, G’, H’)’
= (F’H’ + FG’)’
= (F’H’)’(FG’)’
= (F + H)(F’ + G)
= FF’ + FG + HF’ + HG
= FG + F’H
= ITE(F, G, H)
c) Consider f1 and f2. If f1 and f2 do not have isomorphic BDDs, it is possible that they
do have
isomorphic ROBDDs. However, symmetric functions will always have isomorphic
BDDs and ROBDDs. In
the general (non-symmetric) case, it is not sufficient to check for isomorphic BDDs
when determining if two functions are equivalent.two functions are equivalent.

4. Quine-McCluskey algorithm
a) PI table

## b) Remove dominating columns

We remove dominating columns because they represent a constraint on prime
implicants to choose that is looser than that of the dominated column. Thus, they are
redundant and we can remove them. In the single output case, we are allowed to
remove dominated row if it had a literal (AND connection) cost that was not less than
the dominating row. However, in the multiple output minimization, the connection cost
of a row depends on OR and AND connections, so it is not as easily measured. Because
of this, we cannot allow row dominance.
c) Algorithm: minimal covering algorithm, Row column dominance.
F1 F2 F3 F4 F5 F6 F7 F8
T1 X X X
T2 X X X
T3 X X X X
T4 X X X
T5 X X X
T6 X X X
Remove dominating columns: F2, F3, F4
F1 F5 F6 F7 F8
T1 X X
T2 X
T3 X X
T4 X X
T5 X X
T6 X
Remove dominated rows: T2, T6
F1 F5 F6 F7 F8
T1 X X
T3 X X
T4 X X
T5 X X
Remove dominating columns F1, F8
F5 F6 F7
T1 X
T3 X
T4 X
T5 X
Therefore: minimum test set is: {T1, T3, T5} or {T3, T4, T5}

## 5. Cofactor and Boolean difference

a) To prove that f’x= (fx)’
f = x.fx + x’fx’
f’ = (x.fx + x’fx’)’
= (x.fx)’ + (x’.fx’)’
= (x’+(fx)’). (x+(fx’)’)
= x.(fx)’ + x’.(fx’)’ + (fx)’.(fx’)’
= x.(fx)’ + x’.(fx’)’
(fx)’ and and (fx’)’ are cofactors of the complement of f. But they are also equal to the
complement of the positive cofactor fx and negative cofactor (fx)’ of f respectively.
Hence proved.
b) X.fx + X’.fx’. This is an implementation of the Shannon decomposition function.
c)
i. df/dg = f(a,b,c,g=1) XOR f(a,b,c,g=0)
= (a’+b’+0)(c+1) XOR (a’+b’+1)(c+0)
= (a+b) XOR c
= a’c’+b’c’+abc
ii. A and C are true. df/dx=0 implies that the Boolean difference of the function wrt x
is 0, so the function stays the same irrespective of a change in x. df/dx = 1 implies
that the function changes only with x, i.e. it is totally dependent on x. d(f.g)/dx =
(f.g)x XOR (f.g)x’= f.(gx XOR x’)= f.(dg/dx). This also shows that the function f does
not change wrt x.