Topic outline

  • Introduzione

    I circuiti combinatori sono caratterizzati dal fatto che lo stato delle uscite in un certo istante dipende SOLO e SEMPRE dallo stato presente sugli ingressi allo stesso istante.

    Vengono realizzati utilizzando sia le porte logiche fondamentali sia circuiti tipici ricorrenti nei sistemi digitali: codificatori (encoder), decodificatori (decoder), multiplexer (MUX), demultiplexer (DEMUX), comparatori, circuiti aritmetici (sommatore, sottrattore, ALU).

  • Encoder (codificatori)

    I codificatori (encoder) sono circuiti in grado di rilevare la presenza di un ingresso attivo fornendo in uscita il codice binario corrispondente. Se in ingresso si hanno 2n linee,  in uscita si hanno n linee.

    Gli encoder digitali di questo tipo possono avere diverse configurazioni a seconda delle esigenze specifiche. Ad esempio:

    1. Encoder binari: Accettano input binari e producono un output che può essere rappresentato in una forma specifica, come Gray code o uno schema di codifica personalizzato.

    2. Encoder a priorità: Utilizzati per codificare una serie di input, ciascuno con una priorità specifica, in un singolo output.

    3. Encoder di priorità multipla: Simili agli encoder a priorità, ma consentono la rappresentazione di più input con priorità in un singolo output.

    Questi encoder digitali sono comunemente utilizzati in elettronica digitale, nella progettazione di circuiti digitali e nella trasmissione di dati, dove è importante rappresentare i dati in modo efficiente o elaborare segnali digitali in modo specifico.

    Per distinguerli dagli encoder rotativi o lineari che misurano la posizione fisica, è comune riferirsi a questi dispositivi come "encoder digitali" o "codificatori digitali logici" per evitare confusioni con gli encoder di posizione.

    Esempio: codificatore da 8 a 3 linee (ottale-binario)

    encoder 8-3

    Per quanto riguarda l'uscita si ha C come cifra più significativa (MSB: most significant bit), mentre A come cifra meno significativa (LSB: least most significant bit).

    Tale circuito può essere realizzato nel seguente modo:

    \( C = I_4 + I_5 + I_6 + I_7 \)           \( B = I_2 + I_3 + I_6 + I_7 \)            \( A = I_1 + I_3 + I_5 + I_7 \)

    codificatore 8-3

    In tale circuito gli ingressi sono normalmente a livello basso e vengono portati a livello alto tramite i pulsanti. Non è presente l'ingresso 0, poiché il circuito è in grado di rilevare solo l'attivazione su 7 linee; ciò crea un problema, poiché non si può distinguere tra la condizione di attivazione dell'ingresso 0 o la non attivazione di alcun ingresso: entrambe in uscita producono lo stesso codice.

    Il grande limite di questi codificatori si presenta quando 2 o più pulsanti vengono premuti contemporaneamente fornendo uscite errate. Questo viene risolto assegnando un livello di priorità a ciascun ingresso.


    Codificatori a priorità (priority encoder)

    Nei codificatori a priorità, in caso due o più pulsanti vengano premuti contemporaneamente, si ha in uscita il codice riferito all'ingresso con priorità maggiore. Se, ad esempio, il livello di priorità è assegnato in modo crescente da I0 a I7 e vengono premuti insieme i pulsanti I2 e I5 il codice in uscita sarà 11 (cioè 5) poiché I5 ha priorità maggiore di I2 .

    Questi codificatori sono utili quando ad ogni ingresso è associato un dispositivo ed è necessario gestire in modo corretto richieste o segnalazioni.


    tabella di verità priority encoder

    In questo caso le "indifferenze" sugli ingressi segnalate con la X indicano che il valore non è significativo per determinare l'uscita se un ingresso a priorità più alta è attivo.

  • Decoder (decodificatori)

    Il decodificatore ha il compito di rilevare sui propri ingressi la presenza di una particolare combinazione di bit attivando, di conseguenza, in uscita una linea prestabilita.

    Sono realizzati come integrati in varie tecnologie con strutture e caratteristiche diverse e livelli di correnti e tensione di uscita differenti.

    Nell'esempio sotto c'è un decoder da 2 a 4:

    DECODER DA 2 A 4

  • Multiplexer

    Il multiplexer (MUX) è un dispositivo in grado di trasferire, nell'unica linea di uscita, i dati presenti in uno degli n ingressi tramite il selettore di dati che fa parte degli ingressi di controllo.

    Viene utilizzato in molte applicazioni per consentire l'invio di più flussi di informazioni (audio, video, dati) su una singola linea di trasmissione.

    Il più semplice è realizzato con 2 ingressi D0 e D1 ed un ingresso selezione S.

    MUX2a1

    Dalla tabella di verità si evidenzia che, quando la selezione S = 0 in uscita viene trasferito D0 , mentre quando S = 1 in uscita viene trasferito D1 .

    Il numero di linee di selezione stabilisce quanti ingressi è possibile multiplexare: con 2 linee di selezione è possibile gestire 4 linee dati, con 3 linee di selezione è possibile gestire 8 linee dati e così via; quindi servono m linee di selezione per n = 2m ingressi.

    Esistono diversi integrati che contengono uno o più multiplexer realizzati con le varie tecnologie, con uscite di tipo totem-pole o three-state. (Uscite digitali: three-state, totem-pole, open-collector cosa sono?)

    MUX e tipi di uscite

  • Demultiplexer

    Il demultiplexer (DEMUX) è un circuito logico di tipo combinatorio in grado di trasferire il dato digitale dell'unica linea di ingresso in una delle linee di uscita attivata dagli ingressi di selezione. Servono, quindi, m ingressi di selezione per n linee di uscita, con n = 2m .

    Il funzionamento è opposto a quello del multiplexer; il suo schema interno è simile a quello di un decoder con, però,  un ingresso dati. Esistono circuiti integrati (decoder-demultiplexer) che svolgono entrambe le funzioni. Ad esempio : 74LS138)

    MUX 4-1 e DEMUX 1-4

  • Comparatori

  • Sommatori (half-adder e full-adder)

  • Sottrattori