Esercitazioni pratiche di elettronica/Logica Combinatoria/Sommatore a 4 bit di tipo LOOK AHEAD CARRY: differenze tra le versioni
m fix math tag error |
m Bot: elimina i bold dai titoli dei paragrafi |
||
Riga 3: | Riga 3: | ||
='''SOMMATORE DI TIPO LOOK-AHEAD-CARRY'''= |
='''SOMMATORE DI TIPO LOOK-AHEAD-CARRY'''= |
||
==Sintesi del circuito per la '''Generazione e propagazione del riporto |
==Sintesi del circuito per la '''Generazione e propagazione del riporto == |
||
Nasce da alcune osservazioni sulla tabella della verità |
Nasce da alcune osservazioni sulla tabella della verità |
||
Riga 13: | Riga 13: | ||
i '''Full-Adder''' eseguano la propria somma, in un certo senso '''in parallelo'''. |
i '''Full-Adder''' eseguano la propria somma, in un certo senso '''in parallelo'''. |
||
=== |
=== Tabella di verità del Sommatore Completo o con riporto === |
||
{| BORDER="1" CELLSPACING="0" CELLPADDING="2" |
{| BORDER="1" CELLSPACING="0" CELLPADDING="2" |
||
! Ci !! B !! A !! SUM !! Co |
! Ci !! B !! A !! SUM !! Co |
||
Riga 34: | Riga 34: | ||
|} |
|} |
||
=== |
=== Carry-Generate === |
||
*Quando '''A = 1''' e '''B = 1''' indipendentemente da '''Ci''' viene generato un riporto '''Co = 1''' |
*Quando '''A = 1''' e '''B = 1''' indipendentemente da '''Ci''' viene generato un riporto '''Co = 1''' |
||
Isolo le righe della tabella del Full-Adder che mi interessano nella seguente sotto-tabella: |
Isolo le righe della tabella del Full-Adder che mi interessano nella seguente sotto-tabella: |
||
Riga 51: | Riga 51: | ||
[[File:Carry Generate.JPG]] |
[[File:Carry Generate.JPG]] |
||
=== |
=== Carry-Propagate === |
||
*Se '''Ci = 1''' allora '''Co = 1''' '''sse'''(se e solo se) '''A = 1''' oppure '''B = 1''' oppure sia '''A = 1''' che '''B = 1''' |
*Se '''Ci = 1''' allora '''Co = 1''' '''sse'''(se e solo se) '''A = 1''' oppure '''B = 1''' oppure sia '''A = 1''' che '''B = 1''' |
||
Anche in questo caso, isolo le righe della tabella del Full-Adder che mi interessano e costruisco un'altra funzione di logica combinatoria: |
Anche in questo caso, isolo le righe della tabella del Full-Adder che mi interessano e costruisco un'altra funzione di logica combinatoria: |
||
Riga 72: | Riga 72: | ||
[[File:RipGen.JPG]] |
[[File:RipGen.JPG]] |
||
=== |
=== Carry-Out === |
||
Tenendo conto di entrambe le conclusioni delle due precedenti osservazioni, otteniamo il riporto in uscita: |
Tenendo conto di entrambe le conclusioni delle due precedenti osservazioni, otteniamo il riporto in uscita: |
||
Riga 88: | Riga 88: | ||
[[File:CarryOut.JPG]] |
[[File:CarryOut.JPG]] |
||
=== |
=== Espressione dei riporti per sommatore a 4 BITS === |
||
====Sommatore di peso 0==== |
====Sommatore di peso 0==== |
||
Riga 109: | Riga 109: | ||
Lo schema si chiamerà '''Sum4BitLAC''' |
Lo schema si chiamerà '''Sum4BitLAC''' |
||
==Circuito per la '''Generazione e propagazione del riporto |
==Circuito per la '''Generazione e propagazione del riporto == |
||
[[File:CarryGenProp4Bit.JPG]] |
[[File:CarryGenProp4Bit.JPG]] |
||
== |
== Assemblaggio del sommatore LAC == |
||
A questo punto possiamo aggiungere i sommatori completi o full-adder |
A questo punto possiamo aggiungere i sommatori completi o full-adder |
||
Riga 120: | Riga 120: | ||
=== |
=== Semi-sommatore privato del carry-out === |
||
[[File:HalfAdderNoCarryOut.JPG]] |
[[File:HalfAdderNoCarryOut.JPG]] |
||
=== |
=== Sommatore completo privato del carry-out === |
||
[[File:FullAdderNoCarryOut.JPG]] |
[[File:FullAdderNoCarryOut.JPG]] |
||
=== |
=== Sommatore a 4 bit di tipo Look-Ahead-Carry assemblato === |
||
[[File:Sum4BitLAC.JPG]] |
[[File:Sum4BitLAC.JPG]] |
||
==== |
==== Simulazione del sommatore LAC ==== |
||
[[File:Simul4BitLAC.JPG]] |
[[File:Simul4BitLAC.JPG]] |
Versione delle 11:16, 25 apr 2019
SOMMATORE DI TIPO LOOK-AHEAD-CARRY
Sintesi del circuito per la Generazione e propagazione del riporto
Nasce da alcune osservazioni sulla tabella della verità del Full Adder con l'obiettivo di realizzare un sommatore più veloce del RIPPLE-CARRY che è ancora una soluzione provvisoria per un sommatore, in quanto si degna di darci un risultato soltanto quando tutti i circuiti hanno raggiunto una condizione di stabilità dovuta ai ritardi di propagazione interni ai circuiti stessi. Qui si vuole in qualche modo prevedere in anticipo quali saranno i riporti in ingresso ai vari stadi del circuito in modo che in un solo passo tutti i Full-Adder eseguano la propria somma, in un certo senso in parallelo.
Tabella di verità del Sommatore Completo o con riporto
Ci | B | A | SUM | Co |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Carry-Generate
- Quando A = 1 e B = 1 indipendentemente da Ci viene generato un riporto Co = 1
Isolo le righe della tabella del Full-Adder che mi interessano nella seguente sotto-tabella:
Ci | B | A | SUM | Co |
---|---|---|---|---|
0 | 1 | 1 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Chiamo Carry-Generate la funzione CG = AB relativa all'ultima colonna della tabella precedente.
Carry-Propagate
- Se Ci = 1 allora Co = 1 sse(se e solo se) A = 1 oppure B = 1 oppure sia A = 1 che B = 1
Anche in questo caso, isolo le righe della tabella del Full-Adder che mi interessano e costruisco un'altra funzione di logica combinatoria:
Ci | B | A | SUM | Co |
---|---|---|---|---|
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Chiamo Carry-Propagate la funzione CP = A + B; il riporto vale CP * Ci
Carry-Out
Tenendo conto di entrambe le conclusioni delle due precedenti osservazioni, otteniamo il riporto in uscita:
Co = CG + CP * Ci
Possiamo ritenere questa conclusione valida? La risposta è Sì! perché abbiamo costruito la logica-combinatoria che realizza la colonna del riporto in uscita al Full-Adder tenndo conto di tutte le righe aventi uscita uguale a '1 e poi le abbiamo sommate anche se abbiamo preso in considerazione qualche riga più di una volta soltanto, e direi che va evidenziato il fatto che non sempre una semplificazione del circuito con Karnaugh si rende necessaria, ma che ogni elaborazione di un circuito va sempre presa in considerazione delle finalità, cioè degli obiettivi che ci si propone di raggiungere, come nel nostro caso in cui stiamo cercando di realizzare un sommatore più veloce del tipo RIPPLE-CARRY visto in precedenza.
Espressione dei riporti per sommatore a 4 BITS
Sommatore di peso 0
Sommatore di peso 1
Essendo ottengo:
- Es4: Ricavare le funzioni successive e costruire il CIRCUITO GENERATORE DI RIPORTI
Lo schema avrà nome RipGen
- Es5: Realizzare un sommatore Look-Ahead-Carry a 4 bits
Lo schema si chiamerà Sum4BitLAC
Circuito per la Generazione e propagazione del riporto
Assemblaggio del sommatore LAC
A questo punto possiamo aggiungere i sommatori completi o full-adder privi della circuiteria preposta alla generazione del carry-out.