As its name indicates, a decoder is a circuit component that decodes an input code. Given a binary code of n-bits, a decoder will tell which code is this out of the 2^n possible codes
Thus, a decoder has n-inputs and 2^n outputs. Each of the 2^n outputs corresponds to one of the possible 2^n input combinations.
Figure shows the block diagram of a typical decoder, which has n input lines, and m output lines, where m is equal to 2^n . The decoder is called n-to-m decoder. Apart from this, there is also a single line connected to the decoder called enable line. The operations of the enable line will be discussed in the flowing text.
- In general, output i equals 1 if and only if the input binary code has a value of i.
- Thus, each output line equals 1 at only one input combination but is equal to 0 at all other combinations.
- In other words, each decoder output corresponds to a minterm of the n input variables.
- Thus, the decoder generates all of the 2^n minterms of n input variables.
Example: 2-to-4 decoders
Let us discuss the operation and combinational circuit design of a decoder by taking the specific example of a 2-to-4 decoder. It contains two inputs denoted by A1 and A0 and four outputs denoted by D0, D1, D2, and D3 as shown in figure 2. Also note that A1 is the MSB while A0 is the LSB.
As we see in the truth table (table 1), for each input combination, one output line is activated, that is, the output line corresponding to the input combination becomes 1, while other lines remain inactive. For example, an input of 00 at the input will activate line D0. 01 at the input will activate line D1, and so on.
The “enable” input in decoders
Generally, decoders have the “enable” input .The enable input perroms no logical operation, but is only responsible for making the decoder ACTIVE or INACTIVE. o If the enable “E” o is zero, then all outputs are zero regardless of the input values. o is one, then the decoder performs its normal operation.
For example, consider the 2-to-4 decoder with the enable input (Figure 4). The enable input is only responsible for making the decoder active or inactive. If Enable E is zero, then all outputs of the decoder will be zeros, regardless of the values of A1 and A0. However, if E is 1, then the decoder will perform its normal operation, as is shown in the
truth table (table 2). In this table we see that as long as E is zero, the outputs D0 to D3 will remain zero, no matter whatever value you provide at the inputs A1 A0, depicted by two don’t cares. When E becomes 1, then we see the same behavior as we saw in the case of 2-to-4 decoder discussed earlier.
- It is possible to build larger decoders using two or more smaller ones.
- For example, a 6-to-64 decoder can be designed with four 4-to-16 decoders and one 2-to-4 line decoder.
- An encoder performs the inverse operation of a decoder, as shown in Figure 10.
- It has 2^n inputs, and n output lines.
- Only one input can be logic 1 at any given time (active input). All other inputs must be 0’s.
- Output lines generate the binary code corresponding to the active input.
Binary decoder applications
- Microprocessor memory systems
– selecting different banks of memory
- Microprocessor input/output systems
– selecting different devices (printer, serial, video etc)
- Microprocessor instruction decoding
– enabling different functional units within the uP.
- Memory chips
– enabling different rows of memory depending on inputted address
- Identifying or selecting various circuit options. Can also be used for logic synthesis since each output actually
represents a unique minterm of the inputs…….