HWK #5 Solution
Problem 5.1
For convenience throughout this problem, let's start by writing out the K-
maps:
yz
00 01 11 10
x
0
1
0
0
0
1
1
1
1
1
f
yz
00 01 11 10
x
0
0
0
0
1
1
0
0
1
1
g
yz
00 01 11 10
x
0
0
1
1
1
1
0
0
1
1
h
a.
By putting x, y, and z at the inputs of our 3:8 decoder, we have available at the
output of the decoder all possible minterms. We then simply OR the minterms
together to realize each function. The tricky part is that we have only 3-input
gates: two OR gates and one NOR gate.
How do we implement f? We can't use a 3-input OR gates, because f has 5
minterms. So we instead implement f', and invert it using the NOR gate. In other
words, f' = OR(m1,m2,m3). Feeding m1, m2, and m3 into a NOR gate means we
have (m1+m2+m3)' = m1'm2'm3' = M1M2M3 = f.
To implement g, we just use a 3-input OR gate to compute m2+m4+m6. To
implement h, we have only one gate left: a 3-input OR gate. But h(x,y,z) =
m1+m2+m3+m4+m6 = (m2+m4+m6) + m1 + m3. We can just use an OR gate
with inputs g, m1, and m3.
b.
Any three-variable function can be implemented with a 4:1 MUX plus an inverter.
Since we do not have any inverters, we need to worry about which variables will
serve as the select inputs to the muxes.
Looking at the K-maps for f and g, we can see that there is no combination of y
and z that gives 1 when x = 0 and 0 when x = 1. Thus, we can use y and z for the
select lines without needing an inverter - all the inputs will be 0, 1, or x. For h,