# Decoder (elettronica)

Il decoder o decodificatore è un tipo di componente usato nell'elettronica digitale. In termini generali, qualunque informazione che sia ricevuta in una forma digitale codificata necessita di un processo di decodifica, più o meno complesso; questo è il compito del decoder.
Esso è un circuito combinatorio che converte un codice binario (naturale, BCD, ecc.) di n bit in ingresso e m linee di uscita, in modo che ogni linea di uscita sia attivata per una sola delle possibili combinazioni di ingresso. In genere, questi circuiti si trovano spesso come demultiplexer, in quanto questi ultimi possono comportarsi come un decoder.

## Il decoder nei circuiti digitali

Il componente logico elementare chiamato decoder, usato nei circuiti digitali, opera una decodifica semplice di una stringa di bit. La sua funzione è opposta a quella dell'encoder: in base alla combinazione dei bit presenti ai suoi ingressi, attiva una corrispondente combinazione di bit sulle linee di uscita.
Si consideri il caso più semplice possibile di un decodificatore con 2 ingressi e quindi 2$^2$=4 uscite, rappresentato dalla seguente tabella di verità:
Tabella di verità per il decodificatore a 2 ingressi e 4 uscite :
| Ingressi | Ingressi | Uscite | Uscite | Uscite | Uscite |
| A1 | A0 | D3 | D2 | D1 | D0 |
| 0 | 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 | 0 | 0 |
Un tipo di decodificatore molto utilizzato è il decodificatore a sette segmenti. Questo circuito decodifica le informazioni di ingresso BCD in un codice a sette segmenti adatto alla visualizzazione su un display a sette segmenti.
Esistono vari tipi di decodificatore: BCD-decimale (4 a 10), binario-ottale (2 a 8), binario-esadecimale (4 a 16), codice Gray-decimale, ecc. Per esempio un decodificatore binario-decimale può essere rappresentato con la seguente tabella di verità:
* D C B A | 0 1 2 3 4 5 6 7 8 9
* 0 0 0 0 | 1 0 0 0 0 0 0 0 0 0
* 0 0 0 1 | 0 1 0 0 0 0 0 0 0 0
* 0 0 1 0 | 0 0 1 0 0 0 0 0 0 0
* 0 0 1 1 | 0 0 0 1 0 0 0 0 0 0
* 0 1 0 0 | 0 0 0 0 1 0 0 0 0 0
* 0 1 0 1 | 0 0 0 0 0 1 0 0 0 0
* 0 1 1 0 | 0 0 0 0 0 0 1 0 0 0
* 0 1 1 1 | 0 0 0 0 0 0 0 1 0 0
* 1 0 0 0 | 0 0 0 0 0 0 0 0 1 0
* 1 0 0 1 | 0 0 0 0 0 0 0 0 0 1
* 1 0 1 0 | 0 0 0 0 0 0 0 0 0 0
* 1 0 1 1 | 0 0 0 0 0 0 0 0 0 0
* 1 1 0 0 | 0 0 0 0 0 0 0 0 0 0
* 1 1 0 1 | 0 0 0 0 0 0 0 0 0 0
* 1 1 1 0 | 0 0 0 0 0 0 0 0 0 0
* 1 1 1 1 | 0 0 0 0 0 0 0 0 0 0
Questo decodificatore si trova nella condizione per cui $m<2^{n}$. In questo caso, solo le prime 10, delle 16 combinazioni possibili sui 4 fili di ingresso, danno luogo ad una corrispondente combinazione sui 10 fili di uscita, le 6 combinazioni successive non danno luogo ad un'uscita, sono ininfluenti.
Generalizzando, se si hanno n linee di ingresso, viene attivata esclusivamente una delle m linee di uscita con: $m<=2^{n}$ In base a questo il decodificatore viene detto n a m.

## Decodificatori integrati

Esistono vari tipi di circuiti integrati che svolgono la funzione di decodificatore. La maggior parte di essi, oltre alle linee di ingresso e di uscita dei segnali, dispongono di alcuni ingressi supplementari, come per esempio l'enable, che serve per l'abilitazione del componente, oppure ingressi e uscite per il collegamento in cascata di più integrati.
I decodificatori integrati più diffusi sono:
* Per la famiglia TTL il 7442 e il 74F537: decodificatore BCD-decimale (4 a 10), il secondo fa parte della famiglia TTL veloce e dispone del comando per poterlo isolare dal Bus mettendolo in alta impedenza (Three state).
* Per la famiglia CMOS il 4028: decodificatore BCD-decimale.
* Per i pilotaggi display a 7 segmenti, il 7447: decodificatore-pilota BCD-7 segmenti.

## Dispositivi autonomi che svolgono la funzione di decoder

* Ricevitore satellitare: riceve in ingresso il segnale digitale che arriva dal satellite e in uscita il segnale analogico per il televisore.
* Ricevitore del digitale terrestre (comunemente chiamato semplicemente "decoder"): analogo al ricevitore satellitare, opera sul segnale digitale ricevuto dall'antenna terrestre.
* Lettore MP3 e lettore Divx: la grande maggioranza dei segnali audio e video, come per esempio musica, film e video online, sono memorizzati in formati codificati in modo efficiente, e pertanto per essere riprodotti hanno bisogno di un software che li decodifichi.

## Applicazioni del decodificatore

La funzione principale del decodificatore è quella di indirizzare gli spazi di memoria. Un decodificatore con N ingressi è in grado di indirizzare 2N spazi di memoria.
Per indirizzare 1Kib di memoria, sarebbero necessari 10 bit, dato che il numero di uscite sarebbe $2^{10}$, pari a 1024.
Quindi:
* con 20 bit si ha $2^{20}$, pari a 1 Mb;
* con 30 bit si ha $2^{30}$, che equivale a 1 Gb.