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 de-muxers. |
Implementing Functions Multiplexers |
Any n-variable logic function can be implemented using a smaller 2n-1-to-1 multiplexer and a single inverter (e.g 4-to-1 mux to implement 3 variable functions) as follows. |
Express function in canonical sum-of-minterms form. Choose n-1 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: 3-variable Function Using 8-to-1 mux |
Implement the function F(X,Y,Z) = S(1,3,5,6) using an 8-to-1 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: 3-variable Function Using 4-to-1 mux |
Implement the function F(X,Y,Z) = S(0,1,3,6) using a single 4-to-1 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 |
 |
Mux-Demux 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. |
 |