Blocchi combinatori

Note

Esiste una ben nota e ormai libreria di blocchi funzionali predefiniti di tipo combinatori, che contiene i blocchi per tutte le funzioni combinatorie base.

I tipici blocchi funzionali combinatori sono:

  • Multiplexer
  • Decoder
  • Comparator
  • Half adder e full adder
  • Adder a
  • ALU

Multiplexer

Note

Il blocco funzionale multiplexer ha ingressi di selezione, ingressi dati e uscita, dove gli ingressi dati sono numerati a partire da .

Se sugli ingressi di selezione è presenta la configurazione binaria corrispondente a , allora il -esimo ingresso dati viene presentato in uscita.

Il simbolo funzionale è il seguente (estendibile a ingressi).

center
Considerando un ingresso per , questo è lo schema circuitale.

center

Decoder

Note

Il blocco funzionale decoder ha ingressi e uscite, con le uscite numerate a partire da .

Se sugli ingressi è presente un numero binario , la -esima uscita assume valore e le restanti uscite assumono valore .

Il simbolo funzionale è il seguente (estendibile a ingressi).

center

Comparator

Note

Il blocco funzionale comparatore ha due gruppi e di ingressi da ciascuno e uscite, che indicano rispettivamente minoranza (), uguaglianza (), e maggioranza .

Il blocco confronta i due numeri binari e da presenti sui due gruppi di ingressi, e attiva l'uscita corrispondente all'esito del confronto.

Il simbolo funzionale è il seguente (estendibile a ingressi).

center

Shifter combinatorio

Note

Il blocco funzionale shifter ha ingressi, ingresso per il bit aggiunto a destra, ingresso per il bit aggiunto a sinistra, un ingresso di controllo che comanda lo scorrimento a destra o a sinistra, e uscite.

Nel caso di scorrimento a destra (divisione per ), viene aggiunto un bit a sinistra, e gli ingressi sono shiftati di una posizione a destra.
Viceversa, nel caso di scorrimento a sinistra (moltiplicazione per ), viene aggiunto un bit a destra e gli ingressi sono shiftati di una posizione a sinistra.

Lo schema circuitale per ingressi è il seguente.

center

Half adder

Note

Il blocco funzionale half adder ha due ingressi e e due uscite e . Ci permette di sommare binariamente e tenendo conto di un resto.

Lo schema circuitale è il seguente.

center

Full adder

Note

Il blocco funzionale full adder funziona esattamente come un half adder, con l'aggiunta di un ingresso che permette di fare operazioni col riporto di ingresso:

Lo schema circuitale è il seguente.

center

Adder a in binario naturale intero

Note

Tramite i blocchi half adder e full adder possiamo creare un blocco che ci permette di eseguire la somma tra due numeri interi. Il simbolo funzionale (estendibile a ) è il seguente.

cente

Lo schema circuitale è il seguente.

center

Per quanto riguarda l'algebra in complemento a due su bit, per la somma si opera in binario naturale intero, e si verifica overflow se e hanno segno concorde ed il risultato ha segno discorde.

Per la sottrazione si complementa a due l'operando , e poi si opera in binario naturale intero. Si verifica overflow se e hanno segno concorde ed il risultato ha segno discorde.

Quindi un sommatore/sottrattore in complemento a due è un sommatore binario naturale intero a bit con un ingresso , un ingresso di segnale add/sub, una batteria di xor sull'ingresso per effettuare il complemento ad uno, e una rete combinatoria per generare il segnale di overflow.

ALU

Note

Il blocco funzionale ALU (Arithmetic Logic Unit) è un blocco funzionale che permette di eseguire le operazioni AND, OR, add, subtract, set less than e NOR. Funziona inserendo nelle righe di controllo dell'ALU un codice associato alla funzione da svolgere. Di seguito il simbolo funzionale accompagnato dai valori notevoli.

center

Per quanto riguarda i numeri relativi, si usa il complemento a due. Le ALU sono normalmente in grado di operare sia con numeri interi naturali, che con numeri interi relativi rappresentati in complemento a due.

I numeri reali sono descritti dallo standard IEEE 754 per la rappresentazione in virgola mobile. Esistono delle ALU in grado di effettuare i calcoli aritmetici con i numeri reali, oltre che con i numeri interi.