










Boolean Function Implementation



Earlier we had seen that it is possible to implement Boolean functions using decoders. In the same way it is also possible to implement Boolean functions using muxers and demuxers. 





Implementing Functions Multiplexers



Any nvariable logic function can be implemented using a smaller 2^{n1}to1 multiplexer and a single inverter (e.g 4to1 mux to implement 3 variable functions) as follows. 





Express function in canonical sumofminterms form. Choose n1 variables as inputs to mux select lines. Construct the truth table for the function, but grouping inputs by selection line values (i.e select lines as most significant inputs). 


Determine multiplexer input line i values by comparing the remaining input variable and the function F for the corresponding selection lines value i. 





We have four possible mux input line i values: 





 Connect to 0 if the function is 0 for both values of remaining variable.
 Connect to 1 if the function is 1 for both values of remaining variable.
 Connect to remaining variable if function is equal to the remaining variable.
 Connect to the inverted remaining variable if the function is equal to the remaining variable inverted.












Example: 3variable Function Using 8to1 mux



Implement the function F(X,Y,Z) = S(1,3,5,6) using an 8to1 mux. Connect the input variables X, Y, Z to mux select lines. Mux data input lines 1, 3, 5, 6 that correspond to the function minterms are connected to 1. The remaining mux data input lines 0, 2, 4, 7 are connected to 0. 











Example: 3variable Function Using 4to1 mux



Implement the function F(X,Y,Z) = S(0,1,3,6) using a single 4to1 mux and an inverter. We choose the two most significant inputs X, Y as mux select lines. 


Construct truth table. 





Truth Table 


Select i

X

Y

Z

F

Mux Input i

0

0

0

0

1

1

0

0

0

1

1

1

1

0

1

0

0

Z

1

0

1

1

1

Z

2

1

0

0

0

0

2

1

0

1

0

0

3

1

1

0

1

Z'

3

1

1

1

0

Z'







Circuit 











We determine multiplexer input line i values by comparing the remaining input variable Z and the function F for the corresponding selection lines value i 





 when XY=00 the function F is 1 (for both Z=0, Z=1) thus mux input0 = 1
 when XY=01 the function F is Z thus mux input1 = Z
 when XY=10 the function F is 0 (for both Z=0, Z=1) thus mux input2 = 0
 when XY=11 the function F is Z' thus mux input3 = Z'






Example: 2 to 4 Decoder using Demux












MuxDemux Application Example



This enables sharing a single communication line among a number of devices. At any time, only one source and one destination can use the communication line. 




















