# Esercitazioni pratiche di elettronica/Logica Combinatoria/Sommare due parole di 4 bit

Esercitazioni pratiche di elettronica
Copertina Tutti i moduli · Sviluppo
* IntroduzioneEsercitazioni pratiche di elettronica/Introduzione
* Lezioni:
** Simulazione dei principali circuiti con amplificatore operazionaleEsercitazioni pratiche di elettronica/Simulazione dei principali circuiti con amplificatore operazionale
** Differenza fra segnali analogici e segnali digitaliEsercitazioni pratiche di elettronica/Differenza fra segnali analogici e segnali digitali
** Introduzione alle logiche TTLEsercitazioni pratiche di elettronica/Introduzione alle logiche TTL
** Classi fondamentali dei circuiti digitaliEsercitazioni pratiche di elettronica/Classi fondamentali dei circuiti digitali
** I sistemi di numerazioneEsercitazioni pratiche di elettronica/I sistemi di numerazione
*** Conversione da base 2 in base 10Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 2 in base 10
*** Conversione da base 10 in base 2Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 10 in base 2
*** Conversione da base 10 in base 16Esercitazioni pratiche di elettronica/I sistemi di numerazione/Conversione da base 10 in base 16
** Il ciclo di progettoEsercitazioni pratiche di elettronica/Il ciclo di progetto
** Software ISE-XILINX Free WebpackEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack:
*** Finestra principaleEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Finestra principale
*** Creazione di un nuovo progettoEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di un nuovo progetto
*** Creazione di uno schemaEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di uno schema
*** Creazione di un file VHDLEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di un file VHDL
*** Creazione di una Macchina a Stati FinitiEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Creazione di una Macchina a Stati Finiti
*** Il file di piedinaturaEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/Il file di piedinatura
*** La simulazioneEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/La simulazione
*** L'implementazione su scheda e il testEsercitazioni pratiche di elettronica/Software ISE-XILINX Free Webpack/L'implementazione su scheda e il test
* Esercitazioni di laboratorioEsercitazioni pratiche di elettronica/Esercitazioni di laboratorio
** Logica CombinatoriaEsercitazioni pratiche di elettronica/Logica Combinatoria:
*** Implementazione di una funzioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Implementazione di una funzione
*** Dalla tabella della verità all'implementazioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Dalla tabella della verità all'implementazione
*** Il multiplexerEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il multiplexer
*** Implementazione di una funzione tramite multiplexerEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Implementazione di una funzione tramite multiplexer
*** Il Semisommatore o Half-AdderEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Semisommatore o Half-Adder
*** Il Sommatore completo o Full-AdderEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Sommatore completo o Full-Adder
*** Full-Adder realizzato con mux a 3 ingressi di selezioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Full-Adder realizzato con mux a 3 ingressi di selezione
*** Full-Adder realizzato con mux a 2 ingressi di selezioneEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Full-Adder realizzato con mux a 2 ingressi di selezione
*** Sommare due parole di 4 bitEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Sommare due parole di 4 bit
*** Sommatore a 4 bit di tipo LOOK AHEAD CARRYEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Sommatore a 4 bit di tipo LOOK AHEAD CARRY
*** Il ComparatoreEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Comparatore
*** Il Comparatore a più bitEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il Comparatore a più bit
*** Il decodificatore da BCD a sette segmentiEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il decodificatore da BCD a sette segmenti
*** Il decodificatore da BCD a 7 segmenti in VHDLEsercitazioni_pratiche_di_elettronica/Logica_Combinatoria/Il decodificatore da BCD a 7 segmenti in VHDL
*** Multiplexing di più display a 7 segmentiEsercitazioni pratiche di elettronica/Logica Combinatoria/Multiplexing di più display a 7 segmenti
* Logica SequenzialeEsercitazioni pratiche di elettronica/Logica Sequenziale:
** Flip Flop di tipo DEsercitazioni pratiche di elettronica/Logica Sequenziale/Flip Flop di tipo D
** Flip Flop di tipo JK
** Flip Flop di tipo TEsercitazioni pratiche di elettronica/Logica Sequenziale/Flip Flop di tipo T
** Contatore e-o divisore modulo 2Esercitazioni pratiche di elettronica/Logica Sequenziale/Contatore e-o divisore modulo 2
** Contatori in cascataEsercitazioni pratiche di elettronica/Logica Sequenziale/Contatori in cascata
** Macchine a Stati FinitiEsercitazioni pratiche di elettronica/Logica Sequenziale/Macchine a Stati Finiti
* Elaborazione di Progetti ComplessiEsercitazioni pratiche di elettronica/Elaborazione di progetti complessi
* Risorse per il laboratorioEsercitazioni pratiche di elettronica/Risorse per il laboratorio
* Laboratorio di SistemiEsercitazioni pratiche di elettronica/Laboratorio di Sistemi
* AcronimiEsercitazioni pratiche di elettronica/Acronimi
* AutoriEsercitazioni pratiche di elettronica/Autori
Modifica il sommario

# Sommatore completo a 4 bit di tipo RIPPLE CARRY

In questa lezione procederemo ad implementare un sommatore completo a 4 bit di tipo RIPPLE CARRY ovvero a propagazione del riporto. Trattasi di un sommatore più lento rispetto alla versione LOOK-AHEAD-CARRY.

## Lo schema

La somma delle due parole a bit, A[3:0] e B[3:0], viene effettuata ponendo in cascata 4 Full-Adder, collegati in modo che il riporto della cifra precedente, CYOUT, venga inviato all'ingresso di riporto, CYIN, della cifra successiva. L'uscita sarà ancora una parola a 4 bit, SUM[3:0], più l'ultimo riporto in uscita, CYOUT, ottenendo così un totale di 5 bits in uscita.
* Non dimenticare mai il riporto in uscita ad una somma se non si vogliono perdere cifre significative.
Questo risultato è congruente con il fatto che 4 bits contengono i numeri da 0 a 15 e che sommando due parole di 4 bits potremmo ottenere al massimo, quale risultato, il numero 30 che pùo essere contenuto in un numero di almeno 5 bits.

## Bus e Tap

Un BUS è un insieme di connessioni, NETS, che hanno lo stesso nome ma indicizzate. Ad esempio il bus A[3:0], (è questa la sintassi da adoperare per definire un BUS), contiene al suo interno 4 NET che separatamente assumono i nomi A[0], A[1], A[2], A[3], e le quali possono essere estratte dal BUS stesso per essere collegate opportunamente tramite gli oggetti che nell'ISE vengono chiamati TAP.
NB:la NET che viene collegata al TAP deve essere rinominata in modo congruente con i nomi delle NETS contenute nel BUS dal quale il TAP sta estraendo la singola NET.
A proposito ancora della sintassi, A[3:0] mi dice che il BUS A si estende ordinatamente a partire da A[3] fino ad A[0]. In modo equivalente da punto di vista elettronico, avremmo potuto chiamare il BUS A con il nome A[0:3] ottenendo lo stesso risultato, è solo una questione di abitudine. Io preferisco la prima soluzione dove la sintassi è:
NOME_DEL_BUS[MAX_INDEX:MIN_INDEX]
ma come ripeto ugualmente buona è la sintassi:
NOME_DEL_BUS[MIN_INDEX:MAX_INDEX]

## Riporto precedente alla cifra successiva

Da questa immagine si vede come il riporto in uscita dalla somma della prima cifra, effettuata col primo sommatore, CYOUT, viene inviato all'ingresso del sommatore per le cifre di peso successivo all'ingresso di riporto CYIN.

## Somma + Riporto

Qui sono evidenziati il BUS somma, SUM[3:0] ed il riporto in uscita dall'ultimo sommatore.

## Il riporto in ingresso alla cifra di peso zero viene forzato a GND

Poiché non abbiamo nessun riporto all'inizio della somma è necessaria questa forzatura del primo ingresso CYIN.

## La piedinatura

Si effettua ora la piedinatura dello schema creando un nuovo file sorgente di tipo IMPLEMENTATION CONSTRAINTS FILE. Assegneremo il BUS A[3:0] a 4 switch ed il BUS B[3:0] a gli altri 4 switch rimanenti; per le uscite faremo in modo di inviare il BUS SUM[3:0] a 4 LED ed useremo un quinto LED per il riporto in uscita.

## L'implementazione e il test

* Dopo aver effettuato il caricamento del file di programma, sum4bit.jed all'interno del device, settare i switch in modo da assegnare a ciascun bus d'ingresso, A[3:0] e B[3:0], un valore numerico da 0 a 15 a scelta.
* Osservare la configurazione binaria dei LEDs; il risultato ottenuto è esatto?
* Rispondere più volte a questa domanda con diverse configurazioni dei bus, in modo da controllare l'esatto funzionamento del sommatore.

## La simulazione

Sono stati assegnati alcuni valori ai bus di ingresso; osservare la configurazione del bus di uscita, SUM[3:0] e del bit di riporto, CYOUT.
NB:Una simulazione esaustiva, comprendente cioè tutte le possibili combinazioni dei due bus, qui non viene effettuata perché altrimenti troppo lunga in quanto comprenderebbe $16*16=256$ combinazioni differenti.