# Implement a function 3x8 Decoder with 4 variables

I'm required to implement a function

F = ~ABC~D + ~A~B~C~D + ~ABC + B~CD

using a 3x8 Decoder and any other additional combinational logic.

How can I implement this function if there are 4 variables (ABCD) in the expression but only 3 inputs in my 3x8 Decoder?

If I take only ABC as my 3 inputs on my decoder how can I include D to complete my function.

• For a start you can reduce the function to a more basic form. I can see that one part can be removed straight away. Then maybe draw a truth table to see if anything else drops out. "other additional combinational logic" gives you a lot of flexibility to combine terms also. – Andy aka Jan 11 '18 at 9:49
• I drew a truth table and K-map to reduce the expression but just got back the same expression. I think the function is already minimised? I don't know where to start really – zzzbai Jan 11 '18 at 11:10
• Reread the first comment and try again. – RoyC Jan 11 '18 at 13:55
• Actually, simplifying the function is a distraction. The ~A~B~C~D and B~CD terms make it impossible to use a single 3x8 decoder. – StainlessSteelRat Nov 26 '18 at 20:23

If you cant reduce the equation to a simpler one that only has two variables you need to use two 3:8 decoders and the MSB variable assign it to the enable of both decoders, connect it to the first decoder enable pin inverted and directly to the second decoder enable pin. This way you divide the truth table in half activating the first decoder when A is 0 and deactivating it and activating the second decoder when A is 1

There is a few simplifications, ~ABC~D is redundant to ~ABC, so we can remove the first term outright,

Next all but the B~CD term is true only when A="0", so we use an AND gate to remove it needing to be on the decoder, and OR the B~CD term with the output as it is true no matter what A is.

The Reduced Equation would be F = A'(B'C'D' + BC) + BC'D

In the original notation would be F = ~A(~B~C~D + BC) + B~CD  