An encoder has 2n input lines and n output lines.The output lines generate a binary code corresponding to the input value. For example a single bit 4 to 2 encoder takes in 4 bits and outputs 2 bits. It is assumed that there are only 4 types of input signals these are : 0001, 0010, 0100, 1000.
| I3 | I2 | I1 | I0 | O1 | O0 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 1 |
The encoder has the limitation that only one input can be active at any given time. If two inputs are simultaneously active, the output produces and undefined combination. To prevent this we make use of the priority encoder.
A priority encoder is such that if two or more inputs is given at the same time, the input having the highest priority will take precedence. An example of a single bit 4 to 2 encoder is shown.
| I3 | I2 | I1 | I0 | O1 | O0 |
|---|---|---|---|---|---|
| 0 | 0 | 0 | d | 0 | 0 |
| 0 | 0 | 1 | d | 0 | 1 |
| 0 | 1 | d | d | 1 | 0 |
| 1 | d | d | d | 1 | 1 |
Priority encoders can be easily connected in arrays to make larger encoders, such as a 16 to 4 encoder made from six 4 to 2 priority encoders (four encoders having the signal source connected to their inputs, and two encoders that take the output of the first four as input).