Nell’articolo di oggi analizzeremo nel dettaglio il funzionamento del comparatore.
Negli articoli precedenti abbiamo visto:
- Come funziona una CPU: progetto di circuiti logici #0
- Come funziona una CPU: Flip-Flop SR asincrono #0.1
- Come funziona una CPU: Flip-Flop sincrono #0.1.1
- Come funziona una CPU: Flip-Flop D #0.1.2
- Come funziona una CPU: Flip-Flop Master-Slave #0.1.3
- Come funziona una CPU: Modello di Huffman #0.2
- Come funziona una CPU: progetto di circuiti sequenziali sincroni #0.2.1
- Come funziona una CPU: progetto dei circuiti logici #0.3
- Come funziona una CPU: porte logiche operanti su parole #0.3.1
- Come funziona una CPU: multiplexer #0.3.2
- Come funziona una CPU: decodificatore #0.3.3
- Come funziona una CPU: codificatore (encoder) #0.3.4
- Come funziona una CPU: codificatore prioritario (priority encoder) #0.3.4.1
- Come funziona una CPU: sommatore full-adder #0.3.5
- Come funziona una CPU: sommatore Ripple Carry Adder #0.3.5.1
- Come funziona una CPU: sommatore seriale #0.3.5.2
- Come funziona una CPU: Sommatore con carry-lookahead #0.3.5.3
- Come funziona una CPU: ALU spiegata in modo semplice #0.3.5.4
Il comparatore è un modulo puramente combinatorio e si occupa di effettuare l’operazione di confronto tra 2 operandi su n-bit. Ha 3 uscite, ciascuna delle quali rappresenta uno dei possibili esiti del confronto tra gli operandi. Inoltre è provvisto di un segnale di Enable che, eventualmente, disabilita tutte le uscite.
Il confronto viene effettuato a partire dai bit più significativi. Se l’esito del confronto tra questi ultimi è una disuguaglianza, allora l’operando avente i bit più significativi maggiori è a sua volta maggiore del secondo operando.
Connessione di comparatori
Connettendo in cascata più comparatori a 4-bit si possono creare moduli più complessi, come per esempio un Comparatore a 16-bit.
Questo modulo confronta i bit degli operandi a gruppi di 4, partendo dai più significativi. Questo comparatore è quindi costituito da 4 Comparatori a 4-bit. I segnali di Enable degli ultimi 3 Comparatori dipendono ciascuno dall’uscita “equals” del Comparatore precedente. D’altronde, solo se il confronto tra 2 gruppi di bit non ha prodotto alcuna disuguaglianza è necessario confrontare i gruppi di bit successivi e quindi abilitare il Comparatore successivo. In caso contrario, gli Enable pongono a 0 tutte le uscite dei rispettivi Comparatori. Le uscite relative alle disuguaglianze fanno capo a delle porte OR, cosicché il confronto possa terminare con successo nel caso in cui un Comparatore rilevi delle differenze tra 2 gruppi di bit e ponga ad 1 la corrispondente uscita. Da quel momento tutti gli altri Comparatori inviano uno 0 a tutte le porte logiche ma, trattandosi di OR, basta il solo 1 prodotto dal Comparatore iniziale per stabilire l’esito finale del confronto. Se invece ogni Comparatore rileva una relazione di uguaglianza tra i vari gruppi di bit, le porte OR riceveranno in ingresso solo il valore 0 mentre l’ultimo Comparatore a 4-bit produrrà un 1 direttamente sull’uscita del Comparatore a 16-bit per indicare che i 2 operandi sono uguali.
Iscriviti ai nostri gruppi Telegram
Link utili