A **decoder **is one of many types of combinational circuits. It has multiple input lines and multiple output lines but has no selector lines like MUX and DEMUX. The decoder aids in the translation/decoding of information encoded by the encoder. As a result, it reverses the encoder's work. The decoder converts n bits of data input into two power n coded outputs.

Decoders are used in microprocessors, memory chips, and other data transfer circuits to select different I/O devices and other data transfer circuits. In a computer, a decoder is used to decode memory addresses.

The decoder looks like this:

If you can't find a 4 * 16 decoder in your area and only have a 2 * 4 decoder, you can easily implement a 4 * 16 decoder using a 2 * 4 decoder by following these steps:

**Implementing 4 * ***16 Decoder using 2 * 4 Decoder*

*16 Decoder using 2 * 4 Decoder*

**2*4 Decoder** has two input lines and four output lines, and it chooses one of the lines based on various input combinations.

**4*16 Decoder** has four inputs and sixteen outputs, and it chooses one line based on various input combinations.

Four 2*4 encoders are required to produce 16 outputs and 1 extra 2*4 decoder is required to enable the decoder when creating 4*16 decoders. As a result, a total of 5 decoders are required. But output at a time will be generated by 1 decoder only at a time.

**Circuit Diagram**

Here, A-lines indicate MSB, and D lines indicate LSB.

Decoder Enable Logic

ABCD | Decoder Enabled |

00XX | D1 Decoder |

01XX | D2 Decoder |

10XX | D3 Decoder |

11XX | D4 Decoder |

ie.

- When A = 0 , B = 0 , CD( any 00 or 01 or 10 or 11) , D1 Decoder is selected.
- When A = 0 , B = 1 , CD( any 00 or 01 or 10 or 11) , D2 Decoder is selected.
- When A = 1 , B = 0 , CD( any 00 or 01 or 10 or 11) , D3 Decoder is selected.
- When A = 1 , B = 1 , CD( any 00 or 01 or 10 or 11) , D4 Decoder is selected.

This concludes that selecting Decoder (D1, D2, D3, D4) only depends on the D5 decoder.

Now the output Y0 to Y15 are generated with the various input value.

ABCD Input Lines | Decoder Enabled | Output Lines |

0000 | D1 Decoder | Y0 |

0001 | D1 Decoder | Y1 |

0010 | D1 Decoder | Y2 |

0011 | D1 Decoder | Y3 |

0100 | D2 Decoder | Y4 |

0101 | D2 Decoder | Y5 |

0110 | D2 Decoder | Y6 |

0111 | D2 Decoder | Y7 |

1000 | D3 Decoder | Y8 |

1001 | D3 Decoder | Y9 |

1010 | D3 Decoder | Y10 |

1011 | D3 Decoder | Y11 |

1100 | D4 Decoder | Y12 |

1101 | D4 Decoder | Y13 |

1110 | D4 Decoder | Y14 |

1111 | D4 Decoder | Y15 |

ie.

- When Input ABCD = 0000 then D1 Decoder is selected and the Y0 output line is selected.
- When Input ABCD = 0001 then D1 Decoder is selected and the Y1 output line is selected.
- When Input ABCD = 0010 then D1 Decoder is selected and the Y2 output line is selected.
- When Input ABCD = 0011 then D1 Decoder is selected and the Y3 output line is selected.
- When Input ABCD = 0100 then D2 Decoder is selected and the Y4 output line is selected.
- When Input ABCD = 0101 then D2 Decoder is selected and the Y5 output line is selected.
- When Input ABCD = 0110 then D2 Decoder is selected and the Y6 output line is selected.
- When Input ABCD = 0111 then D2 Decoder is selected and the Y7 output line is selected.
- When Input ABCD = 1000 then D3 Decoder is selected and the Y8 output line is selected.
- When Input ABCD = 1001 then D3 Decoder is selected and the Y9 output line is selected.
- When Input ABCD = 1010 then D3 Decoder is selected and the Y10 output line is selected.
- When Input ABCD = 1011 then D3 Decoder is selected and the Y11 output line is selected.
- When Input ABCD = 1100 then D4 Decoder is selected and the Y12 output line is selected.
- When Input ABCD = 1101 then D4 Decoder is selected and the Y13 output line is selected.
- When Input ABCD = 1110 then D4 Decoder is selected and the Y14 output line is selected.
- When Input ABCD = 1111 then D4 Decoder is selected and the Y15 output line is selected.

**Conclusion:**

We have successfully implemented 4 * 16 decoders using five 2 * 4 decoders.